From 310e5ea35b96426b4c12e65468d830cb043d25c6 Mon Sep 17 00:00:00 2001 From: Atiksoftware Corporation Date: Tue, 13 Feb 2024 15:02:20 +0300 Subject: [PATCH 001/222] Create messages.po --- src/locale/locales/tr/messages.po | 4391 +++++++++++++++++++++++++++++ 1 file changed, 4391 insertions(+) create mode 100644 src/locale/locales/tr/messages.po diff --git a/src/locale/locales/tr/messages.po b/src/locale/locales/tr/messages.po new file mode 100644 index 0000000000..b9d857e1cc --- /dev/null +++ b/src/locale/locales/tr/messages.po @@ -0,0 +1,4391 @@ +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-11-05 16:01-0800\n" +"PO-Revision-Date: \n" +"Last-Translator: atiksoftware\n" +"Language-Team: atiksoftware\n" +"Language: tr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: \n" +"X-Generator: Poedit 3.4.2\n" + +#: src/view/com/modals/VerifyEmail.tsx:142 +msgid "(no email)" +msgstr "(e-posta yok)" + +#: src/view/shell/desktop/RightNav.tsx:168 +msgid "{0, plural, one {# invite code available} other {# invite codes available}}" +msgstr "{0, plural, one {# davet kodu mevcut} other {# davet kodları mevcut}}" + +#: src/view/com/profile/ProfileHeader.tsx:632 +msgid "{following} following" +msgstr "{following} takip ediliyor" + +#: src/view/shell/desktop/RightNav.tsx:151 +msgid "{invitesAvailable, plural, one {Invite codes: # available} other {Invite codes: # available}}" +msgstr "{invitesAvailable, plural, one {Davet kodları: # mevcut} other {Davet kodları: # mevcut}}" + +#: src/view/screens/Settings.tsx:435 src/view/shell/Drawer.tsx:664 +msgid "{invitesAvailable} invite code available" +msgstr "{invitesAvailable} davet kodu mevcut" + +#: src/view/screens/Settings.tsx:437 src/view/shell/Drawer.tsx:666 +msgid "{invitesAvailable} invite codes available" +msgstr "{invitesAvailable} davet kodları mevcut" + +#: src/view/shell/Drawer.tsx:443 +msgid "{numUnreadNotifications} unread" +msgstr "{numUnreadNotifications} okunmamış" + +#: src/view/com/threadgate/WhoCanReply.tsx:158 +msgid "<0/> members" +msgstr "<0/> üyeleri" + +#: src/view/com/profile/ProfileHeader.tsx:634 +msgid "<0>{following} <1>following" +msgstr "<0>{following} <1>takip ediliyor" + +#: src/view/com/auth/onboarding/RecommendedFeeds.tsx:30 +msgid "<0>Choose your<1>Recommended<2>Feeds" +msgstr "<0>Önerilen<1>Feeds<2>Seç" + +#: src/view/com/auth/onboarding/RecommendedFollows.tsx:37 +msgid "<0>Follow some<1>Recommended<2>Users" +msgstr "<0>Önerilen<1>Kullanıcıları Takip Et<2>Seç" + +#: src/view/com/auth/onboarding/WelcomeDesktop.tsx:21 +msgid "<0>Welcome to<1>Bluesky" +msgstr "<0>Bluesky'e<1>Hoşgeldiniz" + +#: src/view/com/profile/ProfileHeader.tsx:597 +msgid "⚠Invalid Handle" +msgstr "⚠Geçersiz Kullanıcı Adı" + +#: src/view/com/util/moderation/LabelInfo.tsx:45 +msgid "A content warning has been applied to this {0}." +msgstr "Bu {0} için bir içerik uyarısı uygulandı." + +#: src/lib/hooks/useOTAUpdate.ts:16 +msgid "A new version of the app is available. Please update to continue using the app." +msgstr "Uygulamanın yeni bir sürümü mevcut. Devam etmek için güncelleyin." + +#: src/view/com/util/ViewHeader.tsx:83 src/view/screens/Search/Search.tsx:624 +msgid "Access navigation links and settings" +msgstr "Gezinme bağlantılarına ve ayarlara erişin" + +#: src/view/com/pager/FeedsTabBarMobile.tsx:89 +msgid "Access profile and other navigation links" +msgstr "Profil ve diğer gezinme bağlantılarına erişin" + +#: src/view/com/modals/EditImage.tsx:299 src/view/screens/Settings.tsx:445 +msgid "Accessibility" +msgstr "Erişilebilirlik" + +#: src/view/com/auth/login/LoginForm.tsx:163 src/view/screens/Settings.tsx:308 +#: src/view/screens/Settings.tsx:715 +msgid "Account" +msgstr "Hesap" + +#: src/view/com/profile/ProfileHeader.tsx:293 +msgid "Account blocked" +msgstr "Hesap engellendi" + +#: src/view/com/profile/ProfileHeader.tsx:260 +msgid "Account muted" +msgstr "Hesap susturuldu" + +#: src/view/com/modals/ModerationDetails.tsx:86 +msgid "Account Muted" +msgstr "Hesap Susturuldu" + +#: src/view/com/modals/ModerationDetails.tsx:72 +msgid "Account Muted by List" +msgstr "Liste Tarafından Hesap Susturuldu" + +#: src/view/com/util/AccountDropdownBtn.tsx:41 +msgid "Account options" +msgstr "Hesap seçenekleri" + +#: src/view/com/util/AccountDropdownBtn.tsx:25 +msgid "Account removed from quick access" +msgstr "Hesap hızlı erişimden kaldırıldı" + +#: src/view/com/profile/ProfileHeader.tsx:315 +msgid "Account unblocked" +msgstr "Hesap engeli kaldırıldı" + +#: src/view/com/profile/ProfileHeader.tsx:273 +msgid "Account unmuted" +msgstr "Hesap susturulması kaldırıldı" + +#: src/view/com/auth/onboarding/RecommendedFeedsItem.tsx:150 +#: src/view/com/modals/ListAddRemoveUsers.tsx:264 +#: src/view/com/modals/UserAddRemoveLists.tsx:219 +#: src/view/screens/ProfileList.tsx:812 +msgid "Add" +msgstr "Ekle" + +#: src/view/com/modals/SelfLabel.tsx:56 +msgid "Add a content warning" +msgstr "Bir içerik uyarısı ekleyin" + +#: src/view/screens/ProfileList.tsx:802 +msgid "Add a user to this list" +msgstr "Bu listeye bir kullanıcı ekleyin" + +#: src/view/screens/Settings.tsx:383 src/view/screens/Settings.tsx:392 +msgid "Add account" +msgstr "Hesap ekle" + +#: src/view/com/composer/photos/Gallery.tsx:119 +#: src/view/com/composer/photos/Gallery.tsx:180 +#: src/view/com/modals/AltImage.tsx:116 +msgid "Add alt text" +msgstr "Alternatif metin ekle" + +#: src/view/screens/AppPasswords.tsx:102 src/view/screens/AppPasswords.tsx:143 +#: src/view/screens/AppPasswords.tsx:156 +msgid "Add App Password" +msgstr "Uygulama Şifresi Ekle" + +#: src/view/com/modals/report/InputIssueDetails.tsx:41 +#: src/view/com/modals/report/Modal.tsx:191 +msgid "Add details" +msgstr "Detaylar ekle" + +#: src/view/com/modals/report/Modal.tsx:194 +msgid "Add details to report" +msgstr "Rapor için detaylar ekleyin" + +#: src/view/com/composer/Composer.tsx:446 +msgid "Add link card" +msgstr "Bağlantı kartı ekle" + +#: src/view/com/composer/Composer.tsx:451 +msgid "Add link card:" +msgstr "Bağlantı kartı ekle:" + +#: src/view/com/modals/ChangeHandle.tsx:417 +msgid "Add the following DNS record to your domain:" +msgstr "Alan adınıza aşağıdaki DNS kaydını ekleyin:" + +#: src/view/com/profile/ProfileHeader.tsx:357 +msgid "Add to Lists" +msgstr "Listelere Ekle" + +#: src/view/com/feeds/FeedSourceCard.tsx:243 +#: src/view/screens/ProfileFeed.tsx:272 +msgid "Add to my feeds" +msgstr "Beslemelerime ekle" + +#: src/view/com/auth/onboarding/RecommendedFeedsItem.tsx:139 +msgid "Added" +msgstr "Eklendi" + +#: src/view/com/modals/ListAddRemoveUsers.tsx:191 +#: src/view/com/modals/UserAddRemoveLists.tsx:144 +msgid "Added to list" +msgstr "Listeye eklendi" + +#: src/view/com/feeds/FeedSourceCard.tsx:125 +msgid "Added to my feeds" +msgstr "Beslemelerime eklendi" + +#: src/view/screens/PreferencesHomeFeed.tsx:173 +msgid "Adjust the number of likes a reply must have to be shown in your feed." +msgstr "Bir yanıtın beslemenizde gösterilmesi için sahip olması gereken beğeni sayısını ayarlayın." + +#: src/view/com/modals/SelfLabel.tsx:75 +msgid "Adult Content" +msgstr "Yetişkin İçerik" + +#: src/view/com/modals/ContentFilteringSettings.tsx:137 +msgid "Adult content can only be enabled via the Web at <0/>." +msgstr "Yetişkin içeriği yalnızca Web üzerinden <0/> etkinleştirilebilir." + +#: src/view/screens/Settings.tsx:658 +msgid "Advanced" +msgstr "Gelişmiş" + +#: src/view/com/auth/login/ForgotPasswordForm.tsx:217 +#: src/view/com/modals/ChangePassword.tsx:168 +msgid "Already have a code?" +msgstr "Zaten bir kodunuz mu var?" + +#: src/view/com/auth/login/ChooseAccountForm.tsx:98 +msgid "Already signed in as @{0}" +msgstr "Zaten @{0} olarak oturum açıldı" + +#: src/view/com/composer/photos/Gallery.tsx:130 +msgid "ALT" +msgstr "ALT" + +#: src/view/com/modals/EditImage.tsx:315 +msgid "Alt text" +msgstr "Alternatif metin" + +#: src/view/com/composer/photos/Gallery.tsx:209 +msgid "Alt text describes images for blind and low-vision users, and helps give context to everyone." +msgstr "Alternatif metin, görme engelli ve düşük görme yeteneğine sahip kullanıcılar için resimleri tanımlar ve herkes için bağlam sağlamaya yardımcı olur." + +#: src/view/com/modals/VerifyEmail.tsx:124 +msgid "An email has been sent to {0}. It includes a confirmation code which you can enter below." +msgstr "{0} adresine bir e-posta gönderildi. Aşağıda girebileceğiniz bir onay kodu içerir." + +#: src/view/com/modals/ChangeEmail.tsx:119 +msgid "An email has been sent to your previous address, {0}. It includes a confirmation code which you can enter below." +msgstr "Önceki adresinize, {0} bir e-posta gönderildi. Aşağıda girebileceğiniz bir onay kodu içerir." + +#: src/view/com/profile/FollowButton.tsx:30 +#: src/view/com/profile/FollowButton.tsx:40 +msgid "An issue occurred, please try again." +msgstr "Bir sorun oluştu, lütfen tekrar deneyin." + +#: src/view/com/notifications/FeedItem.tsx:236 +#: src/view/com/threadgate/WhoCanReply.tsx:178 +msgid "and" +msgstr "ve" + +#: src/screens/Onboarding/index.tsx:32 +msgid "Animals" +msgstr "Hayvanlar" + +#: src/view/screens/LanguageSettings.tsx:95 +msgid "App Language" +msgstr "Uygulama Dili" + +#: src/view/screens/AppPasswords.tsx:228 +msgid "App password deleted" +msgstr "Uygulama şifresi silindi" + +#: src/view/com/modals/AddAppPasswords.tsx:134 +msgid "App Password names can only contain letters, numbers, spaces, dashes, and underscores." +msgstr "Uygulama Şifre adları yalnızca harfler, sayılar, boşluklar, tireler ve alt çizgiler içerebilir." + +#: src/view/com/modals/AddAppPasswords.tsx:99 +msgid "App Password names must be at least 4 characters long." +msgstr "Uygulama Şifre adları en az 4 karakter uzunluğunda olmalıdır." + +#: src/view/screens/Settings.tsx:669 +msgid "App password settings" +msgstr "Uygulama şifresi ayarları" + +#: src/Navigation.tsx:238 src/view/screens/AppPasswords.tsx:187 +#: src/view/screens/Settings.tsx:678 +msgid "App Passwords" +msgstr "Uygulama Şifreleri" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:250 +msgid "Appeal content warning" +msgstr "İçerik uyarısını itiraz et" + +#: src/view/com/modals/AppealLabel.tsx:65 +msgid "Appeal Content Warning" +msgstr "İçerik Uyarısını İtiraz Et" + +#: src/view/com/util/moderation/LabelInfo.tsx:52 +msgid "Appeal this decision" +msgstr "Bu karara itiraz et" + +#: src/view/com/util/moderation/LabelInfo.tsx:56 +msgid "Appeal this decision." +msgstr "Bu karara itiraz et." + +#: src/view/screens/Settings.tsx:460 +msgid "Appearance" +msgstr "Görünüm" + +#: src/view/screens/AppPasswords.tsx:224 +msgid "Are you sure you want to delete the app password \"{name}\"?" +msgstr "\"{name}\" uygulama şifresini silmek istediğinizden emin misiniz?" + +#: src/view/com/composer/Composer.tsx:143 +msgid "Are you sure you'd like to discard this draft?" +msgstr "Bu taslağı silmek istediğinizden emin misiniz?" + +#: src/view/screens/ProfileList.tsx:364 +msgid "Are you sure?" +msgstr "Emin misiniz?" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:233 +msgid "Are you sure? This cannot be undone." +msgstr "Emin misiniz? Bu geri alınamaz." + +#: src/view/com/composer/select-language/SuggestedLanguage.tsx:60 +msgid "Are you writing in <0>{0}?" +msgstr "<0>{0} dilinde mi yazıyorsunuz?" + +#: src/screens/Onboarding/index.tsx:26 +msgid "Art" +msgstr "Sanat" + +#: src/view/com/modals/SelfLabel.tsx:123 +msgid "Artistic or non-erotic nudity." +msgstr "Sanatsal veya erotik olmayan çıplaklık." + +#: src/view/com/auth/create/CreateAccount.tsx:147 +#: src/view/com/auth/login/ChooseAccountForm.tsx:151 +#: src/view/com/auth/login/ForgotPasswordForm.tsx:170 +#: src/view/com/auth/login/LoginForm.tsx:256 +#: src/view/com/auth/login/SetNewPasswordForm.tsx:179 +#: src/view/com/modals/report/InputIssueDetails.tsx:46 +#: src/view/com/post-thread/PostThread.tsx:413 +#: src/view/com/post-thread/PostThread.tsx:463 +#: src/view/com/post-thread/PostThread.tsx:471 +#: src/view/com/profile/ProfileHeader.tsx:688 +#: src/view/com/util/ViewHeader.tsx:81 +msgid "Back" +msgstr "Geri" + +#: src/view/com/post-thread/PostThread.tsx:421 +msgctxt "action" +msgid "Back" +msgstr "Geri" + +#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:136 +msgid "Based on your interest in {interestsText}" +msgstr "{interestsText} ilginize dayalı" + +#: src/view/screens/Settings.tsx:517 +msgid "Basics" +msgstr "Temel" + +#: src/view/com/auth/create/Step1.tsx:194 +#: src/view/com/modals/BirthDateSettings.tsx:73 +msgid "Birthday" +msgstr "Doğum günü" + +#: src/view/screens/Settings.tsx:340 +msgid "Birthday:" +msgstr "Doğum günü:" + +#: src/view/com/profile/ProfileHeader.tsx:286 +#: src/view/com/profile/ProfileHeader.tsx:393 +msgid "Block Account" +msgstr "Hesabı Engelle" + +#: src/view/screens/ProfileList.tsx:555 +msgid "Block accounts" +msgstr "Hesapları engelle" + +#: src/view/screens/ProfileList.tsx:505 +msgid "Block list" +msgstr "Listeyi engelle" + +#: src/view/screens/ProfileList.tsx:315 +msgid "Block these accounts?" +msgstr "Bu hesapları engelle?" + +#: src/view/screens/ProfileList.tsx:319 +msgid "Block this List" +msgstr "Bu Listeyi Engelle" + +#: src/view/com/lists/ListCard.tsx:109 +#: src/view/com/util/post-embeds/QuoteEmbed.tsx:60 +msgid "Blocked" +msgstr "Engellendi" + +#: src/view/screens/Moderation.tsx:123 +msgid "Blocked accounts" +msgstr "Engellenen hesaplar" + +#: src/Navigation.tsx:130 src/view/screens/ModerationBlockedAccounts.tsx:107 +msgid "Blocked Accounts" +msgstr "Engellenen Hesaplar" + +#: src/view/com/profile/ProfileHeader.tsx:288 +msgid "Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you." +msgstr "Engellenen hesaplar, konularınıza yanıt veremez, sizi bahsedemez veya başka şekilde sizinle etkileşime giremez." + +#: src/view/screens/ModerationBlockedAccounts.tsx:115 +msgid "Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you. You will not see their content and they will be prevented from seeing yours." +msgstr "Engellenen hesaplar, konularınıza yanıt veremez, sizi bahsedemez veya başka şekilde sizinle etkileşime giremez. Onların içeriğini görmeyeceksiniz ve onlar da sizinkini görmekten alıkonulacaklar." + +#: src/view/com/post-thread/PostThread.tsx:272 +msgid "Blocked post." +msgstr "Engellenen gönderi." + +#: src/view/screens/ProfileList.tsx:317 +msgid "Blocking is public. Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you." +msgstr "Engelleme herkese açıktır. Engellenen hesaplar, konularınıza yanıt veremez, sizi bahsedemez veya başka şekilde sizinle etkileşime giremez." + +#: src/view/com/auth/HomeLoggedOutCTA.tsx:93 +msgid "Blog" +msgstr "Blog" + +#: src/view/com/auth/HomeLoggedOutCTA.tsx:31 +msgid "Bluesky" +msgstr "Bluesky" + +#: src/view/com/auth/onboarding/WelcomeDesktop.tsx:80 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:80 +msgid "Bluesky is flexible." +msgstr "Bluesky esnek." + +#: src/view/com/auth/onboarding/WelcomeDesktop.tsx:69 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:69 +msgid "Bluesky is open." +msgstr "Bluesky açık." + +#: src/view/com/auth/onboarding/WelcomeDesktop.tsx:56 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:56 +msgid "Bluesky is public." +msgstr "Bluesky kamusal." + +#: src/view/com/modals/Waitlist.tsx:70 +msgid "Bluesky uses invites to build a healthier community. If you don't know anybody with an invite, you can sign up for the waitlist and we'll send one soon." +msgstr "Bluesky, daha sağlıklı bir topluluk oluşturmak için davetleri kullanır. Bir daveti olan kimseyi tanımıyorsanız, bekleme listesine kaydolabilir ve yakında bir tane göndereceğiz." + +#: src/view/screens/Moderation.tsx:226 +msgid "Bluesky will not show your profile and posts to logged-out users. Other apps may not honor this request. This does not make your account private." +msgstr "Bluesky, profilinizi ve gönderilerinizi oturum açmamış kullanıcılara göstermeyecektir. Diğer uygulamalar bu isteği yerine getirmeyebilir. Bu, hesabınızı özel yapmaz." + +#: src/view/com/modals/ServerInput.tsx:78 +msgid "Bluesky.Social" +msgstr "Bluesky.Social" + +#: src/screens/Onboarding/index.tsx:33 +msgid "Books" +msgstr "Kitaplar" + +#: src/view/screens/Settings.tsx:841 +msgid "Build version {0} {1}" +msgstr "Sürüm {0} {1}" + +#: src/view/com/auth/HomeLoggedOutCTA.tsx:87 +msgid "Business" +msgstr "İş" + +#: src/view/com/modals/ServerInput.tsx:115 +msgid "Button disabled. Input custom domain to proceed." +msgstr "Button devre dışı. Devam etmek için özel alan adını girin." + +#: src/view/com/profile/ProfileSubpageHeader.tsx:157 +msgid "by —" +msgstr "tarafından —" + +#: src/view/com/auth/onboarding/RecommendedFeedsItem.tsx:100 +msgid "by {0}" +msgstr "tarafından {0}" + +#: src/view/com/profile/ProfileSubpageHeader.tsx:161 +msgid "by <0/>" +msgstr "tarafından <0/>" + +#: src/view/com/profile/ProfileSubpageHeader.tsx:159 +msgid "by you" +msgstr "siz tarafından" + +#: src/view/com/composer/photos/OpenCameraBtn.tsx:60 +#: src/view/com/util/UserAvatar.tsx:221 src/view/com/util/UserBanner.tsx:38 +msgid "Camera" +msgstr "Kamera" + +#: src/view/com/modals/AddAppPasswords.tsx:216 +msgid "Can only contain letters, numbers, spaces, dashes, and underscores. Must be at least 4 characters long, but no more than 32 characters long." +msgstr "Yalnızca harfler, sayılar, boşluklar, tireler ve alt çizgiler içerebilir. En az 4 karakter uzunluğunda, ancak 32 karakterden fazla olmamalıdır." + +#: src/components/Prompt.tsx:92 src/view/com/composer/Composer.tsx:300 +#: src/view/com/composer/Composer.tsx:305 +#: src/view/com/modals/ChangeEmail.tsx:218 +#: src/view/com/modals/ChangeEmail.tsx:220 +#: src/view/com/modals/ChangePassword.tsx:265 +#: src/view/com/modals/ChangePassword.tsx:268 +#: src/view/com/modals/CreateOrEditList.tsx:355 +#: src/view/com/modals/EditImage.tsx:323 +#: src/view/com/modals/EditProfile.tsx:249 +#: src/view/com/modals/InAppBrowserConsent.tsx:78 +#: src/view/com/modals/LinkWarning.tsx:87 src/view/com/modals/Repost.tsx:87 +#: src/view/com/modals/VerifyEmail.tsx:247 +#: src/view/com/modals/VerifyEmail.tsx:253 src/view/com/modals/Waitlist.tsx:142 +#: src/view/screens/Search/Search.tsx:693 src/view/shell/desktop/Search.tsx:238 +msgid "Cancel" +msgstr "İptal" + +#: src/view/com/modals/Confirm.tsx:88 src/view/com/modals/Confirm.tsx:91 +#: src/view/com/modals/CreateOrEditList.tsx:360 +#: src/view/com/modals/DeleteAccount.tsx:156 +#: src/view/com/modals/DeleteAccount.tsx:234 +msgctxt "action" +msgid "Cancel" +msgstr "İptal" + +#: src/view/com/modals/DeleteAccount.tsx:152 +#: src/view/com/modals/DeleteAccount.tsx:230 +msgid "Cancel account deletion" +msgstr "Hesap silmeyi iptal et" + +#: src/view/com/modals/ChangeHandle.tsx:149 +msgid "Cancel change handle" +msgstr "Kullanıcı adı değişikliğini iptal et" + +#: src/view/com/modals/crop-image/CropImage.web.tsx:134 +msgid "Cancel image crop" +msgstr "Resim kırpma işlemini iptal et" + +#: src/view/com/modals/EditProfile.tsx:244 +msgid "Cancel profile editing" +msgstr "Profil düzenlemeyi iptal et" + +#: src/view/com/modals/Repost.tsx:78 +msgid "Cancel quote post" +msgstr "Alıntı gönderiyi iptal et" + +#: src/view/com/modals/ListAddRemoveUsers.tsx:87 +#: src/view/shell/desktop/Search.tsx:234 +msgid "Cancel search" +msgstr "Aramayı iptal et" + +#: src/view/com/modals/Waitlist.tsx:136 +msgid "Cancel waitlist signup" +msgstr "Bekleme listesi kaydını iptal et" + +#: src/view/screens/Settings.tsx:334 +msgctxt "action" +msgid "Change" +msgstr "Değiştir" + +#: src/view/screens/Settings.tsx:690 +msgid "Change handle" +msgstr "Kullanıcı adını değiştir" + +#: src/view/com/modals/ChangeHandle.tsx:161 src/view/screens/Settings.tsx:699 +msgid "Change Handle" +msgstr "Kullanıcı Adını Değiştir" + +#: src/view/com/modals/VerifyEmail.tsx:147 +msgid "Change my email" +msgstr "E-postamı değiştir" + +#: src/view/screens/Settings.tsx:726 +msgid "Change password" +msgstr "Şifre değiştir" + +#: src/view/screens/Settings.tsx:735 +msgid "Change Password" +msgstr "Şifre Değiştir" + +#: src/view/com/composer/select-language/SuggestedLanguage.tsx:73 +msgid "Change post language to {0}" +msgstr "Gönderi dilini {0} olarak değiştir" + +#: src/view/screens/Settings.tsx:727 +msgid "Change your Bluesky password" +msgstr "Bluesky şifrenizi değiştirin" + +#: src/view/com/modals/ChangeEmail.tsx:109 +msgid "Change Your Email" +msgstr "E-postanızı Değiştirin" + +#: src/screens/Deactivated.tsx:73 src/screens/Deactivated.tsx:77 +msgid "Check my status" +msgstr "Durumumu kontrol et" + +#: src/view/com/auth/onboarding/RecommendedFeeds.tsx:121 +msgid "Check out some recommended feeds. Tap + to add them to your list of pinned feeds." +msgstr "Bazı önerilen beslemelere göz atın. Eklemek için + simgesine dokunun." + +#: src/view/com/auth/onboarding/RecommendedFollows.tsx:185 +msgid "Check out some recommended users. Follow them to see similar users." +msgstr "Bazı önerilen kullanıcılara göz atın. Benzer kullanıcıları görmek için onları takip edin." + +#: src/view/com/modals/DeleteAccount.tsx:169 +msgid "Check your inbox for an email with the confirmation code to enter below:" +msgstr "Aşağıya gireceğiniz onay kodu içeren bir e-posta için gelen kutunuzu kontrol edin:" + +#: src/view/com/modals/Threadgate.tsx:72 +msgid "Choose \"Everybody\" or \"Nobody\"" +msgstr "\"Herkes\" veya \"Hiç kimse\" seçin" + +#: src/view/screens/Settings.tsx:691 +msgid "Choose a new Bluesky username or create" +msgstr "Yeni bir Bluesky kullanıcı adı seçin veya oluşturun" + +#: src/view/com/modals/ServerInput.tsx:38 +msgid "Choose Service" +msgstr "Hizmet Seç" + +#: src/screens/Onboarding/StepFinished.tsx:135 +msgid "Choose the algorithms that power your custom feeds." +msgstr "Özel beslemelerinizi destekleyen algoritmaları seçin." + +#: src/view/com/auth/onboarding/WelcomeDesktop.tsx:83 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:83 +msgid "Choose the algorithms that power your experience with custom feeds." +msgstr "Özel beslemelerle deneyiminizi destekleyen algoritmaları seçin." + +#: src/screens/Onboarding/StepAlgoFeeds/index.tsx:103 +msgid "Choose your main feeds" +msgstr "Ana beslemelerinizi seçin" + +#: src/view/com/auth/create/Step1.tsx:163 +msgid "Choose your password" +msgstr "Şifrenizi seçin" + +#: src/view/screens/Settings.tsx:816 src/view/screens/Settings.tsx:817 +msgid "Clear all legacy storage data" +msgstr "Tüm eski depolama verilerini temizle" + +#: src/view/screens/Settings.tsx:819 +msgid "Clear all legacy storage data (restart after this)" +msgstr "Tüm eski depolama verilerini temizle (bundan sonra yeniden başlat)" + +#: src/view/screens/Settings.tsx:828 src/view/screens/Settings.tsx:829 +msgid "Clear all storage data" +msgstr "Tüm depolama verilerini temizle" + +#: src/view/screens/Settings.tsx:831 +msgid "Clear all storage data (restart after this)" +msgstr "Tüm depolama verilerini temizle (bundan sonra yeniden başlat)" + +#: src/view/com/util/forms/SearchInput.tsx:74 +#: src/view/screens/Search/Search.tsx:674 +msgid "Clear search query" +msgstr "Arama sorgusunu temizle" + +#: src/view/screens/Support.tsx:40 +msgid "click here" +msgstr "buraya tıklayın" + +#: src/screens/Onboarding/index.tsx:35 +msgid "Climate" +msgstr "İklim" + +#: src/view/com/modals/ChangePassword.tsx:265 +#: src/view/com/modals/ChangePassword.tsx:268 +msgid "Close" +msgstr "Kapat" + +#: src/components/Dialog/index.web.tsx:78 +msgid "Close active dialog" +msgstr "Etkin iletişim kutusunu kapat" + +#: src/view/com/auth/login/PasswordUpdatedForm.tsx:38 +msgid "Close alert" +msgstr "Uyarıyı kapat" + +#: src/view/com/util/BottomSheetCustomBackdrop.tsx:33 +msgid "Close bottom drawer" +msgstr "Alt çekmeceyi kapat" + +#: src/view/com/lightbox/ImageViewing/components/ImageDefaultHeader.tsx:26 +msgid "Close image" +msgstr "Resmi kapat" + +#: src/view/com/lightbox/Lightbox.web.tsx:119 +msgid "Close image viewer" +msgstr "Resim görüntüleyiciyi kapat" + +#: src/view/shell/index.web.tsx:49 +msgid "Close navigation footer" +msgstr "Gezinme altbilgisini kapat" + +#: src/view/shell/index.web.tsx:50 +msgid "Closes bottom navigation bar" +msgstr "Alt gezinme çubuğunu kapatır" + +#: src/view/com/auth/login/PasswordUpdatedForm.tsx:39 +msgid "Closes password update alert" +msgstr "Şifre güncelleme uyarısını kapatır" + +#: src/view/com/composer/Composer.tsx:302 +msgid "Closes post composer and discards post draft" +msgstr "Gönderi bestecisini kapatır ve gönderi taslağını siler" + +#: src/view/com/lightbox/ImageViewing/components/ImageDefaultHeader.tsx:27 +msgid "Closes viewer for header image" +msgstr "Başlık resmi görüntüleyicisini kapatır" + +#: src/view/com/notifications/FeedItem.tsx:317 +msgid "Collapses list of users for a given notification" +msgstr "Belirli bir bildirim için kullanıcı listesini daraltır" + +#: src/screens/Onboarding/index.tsx:41 +msgid "Comedy" +msgstr "Komedi" + +#: src/screens/Onboarding/index.tsx:27 +msgid "Comics" +msgstr "Çizgi romanlar" + +#: src/Navigation.tsx:228 src/view/screens/CommunityGuidelines.tsx:32 +msgid "Community Guidelines" +msgstr "Topluluk Kuralları" + +#: src/screens/Onboarding/StepFinished.tsx:148 +msgid "Complete onboarding and start using your account" +msgstr "Onboarding'i tamamlayın ve hesabınızı kullanmaya başlayın" + +#: src/view/com/composer/Composer.tsx:417 +msgid "Compose posts up to {MAX_GRAPHEME_LENGTH} characters in length" +msgstr "En fazla {MAX_GRAPHEME_LENGTH} karakter uzunluğunda gönderiler oluşturun" + +#: src/view/com/composer/Prompt.tsx:24 +msgid "Compose reply" +msgstr "Yanıt oluştur" + +#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:67 +msgid "Configure content filtering setting for category: {0}" +msgstr "Kategori için içerik filtreleme ayarlarını yapılandır: {0}" + +#: src/components/Prompt.tsx:114 src/view/com/modals/AppealLabel.tsx:98 +#: src/view/com/modals/SelfLabel.tsx:154 +#: src/view/com/modals/VerifyEmail.tsx:231 +#: src/view/com/modals/VerifyEmail.tsx:233 +#: src/view/screens/PreferencesHomeFeed.tsx:308 +#: src/view/screens/PreferencesThreads.tsx:159 +msgid "Confirm" +msgstr "Onayla" + +#: src/view/com/modals/Confirm.tsx:75 src/view/com/modals/Confirm.tsx:78 +msgctxt "action" +msgid "Confirm" +msgstr "Onayla" + +#: src/view/com/modals/ChangeEmail.tsx:193 +#: src/view/com/modals/ChangeEmail.tsx:195 +msgid "Confirm Change" +msgstr "Değişikliği Onayla" + +#: src/view/com/modals/lang-settings/ConfirmLanguagesButton.tsx:34 +msgid "Confirm content language settings" +msgstr "İçerik dil ayarlarını onayla" + +#: src/view/com/modals/DeleteAccount.tsx:220 +msgid "Confirm delete account" +msgstr "Hesabı silmeyi onayla" + +#: src/view/com/modals/ContentFilteringSettings.tsx:151 +msgid "Confirm your age to enable adult content." +msgstr "Yetişkin içeriği etkinleştirmek için yaşınızı onaylayın." + +#: src/view/com/modals/ChangeEmail.tsx:157 +#: src/view/com/modals/DeleteAccount.tsx:182 +#: src/view/com/modals/VerifyEmail.tsx:165 +msgid "Confirmation code" +msgstr "Onay kodu" + +#: src/view/com/modals/Waitlist.tsx:120 +msgid "Confirms signing up {email} to the waitlist" +msgstr "{email} adresinin bekleme listesine kaydını onaylar" + +#: src/view/com/auth/create/CreateAccount.tsx:182 +#: src/view/com/auth/login/LoginForm.tsx:275 +msgid "Connecting..." +msgstr "Bağlanıyor..." + +#: src/view/com/auth/create/CreateAccount.tsx:202 +msgid "Contact support" +msgstr "Destek ile iletişime geçin" + +#: src/view/screens/Moderation.tsx:81 +msgid "Content filtering" +msgstr "İçerik filtreleme" + +#: src/view/com/modals/ContentFilteringSettings.tsx:44 +msgid "Content Filtering" +msgstr "İçerik Filtreleme" + +#: src/view/com/modals/lang-settings/ContentLanguagesSettings.tsx:74 +#: src/view/screens/LanguageSettings.tsx:278 +msgid "Content Languages" +msgstr "İçerik Dilleri" + +#: src/view/com/modals/ModerationDetails.tsx:65 +msgid "Content Not Available" +msgstr "İçerik Mevcut Değil" + +#: src/view/com/modals/ModerationDetails.tsx:33 +#: src/view/com/util/moderation/ScreenHider.tsx:78 +msgid "Content Warning" +msgstr "İçerik Uyarısı" + +#: src/view/com/composer/labels/LabelsBtn.tsx:31 +msgid "Content warnings" +msgstr "İçerik uyarıları" + +#: src/screens/Onboarding/StepAlgoFeeds/index.tsx:155 +#: src/screens/Onboarding/StepFollowingFeed.tsx:153 +#: src/screens/Onboarding/StepInterests/index.tsx:248 +#: src/screens/Onboarding/StepModeration/index.tsx:118 +#: src/screens/Onboarding/StepTopicalFeeds.tsx:108 +#: src/view/com/auth/onboarding/RecommendedFeeds.tsx:148 +#: src/view/com/auth/onboarding/RecommendedFollows.tsx:209 +msgid "Continue" +msgstr "Devam et" + +#: src/screens/Onboarding/StepFollowingFeed.tsx:150 +#: src/screens/Onboarding/StepInterests/index.tsx:245 +#: src/screens/Onboarding/StepModeration/index.tsx:115 +#: src/screens/Onboarding/StepTopicalFeeds.tsx:105 +msgid "Continue to next step" +msgstr "Sonraki adıma devam et" + +#: src/screens/Onboarding/StepAlgoFeeds/index.tsx:152 +msgid "Continue to the next step" +msgstr "Sonraki adıma devam et" + +#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:187 +msgid "Continue to the next step without following any accounts" +msgstr "Herhangi bir hesabı takip etmeden sonraki adıma devam et" + +#: src/screens/Onboarding/index.tsx:44 +msgid "Cooking" +msgstr "Yemek pişirme" + +#: src/view/com/modals/AddAppPasswords.tsx:195 +#: src/view/com/modals/InviteCodes.tsx:182 +msgid "Copied" +msgstr "Kopyalandı" + +#: src/view/screens/Settings.tsx:243 +msgid "Copied build version to clipboard" +msgstr "Sürüm numarası panoya kopyalandı" + +#: src/view/com/modals/AddAppPasswords.tsx:76 +#: src/view/com/modals/InviteCodes.tsx:152 +#: src/view/com/util/forms/PostDropdownBtn.tsx:112 +msgid "Copied to clipboard" +msgstr "Panoya kopyalandı" + +#: src/view/com/modals/AddAppPasswords.tsx:189 +msgid "Copies app password" +msgstr "Uygulama şifresini kopyalar" + +#: src/view/com/modals/AddAppPasswords.tsx:188 +msgid "Copy" +msgstr "Kopyala" + +#: src/view/screens/ProfileList.tsx:417 +msgid "Copy link to list" +msgstr "Liste bağlantısını kopyala" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:153 +msgid "Copy link to post" +msgstr "Gönderi bağlantısını kopyala" + +#: src/view/com/profile/ProfileHeader.tsx:342 +msgid "Copy link to profile" +msgstr "Profili bağlantısını kopyala" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:139 +msgid "Copy post text" +msgstr "Gönderi metnini kopyala" + +#: src/Navigation.tsx:233 src/view/screens/CopyrightPolicy.tsx:29 +msgid "Copyright Policy" +msgstr "Telif Hakkı Politikası" + +#: src/view/screens/ProfileFeed.tsx:96 +msgid "Could not load feed" +msgstr "Besleme yüklenemedi" + +#: src/view/screens/ProfileList.tsx:888 +msgid "Could not load list" +msgstr "Liste yüklenemedi" + +#: src/view/com/auth/create/Step2.tsx:91 +msgid "Country" +msgstr "Ülke" + +#: src/view/com/auth/HomeLoggedOutCTA.tsx:62 +#: src/view/com/auth/SplashScreen.tsx:46 +#: src/view/com/auth/SplashScreen.web.tsx:77 +msgid "Create a new account" +msgstr "Yeni bir hesap oluştur" + +#: src/view/screens/Settings.tsx:384 +msgid "Create a new Bluesky account" +msgstr "Yeni bir Bluesky hesabı oluştur" + +#: src/view/com/auth/create/CreateAccount.tsx:122 +msgid "Create Account" +msgstr "Hesap Oluştur" + +#: src/view/com/modals/AddAppPasswords.tsx:226 +msgid "Create App Password" +msgstr "Uygulama Şifresi Oluştur" + +#: src/view/com/auth/HomeLoggedOutCTA.tsx:54 +#: src/view/com/auth/SplashScreen.tsx:43 +msgid "Create new account" +msgstr "Yeni hesap oluştur" + +#: src/view/screens/AppPasswords.tsx:249 +msgid "Created {0}" +msgstr "{0} oluşturuldu" + +#: src/view/screens/ProfileFeed.tsx:616 +msgid "Created by <0/>" +msgstr "<0/> tarafından oluşturuldu" + +#: src/view/screens/ProfileFeed.tsx:614 +msgid "Created by you" +msgstr "Siz tarafından oluşturuldu" + +#: src/view/com/composer/Composer.tsx:448 +msgid "Creates a card with a thumbnail. The card links to {url}" +msgstr "Küçük resimli bir kart oluşturur. Kart, {url} bağlantısına gider" + +#: src/screens/Onboarding/index.tsx:29 +msgid "Culture" +msgstr "Kültür" + +#: src/view/com/modals/ChangeHandle.tsx:389 +#: src/view/com/modals/ServerInput.tsx:102 +msgid "Custom domain" +msgstr "Özel alan adı" + +#: src/screens/Onboarding/StepAlgoFeeds/index.tsx:106 +msgid "Custom feeds built by the community bring you new experiences and help you find the content you love." +msgstr "Topluluk tarafından oluşturulan özel beslemeler size yeni deneyimler sunar ve sevdiğiniz içeriği bulmanıza yardımcı olur." + +#: src/view/screens/PreferencesExternalEmbeds.tsx:55 +msgid "Customize media from external sites." +msgstr "Harici sitelerden medyayı özelleştirin." + +#: src/view/screens/Settings.tsx:479 src/view/screens/Settings.tsx:505 +msgid "Dark" +msgstr "Karanlık" + +#: src/view/screens/Debug.tsx:63 +msgid "Dark mode" +msgstr "Karanlık mod" + +#: src/view/screens/Settings.tsx:492 +msgid "Dark Theme" +msgstr "Karanlık Tema" + +#: src/view/screens/Debug.tsx:83 +msgid "Debug panel" +msgstr "Hata ayıklama paneli" + +#: src/view/screens/Settings.tsx:743 +msgid "Delete account" +msgstr "Hesabı sil" + +#: src/view/com/modals/DeleteAccount.tsx:87 +msgid "Delete Account" +msgstr "Hesabı Sil" + +#: src/view/screens/AppPasswords.tsx:222 src/view/screens/AppPasswords.tsx:242 +msgid "Delete app password" +msgstr "Uygulama şifresini sil" + +#: src/view/screens/ProfileList.tsx:363 src/view/screens/ProfileList.tsx:444 +msgid "Delete List" +msgstr "Listeyi Sil" + +#: src/view/com/modals/DeleteAccount.tsx:223 +msgid "Delete my account" +msgstr "Hesabımı sil" + +#: src/view/screens/Settings.tsx:755 +msgid "Delete My Account…" +msgstr "Hesabımı Sil…" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:228 +msgid "Delete post" +msgstr "Gönderiyi sil" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:232 +msgid "Delete this post?" +msgstr "Bu gönderiyi sil?" + +#: src/view/com/util/post-embeds/QuoteEmbed.tsx:69 +msgid "Deleted" +msgstr "Silindi" + +#: src/view/com/post-thread/PostThread.tsx:264 +msgid "Deleted post." +msgstr "Silinen gönderi." + +#: src/view/com/modals/CreateOrEditList.tsx:300 +#: src/view/com/modals/CreateOrEditList.tsx:321 +#: src/view/com/modals/EditProfile.tsx:198 +#: src/view/com/modals/EditProfile.tsx:210 +msgid "Description" +msgstr "Açıklama" + +#: src/view/screens/Settings.tsx:760 +msgid "Developer Tools" +msgstr "Geliştirici Araçları" + +#: src/view/com/composer/Composer.tsx:211 +msgid "Did you want to say anything?" +msgstr "Bir şey söylemek istediniz mi?" + +#: src/view/screens/Settings.tsx:498 +msgid "Dim" +msgstr "Karart" + +#: src/view/com/composer/Composer.tsx:144 +msgid "Discard" +msgstr "Sil" + +#: src/view/com/composer/Composer.tsx:138 +msgid "Discard draft" +msgstr "Taslağı sil" + +#: src/view/screens/Moderation.tsx:207 +msgid "Discourage apps from showing my account to logged-out users" +msgstr "Uygulamaların hesabımı oturum açmamış kullanıcılara göstermesini engelle" + +#: src/view/com/posts/FollowingEmptyState.tsx:74 +#: src/view/com/posts/FollowingEndOfFeed.tsx:75 +msgid "Discover new custom feeds" +msgstr "Yeni özel beslemeler keşfet" + +#: src/view/screens/Feeds.tsx:441 +msgid "Discover new feeds" +msgstr "Yeni beslemeler keşfet" + +#: src/view/com/modals/EditProfile.tsx:192 +msgid "Display name" +msgstr "Görünen ad" + +#: src/view/com/modals/EditProfile.tsx:180 +msgid "Display Name" +msgstr "Görünen Ad" + +#: src/view/com/modals/ChangeHandle.tsx:487 +msgid "Domain verified!" +msgstr "Alan adı doğrulandı!" + +#: src/view/com/auth/create/Step1.tsx:114 +msgid "Don't have an invite code?" +msgstr "Davet kodunuz yok mu?" + +#: src/view/com/auth/onboarding/RecommendedFollows.tsx:86 +#: src/view/com/modals/EditImage.tsx:333 +#: src/view/com/modals/ListAddRemoveUsers.tsx:144 +#: src/view/com/modals/SelfLabel.tsx:157 src/view/com/modals/Threadgate.tsx:129 +#: src/view/com/modals/Threadgate.tsx:132 +#: src/view/com/modals/UserAddRemoveLists.tsx:95 +#: src/view/com/modals/UserAddRemoveLists.tsx:98 +#: src/view/screens/PreferencesThreads.tsx:162 +msgctxt "action" +msgid "Done" +msgstr "Tamam" + +#: src/view/com/modals/AddAppPasswords.tsx:226 +#: src/view/com/modals/AltImage.tsx:139 +#: src/view/com/modals/ContentFilteringSettings.tsx:88 +#: src/view/com/modals/ContentFilteringSettings.tsx:96 +#: src/view/com/modals/crop-image/CropImage.web.tsx:152 +#: src/view/com/modals/InviteCodes.tsx:80 +#: src/view/com/modals/InviteCodes.tsx:123 +#: src/view/com/modals/ListAddRemoveUsers.tsx:142 +#: src/view/screens/PreferencesHomeFeed.tsx:311 +msgid "Done" +msgstr "Tamam" + +#: src/view/com/modals/lang-settings/ConfirmLanguagesButton.tsx:42 +msgid "Done{extraText}" +msgstr "Tamam{extraText}" + +#: src/view/com/auth/login/ChooseAccountForm.tsx:45 +msgid "Double tap to sign in" +msgstr "Oturum açmak için çift dokunun" + +#: src/view/com/composer/text-input/TextInput.web.tsx:244 +msgid "Drop to add images" +msgstr "Resim eklemek için bırakın" + +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:111 +msgid "Due to Apple policies, adult content can only be enabled on the web after completing sign up." +msgstr "Apple politikaları gereği, yetişkin içeriği yalnızca kaydı tamamladıktan sonra web üzerinde etkinleştirilebilir." + +#: src/view/com/modals/EditProfile.tsx:185 +msgid "e.g. Alice Roberts" +msgstr "örn: Alice Roberts" + +#: src/view/com/modals/EditProfile.tsx:203 +msgid "e.g. Artist, dog-lover, and avid reader." +msgstr "örn: Sanatçı, köpek sever ve okumayı seven." + +#: src/view/com/modals/CreateOrEditList.tsx:283 +msgid "e.g. Great Posters" +msgstr "örn: Harika Göndericiler" + +#: src/view/com/modals/CreateOrEditList.tsx:284 +msgid "e.g. Spammers" +msgstr "örn: Spamcılar" + +#: src/view/com/modals/CreateOrEditList.tsx:312 +msgid "e.g. The posters who never miss." +msgstr "örn: Asla kaçırmayan göndericiler." + +#: src/view/com/modals/CreateOrEditList.tsx:313 +msgid "e.g. Users that repeatedly reply with ads." +msgstr "örn: Reklamlarla tekrar tekrar yanıt veren kullanıcılar." + +#: src/view/com/modals/InviteCodes.tsx:96 +msgid "Each code works once. You'll receive more invite codes periodically." +msgstr "Her kod bir kez çalışır. Düzenli aralıklarla daha fazla davet kodu alacaksınız." + +#: src/view/com/lists/ListMembers.tsx:149 +msgctxt "action" +msgid "Edit" +msgstr "Düzenle" + +#: src/view/com/composer/photos/Gallery.tsx:144 +#: src/view/com/modals/EditImage.tsx:207 +msgid "Edit image" +msgstr "Resmi düzenle" + +#: src/view/screens/ProfileList.tsx:432 +msgid "Edit list details" +msgstr "Liste ayrıntılarını düzenle" + +#: src/view/com/modals/CreateOrEditList.tsx:250 +msgid "Edit Moderation List" +msgstr "Düzenleme Listesini Düzenle" + +#: src/Navigation.tsx:243 src/view/screens/Feeds.tsx:403 +#: src/view/screens/SavedFeeds.tsx:84 +msgid "Edit My Feeds" +msgstr "Beslemelerimi Düzenle" + +#: src/view/com/modals/EditProfile.tsx:152 +msgid "Edit my profile" +msgstr "Profilimi düzenle" + +#: src/view/com/profile/ProfileHeader.tsx:457 +msgid "Edit profile" +msgstr "Profil düzenle" + +#: src/view/com/profile/ProfileHeader.tsx:462 +msgid "Edit Profile" +msgstr "Profil Düzenle" + +#: src/view/screens/Feeds.tsx:337 +msgid "Edit Saved Feeds" +msgstr "Kayıtlı Beslemeleri Düzenle" + +#: src/view/com/modals/CreateOrEditList.tsx:245 +msgid "Edit User List" +msgstr "Kullanıcı Listesini Düzenle" + +#: src/view/com/modals/EditProfile.tsx:193 +msgid "Edit your display name" +msgstr "Görünen adınızı düzenleyin" + +#: src/view/com/modals/EditProfile.tsx:211 +msgid "Edit your profile description" +msgstr "Profil açıklamanızı düzenleyin" + +#: src/screens/Onboarding/index.tsx:34 +msgid "Education" +msgstr "Eğitim" + +#: src/view/com/auth/create/Step1.tsx:143 +#: src/view/com/auth/create/Step2.tsx:194 +#: src/view/com/auth/create/Step2.tsx:269 +#: src/view/com/auth/login/ForgotPasswordForm.tsx:152 +#: src/view/com/modals/ChangeEmail.tsx:141 src/view/com/modals/Waitlist.tsx:88 +msgid "Email" +msgstr "E-posta" + +#: src/view/com/auth/create/Step1.tsx:134 +#: src/view/com/auth/login/ForgotPasswordForm.tsx:143 +msgid "Email address" +msgstr "E-posta adresi" + +#: src/view/com/modals/ChangeEmail.tsx:56 +#: src/view/com/modals/ChangeEmail.tsx:88 +msgid "Email updated" +msgstr "E-posta güncellendi" + +#: src/view/com/modals/ChangeEmail.tsx:111 +msgid "Email Updated" +msgstr "E-posta Güncellendi" + +#: src/view/com/modals/VerifyEmail.tsx:78 +msgid "Email verified" +msgstr "E-posta doğrulandı" + +#: src/view/screens/Settings.tsx:312 +msgid "Email:" +msgstr "E-posta:" + +#: src/view/com/modals/EmbedConsent.tsx:113 +msgid "Enable {0} only" +msgstr "Yalnızca {0} etkinleştir" + +#: src/view/com/modals/ContentFilteringSettings.tsx:162 +msgid "Enable Adult Content" +msgstr "Yetişkin İçeriği Etkinleştir" + +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:76 +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:77 +msgid "Enable adult content in your feeds" +msgstr "Beslemelerinizde yetişkin içeriği etkinleştirin" + +#: src/view/com/modals/EmbedConsent.tsx:97 +msgid "Enable External Media" +msgstr "Harici Medyayı Etkinleştir" + +#: src/view/screens/PreferencesExternalEmbeds.tsx:75 +msgid "Enable media players for" +msgstr "Medya oynatıcılarını etkinleştir" + +#: src/view/screens/PreferencesHomeFeed.tsx:147 +msgid "Enable this setting to only see replies between people you follow." +msgstr "Bu ayarı yalnızca takip ettiğiniz kişiler arasındaki yanıtları görmek için etkinleştirin." + +#: src/view/screens/Profile.tsx:437 +msgid "End of feed" +msgstr "Beslemenin sonu" + +#: src/view/com/modals/AddAppPasswords.tsx:166 +msgid "Enter a name for this App Password" +msgstr "Bu Uygulama Şifresi için bir ad girin" + +#: src/view/com/modals/VerifyEmail.tsx:105 +msgid "Enter Confirmation Code" +msgstr "Onay Kodunu Girin" + +#: src/view/com/modals/ChangePassword.tsx:151 +msgid "Enter the code you received to change your password." +msgstr "Şifrenizi değiştirmek için aldığınız kodu girin." + +#: src/view/com/modals/ChangeHandle.tsx:371 +msgid "Enter the domain you want to use" +msgstr "Kullanmak istediğiniz alan adını girin" + +#: src/view/com/auth/login/ForgotPasswordForm.tsx:103 +msgid "Enter the email you used to create your account. We'll send you a \"reset code\" so you can set a new password." +msgstr "Hesabınızı oluşturmak için kullandığınız e-postayı girin. Size yeni bir şifre belirlemeniz için bir \"sıfırlama kodu\" göndereceğiz." + +#: src/view/com/auth/create/Step1.tsx:195 +#: src/view/com/modals/BirthDateSettings.tsx:74 +msgid "Enter your birth date" +msgstr "Doğum tarihinizi girin" + +#: src/view/com/modals/Waitlist.tsx:78 +msgid "Enter your email" +msgstr "E-posta adresinizi girin" + +#: src/view/com/auth/create/Step1.tsx:139 +msgid "Enter your email address" +msgstr "E-posta adresinizi girin" + +#: src/view/com/modals/ChangeEmail.tsx:41 +msgid "Enter your new email above" +msgstr "Yeni e-postanızı yukarıya girin" + +#: src/view/com/modals/ChangeEmail.tsx:117 +msgid "Enter your new email address below." +msgstr "Yeni e-posta adresinizi aşağıya girin." + +#: src/view/com/auth/create/Step2.tsx:188 +msgid "Enter your phone number" +msgstr "Telefon numaranızı girin" + +#: src/view/com/auth/login/Login.tsx:99 +msgid "Enter your username and password" +msgstr "Kullanıcı adınızı ve şifrenizi girin" + +#: src/view/screens/Search/Search.tsx:109 +msgid "Error:" +msgstr "Hata:" + +#: src/view/com/modals/Threadgate.tsx:76 +msgid "Everybody" +msgstr "Herkes" + +#: src/view/com/modals/ChangeHandle.tsx:150 +msgid "Exits handle change process" +msgstr "Kullanıcı adı değişikliği sürecinden çıkar" + +#: src/view/com/lightbox/Lightbox.web.tsx:120 +msgid "Exits image view" +msgstr "Resim görünümünden çıkar" + +#: src/view/com/modals/ListAddRemoveUsers.tsx:88 +#: src/view/shell/desktop/Search.tsx:235 +msgid "Exits inputting search query" +msgstr "Arama sorgusu girişinden çıkar" + +#: src/view/com/modals/Waitlist.tsx:138 +msgid "Exits signing up for waitlist with {email}" +msgstr "{email} adresiyle bekleme listesine kaydolma işleminden çıkar" + +#: src/view/com/lightbox/Lightbox.web.tsx:163 +msgid "Expand alt text" +msgstr "Alternatif metni genişlet" + +#: src/view/com/composer/ComposerReplyTo.tsx:81 +#: src/view/com/composer/ComposerReplyTo.tsx:84 +msgid "Expand or collapse the full post you are replying to" +msgstr "Yanıt verdiğiniz tam gönderiyi genişletin veya daraltın" + +#: src/view/com/modals/EmbedConsent.tsx:64 +msgid "External Media" +msgstr "Harici Medya" + +#: src/view/com/modals/EmbedConsent.tsx:75 +#: src/view/screens/PreferencesExternalEmbeds.tsx:66 +msgid "External media may allow websites to collect information about you and your device. No information is sent or requested until you press the \"play\" button." +msgstr "Harici medya, web sitelerinin siz ve cihazınız hakkında bilgi toplamasına izin verebilir. Bilgi, \"oynat\" düğmesine basana kadar gönderilmez veya istenmez." + +#: src/Navigation.tsx:259 src/view/screens/PreferencesExternalEmbeds.tsx:52 +#: src/view/screens/Settings.tsx:651 +msgid "External Media Preferences" +msgstr "Harici Medya Tercihleri" + +#: src/view/screens/Settings.tsx:642 +msgid "External media settings" +msgstr "Harici medya ayarları" + +#: src/view/com/modals/AddAppPasswords.tsx:115 +#: src/view/com/modals/AddAppPasswords.tsx:119 +msgid "Failed to create app password." +msgstr "Uygulama şifresi oluşturulamadı." + +#: src/view/com/modals/CreateOrEditList.tsx:206 +msgid "Failed to create the list. Check your internet connection and try again." +msgstr "Liste oluşturulamadı. İnternet bağlantınızı kontrol edin ve tekrar deneyin." + +#: src/view/com/util/forms/PostDropdownBtn.tsx:88 +msgid "Failed to delete post, please try again" +msgstr "Gönderi silinemedi, lütfen tekrar deneyin" + +#: src/view/com/auth/onboarding/RecommendedFeeds.tsx:109 +#: src/view/com/auth/onboarding/RecommendedFeeds.tsx:141 +msgid "Failed to load recommended feeds" +msgstr "Önerilen beslemeler yüklenemedi" + +#: src/Navigation.tsx:193 +msgid "Feed" +msgstr "Besleme" + +#: src/view/com/feeds/FeedSourceCard.tsx:229 +msgid "Feed by {0}" +msgstr "{0} tarafından besleme" + +#: src/view/screens/Feeds.tsx:597 +msgid "Feed offline" +msgstr "Besleme çevrimdışı" + +#: src/view/com/feeds/FeedPage.tsx:143 +msgid "Feed Preferences" +msgstr "Besleme Tercihleri" + +#: src/view/shell/desktop/RightNav.tsx:73 src/view/shell/Drawer.tsx:314 +msgid "Feedback" +msgstr "Geribildirim" + +#: src/Navigation.tsx:443 src/view/screens/Feeds.tsx:514 +#: src/view/screens/Profile.tsx:175 src/view/shell/bottom-bar/BottomBar.tsx:181 +#: src/view/shell/desktop/LeftNav.tsx:342 src/view/shell/Drawer.tsx:479 +#: src/view/shell/Drawer.tsx:480 +msgid "Feeds" +msgstr "Beslemeler" + +#: src/view/com/auth/onboarding/RecommendedFeeds.tsx:57 +msgid "Feeds are created by users to curate content. Choose some feeds that you find interesting." +msgstr "Beslemeler, içerikleri düzenlemek için kullanıcılar tarafından oluşturulur. İlginizi çeken bazı beslemeler seçin." + +#: src/view/screens/SavedFeeds.tsx:156 +msgid "Feeds are custom algorithms that users build with a little coding expertise. <0/> for more information." +msgstr "Beslemeler, kullanıcıların biraz kodlama uzmanlığı ile oluşturduğu özel algoritmalardır. Daha fazla bilgi için <0/>." + +#: src/screens/Onboarding/StepTopicalFeeds.tsx:70 +msgid "Feeds can be topical as well!" +msgstr "Beslemeler aynı zamanda konusal olabilir!" + +#: src/screens/Onboarding/StepFinished.tsx:151 +msgid "Finalizing" +msgstr "Tamamlanıyor" + +#: src/view/com/posts/CustomFeedEmptyState.tsx:47 +#: src/view/com/posts/FollowingEmptyState.tsx:57 +#: src/view/com/posts/FollowingEndOfFeed.tsx:58 +msgid "Find accounts to follow" +msgstr "Takip edilecek hesaplar bul" + +#: src/view/screens/Search/Search.tsx:439 +msgid "Find users on Bluesky" +msgstr "Bluesky'da kullanıcı bul" + +#: src/view/screens/Search/Search.tsx:437 +msgid "Find users with the search tool on the right" +msgstr "Sağdaki arama aracıyla kullanıcı bul" + +#: src/view/com/auth/onboarding/RecommendedFollowsItem.tsx:150 +msgid "Finding similar accounts..." +msgstr "Benzer hesaplar bulunuyor..." + +#: src/view/screens/PreferencesHomeFeed.tsx:111 +msgid "Fine-tune the content you see on your home screen." +msgstr "Ana ekranınızda gördüğünüz içeriği ayarlayın." + +#: src/view/screens/PreferencesThreads.tsx:60 +msgid "Fine-tune the discussion threads." +msgstr "Tartışma konularını ayarlayın." + +#: src/screens/Onboarding/index.tsx:38 +msgid "Fitness" +msgstr "Fitness" + +#: src/screens/Onboarding/StepFinished.tsx:131 +msgid "Flexible" +msgstr "Esnek" + +#: src/view/com/modals/EditImage.tsx:115 +msgid "Flip horizontal" +msgstr "Yatay çevir" + +#: src/view/com/modals/EditImage.tsx:120 src/view/com/modals/EditImage.tsx:287 +msgid "Flip vertically" +msgstr "Dikey çevir" + +#: src/view/com/profile/FollowButton.tsx:64 +msgctxt "action" +msgid "Follow" +msgstr "Takip et" + +#: src/view/com/profile/ProfileHeader.tsx:552 +msgid "Follow" +msgstr "Takip et" + +#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:58 +#: src/view/com/profile/ProfileHeader.tsx:543 +msgid "Follow {0}" +msgstr "{0} takip et" + +#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:178 +msgid "Follow All" +msgstr "Hepsini Takip Et" + +#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:174 +msgid "Follow selected accounts and continue to the next step" +msgstr "Seçili hesapları takip edin ve sonraki adıma devam edin" + +#: src/view/com/auth/onboarding/RecommendedFollows.tsx:64 +msgid "Follow some users to get started. We can recommend you more users based on who you find interesting." +msgstr "Başlamak için bazı kullanıcıları takip edin. Sizi ilginç bulduğunuz kişilere dayanarak size daha fazla kullanıcı önerebiliriz." + +#: src/view/com/profile/ProfileCard.tsx:194 +msgid "Followed by {0}" +msgstr "{0} tarafından takip ediliyor" + +#: src/view/com/modals/Threadgate.tsx:98 +msgid "Followed users" +msgstr "Takip edilen kullanıcılar" + +#: src/view/screens/PreferencesHomeFeed.tsx:154 +msgid "Followed users only" +msgstr "Yalnızca takip edilen kullanıcılar" + +#: src/view/com/notifications/FeedItem.tsx:166 +msgid "followed you" +msgstr "sizi takip etti" + +#: src/view/screens/ProfileFollowers.tsx:25 +msgid "Followers" +msgstr "Takipçiler" + +#: src/view/com/profile/ProfileHeader.tsx:534 +#: src/view/screens/ProfileFollows.tsx:25 +msgid "Following" +msgstr "Takip edilenler" + +#: src/view/com/profile/ProfileHeader.tsx:196 +msgid "Following {0}" +msgstr "{0} takip ediliyor" + +#: src/view/com/profile/ProfileHeader.tsx:585 +msgid "Follows you" +msgstr "Sizi takip ediyor" + +#: src/view/com/profile/ProfileCard.tsx:141 +msgid "Follows You" +msgstr "Sizi Takip Ediyor" + +#: src/screens/Onboarding/index.tsx:43 +msgid "Food" +msgstr "Yiyecek" + +#: src/view/com/modals/DeleteAccount.tsx:111 +msgid "For security reasons, we'll need to send a confirmation code to your email address." +msgstr "Güvenlik nedeniyle, e-posta adresinize bir onay kodu göndermemiz gerekecek." + +#: src/view/com/modals/AddAppPasswords.tsx:209 +msgid "For security reasons, you won't be able to view this again. If you lose this password, you'll need to generate a new one." +msgstr "Güvenlik nedeniyle, bunu tekrar göremezsiniz. Bu şifreyi kaybederseniz, yeni bir tane oluşturmanız gerekecek." + +#: src/view/com/auth/login/LoginForm.tsx:238 +msgid "Forgot" +msgstr "Unuttum" + +#: src/view/com/auth/login/LoginForm.tsx:235 +msgid "Forgot password" +msgstr "Şifremi unuttum" + +#: src/view/com/auth/login/Login.tsx:127 src/view/com/auth/login/Login.tsx:143 +msgid "Forgot Password" +msgstr "Şifremi Unuttum" + +#: src/view/com/posts/FeedItem.tsx:189 +msgctxt "from-feed" +msgid "From <0/>" +msgstr "<0/> tarafından" + +#: src/view/com/composer/photos/SelectPhotoBtn.tsx:43 +msgid "Gallery" +msgstr "Galeri" + +#: src/view/com/modals/VerifyEmail.tsx:189 +#: src/view/com/modals/VerifyEmail.tsx:191 +msgid "Get Started" +msgstr "Başlayın" + +#: src/view/com/auth/LoggedOut.tsx:81 src/view/com/auth/LoggedOut.tsx:82 +#: src/view/com/util/moderation/ScreenHider.tsx:123 +#: src/view/shell/desktop/LeftNav.tsx:104 +msgid "Go back" +msgstr "Geri git" + +#: src/view/screens/ProfileFeed.tsx:105 src/view/screens/ProfileFeed.tsx:110 +#: src/view/screens/ProfileList.tsx:897 src/view/screens/ProfileList.tsx:902 +msgid "Go Back" +msgstr "Geri Git" + +#: src/screens/Onboarding/Layout.tsx:104 src/screens/Onboarding/Layout.tsx:193 +msgid "Go back to previous step" +msgstr "Önceki adıma geri dön" + +#: src/view/screens/Search/Search.tsx:724 src/view/shell/desktop/Search.tsx:262 +msgid "Go to @{queryMaybeHandle}" +msgstr "@{queryMaybeHandle} adresine git" + +#: src/view/com/auth/login/ForgotPasswordForm.tsx:185 +#: src/view/com/auth/login/ForgotPasswordForm.tsx:214 +#: src/view/com/auth/login/LoginForm.tsx:285 +#: src/view/com/auth/login/SetNewPasswordForm.tsx:195 +#: src/view/com/modals/ChangePassword.tsx:165 +msgid "Go to next" +msgstr "Sonrakine git" + +#: src/view/com/modals/ChangeHandle.tsx:265 +msgid "Handle" +msgstr "Kullanıcı adı" + +#: src/view/com/auth/create/CreateAccount.tsx:197 +msgid "Having trouble?" +msgstr "Sorun mu yaşıyorsunuz?" + +#: src/view/shell/desktop/RightNav.tsx:102 src/view/shell/Drawer.tsx:324 +msgid "Help" +msgstr "Yardım" + +#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:132 +msgid "Here are some accounts for you to follow" +msgstr "Takip etmeniz için size bazı hesaplar" + +#: src/screens/Onboarding/StepTopicalFeeds.tsx:79 +msgid "Here are some popular topical feeds. You can choose to follow as many as you like." +msgstr "İşte bazı popüler konusal beslemeler. İstediğiniz kadar takip etmeyi seçebilirsiniz." + +#: src/screens/Onboarding/StepTopicalFeeds.tsx:74 +msgid "Here are some topical feeds based on your interests: {interestsText}. You can choose to follow as many as you like." +msgstr "İlgi alanlarınıza dayalı olarak bazı konusal beslemeler: {interestsText}. İstediğiniz kadar takip etmeyi seçebilirsiniz." + +#: src/view/com/modals/AddAppPasswords.tsx:153 +msgid "Here is your app password." +msgstr "İşte uygulama şifreniz." + +#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:41 +#: src/view/com/modals/ContentFilteringSettings.tsx:246 +#: src/view/com/util/moderation/ContentHider.tsx:105 +#: src/view/com/util/moderation/PostHider.tsx:108 +msgid "Hide" +msgstr "Gizle" + +#: src/view/com/modals/ContentFilteringSettings.tsx:219 +#: src/view/com/notifications/FeedItem.tsx:325 +msgctxt "action" +msgid "Hide" +msgstr "Gizle" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:187 +msgid "Hide post" +msgstr "Gönderiyi gizle" + +#: src/view/com/util/moderation/ContentHider.tsx:67 +#: src/view/com/util/moderation/PostHider.tsx:61 +msgid "Hide the content" +msgstr "İçeriği gizle" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:191 +msgid "Hide this post?" +msgstr "Bu gönderiyi gizle?" + +#: src/view/com/notifications/FeedItem.tsx:315 +msgid "Hide user list" +msgstr "Kullanıcı listesini gizle" + +#: src/view/com/profile/ProfileHeader.tsx:526 +msgid "Hides posts from {0} in your feed" +msgstr "Beslemenizdeki {0} gönderilerini gizler" + +#: src/view/com/posts/FeedErrorMessage.tsx:111 +msgid "Hmm, some kind of issue occurred when contacting the feed server. Please let the feed owner know about this issue." +msgstr "Hmm, besleme sunucusuna ulaşırken bir tür sorun oluştu. Lütfen bu konuda besleme sahibini bilgilendirin." + +#: src/view/com/posts/FeedErrorMessage.tsx:99 +msgid "Hmm, the feed server appears to be misconfigured. Please let the feed owner know about this issue." +msgstr "Hmm, besleme sunucusunun yanlış yapılandırılmış görünüyor. Lütfen bu konuda besleme sahibini bilgilendirin." + +#: src/view/com/posts/FeedErrorMessage.tsx:105 +msgid "Hmm, the feed server appears to be offline. Please let the feed owner know about this issue." +msgstr "Hmm, besleme sunucusunun çevrimdışı görünüyor. Lütfen bu konuda besleme sahibini bilgilendirin." + +#: src/view/com/posts/FeedErrorMessage.tsx:102 +msgid "Hmm, the feed server gave a bad response. Please let the feed owner know about this issue." +msgstr "Hmm, besleme sunucusu kötü bir yanıt verdi. Lütfen bu konuda besleme sahibini bilgilendirin." + +#: src/view/com/posts/FeedErrorMessage.tsx:96 +msgid "Hmm, we're having trouble finding this feed. It may have been deleted." +msgstr "Hmm, bu beslemeyi bulmakta sorun yaşıyoruz. Silinmiş olabilir." + +#: src/Navigation.tsx:433 src/view/shell/bottom-bar/BottomBar.tsx:137 +#: src/view/shell/desktop/LeftNav.tsx:306 src/view/shell/Drawer.tsx:401 +#: src/view/shell/Drawer.tsx:402 +msgid "Home" +msgstr "Ana Sayfa" + +#: src/Navigation.tsx:248 src/view/com/pager/FeedsTabBarMobile.tsx:123 +#: src/view/screens/PreferencesHomeFeed.tsx:104 +#: src/view/screens/Settings.tsx:537 +msgid "Home Feed Preferences" +msgstr "Ana Sayfa Besleme Tercihleri" + +#: src/view/com/auth/login/ForgotPasswordForm.tsx:116 +msgid "Hosting provider" +msgstr "Barındırma sağlayıcısı" + +#: src/view/com/modals/InAppBrowserConsent.tsx:44 +msgid "How should we open this link?" +msgstr "Bu bağlantıyı nasıl açmalıyız?" + +#: src/view/com/modals/VerifyEmail.tsx:214 +msgid "I have a code" +msgstr "Bir kodum var" + +#: src/view/com/modals/VerifyEmail.tsx:216 +msgid "I have a confirmation code" +msgstr "Bir onay kodum var" + +#: src/view/com/modals/ChangeHandle.tsx:283 +msgid "I have my own domain" +msgstr "Kendi alan adım var" + +#: src/view/com/lightbox/Lightbox.web.tsx:165 +msgid "If alt text is long, toggles alt text expanded state" +msgstr "Alternatif metin uzunsa, alternatif metin genişletme durumunu değiştirir" + +#: src/view/com/modals/SelfLabel.tsx:127 +msgid "If none are selected, suitable for all ages." +msgstr "Hiçbiri seçilmezse, tüm yaşlar için uygun." + +#: src/view/com/modals/ChangePassword.tsx:146 +msgid "If you want to change your password, we will send you a code to verify that this is your account." +msgstr "Şifrenizi değiştirmek istiyorsanız, size hesabınızın sizin olduğunu doğrulamak için bir kod göndereceğiz." + +#: src/view/com/util/images/Gallery.tsx:38 +msgid "Image" +msgstr "Resim" + +#: src/view/com/modals/AltImage.tsx:120 +msgid "Image alt text" +msgstr "Resim alternatif metni" + +#: src/view/com/util/UserAvatar.tsx:308 src/view/com/util/UserBanner.tsx:116 +msgid "Image options" +msgstr "Resim seçenekleri" + +#: src/view/com/auth/login/SetNewPasswordForm.tsx:138 +msgid "Input code sent to your email for password reset" +msgstr "Şifre sıfırlama için e-postanıza gönderilen kodu girin" + +#: src/view/com/modals/DeleteAccount.tsx:184 +msgid "Input confirmation code for account deletion" +msgstr "Hesap silme için onay kodunu girin" + +#: src/view/com/auth/create/Step1.tsx:144 +msgid "Input email for Bluesky account" +msgstr "Bluesky hesabı için e-posta girin" + +#: src/view/com/auth/create/Step1.tsx:102 +msgid "Input invite code to proceed" +msgstr "Devam etmek için davet kodunu girin" + +#: src/view/com/modals/AddAppPasswords.tsx:180 +msgid "Input name for app password" +msgstr "Uygulama şifresi için ad girin" + +#: src/view/com/auth/login/SetNewPasswordForm.tsx:162 +msgid "Input new password" +msgstr "Yeni şifre girin" + +#: src/view/com/modals/DeleteAccount.tsx:203 +msgid "Input password for account deletion" +msgstr "Hesap silme için şifre girin" + +#: src/view/com/auth/create/Step2.tsx:196 +msgid "Input phone number for SMS verification" +msgstr "SMS doğrulaması için telefon numarası girin" + +#: src/view/com/auth/login/LoginForm.tsx:227 +msgid "Input the password tied to {identifier}" +msgstr "{identifier} ile ilişkili şifreyi girin" + +#: src/view/com/auth/login/LoginForm.tsx:194 +msgid "Input the username or email address you used at signup" +msgstr "Kaydolurken kullandığınız kullanıcı adını veya e-posta adresini girin" + +#: src/view/com/auth/create/Step2.tsx:271 +msgid "Input the verification code we have texted to you" +msgstr "Size mesaj attığımız doğrulama kodunu girin" + +#: src/view/com/modals/Waitlist.tsx:90 +msgid "Input your email to get on the Bluesky waitlist" +msgstr "Bluesky bekleme listesine girmek için e-postanızı girin" + +#: src/view/com/auth/login/LoginForm.tsx:226 +msgid "Input your password" +msgstr "Şifrenizi girin" + +#: src/view/com/auth/create/Step3.tsx:42 +msgid "Input your user handle" +msgstr "Kullanıcı adınızı girin" + +#: src/view/com/post-thread/PostThreadItem.tsx:231 +msgid "Invalid or unsupported post record" +msgstr "Geçersiz veya desteklenmeyen gönderi kaydı" + +#: src/view/com/auth/login/LoginForm.tsx:115 +msgid "Invalid username or password" +msgstr "Geçersiz kullanıcı adı veya şifre" + +#: src/view/screens/Settings.tsx:411 +msgid "Invite" +msgstr "Davet et" + +#: src/view/com/modals/InviteCodes.tsx:93 src/view/screens/Settings.tsx:399 +msgid "Invite a Friend" +msgstr "Arkadaşını Davet Et" + +#: src/view/com/auth/create/Step1.tsx:92 src/view/com/auth/create/Step1.tsx:101 +msgid "Invite code" +msgstr "Davet kodu" + +#: src/view/com/auth/create/state.ts:199 +msgid "Invite code not accepted. Check that you input it correctly and try again." +msgstr "Davet kodu kabul edilmedi. Doğru girdiğinizden emin olun ve tekrar deneyin." + +#: src/view/com/modals/InviteCodes.tsx:170 +msgid "Invite codes: {0} available" +msgstr "Davet kodları: {0} kullanılabilir" + +#: src/view/shell/Drawer.tsx:645 +msgid "Invite codes: {invitesAvailable} available" +msgstr "Davet kodları: {invitesAvailable} kullanılabilir" + +#: src/view/com/modals/InviteCodes.tsx:169 +msgid "Invite codes: 1 available" +msgstr "Davet kodları: 1 kullanılabilir" + +#: src/screens/Onboarding/StepFollowingFeed.tsx:64 +msgid "It shows posts from the people you follow as they happen." +msgstr "Takip ettiğiniz kişilerin gönderilerini olduğu gibi gösterir." + +#: src/view/com/auth/HomeLoggedOutCTA.tsx:99 +msgid "Jobs" +msgstr "İşler" + +#: src/view/com/modals/Waitlist.tsx:67 +msgid "Join the waitlist" +msgstr "Bekleme listesine katıl" + +#: src/view/com/auth/create/Step1.tsx:118 +#: src/view/com/auth/create/Step1.tsx:122 +msgid "Join the waitlist." +msgstr "Bekleme listesine katıl." + +#: src/view/com/modals/Waitlist.tsx:128 +msgid "Join Waitlist" +msgstr "Bekleme Listesine Katıl" + +#: src/screens/Onboarding/index.tsx:24 +msgid "Journalism" +msgstr "Gazetecilik" + +#: src/view/com/composer/select-language/SelectLangBtn.tsx:104 +msgid "Language selection" +msgstr "Dil seçimi" + +#: src/view/screens/Settings.tsx:588 +msgid "Language settings" +msgstr "Dil ayarları" + +#: src/Navigation.tsx:140 src/view/screens/LanguageSettings.tsx:89 +msgid "Language Settings" +msgstr "Dil Ayarları" + +#: src/view/screens/Settings.tsx:597 +msgid "Languages" +msgstr "Diller" + +#: src/view/com/auth/create/StepHeader.tsx:20 +msgid "Last step!" +msgstr "Son adım!" + +#: src/view/com/util/moderation/ContentHider.tsx:103 +msgid "Learn more" +msgstr "Daha fazla bilgi edinin" + +#: src/view/com/util/moderation/PostAlerts.tsx:47 +#: src/view/com/util/moderation/ProfileHeaderAlerts.tsx:65 +#: src/view/com/util/moderation/ScreenHider.tsx:104 +msgid "Learn More" +msgstr "Daha Fazla Bilgi Edinin" + +#: src/view/com/util/moderation/ContentHider.tsx:85 +#: src/view/com/util/moderation/PostAlerts.tsx:40 +#: src/view/com/util/moderation/PostHider.tsx:78 +#: src/view/com/util/moderation/ProfileHeaderAlerts.tsx:49 +#: src/view/com/util/moderation/ScreenHider.tsx:101 +msgid "Learn more about this warning" +msgstr "Bu uyarı hakkında daha fazla bilgi edinin" + +#: src/view/screens/Moderation.tsx:243 +msgid "Learn more about what is public on Bluesky." +msgstr "Bluesky'da neyin herkese açık olduğu hakkında daha fazla bilgi edinin." + +#: src/view/com/modals/lang-settings/ContentLanguagesSettings.tsx:82 +msgid "Leave them all unchecked to see any language." +msgstr "Hepsini işaretlemeyin, herhangi bir dil görmek için." + +#: src/view/com/modals/LinkWarning.tsx:51 +msgid "Leaving Bluesky" +msgstr "Bluesky'dan ayrılıyor" + +#: src/screens/Deactivated.tsx:129 +msgid "left to go." +msgstr "kaldı." + +#: src/view/screens/Settings.tsx:280 +msgid "Legacy storage cleared, you need to restart the app now." +msgstr "Eski depolama temizlendi, şimdi uygulamayı yeniden başlatmanız gerekiyor." + +#: src/view/com/auth/login/Login.tsx:128 src/view/com/auth/login/Login.tsx:144 +msgid "Let's get your password reset!" +msgstr "Şifrenizi sıfırlamaya başlayalım!" + +#: src/screens/Onboarding/StepFinished.tsx:151 +msgid "Let's go!" +msgstr "Hadi gidelim!" + +#: src/view/com/util/UserAvatar.tsx:245 src/view/com/util/UserBanner.tsx:60 +msgid "Library" +msgstr "Kütüphane" + +#: src/view/screens/Settings.tsx:473 +msgid "Light" +msgstr "Açık" + +#: src/view/com/util/post-ctrls/PostCtrls.tsx:170 +msgid "Like" +msgstr "Beğen" + +#: src/view/screens/ProfileFeed.tsx:591 +msgid "Like this feed" +msgstr "Bu beslemeyi beğen" + +#: src/Navigation.tsx:198 +msgid "Liked by" +msgstr "Beğenenler" + +#: src/view/screens/PostLikedBy.tsx:27 +#: src/view/screens/ProfileFeedLikedBy.tsx:27 +msgid "Liked By" +msgstr "Beğenenler" + +#: src/view/com/feeds/FeedSourceCard.tsx:277 +msgid "Liked by {0} {1}" +msgstr "{0} {1} tarafından beğenildi" + +#: src/view/screens/ProfileFeed.tsx:606 +msgid "Liked by {likeCount} {0}" +msgstr "{likeCount} {0} tarafından beğenildi" + +#: src/view/com/notifications/FeedItem.tsx:170 +msgid "liked your custom feed" +msgstr "özel beslemenizi beğendi" + +#: src/view/com/notifications/FeedItem.tsx:155 +msgid "liked your post" +msgstr "gönderinizi beğendi" + +#: src/view/screens/Profile.tsx:174 +msgid "Likes" +msgstr "Beğeniler" + +#: src/view/com/post-thread/PostThreadItem.tsx:185 +msgid "Likes on this post" +msgstr "Bu gönderideki beğeniler" + +#: src/Navigation.tsx:167 +msgid "List" +msgstr "Liste" + +#: src/view/com/modals/CreateOrEditList.tsx:261 +msgid "List Avatar" +msgstr "Liste Avatarı" + +#: src/view/screens/ProfileList.tsx:323 +msgid "List blocked" +msgstr "Liste engellendi" + +#: src/view/com/feeds/FeedSourceCard.tsx:231 +msgid "List by {0}" +msgstr "{0} tarafından liste" + +#: src/view/screens/ProfileList.tsx:377 +msgid "List deleted" +msgstr "Liste silindi" + +#: src/view/screens/ProfileList.tsx:282 +msgid "List muted" +msgstr "Liste sessize alındı" + +#: src/view/com/modals/CreateOrEditList.tsx:275 +msgid "List Name" +msgstr "Liste Adı" + +#: src/view/screens/ProfileList.tsx:342 +msgid "List unblocked" +msgstr "Liste engeli kaldırıldı" + +#: src/view/screens/ProfileList.tsx:301 +msgid "List unmuted" +msgstr "Liste sessizden çıkarıldı" + +#: src/Navigation.tsx:110 src/view/screens/Profile.tsx:176 +#: src/view/shell/desktop/LeftNav.tsx:379 src/view/shell/Drawer.tsx:495 +#: src/view/shell/Drawer.tsx:496 +msgid "Lists" +msgstr "Listeler" + +#: src/view/com/post-thread/PostThread.tsx:281 +#: src/view/com/post-thread/PostThread.tsx:289 +msgid "Load more posts" +msgstr "Daha fazla gönderi yükle" + +#: src/view/screens/Notifications.tsx:155 +msgid "Load new notifications" +msgstr "Yeni bildirimleri yükle" + +#: src/view/com/feeds/FeedPage.tsx:190 src/view/screens/Profile.tsx:422 +#: src/view/screens/ProfileFeed.tsx:494 src/view/screens/ProfileList.tsx:680 +msgid "Load new posts" +msgstr "Yeni gönderileri yükle" + +#: src/view/com/composer/text-input/mobile/Autocomplete.tsx:95 +msgid "Loading..." +msgstr "Yükleniyor..." + +#: src/view/com/modals/ServerInput.tsx:50 +msgid "Local dev server" +msgstr "Yerel geliştirme sunucusu" + +#: src/Navigation.tsx:208 +msgid "Log" +msgstr "Log" + +#: src/screens/Deactivated.tsx:150 src/screens/Deactivated.tsx:153 +#: src/screens/Deactivated.tsx:179 src/screens/Deactivated.tsx:182 +msgid "Log out" +msgstr "Çıkış yap" + +#: src/view/screens/Moderation.tsx:136 +msgid "Logged-out visibility" +msgstr "Çıkış yapan görünürlüğü" + +#: src/view/com/auth/login/ChooseAccountForm.tsx:133 +msgid "Login to account that is not listed" +msgstr "Listelenmeyen hesaba giriş yap" + +#: src/view/com/modals/LinkWarning.tsx:65 +msgid "Make sure this is where you intend to go!" +msgstr "Bu gitmek istediğiniz yer olduğundan emin olun!" + +#: src/view/screens/Profile.tsx:173 +msgid "Media" +msgstr "Medya" + +#: src/view/com/threadgate/WhoCanReply.tsx:139 +msgid "mentioned users" +msgstr "bahsedilen kullanıcılar" + +#: src/view/com/modals/Threadgate.tsx:93 +msgid "Mentioned users" +msgstr "Bahsedilen kullanıcılar" + +#: src/view/com/util/ViewHeader.tsx:81 src/view/screens/Search/Search.tsx:623 +msgid "Menu" +msgstr "Menü" + +#: src/view/com/posts/FeedErrorMessage.tsx:197 +msgid "Message from server: {0}" +msgstr "Sunucudan mesaj: {0}" + +#: src/Navigation.tsx:115 src/view/screens/Moderation.tsx:64 +#: src/view/screens/Settings.tsx:619 src/view/shell/desktop/LeftNav.tsx:397 +#: src/view/shell/Drawer.tsx:514 src/view/shell/Drawer.tsx:515 +msgid "Moderation" +msgstr "Moderasyon" + +#: src/view/com/lists/ListCard.tsx:92 +#: src/view/com/modals/UserAddRemoveLists.tsx:206 +msgid "Moderation list by {0}" +msgstr "{0} tarafından moderasyon listesi" + +#: src/view/screens/ProfileList.tsx:774 +msgid "Moderation list by <0/>" +msgstr "<0/> tarafından moderasyon listesi" + +#: src/view/com/lists/ListCard.tsx:90 +#: src/view/com/modals/UserAddRemoveLists.tsx:204 +#: src/view/screens/ProfileList.tsx:772 +msgid "Moderation list by you" +msgstr "Sizin tarafınızdan moderasyon listesi" + +#: src/view/com/modals/CreateOrEditList.tsx:197 +msgid "Moderation list created" +msgstr "Moderasyon listesi oluşturuldu" + +#: src/view/com/modals/CreateOrEditList.tsx:183 +msgid "Moderation list updated" +msgstr "Moderasyon listesi güncellendi" + +#: src/view/screens/Moderation.tsx:95 +msgid "Moderation lists" +msgstr "Moderasyon listeleri" + +#: src/Navigation.tsx:120 src/view/screens/ModerationModlists.tsx:58 +msgid "Moderation Lists" +msgstr "Moderasyon Listeleri" + +#: src/view/screens/Settings.tsx:613 +msgid "Moderation settings" +msgstr "Moderasyon ayarları" + +#: src/view/com/modals/ModerationDetails.tsx:35 +msgid "Moderator has chosen to set a general warning on the content." +msgstr "Moderatör, içeriğe genel bir uyarı koymayı seçti." + +#: src/view/shell/desktop/Feeds.tsx:53 +msgid "More feeds" +msgstr "Daha fazla besleme" + +#: src/view/com/profile/ProfileHeader.tsx:562 +#: src/view/screens/ProfileFeed.tsx:362 src/view/screens/ProfileList.tsx:616 +msgid "More options" +msgstr "Daha fazla seçenek" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:270 +msgid "More post options" +msgstr "Daha fazla gönderi seçeneği" + +#: src/view/screens/PreferencesThreads.tsx:82 +msgid "Most-liked replies first" +msgstr "En çok beğenilen yanıtlar önce" + +#: src/view/com/profile/ProfileHeader.tsx:374 +msgid "Mute Account" +msgstr "Hesabı Sessize Al" + +#: src/view/screens/ProfileList.tsx:543 +msgid "Mute accounts" +msgstr "Hesapları sessize al" + +#: src/view/screens/ProfileList.tsx:490 +msgid "Mute list" +msgstr "Listeyi sessize al" + +#: src/view/screens/ProfileList.tsx:274 +msgid "Mute these accounts?" +msgstr "Bu hesapları sessize al?" + +#: src/view/screens/ProfileList.tsx:278 +msgid "Mute this List" +msgstr "Bu Listeyi Sessize Al" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:171 +msgid "Mute thread" +msgstr "Konuyu sessize al" + +#: src/view/com/lists/ListCard.tsx:101 +msgid "Muted" +msgstr "Sessize alındı" + +#: src/view/screens/Moderation.tsx:109 +msgid "Muted accounts" +msgstr "Sessize alınan hesaplar" + +#: src/Navigation.tsx:125 src/view/screens/ModerationMutedAccounts.tsx:107 +msgid "Muted Accounts" +msgstr "Sessize Alınan Hesaplar" + +#: src/view/screens/ModerationMutedAccounts.tsx:115 +msgid "Muted accounts have their posts removed from your feed and from your notifications. Mutes are completely private." +msgstr "Sessize alınan hesapların gönderileri beslemenizden ve bildirimlerinizden kaldırılır. Sessizlik tamamen özeldir." + +#: src/view/screens/ProfileList.tsx:276 +msgid "Muting is private. Muted accounts can interact with you, but you will not see their posts or receive notifications from them." +msgstr "Sessizlik özeldir. Sessize alınan hesaplar sizinle etkileşime geçebilir, ancak gönderilerini görmeyecek ve onlardan bildirim almayacaksınız." + +#: src/view/com/modals/BirthDateSettings.tsx:56 +msgid "My Birthday" +msgstr "Doğum Günüm" + +#: src/view/screens/Feeds.tsx:399 +msgid "My Feeds" +msgstr "Beslemelerim" + +#: src/view/shell/desktop/LeftNav.tsx:65 +msgid "My Profile" +msgstr "Profilim" + +#: src/view/screens/Settings.tsx:576 +msgid "My Saved Feeds" +msgstr "Kayıtlı Beslemelerim" + +#: src/view/com/modals/AddAppPasswords.tsx:179 +#: src/view/com/modals/CreateOrEditList.tsx:290 +msgid "Name" +msgstr "Ad" + +#: src/view/com/modals/CreateOrEditList.tsx:145 +msgid "Name is required" +msgstr "Ad gerekli" + +#: src/screens/Onboarding/index.tsx:25 +msgid "Nature" +msgstr "Doğa" + +#: src/view/com/auth/login/ForgotPasswordForm.tsx:186 +#: src/view/com/auth/login/ForgotPasswordForm.tsx:215 +#: src/view/com/auth/login/LoginForm.tsx:286 +#: src/view/com/auth/login/SetNewPasswordForm.tsx:196 +#: src/view/com/modals/ChangePassword.tsx:166 +msgid "Navigates to the next screen" +msgstr "Sonraki ekrana yönlendirir" + +#: src/view/shell/Drawer.tsx:73 +msgid "Navigates to your profile" +msgstr "Profilinize yönlendirir" + +#: src/view/com/modals/EmbedConsent.tsx:107 +#: src/view/com/modals/EmbedConsent.tsx:123 +msgid "Never load embeds from {0}" +msgstr "{0} adresinden gömülü içerikleri asla yükleme" + +#: src/view/com/auth/onboarding/WelcomeDesktop.tsx:72 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:72 +msgid "Never lose access to your followers and data." +msgstr "Takipçilerinize ve verilerinize asla erişimi kaybetmeyin." + +#: src/screens/Onboarding/StepFinished.tsx:119 +msgid "Never lose access to your followers or data." +msgstr "Takipçilerinize veya verilerinize asla erişimi kaybetmeyin." + +#: src/view/screens/Lists.tsx:76 +msgctxt "action" +msgid "New" +msgstr "Yeni" + +#: src/view/screens/ModerationModlists.tsx:78 +msgid "New" +msgstr "Yeni" + +#: src/view/com/modals/CreateOrEditList.tsx:252 +msgid "New Moderation List" +msgstr "Yeni Moderasyon Listesi" + +#: src/view/com/auth/login/SetNewPasswordForm.tsx:150 +msgid "New password" +msgstr "Yeni şifre" + +#: src/view/com/modals/ChangePassword.tsx:215 +msgid "New Password" +msgstr "Yeni Şifre" + +#: src/view/com/feeds/FeedPage.tsx:201 +msgctxt "action" +msgid "New post" +msgstr "Yeni gönderi" + +#: src/view/screens/Feeds.tsx:547 src/view/screens/Profile.tsx:364 +#: src/view/screens/ProfileFeed.tsx:432 src/view/screens/ProfileList.tsx:195 +#: src/view/screens/ProfileList.tsx:223 src/view/shell/desktop/LeftNav.tsx:248 +msgid "New post" +msgstr "Yeni gönderi" + +#: src/view/shell/desktop/LeftNav.tsx:258 +msgctxt "action" +msgid "New Post" +msgstr "Yeni Gönderi" + +#: src/view/com/modals/CreateOrEditList.tsx:247 +msgid "New User List" +msgstr "Yeni Kullanıcı Listesi" + +#: src/view/screens/PreferencesThreads.tsx:79 +msgid "Newest replies first" +msgstr "En yeni yanıtlar önce" + +#: src/screens/Onboarding/index.tsx:23 +msgid "News" +msgstr "Haberler" + +#: src/view/com/auth/create/CreateAccount.tsx:161 +#: src/view/com/auth/login/ForgotPasswordForm.tsx:178 +#: src/view/com/auth/login/ForgotPasswordForm.tsx:188 +#: src/view/com/auth/login/LoginForm.tsx:288 +#: src/view/com/auth/login/SetNewPasswordForm.tsx:187 +#: src/view/com/auth/login/SetNewPasswordForm.tsx:198 +#: src/view/com/auth/onboarding/RecommendedFeeds.tsx:79 +#: src/view/com/modals/ChangePassword.tsx:251 +#: src/view/com/modals/ChangePassword.tsx:253 +msgid "Next" +msgstr "İleri" + +#: src/view/com/auth/onboarding/WelcomeDesktop.tsx:103 +msgctxt "action" +msgid "Next" +msgstr "İleri" + +#: src/view/com/lightbox/Lightbox.web.tsx:149 +msgid "Next image" +msgstr "Sonraki resim" + +#: src/view/screens/PreferencesHomeFeed.tsx:129 +#: src/view/screens/PreferencesHomeFeed.tsx:200 +#: src/view/screens/PreferencesHomeFeed.tsx:235 +#: src/view/screens/PreferencesHomeFeed.tsx:272 +#: src/view/screens/PreferencesThreads.tsx:106 +#: src/view/screens/PreferencesThreads.tsx:129 +msgid "No" +msgstr "Hayır" + +#: src/view/screens/ProfileFeed.tsx:584 src/view/screens/ProfileList.tsx:754 +msgid "No description" +msgstr "Açıklama yok" + +#: src/view/com/profile/ProfileHeader.tsx:217 +msgid "No longer following {0}" +msgstr "{0} artık takip edilmiyor" + +#: src/view/com/notifications/Feed.tsx:109 +msgid "No notifications yet!" +msgstr "Henüz bildirim yok!" + +#: src/view/com/composer/text-input/mobile/Autocomplete.tsx:97 +#: src/view/com/composer/text-input/web/Autocomplete.tsx:191 +msgid "No result" +msgstr "Sonuç yok" + +#: src/view/screens/Feeds.tsx:490 +msgid "No results found for \"{query}\"" +msgstr "\"{query}\" için sonuç bulunamadı" + +#: src/view/com/modals/ListAddRemoveUsers.tsx:127 +#: src/view/screens/Search/Search.tsx:280 +#: src/view/screens/Search/Search.tsx:308 +msgid "No results found for {query}" +msgstr "{query} için sonuç bulunamadı" + +#: src/view/com/modals/EmbedConsent.tsx:129 +msgid "No thanks" +msgstr "Teşekkürler" + +#: src/view/com/modals/Threadgate.tsx:82 +msgid "Nobody" +msgstr "Hiç kimse" + +#: src/view/com/modals/SelfLabel.tsx:135 +msgid "Not Applicable." +msgstr "Uygulanamaz." + +#: src/Navigation.tsx:105 +msgid "Not Found" +msgstr "Bulunamadı" + +#: src/view/com/modals/VerifyEmail.tsx:246 +#: src/view/com/modals/VerifyEmail.tsx:252 +msgid "Not right now" +msgstr "Şu anda değil" + +#: src/view/screens/Moderation.tsx:233 +msgid "Note: Bluesky is an open and public network. This setting only limits the visibility of your content on the Bluesky app and website, and other apps may not respect this setting. Your content may still be shown to logged-out users by other apps and websites." +msgstr "Not: Bluesky açık ve kamusal bir ağdır. Bu ayar yalnızca içeriğinizin Bluesky uygulaması ve web sitesindeki görünürlüğünü sınırlar, diğer uygulamalar bu ayarı dikkate almayabilir. İçeriğiniz hala diğer uygulamalar ve web siteleri tarafından çıkış yapan kullanıcılara gösterilebilir." + +#: src/Navigation.tsx:448 src/view/screens/Notifications.tsx:120 +#: src/view/screens/Notifications.tsx:144 +#: src/view/shell/bottom-bar/BottomBar.tsx:205 +#: src/view/shell/desktop/LeftNav.tsx:361 src/view/shell/Drawer.tsx:438 +#: src/view/shell/Drawer.tsx:439 +msgid "Notifications" +msgstr "Bildirimler" + +#: src/view/com/modals/SelfLabel.tsx:103 +msgid "Nudity" +msgstr "Çıplaklık" + +#: src/view/com/util/ErrorBoundary.tsx:35 +msgid "Oh no!" +msgstr "Oh hayır!" + +#: src/screens/Onboarding/StepInterests/index.tsx:128 +msgid "Oh no! Something went wrong." +msgstr "Oh hayır! Bir şeyler yanlış gitti." + +#: src/view/com/auth/login/PasswordUpdatedForm.tsx:41 +msgid "Okay" +msgstr "Tamam" + +#: src/view/screens/PreferencesThreads.tsx:78 +msgid "Oldest replies first" +msgstr "En eski yanıtlar önce" + +#: src/view/screens/Settings.tsx:236 +msgid "Onboarding reset" +msgstr "Onboarding sıfırlama" + +#: src/view/com/composer/Composer.tsx:375 +msgid "One or more images is missing alt text." +msgstr "Bir veya daha fazla resimde alternatif metin eksik." + +#: src/view/com/threadgate/WhoCanReply.tsx:100 +msgid "Only {0} can reply." +msgstr "Yalnızca {0} yanıtlayabilir." + +#: src/view/com/modals/ProfilePreview.tsx:49 +#: src/view/com/modals/ProfilePreview.tsx:61 +#: src/view/screens/AppPasswords.tsx:65 +msgid "Oops!" +msgstr "Hata!" + +#: src/screens/Onboarding/StepFinished.tsx:115 +msgid "Open" +msgstr "Aç" + +#: src/view/com/composer/Composer.tsx:470 +#: src/view/com/composer/Composer.tsx:471 +msgid "Open emoji picker" +msgstr "Emoji seçiciyi aç" + +#: src/view/screens/Settings.tsx:706 +msgid "Open links with in-app browser" +msgstr "Uygulama içi tarayıcıda bağlantıları aç" + +#: src/view/com/pager/FeedsTabBarMobile.tsx:87 +msgid "Open navigation" +msgstr "Navigasyonu aç" + +#: src/view/screens/Settings.tsx:786 +msgid "Open storybook page" +msgstr "Storybook sayfasını aç" + +#: src/view/com/util/forms/DropdownButton.tsx:154 +msgid "Opens {numItems} options" +msgstr "{numItems} seçeneği açar" + +#: src/view/screens/Log.tsx:54 +msgid "Opens additional details for a debug entry" +msgstr "Hata ayıklama girişi için ek ayrıntıları açar" + +#: src/view/com/notifications/FeedItem.tsx:348 +msgid "Opens an expanded list of users in this notification" +msgstr "Bu bildirimdeki kullanıcıların genişletilmiş bir listesini açar" + +#: src/view/com/composer/photos/OpenCameraBtn.tsx:61 +msgid "Opens camera on device" +msgstr "Cihazdaki kamerayı açar" + +#: src/view/com/composer/Prompt.tsx:25 +msgid "Opens composer" +msgstr "Besteciyi açar" + +#: src/view/screens/Settings.tsx:589 +msgid "Opens configurable language settings" +msgstr "Yapılandırılabilir dil ayarlarını açar" + +#: src/view/com/composer/photos/SelectPhotoBtn.tsx:44 +msgid "Opens device photo gallery" +msgstr "Cihaz fotoğraf galerisini açar" + +#: src/view/com/profile/ProfileHeader.tsx:459 +msgid "Opens editor for profile display name, avatar, background image, and description" +msgstr "Profil görüntü adı, avatar, arka plan resmi ve açıklama için düzenleyiciyi açar" + +#: src/view/screens/Settings.tsx:643 +msgid "Opens external embeds settings" +msgstr "Harici gömülü ayarları açar" + +#: src/view/com/profile/ProfileHeader.tsx:614 +msgid "Opens followers list" +msgstr "Takipçi listesini açar" + +#: src/view/com/profile/ProfileHeader.tsx:633 +msgid "Opens following list" +msgstr "Takip listesini açar" + +#: src/view/screens/Settings.tsx:412 +msgid "Opens invite code list" +msgstr "Davet kodu listesini açar" + +#: src/view/com/modals/InviteCodes.tsx:172 +#: src/view/shell/desktop/RightNav.tsx:156 src/view/shell/Drawer.tsx:646 +msgid "Opens list of invite codes" +msgstr "Davet kodu listesini açar" + +#: src/view/screens/Settings.tsx:745 +msgid "Opens modal for account deletion confirmation. Requires email code." +msgstr "Hesap silme onayı için modalı açar. E-posta kodu gerektirir." + +#: src/view/com/modals/ChangeHandle.tsx:281 +msgid "Opens modal for using custom domain" +msgstr "Özel alan adı kullanımı için modalı açar" + +#: src/view/screens/Settings.tsx:614 +msgid "Opens moderation settings" +msgstr "Moderasyon ayarlarını açar" + +#: src/view/com/auth/login/LoginForm.tsx:236 +msgid "Opens password reset form" +msgstr "Şifre sıfırlama formunu açar" + +#: src/view/screens/Feeds.tsx:338 +msgid "Opens screen to edit Saved Feeds" +msgstr "Kayıtlı Beslemeleri düzenlemek için ekranı açar" + +#: src/view/screens/Settings.tsx:570 +msgid "Opens screen with all saved feeds" +msgstr "Tüm kayıtlı beslemeleri içeren ekrana açar" + +#: src/view/screens/Settings.tsx:670 +msgid "Opens the app password settings page" +msgstr "Uygulama şifre ayarları sayfasını açar" + +#: src/view/screens/Settings.tsx:529 +msgid "Opens the home feed preferences" +msgstr "Ana besleme tercihlerini açar" + +#: src/view/screens/Settings.tsx:787 +msgid "Opens the storybook page" +msgstr "Storybook sayfasını açar" + +#: src/view/screens/Settings.tsx:767 +msgid "Opens the system log page" +msgstr "Sistem log sayfasını açar" + +#: src/view/screens/Settings.tsx:550 +msgid "Opens the threads preferences" +msgstr "Konu tercihlerini açar" + +#: src/view/com/util/forms/DropdownButton.tsx:280 +msgid "Option {0} of {numItems}" +msgstr "{0} seçeneği, {numItems} seçenekten" + +#: src/view/com/modals/Threadgate.tsx:89 +msgid "Or combine these options:" +msgstr "Veya bu seçenekleri birleştirin:" + +#: src/view/com/auth/login/ChooseAccountForm.tsx:138 +msgid "Other account" +msgstr "Diğer hesap" + +#: src/view/com/modals/ServerInput.tsx:88 +msgid "Other service" +msgstr "Diğer servis" + +#: src/view/com/composer/select-language/SelectLangBtn.tsx:91 +msgid "Other..." +msgstr "Diğer..." + +#: src/view/screens/NotFound.tsx:45 +msgid "Page not found" +msgstr "Sayfa bulunamadı" + +#: src/view/screens/NotFound.tsx:42 +msgid "Page Not Found" +msgstr "Sayfa Bulunamadı" + +#: src/view/com/auth/create/Step1.tsx:158 +#: src/view/com/auth/create/Step1.tsx:168 +#: src/view/com/auth/login/LoginForm.tsx:223 +#: src/view/com/auth/login/SetNewPasswordForm.tsx:161 +#: src/view/com/modals/DeleteAccount.tsx:202 +msgid "Password" +msgstr "Şifre" + +#: src/view/com/auth/login/Login.tsx:157 +msgid "Password updated" +msgstr "Şifre güncellendi" + +#: src/view/com/auth/login/PasswordUpdatedForm.tsx:28 +msgid "Password updated!" +msgstr "Şifre güncellendi!" + +#: src/Navigation.tsx:161 +msgid "People followed by @{0}" +msgstr "@{0} tarafından takip edilenler" + +#: src/Navigation.tsx:154 +msgid "People following @{0}" +msgstr "@{0} tarafından takip edilenler" + +#: src/view/com/lightbox/Lightbox.tsx:66 +msgid "Permission to access camera roll is required." +msgstr "Kamera rulosuna erişim izni gerekiyor." + +#: src/view/com/lightbox/Lightbox.tsx:72 +msgid "Permission to access camera roll was denied. Please enable it in your system settings." +msgstr "Kamera rulosuna erişim izni reddedildi. Lütfen sistem ayarlarınızda etkinleştirin." + +#: src/screens/Onboarding/index.tsx:31 +msgid "Pets" +msgstr "Evcil Hayvanlar" + +#: src/view/com/auth/create/Step2.tsx:183 +msgid "Phone number" +msgstr "Telefon numarası" + +#: src/view/com/modals/SelfLabel.tsx:121 +msgid "Pictures meant for adults." +msgstr "Yetişkinler için resimler." + +#: src/view/screens/ProfileFeed.tsx:353 src/view/screens/ProfileList.tsx:580 +msgid "Pin to home" +msgstr "Ana ekrana sabitle" + +#: src/view/screens/SavedFeeds.tsx:88 +msgid "Pinned Feeds" +msgstr "Sabitleme Beslemeleri" + +#: src/view/com/util/post-embeds/ExternalGifEmbed.tsx:111 +msgid "Play {0}" +msgstr "{0} oynat" + +#: src/view/com/util/post-embeds/ExternalPlayerEmbed.tsx:54 +#: src/view/com/util/post-embeds/ExternalPlayerEmbed.tsx:55 +msgid "Play Video" +msgstr "Videoyu Oynat" + +#: src/view/com/util/post-embeds/ExternalGifEmbed.tsx:110 +msgid "Plays the GIF" +msgstr "GIF'i oynatır" + +#: src/view/com/auth/create/state.ts:177 +msgid "Please choose your handle." +msgstr "Kullanıcı adınızı seçin." + +#: src/view/com/auth/create/state.ts:160 +msgid "Please choose your password." +msgstr "Şifrenizi seçin." + +#: src/view/com/modals/ChangeEmail.tsx:67 +msgid "Please confirm your email before changing it. This is a temporary requirement while email-updating tools are added, and it will soon be removed." +msgstr "E-postanızı değiştirmeden önce onaylayın. Bu, e-posta güncelleme araçları eklenirken geçici bir gerekliliktir ve yakında kaldırılacaktır." + +#: src/view/com/modals/AddAppPasswords.tsx:90 +msgid "Please enter a name for your app password. All spaces is not allowed." +msgstr "Uygulama şifreniz için bir ad girin. Tüm boşluklar izin verilmez." + +#: src/view/com/auth/create/Step2.tsx:206 +msgid "Please enter a phone number that can receive SMS text messages." +msgstr "SMS metin mesajları alabilen bir telefon numarası girin." + +#: src/view/com/modals/AddAppPasswords.tsx:145 +msgid "Please enter a unique name for this App Password or use our randomly generated one." +msgstr "Bu Uygulama Şifresi için benzersiz bir ad girin veya rastgele oluşturulanı kullanın." + +#: src/view/com/auth/create/state.ts:170 +msgid "Please enter the code you received by SMS." +msgstr "SMS ile aldığınız kodu girin." + +#: src/view/com/auth/create/Step2.tsx:282 +msgid "Please enter the verification code sent to {phoneNumberFormatted}." +msgstr "{phoneNumberFormatted} numarasına gönderilen doğrulama kodunu girin." + +#: src/view/com/auth/create/state.ts:146 +msgid "Please enter your email." +msgstr "E-postanızı girin." + +#: src/view/com/modals/DeleteAccount.tsx:191 +msgid "Please enter your password as well:" +msgstr "Lütfen şifrenizi de girin:" + +#: src/view/com/modals/AppealLabel.tsx:72 +#: src/view/com/modals/AppealLabel.tsx:75 +msgid "Please tell us why you think this content warning was incorrectly applied!" +msgstr "Lütfen bu içerik uyarısının yanlış uygulandığını düşündüğünüz nedeni bize bildirin!" + +#: src/view/com/modals/VerifyEmail.tsx:101 +msgid "Please Verify Your Email" +msgstr "Lütfen E-postanızı Doğrulayın" + +#: src/view/com/composer/Composer.tsx:215 +msgid "Please wait for your link card to finish loading" +msgstr "Bağlantı kartınızın yüklenmesini bekleyin" + +#: src/screens/Onboarding/index.tsx:37 +msgid "Politics" +msgstr "Politika" + +#: src/view/com/modals/SelfLabel.tsx:111 +msgid "Porn" +msgstr "Pornografi" + +#: src/view/com/composer/Composer.tsx:350 +#: src/view/com/composer/Composer.tsx:358 +msgctxt "action" +msgid "Post" +msgstr "Gönder" + +#: src/view/com/post-thread/PostThread.tsx:251 +msgctxt "description" +msgid "Post" +msgstr "Gönderi" + +#: src/view/com/post-thread/PostThreadItem.tsx:177 +msgid "Post by {0}" +msgstr "{0} tarafından gönderi" + +#: src/Navigation.tsx:173 src/Navigation.tsx:180 src/Navigation.tsx:187 +msgid "Post by @{0}" +msgstr "@{0} tarafından gönderi" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:84 +msgid "Post deleted" +msgstr "Gönderi silindi" + +#: src/view/com/post-thread/PostThread.tsx:403 +msgid "Post hidden" +msgstr "Gönderi gizlendi" + +#: src/view/com/composer/select-language/SelectLangBtn.tsx:87 +msgid "Post language" +msgstr "Gönderi dili" + +#: src/view/com/modals/lang-settings/PostLanguagesSettings.tsx:75 +msgid "Post Languages" +msgstr "Gönderi Dilleri" + +#: src/view/com/post-thread/PostThread.tsx:455 +msgid "Post not found" +msgstr "Gönderi bulunamadı" + +#: src/view/screens/Profile.tsx:171 +msgid "Posts" +msgstr "Gönderiler" + +#: src/view/com/posts/FeedErrorMessage.tsx:64 +msgid "Posts hidden" +msgstr "Gönderiler gizlendi" + +#: src/view/com/modals/LinkWarning.tsx:46 +msgid "Potentially Misleading Link" +msgstr "Potansiyel Yanıltıcı Bağlantı" + +#: src/view/com/lightbox/Lightbox.web.tsx:135 +msgid "Previous image" +msgstr "Önceki resim" + +#: src/view/screens/LanguageSettings.tsx:187 +msgid "Primary Language" +msgstr "Birincil Dil" + +#: src/view/screens/PreferencesThreads.tsx:97 +msgid "Prioritize Your Follows" +msgstr "Takipçilerinizi Önceliklendirin" + +#: src/view/screens/Settings.tsx:626 src/view/shell/desktop/RightNav.tsx:84 +msgid "Privacy" +msgstr "Gizlilik" + +#: src/Navigation.tsx:218 src/view/screens/PrivacyPolicy.tsx:29 +#: src/view/screens/Settings.tsx:873 src/view/shell/Drawer.tsx:265 +msgid "Privacy Policy" +msgstr "Gizlilik Politikası" + +#: src/view/com/auth/login/ForgotPasswordForm.tsx:194 +msgid "Processing..." +msgstr "İşleniyor..." + +#: src/view/shell/bottom-bar/BottomBar.tsx:247 +#: src/view/shell/desktop/LeftNav.tsx:415 src/view/shell/Drawer.tsx:72 +#: src/view/shell/Drawer.tsx:549 src/view/shell/Drawer.tsx:550 +msgid "Profile" +msgstr "Profil" + +#: src/view/com/modals/EditProfile.tsx:128 +msgid "Profile updated" +msgstr "Profil güncellendi" + +#: src/view/screens/Settings.tsx:931 +msgid "Protect your account by verifying your email." +msgstr "E-postanızı doğrulayarak hesabınızı koruyun." + +#: src/screens/Onboarding/StepFinished.tsx:101 +msgid "Public" +msgstr "Herkese Açık" + +#: src/view/screens/ModerationModlists.tsx:61 +msgid "Public, shareable lists of users to mute or block in bulk." +msgstr "Toplu olarak sessize almak veya engellemek için herkese açık, paylaşılabilir kullanıcı listeleri." + +#: src/view/screens/Lists.tsx:61 +msgid "Public, shareable lists which can drive feeds." +msgstr "Beslemeleri yönlendirebilen herkese açık, paylaşılabilir listeler." + +#: src/view/com/composer/Composer.tsx:335 +msgid "Publish post" +msgstr "Gönderiyi yayınla" + +#: src/view/com/composer/Composer.tsx:335 +msgid "Publish reply" +msgstr "Yanıtı yayınla" + +#: src/view/com/modals/Repost.tsx:65 +msgctxt "action" +msgid "Quote post" +msgstr "Gönderiyi alıntıla" + +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:58 +msgid "Quote post" +msgstr "Gönderiyi alıntıla" + +#: src/view/com/modals/Repost.tsx:70 +msgctxt "action" +msgid "Quote Post" +msgstr "Gönderiyi Alıntıla" + +#: src/view/screens/PreferencesThreads.tsx:86 +msgid "Random (aka \"Poster's Roulette\")" +msgstr "Rastgele (yani \"Gönderenin Ruleti\")" + +#: src/view/com/modals/EditImage.tsx:236 +msgid "Ratios" +msgstr "Oranlar" + +#: src/view/com/auth/onboarding/RecommendedFeeds.tsx:116 +msgid "Recommended Feeds" +msgstr "Önerilen Beslemeler" + +#: src/view/com/auth/onboarding/RecommendedFollows.tsx:180 +msgid "Recommended Users" +msgstr "Önerilen Kullanıcılar" + +#: src/view/com/modals/ListAddRemoveUsers.tsx:264 +#: src/view/com/modals/SelfLabel.tsx:83 +#: src/view/com/modals/UserAddRemoveLists.tsx:219 +#: src/view/com/util/UserAvatar.tsx:282 src/view/com/util/UserBanner.tsx:89 +msgid "Remove" +msgstr "Kaldır" + +#: src/view/com/feeds/FeedSourceCard.tsx:106 +msgid "Remove {0} from my feeds?" +msgstr "{0} beslemelerimden kaldırılsın mı?" + +#: src/view/com/util/AccountDropdownBtn.tsx:22 +msgid "Remove account" +msgstr "Hesabı kaldır" + +#: src/view/com/posts/FeedErrorMessage.tsx:131 +#: src/view/com/posts/FeedErrorMessage.tsx:166 +msgid "Remove feed" +msgstr "Beslemeyi kaldır" + +#: src/view/com/feeds/FeedSourceCard.tsx:105 +#: src/view/com/feeds/FeedSourceCard.tsx:167 +#: src/view/com/feeds/FeedSourceCard.tsx:172 +#: src/view/com/feeds/FeedSourceCard.tsx:243 +#: src/view/screens/ProfileFeed.tsx:272 +msgid "Remove from my feeds" +msgstr "Beslemelerimden kaldır" + +#: src/view/com/composer/photos/Gallery.tsx:167 +msgid "Remove image" +msgstr "Resmi kaldır" + +#: src/view/com/composer/ExternalEmbed.tsx:70 +msgid "Remove image preview" +msgstr "Resim önizlemesini kaldır" + +#: src/view/com/modals/Repost.tsx:47 +msgid "Remove repost" +msgstr "Yeniden göndermeyi kaldır" + +#: src/view/com/feeds/FeedSourceCard.tsx:173 +msgid "Remove this feed from my feeds?" +msgstr "Bu beslemeyi beslemelerimden kaldırsın mı?" + +#: src/view/com/posts/FeedErrorMessage.tsx:132 +msgid "Remove this feed from your saved feeds?" +msgstr "Bu beslemeyi kayıtlı beslemelerinizden kaldırsın mı?" + +#: src/view/com/modals/ListAddRemoveUsers.tsx:199 +#: src/view/com/modals/UserAddRemoveLists.tsx:152 +msgid "Removed from list" +msgstr "Listeden kaldırıldı" + +#: src/view/com/feeds/FeedSourceCard.tsx:111 +#: src/view/com/feeds/FeedSourceCard.tsx:178 +msgid "Removed from my feeds" +msgstr "Beslemelerimden kaldırıldı" + +#: src/view/com/composer/ExternalEmbed.tsx:71 +msgid "Removes default thumbnail from {0}" +msgstr "{0} adresinden varsayılan küçük resmi kaldırır" + +#: src/view/screens/Profile.tsx:172 +msgid "Replies" +msgstr "Yanıtlar" + +#: src/view/com/threadgate/WhoCanReply.tsx:98 +msgid "Replies to this thread are disabled" +msgstr "Bu konuya yanıtlar devre dışı bırakıldı" + +#: src/view/com/composer/Composer.tsx:348 +msgctxt "action" +msgid "Reply" +msgstr "Yanıtla" + +#: src/view/screens/PreferencesHomeFeed.tsx:144 +msgid "Reply Filters" +msgstr "Yanıt Filtreleri" + +#: src/view/com/post/Post.tsx:166 src/view/com/posts/FeedItem.tsx:287 +msgctxt "description" +msgid "Reply to <0/>" +msgstr "<0/>'a yanıt" + +#: src/view/com/modals/report/Modal.tsx:166 +msgid "Report {collectionName}" +msgstr "{collectionName} raporla" + +#: src/view/com/profile/ProfileHeader.tsx:408 +msgid "Report Account" +msgstr "Hesabı Raporla" + +#: src/view/screens/ProfileFeed.tsx:292 +msgid "Report feed" +msgstr "Beslemeyi raporla" + +#: src/view/screens/ProfileList.tsx:458 +msgid "Report List" +msgstr "Listeyi Raporla" + +#: src/view/com/modals/report/SendReportButton.tsx:37 +#: src/view/com/util/forms/PostDropdownBtn.tsx:210 +msgid "Report post" +msgstr "Gönderiyi raporla" + +#: src/view/com/modals/Repost.tsx:43 src/view/com/modals/Repost.tsx:48 +#: src/view/com/modals/Repost.tsx:53 +#: src/view/com/util/post-ctrls/RepostButton.tsx:61 +msgctxt "action" +msgid "Repost" +msgstr "Yeniden gönder" + +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:48 +msgid "Repost" +msgstr "Yeniden gönder" + +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:94 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:105 +msgid "Repost or quote post" +msgstr "Gönderiyi yeniden gönder veya alıntıla" + +#: src/view/screens/PostRepostedBy.tsx:27 +msgid "Reposted By" +msgstr "Yeniden Gönderen" + +#: src/view/com/posts/FeedItem.tsx:207 +msgid "Reposted by {0}" +msgstr "{0} tarafından yeniden gönderildi" + +#: src/view/com/posts/FeedItem.tsx:224 +msgid "Reposted by <0/>" +msgstr "<0/>'a yeniden gönderildi" + +#: src/view/com/notifications/FeedItem.tsx:162 +msgid "reposted your post" +msgstr "gönderinizi yeniden gönderdi" + +#: src/view/com/post-thread/PostThreadItem.tsx:190 +msgid "Reposts of this post" +msgstr "Bu gönderinin yeniden gönderilmesi" + +#: src/view/com/modals/ChangeEmail.tsx:181 +#: src/view/com/modals/ChangeEmail.tsx:183 +msgid "Request Change" +msgstr "Değişiklik İste" + +#: src/view/com/auth/create/Step2.tsx:219 +msgid "Request code" +msgstr "Kod iste" + +#: src/view/com/modals/ChangePassword.tsx:239 +#: src/view/com/modals/ChangePassword.tsx:241 +msgid "Request Code" +msgstr "Kod İste" + +#: src/view/screens/Settings.tsx:450 +msgid "Require alt text before posting" +msgstr "Göndermeden önce alternatif metin gerektir" + +#: src/view/com/auth/create/Step1.tsx:97 +msgid "Required for this provider" +msgstr "Bu sağlayıcı için gereklidir" + +#: src/view/com/auth/login/SetNewPasswordForm.tsx:124 +#: src/view/com/auth/login/SetNewPasswordForm.tsx:136 +msgid "Reset code" +msgstr "Sıfırlama kodu" + +#: src/view/com/modals/ChangePassword.tsx:190 +msgid "Reset Code" +msgstr "Sıfırlama Kodu" + +#: src/view/screens/Settings.tsx:806 +msgid "Reset onboarding" +msgstr "Onboarding sıfırla" + +#: src/view/screens/Settings.tsx:809 +msgid "Reset onboarding state" +msgstr "Onboarding durumunu sıfırla" + +#: src/view/com/auth/login/ForgotPasswordForm.tsx:100 +msgid "Reset password" +msgstr "Şifreyi sıfırla" + +#: src/view/screens/Settings.tsx:796 +msgid "Reset preferences" +msgstr "Tercihleri sıfırla" + +#: src/view/screens/Settings.tsx:799 +msgid "Reset preferences state" +msgstr "Tercih durumunu sıfırla" + +#: src/view/screens/Settings.tsx:807 +msgid "Resets the onboarding state" +msgstr "Onboarding durumunu sıfırlar" + +#: src/view/screens/Settings.tsx:797 +msgid "Resets the preferences state" +msgstr "Tercih durumunu sıfırlar" + +#: src/view/com/auth/login/LoginForm.tsx:266 +msgid "Retries login" +msgstr "Giriş tekrar denemesi" + +#: src/view/com/util/error/ErrorMessage.tsx:57 +#: src/view/com/util/error/ErrorScreen.tsx:67 +msgid "Retries the last action, which errored out" +msgstr "Son hataya neden olan son eylemi tekrarlar" + +#: src/screens/Onboarding/StepInterests/index.tsx:221 +#: src/screens/Onboarding/StepInterests/index.tsx:224 +#: src/view/com/auth/create/CreateAccount.tsx:170 +#: src/view/com/auth/create/CreateAccount.tsx:175 +#: src/view/com/auth/create/Step2.tsx:255 +#: src/view/com/auth/login/LoginForm.tsx:265 +#: src/view/com/auth/login/LoginForm.tsx:268 +#: src/view/com/util/error/ErrorMessage.tsx:55 +#: src/view/com/util/error/ErrorScreen.tsx:65 +msgid "Retry" +msgstr "Tekrar dene" + +#: src/view/com/auth/create/Step2.tsx:247 +msgid "Retry." +msgstr "Tekrar dene." + +#: src/view/screens/ProfileList.tsx:898 +msgid "Return to previous page" +msgstr "Önceki sayfaya dön" + +#: src/view/shell/desktop/RightNav.tsx:59 +msgid "SANDBOX. Posts and accounts are not permanent." +msgstr "KUM KUTUSU. Gönderiler ve hesaplar kalıcı değildir." + +#: src/view/com/lightbox/Lightbox.tsx:132 +#: src/view/com/modals/CreateOrEditList.tsx:345 +msgctxt "action" +msgid "Save" +msgstr "Kaydet" + +#: src/view/com/modals/BirthDateSettings.tsx:94 +#: src/view/com/modals/BirthDateSettings.tsx:97 +#: src/view/com/modals/ChangeHandle.tsx:173 +#: src/view/com/modals/CreateOrEditList.tsx:337 +#: src/view/com/modals/EditProfile.tsx:224 src/view/screens/ProfileFeed.tsx:345 +msgid "Save" +msgstr "Kaydet" + +#: src/view/com/modals/AltImage.tsx:130 +msgid "Save alt text" +msgstr "Alternatif metni kaydet" + +#: src/view/com/modals/EditProfile.tsx:232 +msgid "Save Changes" +msgstr "Değişiklikleri Kaydet" + +#: src/view/com/modals/ChangeHandle.tsx:170 +msgid "Save handle change" +msgstr "Kullanıcı adı değişikliğini kaydet" + +#: src/view/com/modals/crop-image/CropImage.web.tsx:144 +msgid "Save image crop" +msgstr "Resim kırpma kaydet" + +#: src/view/screens/SavedFeeds.tsx:122 +msgid "Saved Feeds" +msgstr "Kayıtlı Beslemeler" + +#: src/view/com/modals/EditProfile.tsx:225 +msgid "Saves any changes to your profile" +msgstr "Profilinizdeki herhangi bir değişikliği kaydeder" + +#: src/view/com/modals/ChangeHandle.tsx:171 +msgid "Saves handle change to {handle}" +msgstr "{handle} kullanıcı adı değişikliğini kaydeder" + +#: src/screens/Onboarding/index.tsx:36 +msgid "Science" +msgstr "Bilim" + +#: src/view/screens/ProfileList.tsx:854 +msgid "Scroll to top" +msgstr "Başa kaydır" + +#: src/Navigation.tsx:438 src/view/com/auth/LoggedOut.tsx:122 +#: src/view/com/modals/ListAddRemoveUsers.tsx:75 +#: src/view/com/util/forms/SearchInput.tsx:53 +#: src/view/com/util/forms/SearchInput.tsx:65 +#: src/view/screens/Search/Search.tsx:418 +#: src/view/screens/Search/Search.tsx:645 +#: src/view/screens/Search/Search.tsx:663 +#: src/view/shell/bottom-bar/BottomBar.tsx:159 +#: src/view/shell/desktop/LeftNav.tsx:324 src/view/shell/desktop/Search.tsx:214 +#: src/view/shell/desktop/Search.tsx:223 src/view/shell/Drawer.tsx:365 +#: src/view/shell/Drawer.tsx:366 +msgid "Search" +msgstr "Ara" + +#: src/view/screens/Search/Search.tsx:712 src/view/shell/desktop/Search.tsx:255 +msgid "Search for \"{query}\"" +msgstr "\"{query}\" için ara" + +#: src/view/com/auth/LoggedOut.tsx:104 src/view/com/auth/LoggedOut.tsx:105 +#: src/view/com/modals/ListAddRemoveUsers.tsx:70 +msgid "Search for users" +msgstr "Kullanıcıları ara" + +#: src/view/com/modals/ChangeEmail.tsx:110 +msgid "Security Step Required" +msgstr "Güvenlik Adımı Gerekli" + +#: src/view/screens/SavedFeeds.tsx:163 +msgid "See this guide" +msgstr "Bu kılavuzu gör" + +#: src/view/com/auth/HomeLoggedOutCTA.tsx:39 +msgid "See what's next" +msgstr "Ne olduğunu gör" + +#: src/view/com/util/Selector.tsx:106 +msgid "Select {item}" +msgstr "{item} seç" + +#: src/view/com/modals/ServerInput.tsx:75 +msgid "Select Bluesky Social" +msgstr "Bluesky Social seç" + +#: src/view/com/auth/login/Login.tsx:117 +msgid "Select from an existing account" +msgstr "Mevcut bir hesaptan seç" + +#: src/view/com/util/Selector.tsx:107 +msgid "Select option {i} of {numItems}" +msgstr "{i} seçeneği, {numItems} seçenekten" + +#: src/view/com/auth/create/Step1.tsx:77 +#: src/view/com/auth/login/LoginForm.tsx:147 +msgid "Select service" +msgstr "Servis seç" + +#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:52 +msgid "Select some accounts below to follow" +msgstr "Aşağıdaki hesaplardan bazılarını takip et" + +#: src/screens/Onboarding/StepTopicalFeeds.tsx:90 +msgid "Select topical feeds to follow from the list below" +msgstr "Aşağıdaki listeden takip edilecek konu beslemelerini seçin" + +#: src/screens/Onboarding/StepModeration/index.tsx:75 +msgid "Select what you want to see (or not see), and we’ll handle the rest." +msgstr "Görmek istediğinizi (veya görmek istemediğinizi) seçin, gerisini biz hallederiz." + +#: src/view/screens/LanguageSettings.tsx:281 +msgid "Select which languages you want your subscribed feeds to include. If none are selected, all languages will be shown." +msgstr "Abone olduğunuz beslemelerin hangi dilleri içermesini istediğinizi seçin. Hiçbiri seçilmezse, tüm diller gösterilir." + +#: src/view/screens/LanguageSettings.tsx:98 +msgid "Select your app language for the default text to display in the app" +msgstr "Uygulama dilinizi seçin, uygulamada görüntülenecek varsayılan metin" + +#: src/screens/Onboarding/StepInterests/index.tsx:196 +msgid "Select your interests from the options below" +msgstr "Aşağıdaki seçeneklerden ilgi alanlarınızı seçin" + +#: src/view/com/auth/create/Step2.tsx:155 +msgid "Select your phone's country" +msgstr "Telefonunuzun ülkesini seçin" + +#: src/view/screens/LanguageSettings.tsx:190 +msgid "Select your preferred language for translations in your feed." +msgstr "Beslemenizdeki çeviriler için tercih ettiğiniz dili seçin." + +#: src/screens/Onboarding/StepAlgoFeeds/index.tsx:116 +msgid "Select your primary algorithmic feeds" +msgstr "Birincil algoritmik beslemelerinizi seçin" + +#: src/screens/Onboarding/StepAlgoFeeds/index.tsx:132 +msgid "Select your secondary algorithmic feeds" +msgstr "İkincil algoritmik beslemelerinizi seçin" + +#: src/view/com/modals/VerifyEmail.tsx:202 +#: src/view/com/modals/VerifyEmail.tsx:204 +msgid "Send Confirmation Email" +msgstr "Onay E-postası Gönder" + +#: src/view/com/modals/DeleteAccount.tsx:131 +msgid "Send email" +msgstr "E-posta gönder" + +#: src/view/com/modals/DeleteAccount.tsx:144 +msgctxt "action" +msgid "Send Email" +msgstr "E-posta Gönder" + +#: src/view/shell/Drawer.tsx:298 src/view/shell/Drawer.tsx:319 +msgid "Send feedback" +msgstr "Geribildirim gönder" + +#: src/view/com/modals/report/SendReportButton.tsx:45 +msgid "Send Report" +msgstr "Rapor Gönder" + +#: src/view/com/modals/DeleteAccount.tsx:133 +msgid "Sends email with confirmation code for account deletion" +msgstr "Hesap silme için onay kodu içeren e-posta gönderir" + +#: src/view/com/modals/ContentFilteringSettings.tsx:306 +msgid "Set {value} for {labelGroup} content moderation policy" +msgstr "{labelGroup} içerik düzenleme politikası için {value} ayarla" + +#: src/view/com/modals/ContentFilteringSettings.tsx:155 +#: src/view/com/modals/ContentFilteringSettings.tsx:174 +msgctxt "action" +msgid "Set Age" +msgstr "Yaş Ayarla" + +#: src/view/screens/Settings.tsx:482 +msgid "Set color theme to dark" +msgstr "Renk temasını koyu olarak ayarla" + +#: src/view/screens/Settings.tsx:475 +msgid "Set color theme to light" +msgstr "Renk temasını açık olarak ayarla" + +#: src/view/screens/Settings.tsx:469 +msgid "Set color theme to system setting" +msgstr "Renk temasını sistem ayarına ayarla" + +#: src/view/screens/Settings.tsx:508 +msgid "Set dark theme to the dark theme" +msgstr "Koyu teması koyu temaya ayarla" + +#: src/view/screens/Settings.tsx:501 +msgid "Set dark theme to the dim theme" +msgstr "Koyu teması loş temaya ayarla" + +#: src/view/com/auth/login/SetNewPasswordForm.tsx:104 +msgid "Set new password" +msgstr "Yeni şifre ayarla" + +#: src/view/com/auth/create/Step1.tsx:169 +msgid "Set password" +msgstr "Şifre ayarla" + +#: src/view/screens/PreferencesHomeFeed.tsx:225 +msgid "Set this setting to \"No\" to hide all quote posts from your feed. Reposts will still be visible." +msgstr "Bu ayarı \"Hayır\" olarak ayarlayarak beslemenizden tüm alıntı gönderileri gizleyebilirsiniz. Yeniden göndermeler hala görünür olacaktır." + +#: src/view/screens/PreferencesHomeFeed.tsx:122 +msgid "Set this setting to \"No\" to hide all replies from your feed." +msgstr "Bu ayarı \"Hayır\" olarak ayarlayarak beslemenizden tüm yanıtları gizleyebilirsiniz." + +#: src/view/screens/PreferencesHomeFeed.tsx:191 +msgid "Set this setting to \"No\" to hide all reposts from your feed." +msgstr "Bu ayarı \"Hayır\" olarak ayarlayarak beslemenizden tüm yeniden göndermeleri gizleyebilirsiniz." + +#: src/view/screens/PreferencesThreads.tsx:122 +msgid "Set this setting to \"Yes\" to show replies in a threaded view. This is an experimental feature." +msgstr "Bu ayarı \"Evet\" olarak ayarlayarak yanıtları konu tabanlı görüntülemek için ayarlayın. Bu deneysel bir özelliktir." + +#: src/view/screens/PreferencesHomeFeed.tsx:261 +msgid "Set this setting to \"Yes\" to show samples of your saved feeds in your following feed. This is an experimental feature." +msgstr "Bu ayarı \"Evet\" olarak ayarlayarak kayıtlı beslemelerinizin örneklerini takip ettiğiniz beslemede göstermek için ayarlayın. Bu deneysel bir özelliktir." + +#: src/screens/Onboarding/Layout.tsx:50 +msgid "Set up your account" +msgstr "Hesabınızı ayarlayın" + +#: src/view/com/modals/ChangeHandle.tsx:266 +msgid "Sets Bluesky username" +msgstr "Bluesky kullanıcı adını ayarlar" + +#: src/view/com/auth/login/ForgotPasswordForm.tsx:153 +msgid "Sets email for password reset" +msgstr "Şifre sıfırlama için e-posta ayarlar" + +#: src/view/com/auth/login/ForgotPasswordForm.tsx:118 +msgid "Sets hosting provider for password reset" +msgstr "Şifre sıfırlama için barındırma sağlayıcısını ayarlar" + +#: src/view/com/auth/create/Step1.tsx:78 +#: src/view/com/auth/login/LoginForm.tsx:148 +msgid "Sets server for the Bluesky client" +msgstr "Bluesky istemcisi için sunucuyu ayarlar" + +#: src/Navigation.tsx:135 src/view/screens/Settings.tsx:294 +#: src/view/shell/desktop/LeftNav.tsx:433 src/view/shell/Drawer.tsx:570 +#: src/view/shell/Drawer.tsx:571 +msgid "Settings" +msgstr "Ayarlar" + +#: src/view/com/modals/SelfLabel.tsx:125 +msgid "Sexual activity or erotic nudity." +msgstr "Cinsel aktivite veya erotik çıplaklık." + +#: src/view/com/lightbox/Lightbox.tsx:141 +msgctxt "action" +msgid "Share" +msgstr "Paylaş" + +#: src/view/com/profile/ProfileHeader.tsx:342 +#: src/view/com/util/forms/PostDropdownBtn.tsx:153 +#: src/view/screens/ProfileList.tsx:417 +msgid "Share" +msgstr "Paylaş" + +#: src/view/screens/ProfileFeed.tsx:304 +msgid "Share feed" +msgstr "Beslemeyi paylaş" + +#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:43 +#: src/view/com/modals/ContentFilteringSettings.tsx:261 +#: src/view/com/util/moderation/ContentHider.tsx:107 +#: src/view/com/util/moderation/PostHider.tsx:108 +#: src/view/screens/Settings.tsx:344 +msgid "Show" +msgstr "Göster" + +#: src/view/screens/PreferencesHomeFeed.tsx:68 +msgid "Show all replies" +msgstr "Tüm yanıtları göster" + +#: src/view/com/util/moderation/ScreenHider.tsx:132 +msgid "Show anyway" +msgstr "Yine de göster" + +#: src/view/com/modals/EmbedConsent.tsx:87 +msgid "Show embeds from {0}" +msgstr "{0} adresinden gömülü öğeleri göster" + +#: src/view/com/profile/ProfileHeader.tsx:498 +msgid "Show follows similar to {0}" +msgstr "{0} adresine benzer takipçileri göster" + +#: src/view/com/post-thread/PostThreadItem.tsx:571 +#: src/view/com/post/Post.tsx:197 src/view/com/posts/FeedItem.tsx:363 +msgid "Show More" +msgstr "Daha Fazla Göster" + +#: src/view/screens/PreferencesHomeFeed.tsx:258 +msgid "Show Posts from My Feeds" +msgstr "Beslemelerimden Gönderileri Göster" + +#: src/view/screens/PreferencesHomeFeed.tsx:222 +msgid "Show Quote Posts" +msgstr "Alıntı Gönderileri Göster" + +#: src/screens/Onboarding/StepFollowingFeed.tsx:118 +msgid "Show quote-posts in Following feed" +msgstr "Alıntı gönderileri takip etme beslemesinde göster" + +#: src/screens/Onboarding/StepFollowingFeed.tsx:134 +msgid "Show quotes in Following" +msgstr "Takip etme beslemesinde alıntıları göster" + +#: src/screens/Onboarding/StepFollowingFeed.tsx:94 +msgid "Show re-posts in Following feed" +msgstr "Yeniden göndermeleri takip etme beslemesinde göster" + +#: src/view/screens/PreferencesHomeFeed.tsx:119 +msgid "Show Replies" +msgstr "Yanıtları Göster" + +#: src/view/screens/PreferencesThreads.tsx:100 +msgid "Show replies by people you follow before all other replies." +msgstr "Takip ettiğiniz kişilerin yanıtlarını diğer tüm yanıtlardan önce göster." + +#: src/screens/Onboarding/StepFollowingFeed.tsx:86 +msgid "Show replies in Following" +msgstr "Takip etme beslemesinde yanıtları göster" + +#: src/screens/Onboarding/StepFollowingFeed.tsx:70 +msgid "Show replies in Following feed" +msgstr "Takip etme beslemesinde yanıtları göster" + +#: src/view/screens/PreferencesHomeFeed.tsx:70 +msgid "Show replies with at least {value} {0}" +msgstr "En az {value} {0} olan yanıtları göster" + +#: src/view/screens/PreferencesHomeFeed.tsx:188 +msgid "Show Reposts" +msgstr "Yeniden Göndermeleri Göster" + +#: src/screens/Onboarding/StepFollowingFeed.tsx:110 +msgid "Show reposts in Following" +msgstr "Takip etme beslemesinde yeniden göndermeleri göster" + +#: src/view/com/util/moderation/ContentHider.tsx:67 +#: src/view/com/util/moderation/PostHider.tsx:61 +msgid "Show the content" +msgstr "İçeriği göster" + +#: src/view/com/notifications/FeedItem.tsx:346 +msgid "Show users" +msgstr "Kullanıcıları göster" + +#: src/view/com/profile/ProfileHeader.tsx:501 +msgid "Shows a list of users similar to this user." +msgstr "Bu kullanıcıya benzer kullanıcıların listesini gösterir." + +#: src/view/com/profile/ProfileHeader.tsx:545 +msgid "Shows posts from {0} in your feed" +msgstr "Beslemenizde {0} adresinden gönderileri gösterir" + +#: src/view/com/auth/HomeLoggedOutCTA.tsx:70 +#: src/view/com/auth/login/Login.tsx:98 src/view/com/auth/SplashScreen.tsx:54 +#: src/view/shell/bottom-bar/BottomBar.tsx:285 +#: src/view/shell/bottom-bar/BottomBar.tsx:286 +#: src/view/shell/bottom-bar/BottomBar.tsx:288 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:178 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:179 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:181 +#: src/view/shell/NavSignupCard.tsx:58 src/view/shell/NavSignupCard.tsx:59 +msgid "Sign in" +msgstr "Giriş yap" + +#: src/view/com/auth/HomeLoggedOutCTA.tsx:78 +#: src/view/com/auth/SplashScreen.tsx:57 +#: src/view/com/auth/SplashScreen.web.tsx:87 +msgid "Sign In" +msgstr "Giriş Yap" + +#: src/view/com/auth/login/ChooseAccountForm.tsx:44 +msgid "Sign in as {0}" +msgstr "{0} olarak giriş yap" + +#: src/view/com/auth/login/ChooseAccountForm.tsx:118 +#: src/view/com/auth/login/Login.tsx:116 +msgid "Sign in as..." +msgstr "Olarak giriş yap..." + +#: src/view/com/auth/login/LoginForm.tsx:134 +msgid "Sign into" +msgstr "Olarak giriş yap" + +#: src/view/com/modals/SwitchAccount.tsx:64 +#: src/view/com/modals/SwitchAccount.tsx:69 src/view/screens/Settings.tsx:107 +#: src/view/screens/Settings.tsx:110 +msgid "Sign out" +msgstr "Çıkış yap" + +#: src/view/shell/bottom-bar/BottomBar.tsx:275 +#: src/view/shell/bottom-bar/BottomBar.tsx:276 +#: src/view/shell/bottom-bar/BottomBar.tsx:278 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:168 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:169 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:171 +#: src/view/shell/NavSignupCard.tsx:49 src/view/shell/NavSignupCard.tsx:50 +#: src/view/shell/NavSignupCard.tsx:52 +msgid "Sign up" +msgstr "Kaydol" + +#: src/view/shell/NavSignupCard.tsx:42 +msgid "Sign up or sign in to join the conversation" +msgstr "Konuşmaya katılmak için kaydolun veya giriş yapın" + +#: src/view/com/util/moderation/ScreenHider.tsx:76 +msgid "Sign-in Required" +msgstr "Giriş Yapılması Gerekiyor" + +#: src/view/screens/Settings.tsx:355 +msgid "Signed in as" +msgstr "Olarak giriş yapıldı" + +#: src/view/com/auth/login/ChooseAccountForm.tsx:103 +msgid "Signed in as @{0}" +msgstr "@{0} olarak giriş yapıldı" + +#: src/view/com/modals/SwitchAccount.tsx:66 +msgid "Signs {0} out of Bluesky" +msgstr "{0} adresini Bluesky'den çıkarır" + +#: src/screens/Onboarding/StepInterests/index.tsx:235 +#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:191 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:33 +msgid "Skip" +msgstr "Atla" + +#: src/screens/Onboarding/StepInterests/index.tsx:232 +msgid "Skip this flow" +msgstr "Bu akışı atla" + +#: src/view/com/auth/create/Step2.tsx:82 +msgid "SMS verification" +msgstr "SMS doğrulama" + +#: src/screens/Onboarding/index.tsx:40 +msgid "Software Dev" +msgstr "Yazılım Geliştirme" + +#: src/view/com/modals/ProfilePreview.tsx:62 +msgid "Something went wrong and we're not sure what." +msgstr "Bir şeyler yanlış gitti ve ne olduğundan emin değiliz." + +#: src/view/com/modals/Waitlist.tsx:51 +msgid "Something went wrong. Check your email and try again." +msgstr "Bir şeyler yanlış gitti. E-postanızı kontrol edin ve tekrar deneyin." + +#: src/App.native.tsx:60 +msgid "Sorry! Your session expired. Please log in again." +msgstr "Üzgünüz! Oturumunuzun süresi doldu. Lütfen tekrar giriş yapın." + +#: src/view/screens/PreferencesThreads.tsx:69 +msgid "Sort Replies" +msgstr "Yanıtları Sırala" + +#: src/view/screens/PreferencesThreads.tsx:72 +msgid "Sort replies to the same post by:" +msgstr "Aynı gönderiye verilen yanıtları şuna göre sırala:" + +#: src/screens/Onboarding/index.tsx:30 +msgid "Sports" +msgstr "Spor" + +#: src/view/com/modals/crop-image/CropImage.web.tsx:122 +msgid "Square" +msgstr "Kare" + +#: src/view/com/modals/ServerInput.tsx:62 +msgid "Staging" +msgstr "Staging" + +#: src/view/screens/Settings.tsx:853 +msgid "Status page" +msgstr "Durum sayfası" + +#: src/view/com/auth/create/StepHeader.tsx:22 +msgid "Step {0} of {numSteps}" +msgstr "{numSteps} adımdan {0}. adım" + +#: src/view/screens/Settings.tsx:276 +msgid "Storage cleared, you need to restart the app now." +msgstr "Depolama temizlendi, şimdi uygulamayı yeniden başlatmanız gerekiyor." + +#: src/Navigation.tsx:203 src/view/screens/Settings.tsx:789 +msgid "Storybook" +msgstr "Storybook" + +#: src/view/com/modals/AppealLabel.tsx:101 +msgid "Submit" +msgstr "Submit" + +#: src/view/screens/ProfileList.tsx:607 +msgid "Subscribe" +msgstr "Abone ol" + +#: src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx:173 +#: src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx:307 +msgid "Subscribe to the {0} feed" +msgstr "{0} beslemesine abone ol" + +#: src/view/screens/ProfileList.tsx:603 +msgid "Subscribe to this list" +msgstr "Bu listeye abone ol" + +#: src/view/screens/Search/Search.tsx:373 +msgid "Suggested Follows" +msgstr "Önerilen Takipçiler" + +#: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:64 +msgid "Suggested for you" +msgstr "Sana önerilenler" + +#: src/view/com/modals/SelfLabel.tsx:95 +msgid "Suggestive" +msgstr "Tehlikeli" + +#: src/Navigation.tsx:213 src/view/screens/Support.tsx:30 +#: src/view/screens/Support.tsx:33 +msgid "Support" +msgstr "Destek" + +#: src/view/com/modals/ProfilePreview.tsx:110 +msgid "Swipe up to see more" +msgstr "Daha fazlasını görmek için yukarı kaydır" + +#: src/view/com/modals/SwitchAccount.tsx:117 +msgid "Switch Account" +msgstr "Hesap Değiştir" + +#: src/view/com/modals/SwitchAccount.tsx:97 src/view/screens/Settings.tsx:137 +msgid "Switch to {0}" +msgstr "{0} adresine geç" + +#: src/view/com/modals/SwitchAccount.tsx:98 src/view/screens/Settings.tsx:138 +msgid "Switches the account you are logged in to" +msgstr "Giriş yaptığınız hesabı değiştirir" + +#: src/view/screens/Settings.tsx:466 +msgid "System" +msgstr "Sistem" + +#: src/view/screens/Settings.tsx:769 +msgid "System log" +msgstr "Sistem günlüğü" + +#: src/view/com/modals/crop-image/CropImage.web.tsx:112 +msgid "Tall" +msgstr "Uzun" + +#: src/view/com/util/images/AutoSizedImage.tsx:70 +msgid "Tap to view fully" +msgstr "Tamamen görüntülemek için dokunun" + +#: src/screens/Onboarding/index.tsx:39 +msgid "Tech" +msgstr "Teknoloji" + +#: src/view/shell/desktop/RightNav.tsx:93 +msgid "Terms" +msgstr "Şartlar" + +#: src/Navigation.tsx:223 src/view/screens/Settings.tsx:867 +#: src/view/screens/TermsOfService.tsx:29 src/view/shell/Drawer.tsx:259 +msgid "Terms of Service" +msgstr "Hizmet Şartları" + +#: src/view/com/modals/AppealLabel.tsx:70 +#: src/view/com/modals/report/InputIssueDetails.tsx:51 +msgid "Text input field" +msgstr "Metin giriş alanı" + +#: src/view/com/profile/ProfileHeader.tsx:310 +msgid "The account will be able to interact with you after unblocking." +msgstr "Hesap, engeli kaldırdıktan sonra sizinle etkileşime geçebilecek." + +#: src/view/screens/CommunityGuidelines.tsx:36 +msgid "The Community Guidelines have been moved to <0/>" +msgstr "Topluluk Kuralları <0/> konumuna taşındı" + +#: src/view/screens/CopyrightPolicy.tsx:33 +msgid "The Copyright Policy has been moved to <0/>" +msgstr "Telif Hakkı Politikası <0/> konumuna taşındı" + +#: src/screens/Onboarding/Layout.tsx:60 +msgid "The following steps will help customize your Bluesky experience." +msgstr "Aşağıdaki adımlar, Bluesky deneyiminizi özelleştirmenize yardımcı olacaktır." + +#: src/view/com/post-thread/PostThread.tsx:458 +msgid "The post may have been deleted." +msgstr "Gönderi silinmiş olabilir." + +#: src/view/screens/PrivacyPolicy.tsx:33 +msgid "The Privacy Policy has been moved to <0/>" +msgstr "Gizlilik Politikası <0/> konumuna taşındı" + +#: src/view/screens/Support.tsx:36 +msgid "The support form has been moved. If you need help, please <0/> or visit {HELP_DESK_URL} to get in touch with us." +msgstr "Destek formu taşındı. Yardıma ihtiyacınız varsa, lütfen <0/> veya bize ulaşmak için {HELP_DESK_URL} adresini ziyaret edin." + +#: src/view/screens/TermsOfService.tsx:33 +msgid "The Terms of Service have been moved to" +msgstr "Hizmet Şartları taşındı" + +#: src/screens/Onboarding/StepAlgoFeeds/index.tsx:135 +msgid "There are many feeds to try:" +msgstr "Denemek için birçok besleme var:" + +#: src/view/screens/ProfileFeed.tsx:549 +msgid "There was an an issue contacting the server, please check your internet connection and try again." +msgstr "Sunucuya ulaşma konusunda bir sorun oluştu, lütfen internet bağlantınızı kontrol edin ve tekrar deneyin." + +#: src/view/com/posts/FeedErrorMessage.tsx:139 +msgid "There was an an issue removing this feed. Please check your internet connection and try again." +msgstr "Bu beslemeyi kaldırma konusunda bir sorun oluştu. Lütfen internet bağlantınızı kontrol edin ve tekrar deneyin." + +#: src/view/screens/ProfileFeed.tsx:209 +msgid "There was an an issue updating your feeds, please check your internet connection and try again." +msgstr "Beslemelerinizi güncelleme konusunda bir sorun oluştu, lütfen internet bağlantınızı kontrol edin ve tekrar deneyin." + +#: src/view/screens/ProfileFeed.tsx:236 src/view/screens/ProfileList.tsx:266 +#: src/view/screens/SavedFeeds.tsx:209 src/view/screens/SavedFeeds.tsx:231 +#: src/view/screens/SavedFeeds.tsx:252 +msgid "There was an issue contacting the server" +msgstr "Sunucuya ulaşma konusunda bir sorun oluştu" + +#: src/view/com/auth/onboarding/RecommendedFeedsItem.tsx:57 +#: src/view/com/auth/onboarding/RecommendedFeedsItem.tsx:66 +#: src/view/com/feeds/FeedSourceCard.tsx:113 +#: src/view/com/feeds/FeedSourceCard.tsx:127 +#: src/view/com/feeds/FeedSourceCard.tsx:181 +msgid "There was an issue contacting your server" +msgstr "Sunucunuza ulaşma konusunda bir sorun oluştu" + +#: src/view/com/notifications/Feed.tsx:117 +msgid "There was an issue fetching notifications. Tap here to try again." +msgstr "Bildirimleri almakta bir sorun oluştu. Tekrar denemek için buraya dokunun." + +#: src/view/com/posts/Feed.tsx:263 +msgid "There was an issue fetching posts. Tap here to try again." +msgstr "Gönderileri almakta bir sorun oluştu. Tekrar denemek için buraya dokunun." + +#: src/view/com/lists/ListMembers.tsx:172 +msgid "There was an issue fetching the list. Tap here to try again." +msgstr "Listeyi almakta bir sorun oluştu. Tekrar denemek için buraya dokunun." + +#: src/view/com/feeds/ProfileFeedgens.tsx:148 +#: src/view/com/lists/ProfileLists.tsx:155 +msgid "There was an issue fetching your lists. Tap here to try again." +msgstr "Listelerinizi almakta bir sorun oluştu. Tekrar denemek için buraya dokunun." + +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:63 +#: src/view/com/modals/ContentFilteringSettings.tsx:126 +msgid "There was an issue syncing your preferences with the server" +msgstr "Tercihlerinizi sunucuyla senkronize etme konusunda bir sorun oluştu" + +#: src/view/screens/AppPasswords.tsx:66 +msgid "There was an issue with fetching your app passwords" +msgstr "Uygulama şifrelerinizi almakta bir sorun oluştu" + +#: src/view/com/profile/ProfileHeader.tsx:204 +#: src/view/com/profile/ProfileHeader.tsx:225 +#: src/view/com/profile/ProfileHeader.tsx:264 +#: src/view/com/profile/ProfileHeader.tsx:277 +#: src/view/com/profile/ProfileHeader.tsx:297 +#: src/view/com/profile/ProfileHeader.tsx:319 +msgid "There was an issue! {0}" +msgstr "Bir sorun oluştu! {0}" + +#: src/view/screens/ProfileList.tsx:287 src/view/screens/ProfileList.tsx:306 +#: src/view/screens/ProfileList.tsx:328 src/view/screens/ProfileList.tsx:347 +msgid "There was an issue. Please check your internet connection and try again." +msgstr "Bir sorun oluştu. Lütfen internet bağlantınızı kontrol edin ve tekrar deneyin." + +#: src/view/com/util/ErrorBoundary.tsx:36 +msgid "There was an unexpected issue in the application. Please let us know if this happened to you!" +msgstr "Uygulamada beklenmeyen bir sorun oluştu. Bu size de olduysa lütfen bize bildirin!" + +#: src/screens/Deactivated.tsx:107 +msgid "There's been a rush of new users to Bluesky! We'll activate your account as soon as we can." +msgstr "Bluesky'e bir dizi yeni kullanıcı geldi! Hesabınızı en kısa sürede etkinleştireceğiz." + +#: src/view/com/auth/create/Step2.tsx:55 +msgid "There's something wrong with this number. Please choose your country and enter your full phone number!" +msgstr "Bu numarada bir sorun var. Lütfen ülkenizi seçin ve tam telefon numaranızı girin!" + +#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:138 +msgid "These are popular accounts you might like:" +msgstr "Bunlar, beğenebileceğiniz popüler hesaplar:" + +#: src/view/com/util/moderation/ScreenHider.tsx:88 +msgid "This {screenDescription} has been flagged:" +msgstr "Bu {screenDescription} işaretlendi:" + +#: src/view/com/util/moderation/ScreenHider.tsx:83 +msgid "This account has requested that users sign in to view their profile." +msgstr "Bu hesap, kullanıcıların profilini görüntülemek için giriş yapmalarını istedi." + +#: src/view/com/modals/EmbedConsent.tsx:68 +msgid "This content is hosted by {0}. Do you want to enable external media?" +msgstr "Bu içerik {0} tarafından barındırılıyor. Harici medyayı etkinleştirmek ister misiniz?" + +#: src/view/com/modals/ModerationDetails.tsx:67 +msgid "This content is not available because one of the users involved has blocked the other." +msgstr "Bu içerik, içerikte yer alan kullanıcılardan biri diğerini engellediği için mevcut değil." + +#: src/view/com/posts/FeedErrorMessage.tsx:108 +msgid "This content is not viewable without a Bluesky account." +msgstr "Bu içerik, bir Bluesky hesabı olmadan görüntülenemez." + +#: src/view/com/posts/FeedErrorMessage.tsx:114 +msgid "This feed is currently receiving high traffic and is temporarily unavailable. Please try again later." +msgstr "Bu besleme şu anda yüksek trafik alıyor ve geçici olarak kullanılamıyor. Lütfen daha sonra tekrar deneyin." + +#: src/view/screens/Profile.tsx:402 src/view/screens/ProfileFeed.tsx:475 +#: src/view/screens/ProfileList.tsx:660 +msgid "This feed is empty!" +msgstr "Bu besleme boş!" + +#: src/view/com/posts/CustomFeedEmptyState.tsx:37 +msgid "This feed is empty! You may need to follow more users or tune your language settings." +msgstr "Bu besleme boş! Daha fazla kullanıcı takip etmeniz veya dil ayarlarınızı ayarlamanız gerekebilir." + +#: src/view/com/modals/BirthDateSettings.tsx:61 +msgid "This information is not shared with other users." +msgstr "Bu bilgi diğer kullanıcılarla paylaşılmaz." + +#: src/view/com/modals/VerifyEmail.tsx:119 +msgid "This is important in case you ever need to change your email or reset your password." +msgstr "Bu, e-postanızı değiştirmeniz veya şifrenizi sıfırlamanız gerektiğinde önemlidir." + +#: src/view/com/modals/LinkWarning.tsx:58 +msgid "This link is taking you to the following website:" +msgstr "Bu bağlantı sizi aşağıdaki web sitesine götürüyor:" + +#: src/view/screens/ProfileList.tsx:834 +msgid "This list is empty!" +msgstr "Bu liste boş!" + +#: src/view/com/modals/AddAppPasswords.tsx:106 +msgid "This name is already in use" +msgstr "Bu isim zaten kullanılıyor" + +#: src/view/com/post-thread/PostThreadItem.tsx:124 +msgid "This post has been deleted." +msgstr "Bu gönderi silindi." + +#: src/view/com/modals/ModerationDetails.tsx:62 +msgid "This user has blocked you. You cannot view their content." +msgstr "Bu kullanıcı sizi engelledi. İçeriklerini göremezsiniz." + +#: src/view/com/modals/ModerationDetails.tsx:42 +msgid "This user is included in the <0/> list which you have blocked." +msgstr "Bu kullanıcı, engellediğiniz <0/> listesinde bulunuyor." + +#: src/view/com/modals/ModerationDetails.tsx:74 +msgid "This user is included in the <0/> list which you have muted." +msgstr "Bu kullanıcı, sessize aldığınız <0/> listesinde bulunuyor." + +#: src/view/com/modals/SelfLabel.tsx:137 +msgid "This warning is only available for posts with media attached." +msgstr "Bu uyarı yalnızca medya ekli gönderiler için mevcuttur." + +#: src/view/com/util/forms/PostDropdownBtn.tsx:192 +msgid "This will hide this post from your feeds." +msgstr "Bu, bu gönderiyi beslemelerinizden gizleyecektir." + +#: src/view/screens/PreferencesThreads.tsx:53 src/view/screens/Settings.tsx:559 +msgid "Thread Preferences" +msgstr "Konu Tercihleri" + +#: src/view/screens/PreferencesThreads.tsx:119 +msgid "Threaded Mode" +msgstr "Konu Tabanlı Mod" + +#: src/Navigation.tsx:253 +msgid "Threads Preferences" +msgstr "Konu Tercihleri" + +#: src/view/com/util/forms/DropdownButton.tsx:246 +msgid "Toggle dropdown" +msgstr "Açılır menüyü aç/kapat" + +#: src/view/com/modals/EditImage.tsx:271 +msgid "Transformations" +msgstr "Dönüşümler" + +#: src/view/com/post-thread/PostThreadItem.tsx:719 +#: src/view/com/post-thread/PostThreadItem.tsx:721 +#: src/view/com/util/forms/PostDropdownBtn.tsx:125 +msgid "Translate" +msgstr "Çevir" + +#: src/view/com/util/error/ErrorScreen.tsx:75 +msgctxt "action" +msgid "Try again" +msgstr "Tekrar dene" + +#: src/view/screens/ProfileList.tsx:505 +msgid "Un-block list" +msgstr "Listeyi engeli kaldır" + +#: src/view/screens/ProfileList.tsx:490 +msgid "Un-mute list" +msgstr "Listeyi sessizden çıkar" + +#: src/view/com/auth/create/CreateAccount.tsx:66 +#: src/view/com/auth/login/ForgotPasswordForm.tsx:87 +#: src/view/com/auth/login/Login.tsx:76 +#: src/view/com/auth/login/LoginForm.tsx:120 +#: src/view/com/modals/ChangePassword.tsx:70 +msgid "Unable to contact your service. Please check your Internet connection." +msgstr "Hizmetinize ulaşılamıyor. Lütfen internet bağlantınızı kontrol edin." + +#: src/view/com/profile/ProfileHeader.tsx:472 +#: src/view/screens/ProfileList.tsx:589 +msgid "Unblock" +msgstr "Engeli kaldır" + +#: src/view/com/profile/ProfileHeader.tsx:475 +msgctxt "action" +msgid "Unblock" +msgstr "Engeli kaldır" + +#: src/view/com/profile/ProfileHeader.tsx:308 +#: src/view/com/profile/ProfileHeader.tsx:392 +msgid "Unblock Account" +msgstr "Hesabın engelini kaldır" + +#: src/view/com/modals/Repost.tsx:42 src/view/com/modals/Repost.tsx:55 +#: src/view/com/util/post-ctrls/RepostButton.tsx:60 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:48 +msgid "Undo repost" +msgstr "Yeniden göndermeyi geri al" + +#: src/view/com/profile/FollowButton.tsx:55 +msgctxt "action" +msgid "Unfollow" +msgstr "Takibi bırak" + +#: src/view/com/profile/ProfileHeader.tsx:524 +msgid "Unfollow {0}" +msgstr "{0} adresini takibi bırak" + +#: src/view/com/auth/create/state.ts:300 +msgid "Unfortunately, you do not meet the requirements to create an account." +msgstr "Üzgünüz, bir hesap oluşturmak için gerekleri karşılamıyorsunuz." + +#: src/view/com/util/post-ctrls/PostCtrls.tsx:170 +msgid "Unlike" +msgstr "Beğenmeyi geri al" + +#: src/view/screens/ProfileList.tsx:596 +msgid "Unmute" +msgstr "Sessizden çıkar" + +#: src/view/com/profile/ProfileHeader.tsx:373 +msgid "Unmute Account" +msgstr "Hesabın sessizliğini kaldır" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:171 +msgid "Unmute thread" +msgstr "Konunun sessizliğini kaldır" + +#: src/view/screens/ProfileFeed.tsx:353 src/view/screens/ProfileList.tsx:580 +msgid "Unpin" +msgstr "Sabitlemeyi kaldır" + +#: src/view/screens/ProfileList.tsx:473 +msgid "Unpin moderation list" +msgstr "Moderasyon listesini sabitlemeyi kaldır" + +#: src/view/screens/ProfileFeed.tsx:345 +msgid "Unsave" +msgstr "Kaydedilenlerden kaldır" + +#: src/view/com/modals/UserAddRemoveLists.tsx:70 +msgid "Update {displayName} in Lists" +msgstr "Listelerde {displayName} güncelle" + +#: src/lib/hooks/useOTAUpdate.ts:15 +msgid "Update Available" +msgstr "Güncelleme Mevcut" + +#: src/view/com/auth/login/SetNewPasswordForm.tsx:204 +msgid "Updating..." +msgstr "Güncelleniyor..." + +#: src/view/com/modals/ChangeHandle.tsx:455 +msgid "Upload a text file to:" +msgstr "Bir metin dosyası yükleyin:" + +#: src/view/screens/AppPasswords.tsx:195 +msgid "Use app passwords to login to other Bluesky clients without giving full access to your account or password." +msgstr "Uygulama şifrelerini kullanarak hesabınızın veya şifrenizin tam erişimini vermeden diğer Bluesky istemcilerine giriş yapın." + +#: src/view/com/modals/ChangeHandle.tsx:515 +msgid "Use default provider" +msgstr "Varsayılan sağlayıcıyı kullan" + +#: src/view/com/modals/InAppBrowserConsent.tsx:56 +#: src/view/com/modals/InAppBrowserConsent.tsx:58 +msgid "Use in-app browser" +msgstr "Uygulama içi tarayıcıyı kullan" + +#: src/view/com/modals/InAppBrowserConsent.tsx:66 +#: src/view/com/modals/InAppBrowserConsent.tsx:68 +msgid "Use my default browser" +msgstr "Varsayılan tarayıcımı kullan" + +#: src/view/com/modals/AddAppPasswords.tsx:155 +msgid "Use this to sign into the other app along with your handle." +msgstr "Bunu, kullanıcı adınızla birlikte diğer uygulamaya giriş yapmak için kullanın." + +#: src/view/com/modals/ServerInput.tsx:105 +msgid "Use your domain as your Bluesky client service provider" +msgstr "Alan adınızı Bluesky istemci sağlayıcınız olarak kullanın" + +#: src/view/com/modals/InviteCodes.tsx:200 +msgid "Used by:" +msgstr "Kullanıcı:" + +#: src/view/com/modals/ModerationDetails.tsx:54 +msgid "User Blocked" +msgstr "Kullanıcı Engellendi" + +#: src/view/com/modals/ModerationDetails.tsx:40 +msgid "User Blocked by List" +msgstr "Liste Tarafından Engellenen Kullanıcı" + +#: src/view/com/modals/ModerationDetails.tsx:60 +msgid "User Blocks You" +msgstr "Kullanıcı Sizi Engelledi" + +#: src/view/com/auth/create/Step3.tsx:41 +msgid "User handle" +msgstr "Kullanıcı adı" + +#: src/view/com/lists/ListCard.tsx:84 +#: src/view/com/modals/UserAddRemoveLists.tsx:198 +msgid "User list by {0}" +msgstr "{0} tarafından oluşturulan kullanıcı listesi" + +#: src/view/screens/ProfileList.tsx:762 +msgid "User list by <0/>" +msgstr "<0/> tarafından oluşturulan kullanıcı listesi" + +#: src/view/com/lists/ListCard.tsx:82 +#: src/view/com/modals/UserAddRemoveLists.tsx:196 +#: src/view/screens/ProfileList.tsx:760 +msgid "User list by you" +msgstr "Sizin tarafınızdan oluşturulan kullanıcı listesi" + +#: src/view/com/modals/CreateOrEditList.tsx:196 +msgid "User list created" +msgstr "Kullanıcı listesi oluşturuldu" + +#: src/view/com/modals/CreateOrEditList.tsx:182 +msgid "User list updated" +msgstr "Kullanıcı listesi güncellendi" + +#: src/view/screens/Lists.tsx:58 +msgid "User Lists" +msgstr "Kullanıcı Listeleri" + +#: src/view/com/auth/login/LoginForm.tsx:174 +#: src/view/com/auth/login/LoginForm.tsx:192 +msgid "Username or email address" +msgstr "Kullanıcı adı veya e-posta adresi" + +#: src/view/screens/ProfileList.tsx:796 +msgid "Users" +msgstr "Kullanıcılar" + +#: src/view/com/threadgate/WhoCanReply.tsx:143 +msgid "users followed by <0/>" +msgstr "<0/> tarafından takip edilen kullanıcılar" + +#: src/view/com/modals/Threadgate.tsx:106 +msgid "Users in \"{0}\"" +msgstr "\"{0}\" içindeki kullanıcılar" + +#: src/view/com/auth/create/Step2.tsx:243 +msgid "Verification code" +msgstr "Doğrulama kodu" + +#: src/view/screens/Settings.tsx:892 +msgid "Verify email" +msgstr "E-postayı doğrula" + +#: src/view/screens/Settings.tsx:917 +msgid "Verify my email" +msgstr "E-postamı doğrula" + +#: src/view/screens/Settings.tsx:926 +msgid "Verify My Email" +msgstr "E-postamı Doğrula" + +#: src/view/com/modals/ChangeEmail.tsx:205 +#: src/view/com/modals/ChangeEmail.tsx:207 +msgid "Verify New Email" +msgstr "Yeni E-postayı Doğrula" + +#: src/view/com/modals/VerifyEmail.tsx:103 +msgid "Verify Your Email" +msgstr "E-postanızı Doğrulayın" + +#: src/screens/Onboarding/index.tsx:42 +msgid "Video Games" +msgstr "Video Oyunları" + +#: src/view/com/profile/ProfileHeader.tsx:701 +msgid "View {0}'s avatar" +msgstr "{0}'ın avatarını görüntüle" + +#: src/view/screens/Log.tsx:52 +msgid "View debug entry" +msgstr "Hata ayıklama girişini görüntüle" + +#: src/view/com/posts/FeedSlice.tsx:103 +msgid "View full thread" +msgstr "Tam konuyu görüntüle" + +#: src/view/com/posts/FeedErrorMessage.tsx:172 +msgid "View profile" +msgstr "Profili görüntüle" + +#: src/view/com/profile/ProfileSubpageHeader.tsx:128 +msgid "View the avatar" +msgstr "Avatarı görüntüle" + +#: src/view/com/modals/LinkWarning.tsx:75 +msgid "Visit Site" +msgstr "Siteyi Ziyaret Et" + +#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:42 +#: src/view/com/modals/ContentFilteringSettings.tsx:254 +msgid "Warn" +msgstr "Uyar" + +#: src/screens/Onboarding/StepAlgoFeeds/index.tsx:124 +msgid "We also think you'll like \"For You\" by Skygaze:" +msgstr "Ayrıca Skygaze tarafından \"Sana Özel\" beslemesini de beğeneceğinizi düşünüyoruz:" + +#: src/screens/Deactivated.tsx:134 +msgid "We estimate {estimatedTime} until your account is ready." +msgstr "Hesabınızın hazır olmasına {estimatedTime} tahmin ediyoruz." + +#: src/screens/Onboarding/StepFinished.tsx:93 +msgid "We hope you have a wonderful time. Remember, Bluesky is:" +msgstr "Harika vakit geçirmenizi umuyoruz. Unutmayın, Bluesky:" + +#: src/view/com/posts/DiscoverFallbackHeader.tsx:29 +msgid "We ran out of posts from your follows. Here's the latest from <0/>." +msgstr "Takipçilerinizden gönderi kalmadı. İşte <0/>'den en son gönderiler." + +#: src/screens/Onboarding/StepAlgoFeeds/index.tsx:119 +msgid "We recommend our \"Discover\" feed:" +msgstr "\"Keşfet\" beslememizi öneririz:" + +#: src/screens/Onboarding/StepInterests/index.tsx:133 +msgid "We weren't able to connect. Please try again to continue setting up your account. If it continues to fail, you can skip this flow." +msgstr "Bağlantı kuramadık. Hesabınızı kurmaya devam etmek için tekrar deneyin. Başarısız olmaya devam ederse bu akışı atlayabilirsiniz." + +#: src/screens/Deactivated.tsx:138 +msgid "We will let you know when your account is ready." +msgstr "Hesabınız hazır olduğunda size bildireceğiz." + +#: src/view/com/modals/AppealLabel.tsx:48 +msgid "We'll look into your appeal promptly." +msgstr "İtirazınıza hızlı bir şekilde bakacağız." + +#: src/screens/Onboarding/StepInterests/index.tsx:138 +msgid "We'll use this to help customize your experience." +msgstr "Bu, deneyiminizi özelleştirmenize yardımcı olmak için kullanılacak." + +#: src/view/com/auth/create/CreateAccount.tsx:123 +msgid "We're so excited to have you join us!" +msgstr "Sizi aramızda görmekten çok mutluyuz!" + +#: src/view/screens/ProfileList.tsx:85 +msgid "We're sorry, but we were unable to resolve this list. If this persists, please contact the list creator, @{handleOrDid}." +msgstr "Üzgünüz, ancak bu listeyi çözemedik. Bu durum devam ederse, lütfen liste oluşturucu, @{handleOrDid} ile iletişime geçin." + +#: src/view/screens/Search/Search.tsx:253 +msgid "We're sorry, but your search could not be completed. Please try again in a few minutes." +msgstr "Üzgünüz, ancak aramanız tamamlanamadı. Lütfen birkaç dakika içinde tekrar deneyin." + +#: src/view/screens/NotFound.tsx:48 +msgid "We're sorry! We can't find the page you were looking for." +msgstr "Üzgünüz! Aradığınız sayfayı bulamıyoruz." + +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:46 +msgid "Welcome to <0>Bluesky" +msgstr "<0>Bluesky'e hoş geldiniz" + +#: src/screens/Onboarding/StepInterests/index.tsx:130 +msgid "What are your interests?" +msgstr "İlgi alanlarınız nelerdir?" + +#: src/view/com/modals/report/Modal.tsx:169 +msgid "What is the issue with this {collectionName}?" +msgstr "Bu {collectionName} ile ilgili sorun nedir?" + +#: src/view/com/auth/SplashScreen.tsx:34 src/view/com/composer/Composer.tsx:279 +msgid "What's up?" +msgstr "Nasılsınız?" + +#: src/view/com/modals/lang-settings/PostLanguagesSettings.tsx:78 +msgid "Which languages are used in this post?" +msgstr "Bu gönderide hangi diller kullanılıyor?" + +#: src/view/com/modals/lang-settings/ContentLanguagesSettings.tsx:77 +msgid "Which languages would you like to see in your algorithmic feeds?" +msgstr "Algoritmik beslemelerinizde hangi dilleri görmek istersiniz?" + +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:47 +#: src/view/com/modals/Threadgate.tsx:66 +msgid "Who can reply" +msgstr "Kimler yanıtlayabilir" + +#: src/view/com/modals/crop-image/CropImage.web.tsx:102 +msgid "Wide" +msgstr "Geniş" + +#: src/view/com/composer/Composer.tsx:415 +msgid "Write post" +msgstr "Gönderi yaz" + +#: src/view/com/composer/Composer.tsx:278 src/view/com/composer/Prompt.tsx:33 +msgid "Write your reply" +msgstr "Yanıtınızı yazın" + +#: src/screens/Onboarding/index.tsx:28 +msgid "Writers" +msgstr "Yazarlar" + +#: src/view/com/auth/create/Step2.tsx:263 +msgid "XXXXXX" +msgstr "XXXXXX" + +#: src/view/com/composer/select-language/SuggestedLanguage.tsx:77 +#: src/view/screens/PreferencesHomeFeed.tsx:129 +#: src/view/screens/PreferencesHomeFeed.tsx:201 +#: src/view/screens/PreferencesHomeFeed.tsx:236 +#: src/view/screens/PreferencesHomeFeed.tsx:271 +#: src/view/screens/PreferencesThreads.tsx:106 +#: src/view/screens/PreferencesThreads.tsx:129 +msgid "Yes" +msgstr "Evet" + +#: src/screens/Deactivated.tsx:131 +msgid "You are in line." +msgstr "Sıradasınız." + +#: src/view/com/posts/FollowingEmptyState.tsx:67 +#: src/view/com/posts/FollowingEndOfFeed.tsx:68 +msgid "You can also discover new Custom Feeds to follow." +msgstr "Ayrıca takip edebileceğiniz yeni Özel Beslemeler keşfedebilirsiniz." + +#: src/screens/Onboarding/StepFollowingFeed.tsx:142 +msgid "You can change these settings later." +msgstr "Bu ayarları daha sonra değiştirebilirsiniz." + +#: src/view/com/auth/login/Login.tsx:158 +#: src/view/com/auth/login/PasswordUpdatedForm.tsx:31 +msgid "You can now sign in with your new password." +msgstr "Artık yeni şifrenizle giriş yapabilirsiniz." + +#: src/view/com/modals/InviteCodes.tsx:66 +msgid "You don't have any invite codes yet! We'll send you some when you've been on Bluesky for a little longer." +msgstr "Henüz hiç davet kodunuz yok! Bluesky'de biraz daha uzun süre kaldıktan sonra size bazı kodlar göndereceğiz." + +#: src/view/screens/SavedFeeds.tsx:102 +msgid "You don't have any pinned feeds." +msgstr "Sabitlemiş beslemeniz yok." + +#: src/view/screens/Feeds.tsx:419 +msgid "You don't have any saved feeds!" +msgstr "Kaydedilmiş beslemeniz yok!" + +#: src/view/screens/SavedFeeds.tsx:135 +msgid "You don't have any saved feeds." +msgstr "Kaydedilmiş beslemeniz yok." + +#: src/view/com/post-thread/PostThread.tsx:406 +msgid "You have blocked the author or you have been blocked by the author." +msgstr "Yazarı engellediniz veya yazar tarafından engellendiniz." + +#: src/view/com/modals/ModerationDetails.tsx:56 +msgid "You have blocked this user. You cannot view their content." +msgstr "Bu kullanıcıyı engellediniz. İçeriklerini göremezsiniz." + +#: src/view/com/auth/login/SetNewPasswordForm.tsx:57 +#: src/view/com/auth/login/SetNewPasswordForm.tsx:92 +#: src/view/com/modals/ChangePassword.tsx:87 +#: src/view/com/modals/ChangePassword.tsx:121 +msgid "You have entered an invalid code. It should look like XXXXX-XXXXX." +msgstr "Geçersiz bir kod girdiniz. XXXXX-XXXXX gibi görünmelidir." + +#: src/view/com/modals/ModerationDetails.tsx:87 +msgid "You have muted this user." +msgstr "Bu kullanıcıyı sessize aldınız." + +#: src/view/com/feeds/ProfileFeedgens.tsx:136 +msgid "You have no feeds." +msgstr "Beslemeniz yok." + +#: src/view/com/lists/MyLists.tsx:89 src/view/com/lists/ProfileLists.tsx:140 +msgid "You have no lists." +msgstr "Listeniz yok." + +#: src/view/screens/ModerationBlockedAccounts.tsx:132 +msgid "You have not blocked any accounts yet. To block an account, go to their profile and selected \"Block account\" from the menu on their account." +msgstr "Henüz hiçbir hesabı engellemediniz. Bir hesabı engellemek için, profilinize gidin ve hesaplarının menüsünden \"Hesabı engelle\" seçeneğini seçin." + +#: src/view/screens/AppPasswords.tsx:87 +msgid "You have not created any app passwords yet. You can create one by pressing the button below." +msgstr "Henüz hiçbir uygulama şifresi oluşturmadınız. Aşağıdaki düğmeye basarak bir tane oluşturabilirsiniz." + +#: src/view/screens/ModerationMutedAccounts.tsx:131 +msgid "You have not muted any accounts yet. To mute an account, go to their profile and selected \"Mute account\" from the menu on their account." +msgstr "Henüz hiçbir hesabı sessize almadınız. Bir hesabı sessize almak için, profilinize gidin ve hesaplarının menüsünden \"Hesabı sessize al\" seçeneğini seçin." + +#: src/view/com/modals/ContentFilteringSettings.tsx:170 +msgid "You must be 18 or older to enable adult content." +msgstr "Yetişkin içeriği etkinleştirmek için 18 yaşında veya daha büyük olmalısınız." + +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:103 +msgid "You must be 18 years or older to enable adult content" +msgstr "Yetişkin içeriğini etkinleştirmek için 18 yaşında veya daha büyük olmalısınız" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:98 +msgid "You will no longer receive notifications for this thread" +msgstr "Artık bu konu için bildirim almayacaksınız" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:101 +msgid "You will now receive notifications for this thread" +msgstr "Artık bu konu için bildirim alacaksınız" + +#: src/view/com/auth/login/SetNewPasswordForm.tsx:107 +msgid "You will receive an email with a \"reset code.\" Enter that code here, then enter your new password." +msgstr "Bir \"sıfırlama kodu\" içeren bir e-posta alacaksınız. Bu kodu buraya girin, ardından yeni şifrenizi girin." + +#: src/screens/Onboarding/StepModeration/index.tsx:72 +msgid "You're in control" +msgstr "Siz kontrol ediyorsunuz" + +#: src/screens/Deactivated.tsx:88 src/screens/Deactivated.tsx:89 +#: src/screens/Deactivated.tsx:104 +msgid "You're in line" +msgstr "Sıradasınız" + +#: src/screens/Onboarding/StepFinished.tsx:90 +msgid "You're ready to go!" +msgstr "Hazırsınız!" + +#: src/view/com/posts/FollowingEndOfFeed.tsx:48 +msgid "You've reached the end of your feed! Find some more accounts to follow." +msgstr "Beslemenizin sonuna ulaştınız! Takip edebileceğiniz daha fazla hesap bulun." + +#: src/view/com/auth/create/Step1.tsx:67 +msgid "Your account" +msgstr "Hesabınız" + +#: src/view/com/modals/DeleteAccount.tsx:67 +msgid "Your account has been deleted" +msgstr "Hesabınız silindi" + +#: src/view/com/auth/create/Step1.tsx:182 +msgid "Your birth date" +msgstr "Doğum tarihiniz" + +#: src/view/com/modals/InAppBrowserConsent.tsx:47 +msgid "Your choice will be saved, but can be changed later in settings." +msgstr "Seçiminiz kaydedilecek, ancak daha sonra ayarlarda değiştirilebilir." + +#: src/screens/Onboarding/StepFollowingFeed.tsx:61 +msgid "Your default feed is \"Following\"" +msgstr "Varsayılan beslemeniz \"Takip Edilenler\"" + +#: src/view/com/auth/create/state.ts:153 +#: src/view/com/auth/login/ForgotPasswordForm.tsx:70 +#: src/view/com/modals/ChangePassword.tsx:54 +msgid "Your email appears to be invalid." +msgstr "E-postanız geçersiz gibi görünüyor." + +#: src/view/com/modals/Waitlist.tsx:109 +msgid "Your email has been saved! We'll be in touch soon." +msgstr "E-postanız kaydedildi! Yakında sizinle iletişime geçeceğiz." + +#: src/view/com/modals/ChangeEmail.tsx:125 +msgid "Your email has been updated but not verified. As a next step, please verify your new email." +msgstr "E-postanız güncellendi ancak doğrulanmadı. Bir sonraki adım olarak, lütfen yeni e-postanızı doğrulayın." + +#: src/view/com/modals/VerifyEmail.tsx:114 +msgid "Your email has not yet been verified. This is an important security step which we recommend." +msgstr "E-postanız henüz doğrulanmadı. Bu, önerdiğimiz önemli bir güvenlik adımıdır." + +#: src/view/com/posts/FollowingEmptyState.tsx:47 +msgid "Your following feed is empty! Follow more users to see what's happening." +msgstr "Takip ettiğiniz besleme boş! Neler olduğunu görmek için daha fazla kullanıcı takip edin." + +#: src/view/com/auth/create/Step3.tsx:45 +msgid "Your full handle will be" +msgstr "Tam kullanıcı adınız" + +#: src/view/com/modals/ChangeHandle.tsx:270 +msgid "Your full handle will be <0>@{0}" +msgstr "Tam kullanıcı adınız <0>@{0} olacak" + +#: src/view/screens/Settings.tsx:430 src/view/shell/desktop/RightNav.tsx:137 +#: src/view/shell/Drawer.tsx:660 +msgid "Your invite codes are hidden when logged in using an App Password" +msgstr "Uygulama Şifresi kullanarak giriş yaptığınızda davet kodlarınız gizlenir" + +#: src/view/com/modals/ChangePassword.tsx:155 +msgid "Your password has been changed successfully!" +msgstr "Şifreniz başarıyla değiştirildi!" + +#: src/view/com/composer/Composer.tsx:267 +msgid "Your post has been published" +msgstr "Gönderiniz yayınlandı" + +#: src/screens/Onboarding/StepFinished.tsx:105 +#: src/view/com/auth/onboarding/WelcomeDesktop.tsx:59 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:59 +msgid "Your posts, likes, and blocks are public. Mutes are private." +msgstr "Gönderileriniz, beğenileriniz ve engellemeleriniz herkese açıktır. Sessizlikleriniz özeldir." + +#: src/view/com/modals/SwitchAccount.tsx:84 src/view/screens/Settings.tsx:125 +msgid "Your profile" +msgstr "Profiliniz" + +#: src/view/com/composer/Composer.tsx:266 +msgid "Your reply has been published" +msgstr "Yanıtınız yayınlandı" + +#: src/view/com/auth/create/Step3.tsx:28 +msgid "Your user handle" +msgstr "Kullanıcı adınız" From a3c09f9f862a4b4abe43cbb6d1042369fb1e14ba Mon Sep 17 00:00:00 2001 From: Samuel Newman Date: Tue, 12 Mar 2024 21:57:56 +0000 Subject: [PATCH 002/222] add and configure import sort plugin --- .eslintrc.js | 14 +++++++++++++- package.json | 1 + yarn.lock | 5 +++++ 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/.eslintrc.js b/.eslintrc.js index 18802cdf18..b26bee1baf 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -7,10 +7,18 @@ module.exports = { 'prettier', ], parser: '@typescript-eslint/parser', - plugins: ['@typescript-eslint', 'detox', 'react', 'lingui'], + plugins: [ + '@typescript-eslint', + 'detox', + 'react', + 'lingui', + 'simple-import-sort', + ], rules: { 'react/no-unescaped-entities': 0, 'react-native/no-inline-styles': 0, + 'simple-import-sort/imports': 'error', + 'simple-import-sort/exports': 'error', }, ignorePatterns: [ '**/__mocks__/*.ts', @@ -31,4 +39,8 @@ module.exports = { settings: { componentWrapperFunctions: ['observer'], }, + parserOptions: { + sourceType: 'module', + ecmaVersion: 'latest', + }, } diff --git a/package.json b/package.json index 2571fe772d..4e7ad9387d 100644 --- a/package.json +++ b/package.json @@ -234,6 +234,7 @@ "eslint-plugin-lingui": "^0.2.0", "eslint-plugin-react": "^7.33.2", "eslint-plugin-react-native-a11y": "^3.3.0", + "eslint-plugin-simple-import-sort": "^12.0.0", "html-webpack-plugin": "^5.5.0", "husky": "^8.0.3", "is-ci": "^3.0.1", diff --git a/yarn.lock b/yarn.lock index d0ea946b6b..3e3ed0e223 100644 --- a/yarn.lock +++ b/yarn.lock @@ -11501,6 +11501,11 @@ eslint-plugin-react@^7.27.1, eslint-plugin-react@^7.30.1, eslint-plugin-react@^7 semver "^6.3.1" string.prototype.matchall "^4.0.8" +eslint-plugin-simple-import-sort@^12.0.0: + version "12.0.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-simple-import-sort/-/eslint-plugin-simple-import-sort-12.0.0.tgz#3cfa05d74509bd4dc329a956938823812194dbb6" + integrity sha512-8o0dVEdAkYap0Cn5kNeklaKcT1nUsa3LITWEuFk3nJifOoD+5JQGoyDUW2W/iPWwBsNBJpyJS9y4je/BgxLcyQ== + eslint-plugin-testing-library@^5.0.1: version "5.11.1" resolved "https://registry.yarnpkg.com/eslint-plugin-testing-library/-/eslint-plugin-testing-library-5.11.1.tgz#5b46cdae96d4a78918711c0b4792f90088e62d20" From 1512b5cf68e9e92801a894392569b444fd6af1d1 Mon Sep 17 00:00:00 2001 From: Samuel Newman Date: Tue, 12 Mar 2024 22:02:28 +0000 Subject: [PATCH 003/222] run linter --- src/App.native.tsx | 64 +++++----- src/App.web.tsx | 42 +++---- src/Navigation.tsx | 113 +++++++++--------- src/Splash.tsx | 14 +-- src/alf/atoms.ts | 2 +- src/alf/index.tsx | 7 +- src/alf/themes.ts | 2 +- src/alf/tokens.ts | 4 +- src/alf/types.ts | 2 +- src/alf/util/useColorModeTheme.ts | 8 +- src/components/Button.tsx | 14 +-- src/components/Dialog/context.ts | 2 +- src/components/Dialog/index.tsx | 23 ++-- src/components/Dialog/index.web.tsx | 19 ++- src/components/Dialog/types.ts | 2 +- src/components/Divider.tsx | 3 +- src/components/IconCircle.tsx | 8 +- src/components/Link.tsx | 18 +-- src/components/Lists.tsx | 13 +- src/components/Loader.tsx | 4 +- src/components/Menu/index.tsx | 19 ++- src/components/Menu/index.web.tsx | 17 ++- src/components/Menu/types.ts | 6 +- src/components/Prompt.tsx | 9 +- src/components/RichText.tsx | 14 +-- src/components/TagMenu/index.tsx | 20 ++-- src/components/TagMenu/index.web.tsx | 16 +-- src/components/Typography.tsx | 4 +- src/components/dialogs/MutedWords.tsx | 39 +++--- .../forms/DateField/index.android.tsx | 17 ++- src/components/forms/DateField/index.tsx | 8 +- src/components/forms/DateField/index.web.tsx | 6 +- src/components/forms/TextField.tsx | 12 +- src/components/forms/Toggle.tsx | 6 +- src/components/forms/ToggleButton.tsx | 7 +- src/components/icons/TEMPLATE.tsx | 2 +- src/components/icons/common.ts | 2 +- src/lib/ThemeContext.tsx | 6 +- .../__tests__/moderatePost_wrapped.test.ts | 2 +- src/lib/analytics/analytics.tsx | 9 +- src/lib/analytics/analytics.web.tsx | 7 +- src/lib/api/api-polyfill.ts | 2 +- src/lib/api/feed-manip.ts | 7 +- src/lib/api/feed/author.ts | 4 +- src/lib/api/feed/custom.ts | 6 +- src/lib/api/feed/following.ts | 4 +- src/lib/api/feed/home.ts | 8 +- src/lib/api/feed/likes.ts | 4 +- src/lib/api/feed/list.ts | 4 +- src/lib/api/feed/merge.ts | 14 ++- src/lib/api/index.ts | 8 +- src/lib/app-info.ts | 2 +- src/lib/embeds.ts | 2 +- src/lib/hooks/useAccountSwitcher.ts | 8 +- .../useAnimatedScrollHandler_FIXED.web.ts | 2 +- src/lib/hooks/useCustomPalette.ts | 4 +- src/lib/hooks/useDraggableScrollView.ts | 6 +- src/lib/hooks/useIntentHandler.ts | 4 +- src/lib/hooks/useIsKeyboardVisible.ts | 4 +- src/lib/hooks/useMinimalShellMode.tsx | 1 + src/lib/hooks/useNavigationDeduped.ts | 6 +- src/lib/hooks/useOTAUpdate.ts | 3 +- src/lib/hooks/usePalette.ts | 3 +- src/lib/hooks/usePermissions.ts | 2 +- src/lib/hooks/useSetTitle.ts | 4 +- src/lib/hooks/useTabFocusEffect.ts | 2 +- src/lib/hooks/useToggleMutationQueue.ts | 2 +- src/lib/hooks/useWebBodyScrollLock.ts | 1 + src/lib/hooks/useWebMediaQueries.tsx | 2 +- src/lib/hooks/useWebScrollRestoration.ts | 2 +- src/lib/icons.tsx | 2 +- src/lib/link-meta/bsky.ts | 10 +- src/lib/link-meta/link-meta.ts | 5 +- src/lib/media/image-sizes.ts | 2 +- src/lib/media/manip.ts | 11 +- src/lib/media/manip.web.ts | 5 +- src/lib/media/picker.e2e.tsx | 5 +- src/lib/media/picker.shared.ts | 3 +- src/lib/media/picker.tsx | 3 +- src/lib/media/picker.web.tsx | 3 +- src/lib/moderatePost_wrapped.ts | 8 +- src/lib/moderation.ts | 2 +- src/lib/notifications/notifications.ts | 10 +- src/lib/react-query.ts | 3 +- src/lib/routes/helpers.ts | 3 +- src/lib/routes/router.ts | 2 +- src/lib/sentry.ts | 2 +- src/lib/sharing.ts | 5 +- src/lib/statsig/statsig.tsx | 3 +- src/lib/statsig/statsig.web.tsx | 3 +- src/lib/strings/display-names.ts | 1 + src/lib/strings/embed-player.ts | 2 +- src/lib/strings/rich-text-helpers.ts | 1 + src/lib/strings/rich-text-manip.ts | 1 + src/lib/strings/url-helpers.ts | 2 +- src/lib/styles.ts | 3 +- src/lib/themes.ts | 7 +- src/locale/__tests__/helpers.test.ts | 2 +- src/locale/helpers.ts | 3 +- src/locale/i18n.ts | 17 ++- src/locale/i18n.web.ts | 4 +- src/locale/i18nProvider.tsx | 5 +- src/logger/__tests__/logger.test.ts | 2 +- src/logger/index.ts | 2 +- src/platform/detection.ts | 2 +- src/platform/urls.tsx | 1 + src/screens/Deactivated.tsx | 18 +-- src/screens/Hashtag.tsx | 31 ++--- src/screens/Onboarding/Layout.tsx | 26 ++-- .../Onboarding/StepAlgoFeeds/FeedCard.tsx | 15 ++- .../Onboarding/StepAlgoFeeds/index.tsx | 19 ++- src/screens/Onboarding/StepFinished.tsx | 25 ++-- src/screens/Onboarding/StepFollowingFeed.tsx | 25 ++-- .../StepInterests/InterestButton.tsx | 5 +- .../Onboarding/StepInterests/index.tsx | 29 +++-- .../AdultContentEnabledPref.tsx | 14 +-- .../StepModeration/ModerationOption.tsx | 14 +-- .../Onboarding/StepModeration/index.tsx | 19 ++- .../SuggestedAccountCard.tsx | 10 +- .../StepSuggestedAccounts/index.tsx | 25 ++-- src/screens/Onboarding/StepTopicalFeeds.tsx | 19 ++- src/screens/Onboarding/index.tsx | 15 ++- src/screens/Onboarding/util.ts | 1 + src/state/cache/post-shadow.ts | 10 +- src/state/cache/profile-shadow.ts | 12 +- src/state/dialogs/index.tsx | 1 + src/state/invites.tsx | 1 + src/state/lightbox.tsx | 3 +- src/state/modals/index.tsx | 7 +- src/state/models/media/gallery.ts | 7 +- src/state/models/media/image.e2e.ts | 8 +- src/state/models/media/image.ts | 13 +- src/state/muted-threads.tsx | 3 +- src/state/persisted/__tests__/index.test.ts | 6 +- src/state/persisted/__tests__/migrate.test.ts | 8 +- src/state/persisted/__tests__/schema.test.ts | 2 +- src/state/persisted/index.ts | 7 +- src/state/persisted/legacy.ts | 2 +- src/state/persisted/schema.ts | 1 + src/state/persisted/store.ts | 2 +- src/state/preferences/alt-text-required.tsx | 1 + .../preferences/external-embeds-prefs.tsx | 3 +- src/state/preferences/feed-tuners.tsx | 4 +- src/state/preferences/hidden-posts.tsx | 1 + src/state/preferences/in-app-browser.tsx | 14 ++- src/state/preferences/index.tsx | 5 +- src/state/preferences/languages.tsx | 3 +- src/state/queries/actor-autocomplete.ts | 11 +- src/state/queries/actor-search.ts | 2 +- src/state/queries/app-passwords.ts | 3 +- src/state/queries/feed.ts | 24 ++-- src/state/queries/handle.ts | 4 +- src/state/queries/invites.ts | 4 +- src/state/queries/list-members.ts | 4 +- src/state/queries/list-memberships.ts | 4 +- src/state/queries/list.ts | 16 +-- src/state/queries/my-blocked-accounts.ts | 2 +- src/state/queries/my-follows.ts | 4 +- src/state/queries/my-lists.ts | 4 +- src/state/queries/my-muted-accounts.ts | 2 +- src/state/queries/notifications/feed.ts | 18 +-- src/state/queries/notifications/types.ts | 2 +- src/state/queries/notifications/unread.tsx | 20 ++-- src/state/queries/notifications/util.ts | 18 +-- src/state/queries/post-feed.ts | 32 ++--- src/state/queries/post-liked-by.ts | 2 +- src/state/queries/post-reposted-by.ts | 2 +- src/state/queries/post-thread.ts | 11 +- src/state/queries/post.ts | 11 +- src/state/queries/preferences/const.ts | 4 +- src/state/queries/preferences/index.ts | 32 ++--- src/state/queries/preferences/moderation.ts | 4 +- src/state/queries/preferences/types.ts | 4 +- src/state/queries/profile-extra-info.ts | 2 +- src/state/queries/profile-feedgens.ts | 2 +- src/state/queries/profile-followers.ts | 2 +- src/state/queries/profile-follows.ts | 4 +- src/state/queries/profile-lists.ts | 3 +- src/state/queries/profile.ts | 26 ++-- src/state/queries/resolve-uri.ts | 7 +- src/state/queries/search-posts.ts | 5 +- src/state/queries/suggested-feeds.ts | 4 +- src/state/queries/suggested-follows.ts | 12 +- src/state/queries/util.ts | 2 +- src/state/session/index.tsx | 11 +- src/state/shell/color-mode.tsx | 1 + src/state/shell/composer.tsx | 3 +- src/state/shell/index.tsx | 13 +- src/state/shell/onboarding.tsx | 3 +- src/state/shell/reminders.ts | 6 +- src/state/shell/selected-feed.tsx | 3 +- src/state/util.ts | 4 +- src/view/com/auth/HomeLoggedOutCTA.tsx | 14 ++- src/view/com/auth/LoggedOut.tsx | 27 +++-- src/view/com/auth/Onboarding.tsx | 14 ++- src/view/com/auth/SplashScreen.tsx | 28 +++-- src/view/com/auth/SplashScreen.web.tsx | 28 +++-- src/view/com/auth/create/CaptchaWebView.tsx | 2 +- src/view/com/auth/create/CreateAccount.tsx | 25 ++-- src/view/com/auth/create/Policies.tsx | 11 +- src/view/com/auth/create/Step1.tsx | 35 +++--- src/view/com/auth/create/Step2.tsx | 24 ++-- src/view/com/auth/create/Step3.tsx | 20 ++-- src/view/com/auth/create/StepHeader.tsx | 5 +- src/view/com/auth/create/state.ts | 19 +-- src/view/com/auth/login/ChooseAccountForm.tsx | 20 ++-- .../com/auth/login/ForgotPasswordForm.tsx | 39 +++--- src/view/com/auth/login/Login.tsx | 22 ++-- src/view/com/auth/login/LoginForm.tsx | 39 +++--- .../com/auth/login/PasswordUpdatedForm.tsx | 11 +- .../com/auth/login/SetNewPasswordForm.tsx | 28 +++-- src/view/com/auth/login/styles.ts | 3 +- .../com/auth/onboarding/RecommendedFeeds.tsx | 22 ++-- .../auth/onboarding/RecommendedFeedsItem.tsx | 29 ++--- .../auth/onboarding/RecommendedFollows.tsx | 26 ++-- .../onboarding/RecommendedFollowsItem.tsx | 21 ++-- src/view/com/auth/onboarding/Welcome.tsx | 2 + .../com/auth/onboarding/WelcomeDesktop.tsx | 12 +- .../com/auth/onboarding/WelcomeMobile.tsx | 10 +- src/view/com/auth/server-input/index.tsx | 14 +-- src/view/com/auth/util/HelpTip.tsx | 6 +- src/view/com/auth/util/TextInput.tsx | 6 +- src/view/com/composer/Composer.tsx | 88 +++++++------- src/view/com/composer/ComposerReplyTo.tsx | 16 +-- src/view/com/composer/ExternalEmbed.tsx | 13 +- src/view/com/composer/Prompt.tsx | 16 +-- .../composer/char-progress/CharProgress.tsx | 9 +- src/view/com/composer/labels/LabelsBtn.tsx | 15 +-- src/view/com/composer/photos/Gallery.tsx | 23 ++-- .../com/composer/photos/OpenCameraBtn.tsx | 19 +-- .../com/composer/photos/SelectPhotoBtn.tsx | 14 +-- .../select-language/SelectLangBtn.tsx | 22 ++-- .../select-language/SuggestedLanguage.tsx | 24 ++-- .../com/composer/text-input/TextInput.tsx | 35 +++--- .../com/composer/text-input/TextInput.web.tsx | 32 ++--- .../text-input/mobile/Autocomplete.tsx | 12 +- .../composer/text-input/web/Autocomplete.tsx | 20 ++-- .../text-input/web/EmojiPicker.web.tsx | 3 +- .../composer/text-input/web/LinkDecorator.ts | 5 +- .../composer/text-input/web/TagDecorator.ts | 4 +- .../com/composer/threadgate/ThreadgateBtn.tsx | 13 +- src/view/com/composer/useExternalLinkFetch.ts | 17 +-- src/view/com/feeds/FeedPage.tsx | 34 +++--- src/view/com/feeds/FeedSourceCard.tsx | 32 ++--- src/view/com/feeds/ProfileFeedgens.tsx | 28 +++-- src/view/com/home/HomeHeader.tsx | 12 +- src/view/com/home/HomeHeaderLayout.web.tsx | 22 ++-- src/view/com/home/HomeHeaderLayoutMobile.tsx | 23 ++-- .../components/ImageDefaultHeader.tsx | 6 +- .../ImageItem/ImageItem.android.tsx | 14 +-- .../components/ImageItem/ImageItem.ios.tsx | 9 +- .../components/ImageItem/ImageItem.tsx | 1 + .../components/ImageItem/ImageLoading.tsx | 1 - .../ImageViewing/hooks/useImageDimensions.ts | 1 + src/view/com/lightbox/ImageViewing/index.tsx | 13 +- src/view/com/lightbox/Lightbox.tsx | 28 +++-- src/view/com/lightbox/Lightbox.web.tsx | 30 ++--- src/view/com/lists/ListCard.tsx | 22 ++-- src/view/com/lists/ListMembers.tsx | 28 +++-- src/view/com/lists/MyLists.tsx | 20 ++-- src/view/com/lists/ProfileLists.tsx | 26 ++-- src/view/com/modals/AddAppPasswords.tsx | 24 ++-- src/view/com/modals/AltImage.tsx | 34 +++--- src/view/com/modals/AppealLabel.tsx | 20 ++-- src/view/com/modals/BirthDateSettings.tsx | 26 ++-- src/view/com/modals/ChangeEmail.tsx | 26 ++-- src/view/com/modals/ChangeHandle.tsx | 42 +++---- src/view/com/modals/ChangePassword.tsx | 34 +++--- src/view/com/modals/Confirm.tsx | 18 +-- .../com/modals/ContentFilteringSettings.tsx | 36 +++--- src/view/com/modals/CreateOrEditList.tsx | 48 ++++---- src/view/com/modals/DeleteAccount.tsx | 32 ++--- src/view/com/modals/EditImage.tsx | 34 +++--- src/view/com/modals/EditProfile.tsx | 42 +++---- src/view/com/modals/EmbedConsent.tsx | 16 +-- src/view/com/modals/InAppBrowserConsent.tsx | 16 +-- src/view/com/modals/InviteCodes.tsx | 42 +++---- src/view/com/modals/LinkWarning.tsx | 20 ++-- src/view/com/modals/ListAddRemoveUsers.tsx | 40 ++++--- src/view/com/modals/Modal.tsx | 49 ++++---- src/view/com/modals/Modal.web.tsx | 47 ++++---- src/view/com/modals/ModerationDetails.tsx | 20 ++-- src/view/com/modals/Repost.tsx | 16 +-- src/view/com/modals/SelfLabel.tsx | 18 +-- src/view/com/modals/SwitchAccount.tsx | 30 ++--- src/view/com/modals/Threadgate.tsx | 20 ++-- src/view/com/modals/UserAddRemoveLists.tsx | 32 ++--- src/view/com/modals/VerifyEmail.tsx | 32 ++--- .../com/modals/crop-image/CropImage.web.tsx | 21 ++-- .../lang-settings/ConfirmLanguagesButton.tsx | 12 +- .../ContentLanguagesSettings.tsx | 18 +-- .../modals/lang-settings/LanguageToggle.tsx | 5 +- .../lang-settings/PostLanguagesSettings.tsx | 18 +-- .../com/modals/report/InputIssueDetails.tsx | 15 +-- src/view/com/modals/report/Modal.tsx | 24 ++-- src/view/com/modals/report/ReasonOptions.tsx | 8 +- .../com/modals/report/SendReportButton.tsx | 9 +- src/view/com/notifications/Feed.tsx | 26 ++-- src/view/com/notifications/FeedItem.tsx | 52 ++++---- src/view/com/pager/Pager.tsx | 4 +- src/view/com/pager/Pager.web.tsx | 2 +- src/view/com/pager/PagerWithHeader.tsx | 16 +-- src/view/com/pager/PagerWithHeader.web.tsx | 4 +- src/view/com/pager/TabBar.tsx | 12 +- src/view/com/post-thread/PostLikedBy.tsx | 18 +-- src/view/com/post-thread/PostRepostedBy.tsx | 18 +-- src/view/com/post-thread/PostThread.tsx | 60 +++++----- .../com/post-thread/PostThreadFollowBtn.tsx | 20 ++-- src/view/com/post-thread/PostThreadItem.tsx | 68 ++++++----- src/view/com/post/Post.tsx | 40 ++++--- src/view/com/posts/CustomFeedEmptyState.tsx | 15 +-- src/view/com/posts/DiscoverFallbackHeader.tsx | 8 +- src/view/com/posts/Feed.tsx | 36 +++--- src/view/com/posts/FeedErrorMessage.tsx | 24 ++-- src/view/com/posts/FeedItem.tsx | 46 +++---- src/view/com/posts/FeedSlice.tsx | 12 +- src/view/com/posts/FollowingEmptyState.tsx | 15 +-- src/view/com/posts/FollowingEndOfFeed.tsx | 15 +-- src/view/com/profile/FollowButton.tsx | 12 +- src/view/com/profile/ProfileCard.tsx | 28 +++-- src/view/com/profile/ProfileFollowers.tsx | 18 +-- src/view/com/profile/ProfileFollows.tsx | 18 +-- src/view/com/profile/ProfileHeader.tsx | 76 ++++++------ .../profile/ProfileHeaderSuggestedFollows.tsx | 27 +++-- src/view/com/profile/ProfileMenu.tsx | 31 ++--- src/view/com/profile/ProfileSubpageHeader.tsx | 28 +++-- src/view/com/testing/TestCtrls.e2e.tsx | 8 +- src/view/com/threadgate/WhoCanReply.tsx | 17 +-- src/view/com/util/AccountDropdownBtn.tsx | 16 +-- src/view/com/util/BlurView.android.tsx | 2 +- src/view/com/util/BlurView.web.tsx | 2 +- .../com/util/BottomSheetCustomBackdrop.tsx | 4 +- src/view/com/util/EmptyState.tsx | 9 +- src/view/com/util/EmptyStateWithButton.tsx | 11 +- src/view/com/util/ErrorBoundary.tsx | 6 +- src/view/com/util/FeedInfoText.tsx | 8 +- src/view/com/util/Html.tsx | 13 +- src/view/com/util/Link.tsx | 46 +++---- src/view/com/util/List.tsx | 8 +- src/view/com/util/List.web.tsx | 11 +- src/view/com/util/LoadMoreRetryBtn.tsx | 7 +- src/view/com/util/LoadingPlaceholder.tsx | 20 ++-- src/view/com/util/LoadingScreen.tsx | 3 +- src/view/com/util/MainScrollProvider.tsx | 11 +- src/view/com/util/PostMeta.tsx | 22 ++-- src/view/com/util/PressableWithHover.tsx | 8 +- src/view/com/util/Selector.tsx | 9 +- src/view/com/util/SimpleViewHeader.tsx | 18 +-- src/view/com/util/TimeElapsed.tsx | 3 +- src/view/com/util/Toast.tsx | 14 ++- src/view/com/util/Toast.web.tsx | 4 +- src/view/com/util/UserAvatar.tsx | 35 +++--- src/view/com/util/UserBanner.tsx | 25 ++-- src/view/com/util/UserInfoText.tsx | 18 +-- src/view/com/util/UserPreviewLink.tsx | 8 +- src/view/com/util/ViewHeader.tsx | 20 ++-- src/view/com/util/ViewSelector.tsx | 17 +-- src/view/com/util/Views.web.tsx | 6 +- .../com/util/anim/TriggerableAnimated.tsx | 2 +- src/view/com/util/error/ErrorMessage.tsx | 19 +-- src/view/com/util/error/ErrorScreen.tsx | 17 +-- src/view/com/util/fab/FAB.web.tsx | 3 +- src/view/com/util/fab/FABInner.tsx | 11 +- src/view/com/util/forms/Button.tsx | 17 +-- src/view/com/util/forms/DateInput.tsx | 15 +-- src/view/com/util/forms/DateInput.web.tsx | 4 +- src/view/com/util/forms/DropdownButton.tsx | 19 +-- src/view/com/util/forms/NativeDropdown.tsx | 14 +-- .../com/util/forms/NativeDropdown.web.tsx | 10 +- src/view/com/util/forms/PostDropdownBtn.tsx | 59 ++++----- src/view/com/util/forms/RadioButton.tsx | 5 +- src/view/com/util/forms/RadioGroup.tsx | 5 +- src/view/com/util/forms/SearchInput.tsx | 20 ++-- src/view/com/util/forms/SelectableBtn.tsx | 7 +- src/view/com/util/forms/ToggleButton.tsx | 9 +- src/view/com/util/images/AutoSizedImage.tsx | 12 +- src/view/com/util/images/Gallery.tsx | 6 +- src/view/com/util/images/Image.tsx | 2 +- src/view/com/util/images/Image.web.tsx | 2 +- src/view/com/util/images/ImageHorzList.tsx | 4 +- src/view/com/util/images/ImageLayoutGrid.tsx | 5 +- src/view/com/util/layouts/LoggedOutLayout.tsx | 7 +- .../com/util/layouts/TitleColumnLayout.tsx | 4 +- src/view/com/util/layouts/withBreakpoints.tsx | 4 +- .../com/util/load-latest/LoadLatestBtn.tsx | 12 +- src/view/com/util/moderation/ContentHider.tsx | 16 +-- src/view/com/util/moderation/LabelInfo.tsx | 10 +- src/view/com/util/moderation/PostAlerts.tsx | 12 +- src/view/com/util/moderation/PostHider.tsx | 18 +-- .../util/moderation/ProfileHeaderAlerts.tsx | 14 ++- src/view/com/util/moderation/ScreenHider.tsx | 32 ++--- src/view/com/util/post-ctrls/PostCtrls.tsx | 48 ++++---- src/view/com/util/post-ctrls/RepostButton.tsx | 18 +-- .../com/util/post-ctrls/RepostButton.web.tsx | 19 +-- .../com/util/post-embeds/ExternalGifEmbed.tsx | 15 +-- .../util/post-embeds/ExternalLinkEmbed.tsx | 15 +-- .../util/post-embeds/ExternalPlayerEmbed.tsx | 25 ++-- src/view/com/util/post-embeds/ListEmbed.tsx | 6 +- src/view/com/util/post-embeds/QuoteEmbed.tsx | 30 ++--- src/view/com/util/post-embeds/index.tsx | 42 +++---- src/view/com/util/text/RichText.tsx | 18 +-- src/view/com/util/text/Text.tsx | 6 +- src/view/com/util/text/ThemedText.tsx | 5 +- src/view/icons/Logo.tsx | 4 +- src/view/icons/Logotype.tsx | 2 +- src/view/icons/index.tsx | 73 ++++++----- src/view/screens/AppPasswords.tsx | 34 +++--- src/view/screens/CommunityGuidelines.tsx | 18 +-- src/view/screens/CopyrightPolicy.tsx | 18 +-- src/view/screens/Debug.tsx | 27 +++-- src/view/screens/Feeds.tsx | 63 +++++----- src/view/screens/Home.tsx | 28 +++-- src/view/screens/LanguageSettings.tsx | 32 ++--- src/view/screens/Lists.tsx | 25 ++-- src/view/screens/Log.tsx | 24 ++-- src/view/screens/Moderation.tsx | 44 +++---- .../screens/ModerationBlockedAccounts.tsx | 32 ++--- src/view/screens/ModerationModlists.tsx | 25 ++-- src/view/screens/ModerationMutedAccounts.tsx | 32 ++--- src/view/screens/NotFound.tsx | 20 ++-- src/view/screens/Notifications.tsx | 38 +++--- src/view/screens/PostLikedBy.tsx | 16 +-- src/view/screens/PostRepostedBy.tsx | 16 +-- src/view/screens/PostThread.tsx | 28 +++-- .../screens/PreferencesExternalEmbeds.tsx | 28 +++-- src/view/screens/PreferencesFollowingFeed.tsx | 18 +-- src/view/screens/PreferencesThreads.tsx | 20 ++-- src/view/screens/PrivacyPolicy.tsx | 18 +-- src/view/screens/Profile.tsx | 62 +++++----- src/view/screens/ProfileFeed.tsx | 91 +++++++------- src/view/screens/ProfileFeedLikedBy.tsx | 16 +-- src/view/screens/ProfileFollowers.tsx | 14 ++- src/view/screens/ProfileFollows.tsx | 14 ++- src/view/screens/ProfileList.tsx | 89 +++++++------- src/view/screens/SavedFeeds.tsx | 33 ++--- src/view/screens/Search/Search.tsx | 72 +++++------ src/view/screens/Settings/ExportCarDialog.tsx | 8 +- src/view/screens/Settings/index.tsx | 97 +++++++-------- src/view/screens/Storybook/Breakpoints.tsx | 4 +- src/view/screens/Storybook/Buttons.tsx | 4 +- src/view/screens/Storybook/Dialogs.tsx | 2 +- src/view/screens/Storybook/Forms.tsx | 6 +- src/view/screens/Storybook/Icons.tsx | 4 +- src/view/screens/Storybook/Links.tsx | 2 +- src/view/screens/Storybook/Menus.tsx | 4 +- src/view/screens/Storybook/Spacing.tsx | 2 +- src/view/screens/Storybook/Theming.tsx | 1 + src/view/screens/Storybook/Typography.tsx | 2 +- src/view/screens/Storybook/index.tsx | 20 ++-- src/view/screens/Support.tsx | 20 ++-- src/view/screens/TermsOfService.tsx | 18 +-- src/view/shell/Composer.tsx | 9 +- src/view/shell/Composer.web.tsx | 10 +- src/view/shell/Drawer.tsx | 69 +++++------ src/view/shell/NavSignupCard.tsx | 12 +- src/view/shell/bottom-bar/BottomBar.tsx | 44 +++---- src/view/shell/bottom-bar/BottomBarStyles.tsx | 2 +- src/view/shell/bottom-bar/BottomBarWeb.tsx | 28 +++-- .../createNativeStackNavigatorWithAuth.tsx | 25 ++-- src/view/shell/desktop/Feeds.tsx | 19 +-- src/view/shell/desktop/LeftNav.tsx | 60 +++++----- src/view/shell/desktop/RightNav.tsx | 20 ++-- src/view/shell/desktop/Search.tsx | 36 +++--- src/view/shell/index.tsx | 40 ++++--- src/view/shell/index.web.tsx | 30 ++--- 465 files changed, 3900 insertions(+), 3478 deletions(-) diff --git a/src/App.native.tsx b/src/App.native.tsx index eff8ab0997..fb97c0ea95 100644 --- a/src/App.native.tsx +++ b/src/App.native.tsx @@ -1,54 +1,54 @@ import 'react-native-url-polyfill/auto' import 'lib/sentry' // must be near top +import 'view/icons' -import React, {useState, useEffect} from 'react' -import {RootSiblingParent} from 'react-native-root-siblings' +import {msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {QueryClientProvider} from '@tanstack/react-query' import * as SplashScreen from 'expo-splash-screen' +import {StatusBar} from 'expo-status-bar' +import {useIntentHandler} from 'lib/hooks/useIntentHandler' +import * as notifications from 'lib/notifications/notifications' +import {queryClient} from 'lib/react-query' +import {s} from 'lib/styles' +import {ThemeProvider} from 'lib/ThemeContext' +import {isAndroid} from 'platform/detection' +import React, {useEffect, useState} from 'react' import {GestureHandlerRootView} from 'react-native-gesture-handler' -import {QueryClientProvider} from '@tanstack/react-query' +import {RootSiblingParent} from 'react-native-root-siblings' import { - SafeAreaProvider, initialWindowMetrics, + SafeAreaProvider, } from 'react-native-safe-area-context' - -import 'view/icons' - -import {ThemeProvider as Alf} from '#/alf' -import {useColorModeTheme} from '#/alf/util/useColorModeTheme' -import {init as initPersistedState} from '#/state/persisted' -import {listenSessionDropped} from './state/events' -import {ThemeProvider} from 'lib/ThemeContext' -import {s} from 'lib/styles' -import {Shell} from 'view/shell' -import * as notifications from 'lib/notifications/notifications' -import * as Toast from 'view/com/util/Toast' -import {queryClient} from 'lib/react-query' -import {TestCtrls} from 'view/com/testing/TestCtrls' -import {Provider as ShellStateProvider} from 'state/shell' -import {Provider as ModalStateProvider} from 'state/modals' import {Provider as DialogStateProvider} from 'state/dialogs' +import {Provider as InvitesStateProvider} from 'state/invites' import {Provider as LightboxStateProvider} from 'state/lightbox' +import {Provider as ModalStateProvider} from 'state/modals' import {Provider as MutedThreadsProvider} from 'state/muted-threads' -import {Provider as InvitesStateProvider} from 'state/invites' import {Provider as PrefsStateProvider} from 'state/preferences' -import {Provider as LoggedOutViewProvider} from 'state/shell/logged-out' -import {Provider as SelectedFeedProvider} from 'state/shell/selected-feed' -import I18nProvider from './locale/i18nProvider' +import {Provider as UnreadNotifsProvider} from 'state/queries/notifications/unread' import { Provider as SessionProvider, useSession, useSessionApi, } from 'state/session' -import {Provider as UnreadNotifsProvider} from 'state/queries/notifications/unread' -import * as persisted from '#/state/persisted' -import {Splash} from '#/Splash' +import {Provider as ShellStateProvider} from 'state/shell' +import {Provider as LoggedOutViewProvider} from 'state/shell/logged-out' +import {Provider as SelectedFeedProvider} from 'state/shell/selected-feed' +import {TestCtrls} from 'view/com/testing/TestCtrls' +import * as Toast from 'view/com/util/Toast' +import {Shell} from 'view/shell' + +import {ThemeProvider as Alf} from '#/alf' +import {useColorModeTheme} from '#/alf/util/useColorModeTheme' import {Provider as PortalProvider} from '#/components/Portal' import {Provider as StatsigProvider} from '#/lib/statsig/statsig' -import {msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {useIntentHandler} from 'lib/hooks/useIntentHandler' -import {StatusBar} from 'expo-status-bar' -import {isAndroid} from 'platform/detection' +import {Splash} from '#/Splash' +import {init as initPersistedState} from '#/state/persisted' +import * as persisted from '#/state/persisted' + +import I18nProvider from './locale/i18nProvider' +import {listenSessionDropped} from './state/events' SplashScreen.preventAutoHideAsync() diff --git a/src/App.web.tsx b/src/App.web.tsx index eb2e425930..b53c61b778 100644 --- a/src/App.web.tsx +++ b/src/App.web.tsx @@ -1,39 +1,39 @@ import 'lib/sentry' // must be near top - -import React, {useState, useEffect} from 'react' -import {QueryClientProvider} from '@tanstack/react-query' -import {SafeAreaProvider} from 'react-native-safe-area-context' -import {RootSiblingParent} from 'react-native-root-siblings' - import 'view/icons' -import {ThemeProvider as Alf} from '#/alf' -import {useColorModeTheme} from '#/alf/util/useColorModeTheme' -import {init as initPersistedState} from '#/state/persisted' -import {Shell} from 'view/shell/index' -import {ToastContainer} from 'view/com/util/Toast.web' -import {ThemeProvider} from 'lib/ThemeContext' +import {QueryClientProvider} from '@tanstack/react-query' +import {useIntentHandler} from 'lib/hooks/useIntentHandler' import {queryClient} from 'lib/react-query' -import {Provider as ShellStateProvider} from 'state/shell' -import {Provider as ModalStateProvider} from 'state/modals' +import {ThemeProvider} from 'lib/ThemeContext' +import React, {useEffect, useState} from 'react' +import {RootSiblingParent} from 'react-native-root-siblings' +import {SafeAreaProvider} from 'react-native-safe-area-context' import {Provider as DialogStateProvider} from 'state/dialogs' +import {Provider as InvitesStateProvider} from 'state/invites' import {Provider as LightboxStateProvider} from 'state/lightbox' +import {Provider as ModalStateProvider} from 'state/modals' import {Provider as MutedThreadsProvider} from 'state/muted-threads' -import {Provider as InvitesStateProvider} from 'state/invites' import {Provider as PrefsStateProvider} from 'state/preferences' -import {Provider as LoggedOutViewProvider} from 'state/shell/logged-out' -import {Provider as SelectedFeedProvider} from 'state/shell/selected-feed' -import I18nProvider from './locale/i18nProvider' +import {Provider as UnreadNotifsProvider} from 'state/queries/notifications/unread' import { Provider as SessionProvider, useSession, useSessionApi, } from 'state/session' -import {Provider as UnreadNotifsProvider} from 'state/queries/notifications/unread' -import * as persisted from '#/state/persisted' +import {Provider as ShellStateProvider} from 'state/shell' +import {Provider as LoggedOutViewProvider} from 'state/shell/logged-out' +import {Provider as SelectedFeedProvider} from 'state/shell/selected-feed' +import {ToastContainer} from 'view/com/util/Toast.web' +import {Shell} from 'view/shell/index' + +import {ThemeProvider as Alf} from '#/alf' +import {useColorModeTheme} from '#/alf/util/useColorModeTheme' import {Provider as PortalProvider} from '#/components/Portal' import {Provider as StatsigProvider} from '#/lib/statsig/statsig' -import {useIntentHandler} from 'lib/hooks/useIntentHandler' +import {init as initPersistedState} from '#/state/persisted' +import * as persisted from '#/state/persisted' + +import I18nProvider from './locale/i18nProvider' function InnerApp() { const {isInitialLoad, currentAccount} = useSession() diff --git a/src/Navigation.tsx b/src/Navigation.tsx index 8a9f69b5de..4eb90a1d54 100644 --- a/src/Navigation.tsx +++ b/src/Navigation.tsx @@ -1,84 +1,85 @@ -import * as React from 'react' -import { - NavigationContainer, - createNavigationContainerRef, - CommonActions, - StackActions, - DefaultTheme, - DarkTheme, -} from '@react-navigation/native' +import {i18n, MessageDescriptor} from '@lingui/core' +import {msg} from '@lingui/macro' import { BottomTabBarProps, createBottomTabNavigator, } from '@react-navigation/bottom-tabs' import { - HomeTabNavigatorParams, - SearchTabNavigatorParams, + CommonActions, + createNavigationContainerRef, + DarkTheme, + DefaultTheme, + NavigationContainer, + StackActions, +} from '@react-navigation/native' +import {timeout} from 'lib/async/timeout' +import {useColorSchemeStyle} from 'lib/hooks/useColorSchemeStyle' +import {usePalette} from 'lib/hooks/usePalette' +import {buildStateObject} from 'lib/routes/helpers' +import { + AllNavigatorParams, + BottomTabNavigatorParams, FeedsTabNavigatorParams, - NotificationsTabNavigatorParams, FlatNavigatorParams, - AllNavigatorParams, + HomeTabNavigatorParams, MyProfileTabNavigatorParams, - BottomTabNavigatorParams, + NotificationsTabNavigatorParams, + SearchTabNavigatorParams, } from 'lib/routes/types' -import {BottomBar} from './view/shell/bottom-bar/BottomBar' -import {buildStateObject} from 'lib/routes/helpers' -import {State, RouteParams} from 'lib/routes/types' -import {isAndroid, isNative} from 'platform/detection' -import {useColorSchemeStyle} from 'lib/hooks/useColorSchemeStyle' -import {router} from './routes' -import {usePalette} from 'lib/hooks/usePalette' +import {RouteParams, State} from 'lib/routes/types' import {bskyTitle} from 'lib/strings/headings' +import {isAndroid, isNative} from 'platform/detection' +import * as React from 'react' import {JSX} from 'react/jsx-runtime' -import {timeout} from 'lib/async/timeout' +import {AppPasswords} from 'view/screens/AppPasswords' +import {ModerationBlockedAccounts} from 'view/screens/ModerationBlockedAccounts' +import {ModerationMutedAccounts} from 'view/screens/ModerationMutedAccounts' +import {PreferencesFollowingFeed} from 'view/screens/PreferencesFollowingFeed' +import {PreferencesThreads} from 'view/screens/PreferencesThreads' +import {SavedFeeds} from 'view/screens/SavedFeeds' + +import HashtagScreen from '#/screens/Hashtag' +import {PreferencesExternalEmbeds} from '#/view/screens/PreferencesExternalEmbeds' + +import {init as initAnalytics} from './lib/analytics/analytics' +import {useWebScrollRestoration} from './lib/hooks/useWebScrollRestoration' +import {logEvent} from './lib/statsig/statsig' +import {router} from './routes' +import {useModalControls} from './state/modals' import {useUnreadNotifications} from './state/queries/notifications/unread' import {useSession} from './state/session' -import {useModalControls} from './state/modals' import { - shouldRequestEmailConfirmation, setEmailConfirmationRequested, + shouldRequestEmailConfirmation, } from './state/shell/reminders' -import {init as initAnalytics} from './lib/analytics/analytics' -import {useWebScrollRestoration} from './lib/hooks/useWebScrollRestoration' - -import {HomeScreen} from './view/screens/Home' -import {SearchScreen} from './view/screens/Search' +import {CommunityGuidelinesScreen} from './view/screens/CommunityGuidelines' +import {CopyrightPolicyScreen} from './view/screens/CopyrightPolicy' import {FeedsScreen} from './view/screens/Feeds' -import {NotificationsScreen} from './view/screens/Notifications' +import {HomeScreen} from './view/screens/Home' +import {LanguageSettingsScreen} from './view/screens/LanguageSettings' import {ListsScreen} from './view/screens/Lists' +import {LogScreen} from './view/screens/Log' import {ModerationScreen} from './view/screens/Moderation' import {ModerationModlistsScreen} from './view/screens/ModerationModlists' import {NotFoundScreen} from './view/screens/NotFound' -import {SettingsScreen} from './view/screens/Settings' -import {LanguageSettingsScreen} from './view/screens/LanguageSettings' +import {NotificationsScreen} from './view/screens/Notifications' +import {PostLikedByScreen} from './view/screens/PostLikedBy' +import {PostRepostedByScreen} from './view/screens/PostRepostedBy' +import {PostThreadScreen} from './view/screens/PostThread' +import {PrivacyPolicyScreen} from './view/screens/PrivacyPolicy' import {ProfileScreen} from './view/screens/Profile' -import {ProfileFollowersScreen} from './view/screens/ProfileFollowers' -import {ProfileFollowsScreen} from './view/screens/ProfileFollows' import {ProfileFeedScreen} from './view/screens/ProfileFeed' import {ProfileFeedLikedByScreen} from './view/screens/ProfileFeedLikedBy' +import {ProfileFollowersScreen} from './view/screens/ProfileFollowers' +import {ProfileFollowsScreen} from './view/screens/ProfileFollows' import {ProfileListScreen} from './view/screens/ProfileList' -import {PostThreadScreen} from './view/screens/PostThread' -import {PostLikedByScreen} from './view/screens/PostLikedBy' -import {PostRepostedByScreen} from './view/screens/PostRepostedBy' +import {SearchScreen} from './view/screens/Search' +import {SettingsScreen} from './view/screens/Settings' import {Storybook} from './view/screens/Storybook' -import {LogScreen} from './view/screens/Log' import {SupportScreen} from './view/screens/Support' -import {PrivacyPolicyScreen} from './view/screens/PrivacyPolicy' import {TermsOfServiceScreen} from './view/screens/TermsOfService' -import {CommunityGuidelinesScreen} from './view/screens/CommunityGuidelines' -import {CopyrightPolicyScreen} from './view/screens/CopyrightPolicy' -import {AppPasswords} from 'view/screens/AppPasswords' -import {ModerationMutedAccounts} from 'view/screens/ModerationMutedAccounts' -import {ModerationBlockedAccounts} from 'view/screens/ModerationBlockedAccounts' -import {SavedFeeds} from 'view/screens/SavedFeeds' -import {PreferencesFollowingFeed} from 'view/screens/PreferencesFollowingFeed' -import {PreferencesThreads} from 'view/screens/PreferencesThreads' -import {PreferencesExternalEmbeds} from '#/view/screens/PreferencesExternalEmbeds' +import {BottomBar} from './view/shell/bottom-bar/BottomBar' import {createNativeStackNavigatorWithAuth} from './view/shell/createNativeStackNavigatorWithAuth' -import {msg} from '@lingui/macro' -import {i18n, MessageDescriptor} from '@lingui/core' -import HashtagScreen from '#/screens/Hashtag' -import {logEvent} from './lib/statsig/statsig' const navigationRef = createNavigationContainerRef() @@ -670,11 +671,11 @@ function logModuleInitTime() { } export { + FlatNavigator, + handleLink, navigate, - resetToTab, reset, - handleLink, - TabsNavigator, - FlatNavigator, + resetToTab, RoutesContainer, + TabsNavigator, } diff --git a/src/Splash.tsx b/src/Splash.tsx index 42a21c0839..e9c945d1b7 100644 --- a/src/Splash.tsx +++ b/src/Splash.tsx @@ -1,22 +1,22 @@ +import MaskedView from '@react-native-masked-view/masked-view' +import {Image} from 'expo-image' +import * as SplashScreen from 'expo-splash-screen' import React, {useCallback, useEffect} from 'react' import { - View, - StyleSheet, - Image as RNImage, AccessibilityInfo, + Image as RNImage, + StyleSheet, useColorScheme, + View, } from 'react-native' -import * as SplashScreen from 'expo-splash-screen' -import {Image} from 'expo-image' import Animated, { + Easing, interpolate, runOnJS, useAnimatedStyle, useSharedValue, withTiming, - Easing, } from 'react-native-reanimated' -import MaskedView from '@react-native-masked-view/masked-view' import {useSafeAreaInsets} from 'react-native-safe-area-context' import Svg, {Path, SvgProps} from 'react-native-svg' diff --git a/src/alf/atoms.ts b/src/alf/atoms.ts index fff3a4d8bd..8db70dc556 100644 --- a/src/alf/atoms.ts +++ b/src/alf/atoms.ts @@ -1,5 +1,5 @@ -import {web, native} from '#/alf/util/platform' import * as tokens from '#/alf/tokens' +import {native, web} from '#/alf/util/platform' export const atoms = { /* diff --git a/src/alf/index.tsx b/src/alf/index.tsx index 27738e91de..ae117747d7 100644 --- a/src/alf/index.tsx +++ b/src/alf/index.tsx @@ -1,12 +1,13 @@ import React from 'react' import {Dimensions} from 'react-native' + import * as themes from '#/alf/themes' -export * from '#/alf/types' -export * as tokens from '#/alf/tokens' export {atoms} from '#/alf/atoms' -export * from '#/alf/util/platform' +export * as tokens from '#/alf/tokens' +export * from '#/alf/types' export * from '#/alf/util/flatten' +export * from '#/alf/util/platform' type BreakpointName = keyof typeof breakpoints diff --git a/src/alf/themes.ts b/src/alf/themes.ts index 0c95a459ed..0cb1cae248 100644 --- a/src/alf/themes.ts +++ b/src/alf/themes.ts @@ -1,6 +1,6 @@ +import {atoms} from '#/alf/atoms' import * as tokens from '#/alf/tokens' import type {Mutable} from '#/alf/types' -import {atoms} from '#/alf/atoms' import {BLUE_HUE, GREEN_HUE, RED_HUE} from '#/alf/util/colorGeneration' export type ThemeName = 'light' | 'dim' | 'dark' diff --git a/src/alf/tokens.ts b/src/alf/tokens.ts index b1468f461d..6062e954ca 100644 --- a/src/alf/tokens.ts +++ b/src/alf/tokens.ts @@ -1,8 +1,8 @@ import { BLUE_HUE, - RED_HUE, - GREEN_HUE, generateScale, + GREEN_HUE, + RED_HUE, } from '#/alf/util/colorGeneration' export const scale = generateScale(6, 100) diff --git a/src/alf/types.ts b/src/alf/types.ts index dd8d816d2b..f4f1a5c440 100644 --- a/src/alf/types.ts +++ b/src/alf/types.ts @@ -1,4 +1,4 @@ -import {StyleProp, ViewStyle, TextStyle} from 'react-native' +import {StyleProp, TextStyle, ViewStyle} from 'react-native' type LiteralToCommon = T extends number ? number diff --git a/src/alf/util/useColorModeTheme.ts b/src/alf/util/useColorModeTheme.ts index 4f8921bf9b..ba947a5712 100644 --- a/src/alf/util/useColorModeTheme.ts +++ b/src/alf/util/useColorModeTheme.ts @@ -1,10 +1,10 @@ +import * as SystemUI from 'expo-system-ui' +import {isWeb} from 'platform/detection' import React from 'react' import {ColorSchemeName, useColorScheme} from 'react-native' - import {useThemePrefs} from 'state/shell' -import {isWeb} from 'platform/detection' -import {ThemeName, light, dark, dim} from '#/alf/themes' -import * as SystemUI from 'expo-system-ui' + +import {dark, dim, light, ThemeName} from '#/alf/themes' export function useColorModeTheme(): ThemeName { const colorScheme = useColorScheme() diff --git a/src/components/Button.tsx b/src/components/Button.tsx index d3bf73cc3e..cbf9210f51 100644 --- a/src/components/Button.tsx +++ b/src/components/Button.tsx @@ -1,19 +1,19 @@ import React from 'react' import { + AccessibilityProps, Pressable, - Text, PressableProps, + StyleProp, + StyleSheet, + Text, TextProps, - ViewStyle, - AccessibilityProps, - View, TextStyle, - StyleSheet, - StyleProp, + View, + ViewStyle, } from 'react-native' import LinearGradient from 'react-native-linear-gradient' -import {useTheme, atoms as a, tokens, android, flatten} from '#/alf' +import {android, atoms as a, flatten, tokens, useTheme} from '#/alf' import {Props as SVGIconProps} from '#/components/icons/common' export type ButtonVariant = 'solid' | 'outline' | 'ghost' | 'gradient' diff --git a/src/components/Dialog/context.ts b/src/components/Dialog/context.ts index 859f8edd77..06d238b508 100644 --- a/src/components/Dialog/context.ts +++ b/src/components/Dialog/context.ts @@ -1,11 +1,11 @@ import React from 'react' -import {useDialogStateContext} from '#/state/dialogs' import { DialogContextProps, DialogControlRefProps, DialogOuterProps, } from '#/components/Dialog/types' +import {useDialogStateContext} from '#/state/dialogs' export const Context = React.createContext({ close: () => {}, diff --git a/src/components/Dialog/index.tsx b/src/components/Dialog/index.tsx index f0e7b7e82b..fdd43675ea 100644 --- a/src/components/Dialog/index.tsx +++ b/src/components/Dialog/index.tsx @@ -1,5 +1,3 @@ -import React, {useImperativeHandle} from 'react' -import {View, Dimensions, Keyboard, Pressable} from 'react-native' import BottomSheet, { BottomSheetBackdropProps, BottomSheetScrollView, @@ -8,23 +6,24 @@ import BottomSheet, { useBottomSheet, WINDOW_HEIGHT, } from '@gorhom/bottom-sheet' -import {useSafeAreaInsets} from 'react-native-safe-area-context' +import React, {useImperativeHandle} from 'react' +import {Dimensions, Keyboard, Pressable, View} from 'react-native' import Animated, {useAnimatedStyle} from 'react-native-reanimated' +import {useSafeAreaInsets} from 'react-native-safe-area-context' -import {useTheme, atoms as a, flatten} from '#/alf' -import {Portal} from '#/components/Portal' -import {createInput} from '#/components/forms/TextField' -import {logger} from '#/logger' -import {useDialogStateControlContext} from '#/state/dialogs' - +import {atoms as a, flatten, useTheme} from '#/alf' +import {Context} from '#/components/Dialog/context' import { - DialogOuterProps, DialogControlProps, DialogInnerProps, + DialogOuterProps, } from '#/components/Dialog/types' -import {Context} from '#/components/Dialog/context' +import {createInput} from '#/components/forms/TextField' +import {Portal} from '#/components/Portal' +import {logger} from '#/logger' +import {useDialogStateControlContext} from '#/state/dialogs' -export {useDialogControl, useDialogContext} from '#/components/Dialog/context' +export {useDialogContext, useDialogControl} from '#/components/Dialog/context' export * from '#/components/Dialog/types' // @ts-ignore export const Input = createInput(BottomSheetTextInput) diff --git a/src/components/Dialog/index.web.tsx b/src/components/Dialog/index.web.tsx index 3a7f73342d..997bf77c1a 100644 --- a/src/components/Dialog/index.web.tsx +++ b/src/components/Dialog/index.web.tsx @@ -1,20 +1,19 @@ -import React, {useImperativeHandle} from 'react' -import {View, TouchableWithoutFeedback} from 'react-native' -import {FocusScope} from '@tamagui/focus-scope' -import Animated, {FadeInDown, FadeIn} from 'react-native-reanimated' import {msg} from '@lingui/macro' import {useLingui} from '@lingui/react' +import {FocusScope} from '@tamagui/focus-scope' +import React, {useImperativeHandle} from 'react' +import {TouchableWithoutFeedback, View} from 'react-native' +import Animated, {FadeIn, FadeInDown} from 'react-native-reanimated' -import {useTheme, atoms as a, useBreakpoints, web, flatten} from '#/alf' -import {Portal} from '#/components/Portal' - -import {DialogOuterProps, DialogInnerProps} from '#/components/Dialog/types' -import {Context} from '#/components/Dialog/context' +import {atoms as a, flatten, useBreakpoints, useTheme, web} from '#/alf' import {Button, ButtonIcon} from '#/components/Button' +import {Context} from '#/components/Dialog/context' +import {DialogInnerProps, DialogOuterProps} from '#/components/Dialog/types' import {TimesLarge_Stroke2_Corner0_Rounded as X} from '#/components/icons/Times' +import {Portal} from '#/components/Portal' import {useDialogStateControlContext} from '#/state/dialogs' -export {useDialogControl, useDialogContext} from '#/components/Dialog/context' +export {useDialogContext, useDialogControl} from '#/components/Dialog/context' export * from '#/components/Dialog/types' export {Input} from '#/components/forms/TextField' diff --git a/src/components/Dialog/types.ts b/src/components/Dialog/types.ts index 4fc60ec394..d847631744 100644 --- a/src/components/Dialog/types.ts +++ b/src/components/Dialog/types.ts @@ -1,6 +1,6 @@ +import {BottomSheetProps} from '@gorhom/bottom-sheet' import React from 'react' import type {AccessibilityProps} from 'react-native' -import {BottomSheetProps} from '@gorhom/bottom-sheet' import {ViewStyleProp} from '#/alf' diff --git a/src/components/Divider.tsx b/src/components/Divider.tsx index 24e2789e50..ff0bbb0451 100644 --- a/src/components/Divider.tsx +++ b/src/components/Divider.tsx @@ -1,6 +1,7 @@ import React from 'react' import {View} from 'react-native' -import {atoms as a, useTheme, ViewStyleProp, flatten} from '#/alf' + +import {atoms as a, flatten, useTheme, ViewStyleProp} from '#/alf' export function Divider({style}: ViewStyleProp) { const t = useTheme() diff --git a/src/components/IconCircle.tsx b/src/components/IconCircle.tsx index aa779e37f3..b8b52615a8 100644 --- a/src/components/IconCircle.tsx +++ b/src/components/IconCircle.tsx @@ -2,14 +2,14 @@ import React from 'react' import {View} from 'react-native' import { - useTheme, atoms as a, - ViewStyleProp, - TextStyleProp, flatten, + TextStyleProp, + useTheme, + ViewStyleProp, } from '#/alf' -import {Growth_Stroke2_Corner0_Rounded as Growth} from '#/components/icons/Growth' import {Props} from '#/components/icons/common' +import {Growth_Stroke2_Corner0_Rounded as Growth} from '#/components/icons/Growth' export function IconCircle({ icon: Icon, diff --git a/src/components/Link.tsx b/src/components/Link.tsx index 00e6a56f42..74e75e99c0 100644 --- a/src/components/Link.tsx +++ b/src/components/Link.tsx @@ -1,23 +1,23 @@ +import {sanitizeUrl} from '@braintree/sanitize-url' +import {StackActions, useLinkProps} from '@react-navigation/native' +import {useNavigationDeduped} from 'lib/hooks/useNavigationDeduped' import React from 'react' import {GestureResponderEvent} from 'react-native' -import {useLinkProps, StackActions} from '@react-navigation/native' -import {sanitizeUrl} from '@braintree/sanitize-url' +import {useOpenLink} from 'state/preferences/in-app-browser' -import {useInteractionState} from '#/components/hooks/useInteractionState' -import {isWeb} from '#/platform/detection' -import {useTheme, web, flatten, TextStyleProp, atoms as a} from '#/alf' +import {atoms as a, flatten, TextStyleProp, useTheme, web} from '#/alf' import {Button, ButtonProps} from '#/components/Button' +import {useInteractionState} from '#/components/hooks/useInteractionState' +import {Text, TextProps} from '#/components/Typography' import {AllNavigatorParams} from '#/lib/routes/types' import { convertBskyAppUrlIfNeeded, isExternalUrl, linkRequiresWarning, } from '#/lib/strings/url-helpers' -import {useModalControls} from '#/state/modals' +import {isWeb} from '#/platform/detection' import {router} from '#/routes' -import {Text, TextProps} from '#/components/Typography' -import {useOpenLink} from 'state/preferences/in-app-browser' -import {useNavigationDeduped} from 'lib/hooks/useNavigationDeduped' +import {useModalControls} from '#/state/modals' /** * Only available within a `Link`, since that inherits from `Button`. diff --git a/src/components/Lists.tsx b/src/components/Lists.tsx index bb0d247971..38bcf8577b 100644 --- a/src/components/Lists.tsx +++ b/src/components/Lists.tsx @@ -1,15 +1,16 @@ +import {Trans} from '@lingui/macro' +import {StackActions} from '@react-navigation/native' +import {useNavigationDeduped} from 'lib/hooks/useNavigationDeduped' +import {cleanError} from 'lib/strings/errors' import React from 'react' -import {atoms as a, useBreakpoints, useTheme} from '#/alf' import {View} from 'react-native' import {CenteredView} from 'view/com/util/Views' -import {Loader} from '#/components/Loader' -import {Trans} from '@lingui/macro' -import {cleanError} from 'lib/strings/errors' + +import {atoms as a, useBreakpoints, useTheme} from '#/alf' import {Button} from '#/components/Button' +import {Loader} from '#/components/Loader' import {Text} from '#/components/Typography' -import {StackActions} from '@react-navigation/native' import {router} from '#/routes' -import {useNavigationDeduped} from 'lib/hooks/useNavigationDeduped' export function ListFooter({ isFetching, diff --git a/src/components/Loader.tsx b/src/components/Loader.tsx index b9f399f953..e0b3be6373 100644 --- a/src/components/Loader.tsx +++ b/src/components/Loader.tsx @@ -1,13 +1,13 @@ import React from 'react' import Animated, { Easing, - useSharedValue, useAnimatedStyle, + useSharedValue, withRepeat, withTiming, } from 'react-native-reanimated' -import {atoms as a, useTheme, flatten} from '#/alf' +import {atoms as a, flatten, useTheme} from '#/alf' import {Props, useCommonSVGProps} from '#/components/icons/common' import {Loader_Stroke2_Corner0_Rounded as Icon} from '#/components/icons/Loader' diff --git a/src/components/Menu/index.tsx b/src/components/Menu/index.tsx index 9be9dd86bf..7dd95502e7 100644 --- a/src/components/Menu/index.tsx +++ b/src/components/Menu/index.tsx @@ -1,25 +1,24 @@ +import {msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {isNative} from 'platform/detection' import React from 'react' -import {View, Pressable, ViewStyle, StyleProp} from 'react-native' import flattenReactChildren from 'react-keyed-flatten-children' +import {Pressable, StyleProp, View, ViewStyle} from 'react-native' import {atoms as a, useTheme} from '#/alf' +import {Button, ButtonText} from '#/components/Button' import * as Dialog from '#/components/Dialog' import {useInteractionState} from '#/components/hooks/useInteractionState' -import {Text} from '#/components/Typography' - import {Context} from '#/components/Menu/context' import { ContextType, - TriggerProps, - ItemProps, GroupProps, - ItemTextProps, ItemIconProps, + ItemProps, + ItemTextProps, + TriggerProps, } from '#/components/Menu/types' -import {Button, ButtonText} from '#/components/Button' -import {msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {isNative} from 'platform/detection' +import {Text} from '#/components/Typography' export {useDialogControl as useMenuControl} from '#/components/Dialog' diff --git a/src/components/Menu/index.web.tsx b/src/components/Menu/index.web.tsx index 2004ee7c6b..314769934b 100644 --- a/src/components/Menu/index.web.tsx +++ b/src/components/Menu/index.web.tsx @@ -1,24 +1,23 @@ /* eslint-disable react/prop-types */ -import React from 'react' -import {View, Pressable, ViewStyle, StyleProp} from 'react-native' import * as DropdownMenu from '@radix-ui/react-dropdown-menu' +import React from 'react' +import {Pressable, StyleProp, View, ViewStyle} from 'react-native' +import {atoms as a, flatten, useTheme, web} from '#/alf' import * as Dialog from '#/components/Dialog' import {useInteractionState} from '#/components/hooks/useInteractionState' -import {atoms as a, useTheme, flatten, web} from '#/alf' -import {Text} from '#/components/Typography' - +import {Context} from '#/components/Menu/context' import { ContextType, - TriggerProps, - ItemProps, GroupProps, - ItemTextProps, ItemIconProps, + ItemProps, + ItemTextProps, RadixPassThroughTriggerProps, + TriggerProps, } from '#/components/Menu/types' -import {Context} from '#/components/Menu/context' +import {Text} from '#/components/Typography' export function useMenuControl(): Dialog.DialogControlProps { const id = React.useId() diff --git a/src/components/Menu/types.ts b/src/components/Menu/types.ts index 7d04a33441..729a004d8d 100644 --- a/src/components/Menu/types.ts +++ b/src/components/Menu/types.ts @@ -1,13 +1,13 @@ import React from 'react' import { + AccessibilityProps, GestureResponderEvent, PressableProps, - AccessibilityProps, } from 'react-native' -import {Props as SVGIconProps} from '#/components/icons/common' -import * as Dialog from '#/components/Dialog' import {TextStyleProp, ViewStyleProp} from '#/alf' +import * as Dialog from '#/components/Dialog' +import {Props as SVGIconProps} from '#/components/icons/common' export type ContextType = { control: Dialog.DialogOuterProps['control'] diff --git a/src/components/Prompt.tsx b/src/components/Prompt.tsx index 3b245c440f..84a0c47f1b 100644 --- a/src/components/Prompt.tsx +++ b/src/components/Prompt.tsx @@ -1,13 +1,12 @@ -import React from 'react' -import {View, PressableProps} from 'react-native' import {msg} from '@lingui/macro' import {useLingui} from '@lingui/react' +import React from 'react' +import {PressableProps, View} from 'react-native' -import {useTheme, atoms as a, useBreakpoints} from '#/alf' -import {Text} from '#/components/Typography' +import {atoms as a, useBreakpoints, useTheme} from '#/alf' import {Button} from '#/components/Button' - import * as Dialog from '#/components/Dialog' +import {Text} from '#/components/Typography' export {useDialogControl as usePromptControl} from '#/components/Dialog' diff --git a/src/components/RichText.tsx b/src/components/RichText.tsx index 1a14415cf8..d40b4d21ca 100644 --- a/src/components/RichText.tsx +++ b/src/components/RichText.tsx @@ -1,15 +1,15 @@ -import React from 'react' -import {RichText as RichTextAPI, AppBskyRichtextFacet} from '@atproto/api' -import {useLingui} from '@lingui/react' +import {AppBskyRichtextFacet, RichText as RichTextAPI} from '@atproto/api' import {msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {toShortUrl} from 'lib/strings/url-helpers' +import React from 'react' -import {atoms as a, TextStyleProp, flatten, useTheme, web, native} from '#/alf' +import {atoms as a, flatten, native, TextStyleProp, useTheme, web} from '#/alf' +import {useInteractionState} from '#/components/hooks/useInteractionState' import {InlineLink} from '#/components/Link' -import {Text, TextProps} from '#/components/Typography' -import {toShortUrl} from 'lib/strings/url-helpers' import {TagMenu, useTagMenuControl} from '#/components/TagMenu' +import {Text, TextProps} from '#/components/Typography' import {isNative} from '#/platform/detection' -import {useInteractionState} from '#/components/hooks/useInteractionState' const WORD_WRAP = {wordWrap: 1} diff --git a/src/components/TagMenu/index.tsx b/src/components/TagMenu/index.tsx index 849a3f42d1..0c1e48b6ed 100644 --- a/src/components/TagMenu/index.tsx +++ b/src/components/TagMenu/index.tsx @@ -1,27 +1,27 @@ +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {useNavigation} from '@react-navigation/native' import React from 'react' import {View} from 'react-native' -import {useNavigation} from '@react-navigation/native' -import {useLingui} from '@lingui/react' -import {msg, Trans} from '@lingui/macro' import {atoms as a, native, useTheme} from '#/alf' -import * as Dialog from '#/components/Dialog' -import {Text} from '#/components/Typography' import {Button, ButtonText} from '#/components/Button' +import * as Dialog from '#/components/Dialog' +import {Divider} from '#/components/Divider' import {MagnifyingGlass2_Stroke2_Corner0_Rounded as Search} from '#/components/icons/MagnifyingGlass2' -import {Person_Stroke2_Corner0_Rounded as Person} from '#/components/icons/Person' import {Mute_Stroke2_Corner0_Rounded as Mute} from '#/components/icons/Mute' -import {Divider} from '#/components/Divider' +import {Person_Stroke2_Corner0_Rounded as Person} from '#/components/icons/Person' import {Link} from '#/components/Link' +import {Loader} from '#/components/Loader' +import {Text} from '#/components/Typography' import {makeSearchLink} from '#/lib/routes/links' import {NavigationProp} from '#/lib/routes/types' +import {isInvalidHandle} from '#/lib/strings/handles' import { usePreferencesQuery, - useUpsertMutedWordsMutation, useRemoveMutedWordMutation, + useUpsertMutedWordsMutation, } from '#/state/queries/preferences' -import {Loader} from '#/components/Loader' -import {isInvalidHandle} from '#/lib/strings/handles' export function useTagMenuControl() { return Dialog.useDialogControl() diff --git a/src/components/TagMenu/index.web.tsx b/src/components/TagMenu/index.web.tsx index 8245bd0191..b8a44d6c09 100644 --- a/src/components/TagMenu/index.web.tsx +++ b/src/components/TagMenu/index.web.tsx @@ -1,20 +1,20 @@ -import React from 'react' import {msg} from '@lingui/macro' import {useLingui} from '@lingui/react' import {useNavigation} from '@react-navigation/native' +import React from 'react' -import {isInvalidHandle} from '#/lib/strings/handles' -import {EventStopper} from '#/view/com/util/EventStopper' -import {NativeDropdown} from '#/view/com/util/forms/NativeDropdown' +import {web} from '#/alf' +import * as Dialog from '#/components/Dialog' import {NavigationProp} from '#/lib/routes/types' +import {isInvalidHandle} from '#/lib/strings/handles' +import {enforceLen} from '#/lib/strings/helpers' import { usePreferencesQuery, - useUpsertMutedWordsMutation, useRemoveMutedWordMutation, + useUpsertMutedWordsMutation, } from '#/state/queries/preferences' -import {enforceLen} from '#/lib/strings/helpers' -import {web} from '#/alf' -import * as Dialog from '#/components/Dialog' +import {EventStopper} from '#/view/com/util/EventStopper' +import {NativeDropdown} from '#/view/com/util/forms/NativeDropdown' export function useTagMenuControl(): Dialog.DialogControlProps { return { diff --git a/src/components/Typography.tsx b/src/components/Typography.tsx index 5268e7f468..e7db94e5ce 100644 --- a/src/components/Typography.tsx +++ b/src/components/Typography.tsx @@ -1,8 +1,8 @@ import React from 'react' -import {Text as RNText, TextStyle, TextProps as RNTextProps} from 'react-native' +import {Text as RNText, TextProps as RNTextProps, TextStyle} from 'react-native' import {UITextView} from 'react-native-ui-text-view' -import {useTheme, atoms, web, flatten} from '#/alf' +import {atoms, flatten, useTheme, web} from '#/alf' import {isIOS, isNative} from '#/platform/detection' export type TextProps = RNTextProps & { diff --git a/src/components/dialogs/MutedWords.tsx b/src/components/dialogs/MutedWords.tsx index 5f23a78838..4dedbdf855 100644 --- a/src/components/dialogs/MutedWords.tsx +++ b/src/components/dialogs/MutedWords.tsx @@ -1,37 +1,36 @@ -import React from 'react' -import {Keyboard, View} from 'react-native' +import {AppBskyActorDefs, sanitizeMutedWordValue} from '@atproto/api' import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' -import {AppBskyActorDefs, sanitizeMutedWordValue} from '@atproto/api' +import React from 'react' +import {Keyboard, View} from 'react-native' -import { - usePreferencesQuery, - useUpsertMutedWordsMutation, - useRemoveMutedWordMutation, -} from '#/state/queries/preferences' -import {isNative} from '#/platform/detection' import { atoms as a, - useTheme, + native, useBreakpoints, + useTheme, ViewStyleProp, web, - native, } from '#/alf' -import {Text} from '#/components/Typography' import {Button, ButtonIcon, ButtonText} from '#/components/Button' -import {PlusLarge_Stroke2_Corner0_Rounded as Plus} from '#/components/icons/Plus' -import {TimesLarge_Stroke2_Corner0_Rounded as X} from '#/components/icons/Times' +import * as Dialog from '#/components/Dialog' +import {useGlobalDialogsControlContext} from '#/components/dialogs/Context' +import {Divider} from '#/components/Divider' +import * as Toggle from '#/components/forms/Toggle' import {Hashtag_Stroke2_Corner0_Rounded as Hashtag} from '#/components/icons/Hashtag' import {PageText_Stroke2_Corner0_Rounded as PageText} from '#/components/icons/PageText' -import {Divider} from '#/components/Divider' +import {PlusLarge_Stroke2_Corner0_Rounded as Plus} from '#/components/icons/Plus' +import {TimesLarge_Stroke2_Corner0_Rounded as X} from '#/components/icons/Times' import {Loader} from '#/components/Loader' -import {logger} from '#/logger' -import * as Dialog from '#/components/Dialog' -import * as Toggle from '#/components/forms/Toggle' import * as Prompt from '#/components/Prompt' - -import {useGlobalDialogsControlContext} from '#/components/dialogs/Context' +import {Text} from '#/components/Typography' +import {logger} from '#/logger' +import {isNative} from '#/platform/detection' +import { + usePreferencesQuery, + useRemoveMutedWordMutation, + useUpsertMutedWordsMutation, +} from '#/state/queries/preferences' export function MutedWordsDialog() { const {mutedWordsDialogControl: control} = useGlobalDialogsControlContext() diff --git a/src/components/forms/DateField/index.android.tsx b/src/components/forms/DateField/index.android.tsx index 451810a5ea..2a93ba8830 100644 --- a/src/components/forms/DateField/index.android.tsx +++ b/src/components/forms/DateField/index.android.tsx @@ -1,19 +1,18 @@ +import {isAndroid} from 'platform/detection' import React from 'react' -import {View, Pressable} from 'react-native' - -import {useTheme, atoms} from '#/alf' -import {Text} from '#/components/Typography' -import {useInteractionState} from '#/components/hooks/useInteractionState' -import * as TextField from '#/components/forms/TextField' -import {CalendarDays_Stroke2_Corner0_Rounded as CalendarDays} from '#/components/icons/CalendarDays' +import {Pressable, View} from 'react-native' +import DatePicker from 'react-native-date-picker' +import {atoms, useTheme} from '#/alf' import {DateFieldProps} from '#/components/forms/DateField/types' import { localizeDate, toSimpleDateString, } from '#/components/forms/DateField/utils' -import DatePicker from 'react-native-date-picker' -import {isAndroid} from 'platform/detection' +import * as TextField from '#/components/forms/TextField' +import {useInteractionState} from '#/components/hooks/useInteractionState' +import {CalendarDays_Stroke2_Corner0_Rounded as CalendarDays} from '#/components/icons/CalendarDays' +import {Text} from '#/components/Typography' export * as utils from '#/components/forms/DateField/utils' export const Label = TextField.Label diff --git a/src/components/forms/DateField/index.tsx b/src/components/forms/DateField/index.tsx index 49e47a01e3..9bd1c7b813 100644 --- a/src/components/forms/DateField/index.tsx +++ b/src/components/forms/DateField/index.tsx @@ -1,11 +1,11 @@ import React from 'react' import {View} from 'react-native' +import DatePicker from 'react-native-date-picker' -import {useTheme, atoms} from '#/alf' -import * as TextField from '#/components/forms/TextField' -import {toSimpleDateString} from '#/components/forms/DateField/utils' +import {atoms, useTheme} from '#/alf' import {DateFieldProps} from '#/components/forms/DateField/types' -import DatePicker from 'react-native-date-picker' +import {toSimpleDateString} from '#/components/forms/DateField/utils' +import * as TextField from '#/components/forms/TextField' export * as utils from '#/components/forms/DateField/utils' export const Label = TextField.Label diff --git a/src/components/forms/DateField/index.web.tsx b/src/components/forms/DateField/index.web.tsx index 32f38a5d16..1c89cbae93 100644 --- a/src/components/forms/DateField/index.web.tsx +++ b/src/components/forms/DateField/index.web.tsx @@ -1,11 +1,11 @@ import React from 'react' -import {TextInput, TextInputProps, StyleSheet} from 'react-native' +import {StyleSheet, TextInput, TextInputProps} from 'react-native' // @ts-ignore import {unstable_createElement} from 'react-native-web' -import * as TextField from '#/components/forms/TextField' -import {toSimpleDateString} from '#/components/forms/DateField/utils' import {DateFieldProps} from '#/components/forms/DateField/types' +import {toSimpleDateString} from '#/components/forms/DateField/utils' +import * as TextField from '#/components/forms/TextField' export * as utils from '#/components/forms/DateField/utils' export const Label = TextField.Label diff --git a/src/components/forms/TextField.tsx b/src/components/forms/TextField.tsx index b37f4bfae9..648be035bc 100644 --- a/src/components/forms/TextField.tsx +++ b/src/components/forms/TextField.tsx @@ -1,19 +1,19 @@ +import {HITSLOP_20} from 'lib/constants' import React from 'react' import { - View, + AccessibilityProps, + StyleSheet, TextInput, TextInputProps, TextStyle, + View, ViewStyle, - StyleSheet, - AccessibilityProps, } from 'react-native' -import {HITSLOP_20} from 'lib/constants' -import {useTheme, atoms as a, web, android} from '#/alf' -import {Text} from '#/components/Typography' +import {android, atoms as a, useTheme, web} from '#/alf' import {useInteractionState} from '#/components/hooks/useInteractionState' import {Props as SVGIconProps} from '#/components/icons/common' +import {Text} from '#/components/Typography' const Context = React.createContext<{ inputRef: React.RefObject | null diff --git a/src/components/forms/Toggle.tsx b/src/components/forms/Toggle.tsx index a83f92a2a6..3846b8812e 100644 --- a/src/components/forms/Toggle.tsx +++ b/src/components/forms/Toggle.tsx @@ -1,11 +1,11 @@ +import {HITSLOP_10} from 'lib/constants' import React from 'react' import {Pressable, View, ViewStyle} from 'react-native' -import {HITSLOP_10} from 'lib/constants' -import {useTheme, atoms as a, web, native, flatten, ViewStyleProp} from '#/alf' -import {Text} from '#/components/Typography' +import {atoms as a, flatten, native, useTheme, ViewStyleProp, web} from '#/alf' import {useInteractionState} from '#/components/hooks/useInteractionState' import {CheckThick_Stroke2_Corner0_Rounded as Checkmark} from '#/components/icons/Check' +import {Text} from '#/components/Typography' export type ItemState = { name: string diff --git a/src/components/forms/ToggleButton.tsx b/src/components/forms/ToggleButton.tsx index 7e1bd70b99..718f238dac 100644 --- a/src/components/forms/ToggleButton.tsx +++ b/src/components/forms/ToggleButton.tsx @@ -1,10 +1,9 @@ import React from 'react' -import {View, AccessibilityProps, TextStyle, ViewStyle} from 'react-native' - -import {atoms as a, useTheme, native} from '#/alf' -import {Text} from '#/components/Typography' +import {AccessibilityProps, TextStyle, View, ViewStyle} from 'react-native' +import {atoms as a, native, useTheme} from '#/alf' import * as Toggle from '#/components/forms/Toggle' +import {Text} from '#/components/Typography' export type ItemProps = Omit & AccessibilityProps & diff --git a/src/components/icons/TEMPLATE.tsx b/src/components/icons/TEMPLATE.tsx index 9fc1470375..f49c4280bb 100644 --- a/src/components/icons/TEMPLATE.tsx +++ b/src/components/icons/TEMPLATE.tsx @@ -1,7 +1,7 @@ import React from 'react' import Svg, {Path} from 'react-native-svg' -import {useCommonSVGProps, Props} from '#/components/icons/common' +import {Props, useCommonSVGProps} from '#/components/icons/common' export const IconTemplate_Stroke2_Corner0_Rounded = React.forwardRef( function LogoImpl(props: Props, ref) { diff --git a/src/components/icons/common.ts b/src/components/icons/common.ts index 9e9f15c4dd..669c157f51 100644 --- a/src/components/icons/common.ts +++ b/src/components/icons/common.ts @@ -1,5 +1,5 @@ import {StyleSheet, TextProps} from 'react-native' -import type {SvgProps, PathProps} from 'react-native-svg' +import type {PathProps, SvgProps} from 'react-native-svg' import {tokens} from '#/alf' diff --git a/src/lib/ThemeContext.tsx b/src/lib/ThemeContext.tsx index 63e2beeb11..a042521619 100644 --- a/src/lib/ThemeContext.tsx +++ b/src/lib/ThemeContext.tsx @@ -1,8 +1,10 @@ -import React, {ReactNode, createContext, useContext} from 'react' +import React, {createContext, ReactNode, useContext} from 'react' import {TextStyle, ViewStyle} from 'react-native' -import {darkTheme, defaultTheme, dimTheme} from './themes' + import {ThemeName} from '#/alf/themes' +import {darkTheme, defaultTheme, dimTheme} from './themes' + export type ColorScheme = 'light' | 'dark' export type PaletteColorName = diff --git a/src/lib/__tests__/moderatePost_wrapped.test.ts b/src/lib/__tests__/moderatePost_wrapped.test.ts index 45566281af..d876106600 100644 --- a/src/lib/__tests__/moderatePost_wrapped.test.ts +++ b/src/lib/__tests__/moderatePost_wrapped.test.ts @@ -1,5 +1,5 @@ -import {describe, it, expect} from '@jest/globals' import {RichText} from '@atproto/api' +import {describe, expect, it} from '@jest/globals' import {hasMutedWord} from '../moderatePost_wrapped' diff --git a/src/lib/analytics/analytics.tsx b/src/lib/analytics/analytics.tsx index a0cc7cd6e8..c27a4fb702 100644 --- a/src/lib/analytics/analytics.tsx +++ b/src/lib/analytics/analytics.tsx @@ -1,13 +1,14 @@ -import React from 'react' -import {AppState, AppStateStatus} from 'react-native' import AsyncStorage from '@react-native-async-storage/async-storage' import {createClient, SegmentClient} from '@segment/analytics-react-native' import {sha256} from 'js-sha256' +import React from 'react' +import {AppState, AppStateStatus} from 'react-native' import {Native} from 'sentry-expo' -import {useSession, SessionAccount} from '#/state/session' -import {ScreenPropertiesMap, TrackPropertiesMap} from './types' import {logger} from '#/logger' +import {SessionAccount, useSession} from '#/state/session' + +import {ScreenPropertiesMap, TrackPropertiesMap} from './types' type AppInfo = { build?: string | undefined diff --git a/src/lib/analytics/analytics.web.tsx b/src/lib/analytics/analytics.web.tsx index 72b28f9c0f..21975bc572 100644 --- a/src/lib/analytics/analytics.web.tsx +++ b/src/lib/analytics/analytics.web.tsx @@ -1,11 +1,12 @@ -import React from 'react' import {createClient} from '@segment/analytics-react' import {sha256} from 'js-sha256' +import React from 'react' import {Browser} from 'sentry-expo' -import {ScreenPropertiesMap, TrackPropertiesMap} from './types' -import {useSession, SessionAccount} from '#/state/session' import {logger} from '#/logger' +import {SessionAccount, useSession} from '#/state/session' + +import {ScreenPropertiesMap, TrackPropertiesMap} from './types' type SegmentClient = ReturnType diff --git a/src/lib/api/api-polyfill.ts b/src/lib/api/api-polyfill.ts index ea1d975985..a0245839a5 100644 --- a/src/lib/api/api-polyfill.ts +++ b/src/lib/api/api-polyfill.ts @@ -1,4 +1,4 @@ -import {BskyAgent, stringifyLex, jsonToLex} from '@atproto/api' +import {BskyAgent, jsonToLex, stringifyLex} from '@atproto/api' import RNFS from 'react-native-fs' const GET_TIMEOUT = 15e3 // 15s diff --git a/src/lib/api/feed-manip.ts b/src/lib/api/feed-manip.ts index 227062592b..26eea80a1b 100644 --- a/src/lib/api/feed-manip.ts +++ b/src/lib/api/feed-manip.ts @@ -1,11 +1,12 @@ import { + AppBskyEmbedRecord, + AppBskyEmbedRecordWithMedia, AppBskyFeedDefs, AppBskyFeedPost, - AppBskyEmbedRecordWithMedia, - AppBskyEmbedRecord, } from '@atproto/api' -import {ReasonFeedSource} from './feed/types' + import {isPostInLanguage} from '../../locale/helpers' +import {ReasonFeedSource} from './feed/types' type FeedViewPost = AppBskyFeedDefs.FeedViewPost export type FeedTunerFn = ( diff --git a/src/lib/api/feed/author.ts b/src/lib/api/feed/author.ts index 57db061b33..60bb23603b 100644 --- a/src/lib/api/feed/author.ts +++ b/src/lib/api/feed/author.ts @@ -2,9 +2,11 @@ import { AppBskyFeedDefs, AppBskyFeedGetAuthorFeed as GetAuthorFeed, } from '@atproto/api' -import {FeedAPI, FeedAPIResponse} from './types' + import {getAgent} from '#/state/session' +import {FeedAPI, FeedAPIResponse} from './types' + export class AuthorFeedAPI implements FeedAPI { constructor(public params: GetAuthorFeed.QueryParams) {} diff --git a/src/lib/api/feed/custom.ts b/src/lib/api/feed/custom.ts index 41c5367e57..cb7e7e66aa 100644 --- a/src/lib/api/feed/custom.ts +++ b/src/lib/api/feed/custom.ts @@ -2,9 +2,11 @@ import { AppBskyFeedDefs, AppBskyFeedGetFeed as GetCustomFeed, } from '@atproto/api' -import {FeedAPI, FeedAPIResponse} from './types' -import {getAgent} from '#/state/session' + import {getContentLanguages} from '#/state/preferences/languages' +import {getAgent} from '#/state/session' + +import {FeedAPI, FeedAPIResponse} from './types' export class CustomFeedAPI implements FeedAPI { constructor(public params: GetCustomFeed.QueryParams) {} diff --git a/src/lib/api/feed/following.ts b/src/lib/api/feed/following.ts index 24389b5edc..95f0a70903 100644 --- a/src/lib/api/feed/following.ts +++ b/src/lib/api/feed/following.ts @@ -1,7 +1,9 @@ import {AppBskyFeedDefs} from '@atproto/api' -import {FeedAPI, FeedAPIResponse} from './types' + import {getAgent} from '#/state/session' +import {FeedAPI, FeedAPIResponse} from './types' + export class FollowingFeedAPI implements FeedAPI { constructor() {} diff --git a/src/lib/api/feed/home.ts b/src/lib/api/feed/home.ts index 436a66d076..f12dab7b69 100644 --- a/src/lib/api/feed/home.ts +++ b/src/lib/api/feed/home.ts @@ -1,9 +1,11 @@ import {AppBskyFeedDefs} from '@atproto/api' -import {FeedAPI, FeedAPIResponse} from './types' -import {FollowingFeedAPI} from './following' -import {CustomFeedAPI} from './custom' + import {PROD_DEFAULT_FEED} from '#/lib/constants' +import {CustomFeedAPI} from './custom' +import {FollowingFeedAPI} from './following' +import {FeedAPI, FeedAPIResponse} from './types' + // HACK // the feed API does not include any facilities for passing down // non-post elements. adding that is a bit of a heavy lift, and we diff --git a/src/lib/api/feed/likes.ts b/src/lib/api/feed/likes.ts index 2b0afdf11e..95697e5d76 100644 --- a/src/lib/api/feed/likes.ts +++ b/src/lib/api/feed/likes.ts @@ -2,9 +2,11 @@ import { AppBskyFeedDefs, AppBskyFeedGetActorLikes as GetActorLikes, } from '@atproto/api' -import {FeedAPI, FeedAPIResponse} from './types' + import {getAgent} from '#/state/session' +import {FeedAPI, FeedAPIResponse} from './types' + export class LikesFeedAPI implements FeedAPI { constructor(public params: GetActorLikes.QueryParams) {} diff --git a/src/lib/api/feed/list.ts b/src/lib/api/feed/list.ts index 19f2ff177c..1b0b259cf3 100644 --- a/src/lib/api/feed/list.ts +++ b/src/lib/api/feed/list.ts @@ -2,9 +2,11 @@ import { AppBskyFeedDefs, AppBskyFeedGetListFeed as GetListFeed, } from '@atproto/api' -import {FeedAPI, FeedAPIResponse} from './types' + import {getAgent} from '#/state/session' +import {FeedAPI, FeedAPIResponse} from './types' + export class ListFeedAPI implements FeedAPI { constructor(public params: GetListFeed.QueryParams) {} diff --git a/src/lib/api/feed/merge.ts b/src/lib/api/feed/merge.ts index 28bf143cbb..49210afed0 100644 --- a/src/lib/api/feed/merge.ts +++ b/src/lib/api/feed/merge.ts @@ -1,14 +1,16 @@ import {AppBskyFeedDefs, AppBskyFeedGetTimeline} from '@atproto/api' -import shuffle from 'lodash.shuffle' -import {timeout} from 'lib/async/timeout' import {bundleAsync} from 'lib/async/bundle' +import {timeout} from 'lib/async/timeout' import {feedUriToHref} from 'lib/strings/url-helpers' -import {FeedTuner} from '../feed-manip' -import {FeedAPI, FeedAPIResponse, ReasonFeedSource} from './types' +import shuffle from 'lodash.shuffle' + +import {getContentLanguages} from '#/state/preferences/languages' import {FeedParams} from '#/state/queries/post-feed' -import {FeedTunerFn} from '../feed-manip' import {getAgent} from '#/state/session' -import {getContentLanguages} from '#/state/preferences/languages' + +import {FeedTuner} from '../feed-manip' +import {FeedTunerFn} from '../feed-manip' +import {FeedAPI, FeedAPIResponse, ReasonFeedSource} from './types' const REQUEST_WAIT_MS = 500 // 500ms const POST_AGE_CUTOFF = 60e3 * 60 * 24 // 24hours diff --git a/src/lib/api/index.ts b/src/lib/api/index.ts index 5fb7fe50e6..178554d735 100644 --- a/src/lib/api/index.ts +++ b/src/lib/api/index.ts @@ -1,6 +1,6 @@ import { - AppBskyEmbedImages, AppBskyEmbedExternal, + AppBskyEmbedImages, AppBskyEmbedRecord, AppBskyEmbedRecordWithMedia, AppBskyFeedThreadgate, @@ -12,13 +12,15 @@ import { } from '@atproto/api' import {AtUri} from '@atproto/api' import {isNetworkError} from 'lib/strings/errors' -import {LinkMeta} from '../link-meta/link-meta' +import {shortenLinks} from 'lib/strings/rich-text-manip' import {isWeb} from 'platform/detection' import {ImageModel} from 'state/models/media/image' -import {shortenLinks} from 'lib/strings/rich-text-manip' + import {logger} from '#/logger' import {ThreadgateSetting} from '#/state/queries/threadgate' +import {LinkMeta} from '../link-meta/link-meta' + export interface ExternalEmbedDraft { uri: string isLoading: boolean diff --git a/src/lib/app-info.ts b/src/lib/app-info.ts index 3f026d3fe6..f6b4932c37 100644 --- a/src/lib/app-info.ts +++ b/src/lib/app-info.ts @@ -1,5 +1,5 @@ -import VersionNumber from 'react-native-version-number' import * as Updates from 'expo-updates' +import VersionNumber from 'react-native-version-number' export const updateChannel = Updates.channel export const appVersion = `${VersionNumber.appVersion} (${VersionNumber.buildVersion})` diff --git a/src/lib/embeds.ts b/src/lib/embeds.ts index a758987b20..2904f1cc36 100644 --- a/src/lib/embeds.ts +++ b/src/lib/embeds.ts @@ -1,7 +1,7 @@ import { - AppBskyFeedDefs, AppBskyEmbedRecord, AppBskyEmbedRecordWithMedia, + AppBskyFeedDefs, } from '@atproto/api' export function isEmbedByEmbedder( diff --git a/src/lib/hooks/useAccountSwitcher.ts b/src/lib/hooks/useAccountSwitcher.ts index 74b5674d5a..478ce538a5 100644 --- a/src/lib/hooks/useAccountSwitcher.ts +++ b/src/lib/hooks/useAccountSwitcher.ts @@ -1,11 +1,11 @@ import {useCallback} from 'react' -import {isWeb} from '#/platform/detection' import {useAnalytics} from '#/lib/analytics/analytics' -import {useSessionApi, SessionAccount} from '#/state/session' -import * as Toast from '#/view/com/util/Toast' -import {useCloseAllActiveElements} from '#/state/util' +import {isWeb} from '#/platform/detection' +import {SessionAccount, useSessionApi} from '#/state/session' import {useLoggedOutViewControls} from '#/state/shell/logged-out' +import {useCloseAllActiveElements} from '#/state/util' +import * as Toast from '#/view/com/util/Toast' export function useAccountSwitcher() { const {track} = useAnalytics() diff --git a/src/lib/hooks/useAnimatedScrollHandler_FIXED.web.ts b/src/lib/hooks/useAnimatedScrollHandler_FIXED.web.ts index 98e05a8ce6..7f8a99506a 100644 --- a/src/lib/hooks/useAnimatedScrollHandler_FIXED.web.ts +++ b/src/lib/hooks/useAnimatedScrollHandler_FIXED.web.ts @@ -1,4 +1,4 @@ -import {useRef, useEffect} from 'react' +import {useEffect, useRef} from 'react' import {useAnimatedScrollHandler as useAnimatedScrollHandler_BUGGY} from 'react-native-reanimated' export const useAnimatedScrollHandler: typeof useAnimatedScrollHandler_BUGGY = ( diff --git a/src/lib/hooks/useCustomPalette.ts b/src/lib/hooks/useCustomPalette.ts index 4f8f5c8368..a069c7ce88 100644 --- a/src/lib/hooks/useCustomPalette.ts +++ b/src/lib/hooks/useCustomPalette.ts @@ -1,6 +1,6 @@ -import React from 'react' -import {useTheme} from 'lib/ThemeContext' import {choose} from 'lib/functions' +import {useTheme} from 'lib/ThemeContext' +import React from 'react' export function useCustomPalette({light, dark}: {light: T; dark: T}) { const theme = useTheme() diff --git a/src/lib/hooks/useDraggableScrollView.ts b/src/lib/hooks/useDraggableScrollView.ts index b0f7465d79..ea48ac1dcd 100644 --- a/src/lib/hooks/useDraggableScrollView.ts +++ b/src/lib/hooks/useDraggableScrollView.ts @@ -1,7 +1,7 @@ -import {useEffect, useRef, useMemo, ForwardedRef} from 'react' -import {Platform, findNodeHandle} from 'react-native' -import type {ScrollView} from 'react-native' import {mergeRefs} from 'lib/merge-refs' +import {ForwardedRef, useEffect, useMemo, useRef} from 'react' +import type {ScrollView} from 'react-native' +import {findNodeHandle, Platform} from 'react-native' type Props = { cursor?: string diff --git a/src/lib/hooks/useIntentHandler.ts b/src/lib/hooks/useIntentHandler.ts index 8741530b50..34f645d7ff 100644 --- a/src/lib/hooks/useIntentHandler.ts +++ b/src/lib/hooks/useIntentHandler.ts @@ -1,8 +1,8 @@ -import React from 'react' import * as Linking from 'expo-linking' import {isNative} from 'platform/detection' -import {useComposerControls} from 'state/shell' +import React from 'react' import {useSession} from 'state/session' +import {useComposerControls} from 'state/shell' import {useCloseAllActiveElements} from 'state/util' type IntentType = 'compose' diff --git a/src/lib/hooks/useIsKeyboardVisible.ts b/src/lib/hooks/useIsKeyboardVisible.ts index 38fc80bde1..391090f2d1 100644 --- a/src/lib/hooks/useIsKeyboardVisible.ts +++ b/src/lib/hooks/useIsKeyboardVisible.ts @@ -1,6 +1,6 @@ -import {useState, useEffect} from 'react' -import {Keyboard} from 'react-native' import {isIOS} from 'platform/detection' +import {useEffect, useState} from 'react' +import {Keyboard} from 'react-native' export function useIsKeyboardVisible({ iosUseWillEvents, diff --git a/src/lib/hooks/useMinimalShellMode.tsx b/src/lib/hooks/useMinimalShellMode.tsx index e81fc434fe..071d876831 100644 --- a/src/lib/hooks/useMinimalShellMode.tsx +++ b/src/lib/hooks/useMinimalShellMode.tsx @@ -1,4 +1,5 @@ import {interpolate, useAnimatedStyle} from 'react-native-reanimated' + import {useMinimalShellMode as useMinimalShellModeState} from '#/state/shell/minimal-mode' import {useShellLayout} from '#/state/shell/shell-layout' diff --git a/src/lib/hooks/useNavigationDeduped.ts b/src/lib/hooks/useNavigationDeduped.ts index d913f7f3d0..99efad6105 100644 --- a/src/lib/hooks/useNavigationDeduped.ts +++ b/src/lib/hooks/useNavigationDeduped.ts @@ -1,9 +1,9 @@ -import React from 'react' import {useNavigation} from '@react-navigation/core' -import {AllNavigatorParams, NavigationProp} from 'lib/routes/types' -import type {NavigationAction} from '@react-navigation/routers' import {NavigationState} from '@react-navigation/native' +import type {NavigationAction} from '@react-navigation/routers' import {useDedupe} from 'lib/hooks/useDedupe' +import {AllNavigatorParams, NavigationProp} from 'lib/routes/types' +import React from 'react' export type DebouncedNavigationProp = Pick< NavigationProp, diff --git a/src/lib/hooks/useOTAUpdate.ts b/src/lib/hooks/useOTAUpdate.ts index 53eab300e7..9bfc998a6a 100644 --- a/src/lib/hooks/useOTAUpdate.ts +++ b/src/lib/hooks/useOTAUpdate.ts @@ -1,9 +1,10 @@ +import {t} from '@lingui/macro' import * as Updates from 'expo-updates' import {useCallback, useEffect} from 'react' import {AppState} from 'react-native' + import {logger} from '#/logger' import {useModalControls} from '#/state/modals' -import {t} from '@lingui/macro' export function useOTAUpdate() { const {openModal} = useModalControls() diff --git a/src/lib/hooks/usePalette.ts b/src/lib/hooks/usePalette.ts index eeb43d0b1f..2530642f60 100644 --- a/src/lib/hooks/usePalette.ts +++ b/src/lib/hooks/usePalette.ts @@ -1,6 +1,7 @@ import {useMemo} from 'react' import {TextStyle, ViewStyle} from 'react-native' -import {useTheme, PaletteColorName, PaletteColor} from '../ThemeContext' + +import {PaletteColor, PaletteColorName, useTheme} from '../ThemeContext' export interface UsePaletteValue { colors: PaletteColor diff --git a/src/lib/hooks/usePermissions.ts b/src/lib/hooks/usePermissions.ts index 138f3eacab..28693ea71d 100644 --- a/src/lib/hooks/usePermissions.ts +++ b/src/lib/hooks/usePermissions.ts @@ -1,7 +1,7 @@ import {Camera} from 'expo-camera' import * as MediaLibrary from 'expo-media-library' -import {Linking} from 'react-native' import {isWeb} from 'platform/detection' +import {Linking} from 'react-native' import {Alert} from 'view/com/util/Alert' const openPermissionAlert = (perm: string) => { diff --git a/src/lib/hooks/useSetTitle.ts b/src/lib/hooks/useSetTitle.ts index 129023f717..d88830a89c 100644 --- a/src/lib/hooks/useSetTitle.ts +++ b/src/lib/hooks/useSetTitle.ts @@ -1,8 +1,8 @@ -import {useEffect} from 'react' import {useNavigation} from '@react-navigation/native' - import {NavigationProp} from 'lib/routes/types' import {bskyTitle} from 'lib/strings/headings' +import {useEffect} from 'react' + import {useUnreadNotifications} from '#/state/queries/notifications/unread' export function useSetTitle(title?: string) { diff --git a/src/lib/hooks/useTabFocusEffect.ts b/src/lib/hooks/useTabFocusEffect.ts index e446084c5a..5f53350457 100644 --- a/src/lib/hooks/useTabFocusEffect.ts +++ b/src/lib/hooks/useTabFocusEffect.ts @@ -1,6 +1,6 @@ -import {useEffect, useState} from 'react' import {useNavigation} from '@react-navigation/native' import {getTabState, TabState} from 'lib/routes/helpers' +import {useEffect, useState} from 'react' export function useTabFocusEffect( tabName: string, diff --git a/src/lib/hooks/useToggleMutationQueue.ts b/src/lib/hooks/useToggleMutationQueue.ts index 28ae861424..c4b86d3253 100644 --- a/src/lib/hooks/useToggleMutationQueue.ts +++ b/src/lib/hooks/useToggleMutationQueue.ts @@ -1,4 +1,4 @@ -import {useState, useRef, useEffect, useCallback} from 'react' +import {useCallback, useEffect, useRef, useState} from 'react' type Task = { isOn: boolean diff --git a/src/lib/hooks/useWebBodyScrollLock.ts b/src/lib/hooks/useWebBodyScrollLock.ts index 585f193f1f..790ddce630 100644 --- a/src/lib/hooks/useWebBodyScrollLock.ts +++ b/src/lib/hooks/useWebBodyScrollLock.ts @@ -1,4 +1,5 @@ import {useEffect} from 'react' + import {isWeb} from '#/platform/detection' let refCount = 0 diff --git a/src/lib/hooks/useWebMediaQueries.tsx b/src/lib/hooks/useWebMediaQueries.tsx index 71a96a89b1..45b7b6c589 100644 --- a/src/lib/hooks/useWebMediaQueries.tsx +++ b/src/lib/hooks/useWebMediaQueries.tsx @@ -1,5 +1,5 @@ -import {useMediaQuery} from 'react-responsive' import {isNative} from 'platform/detection' +import {useMediaQuery} from 'react-responsive' export function useWebMediaQueries() { const isDesktop = useMediaQuery({minWidth: 1300}) diff --git a/src/lib/hooks/useWebScrollRestoration.ts b/src/lib/hooks/useWebScrollRestoration.ts index f68fbf0f2f..5a44024940 100644 --- a/src/lib/hooks/useWebScrollRestoration.ts +++ b/src/lib/hooks/useWebScrollRestoration.ts @@ -1,5 +1,5 @@ -import {useMemo, useState, useEffect} from 'react' import {EventArg, useNavigation} from '@react-navigation/core' +import {useEffect, useMemo, useState} from 'react' if ('scrollRestoration' in history) { // Tell the brower not to mess with the scroll. diff --git a/src/lib/icons.tsx b/src/lib/icons.tsx index 7ae88806f7..eb8214019b 100644 --- a/src/lib/icons.tsx +++ b/src/lib/icons.tsx @@ -1,6 +1,6 @@ import React from 'react' import {StyleProp, TextStyle, ViewStyle} from 'react-native' -import Svg, {Path, Rect, Line, Ellipse} from 'react-native-svg' +import Svg, {Ellipse, Line, Path, Rect} from 'react-native-svg' export function GridIcon({ style, diff --git a/src/lib/link-meta/bsky.ts b/src/lib/link-meta/bsky.ts index c1fbb34b3c..1c8b28d9b9 100644 --- a/src/lib/link-meta/bsky.ts +++ b/src/lib/link-meta/bsky.ts @@ -1,11 +1,13 @@ import {AppBskyFeedPost, BskyAgent} from '@atproto/api' import * as apilib from 'lib/api/index' -import {LikelyType, LinkMeta} from './link-meta' -// import {match as matchRoute} from 'view/routes' -import {convertBskyAppUrlIfNeeded, makeRecordUri} from '../strings/url-helpers' import {ComposerOptsQuote} from 'state/shell/composer' -import {useGetPost} from '#/state/queries/post' + import {useFetchDid} from '#/state/queries/handle' +import {useGetPost} from '#/state/queries/post' + +// import {match as matchRoute} from 'view/routes' +import {convertBskyAppUrlIfNeeded, makeRecordUri} from '../strings/url-helpers' +import {LikelyType, LinkMeta} from './link-meta' // TODO // import {Home} from 'view/screens/Home' diff --git a/src/lib/link-meta/link-meta.ts b/src/lib/link-meta/link-meta.ts index fa951432e8..0f5230479e 100644 --- a/src/lib/link-meta/link-meta.ts +++ b/src/lib/link-meta/link-meta.ts @@ -1,9 +1,10 @@ import {BskyAgent} from '@atproto/api' -import {isBskyAppUrl} from '../strings/url-helpers' -import {extractBskyMeta} from './bsky' import {LINK_META_PROXY} from 'lib/constants' import {getGiphyMetaUri} from 'lib/strings/embed-player' +import {isBskyAppUrl} from '../strings/url-helpers' +import {extractBskyMeta} from './bsky' + export enum LikelyType { HTML, Text, diff --git a/src/lib/media/image-sizes.ts b/src/lib/media/image-sizes.ts index 4ea95ea237..cab032313d 100644 --- a/src/lib/media/image-sizes.ts +++ b/src/lib/media/image-sizes.ts @@ -1,5 +1,5 @@ -import {Image} from 'react-native' import type {Dimensions} from 'lib/media/types' +import {Image} from 'react-native' const sizes: Map = new Map() const activeRequests: Map> = new Map() diff --git a/src/lib/media/manip.ts b/src/lib/media/manip.ts index a681627e67..20cca745b9 100644 --- a/src/lib/media/manip.ts +++ b/src/lib/media/manip.ts @@ -1,13 +1,14 @@ -import RNFetchBlob from 'rn-fetch-blob' import ImageResizer from '@bam.tech/react-native-image-resizer' +import * as MediaLibrary from 'expo-media-library' +import * as Sharing from 'expo-sharing' +import {isAndroid, isIOS} from 'platform/detection' import {Image as RNImage, Share as RNShare} from 'react-native' -import {Image} from 'react-native-image-crop-picker' import * as RNFS from 'react-native-fs' +import {Image} from 'react-native-image-crop-picker' import uuid from 'react-native-uuid' -import * as Sharing from 'expo-sharing' -import * as MediaLibrary from 'expo-media-library' +import RNFetchBlob from 'rn-fetch-blob' + import {Dimensions} from './types' -import {isAndroid, isIOS} from 'platform/detection' export async function compressIfNeeded( img: Image, diff --git a/src/lib/media/manip.web.ts b/src/lib/media/manip.web.ts index 522aa2e51b..8b63f9e5fe 100644 --- a/src/lib/media/manip.web.ts +++ b/src/lib/media/manip.web.ts @@ -1,6 +1,7 @@ -import {Dimensions} from './types' import {Image as RNImage} from 'react-native-image-crop-picker' -import {getDataUriSize, blobToDataUri} from './util' + +import {Dimensions} from './types' +import {blobToDataUri, getDataUriSize} from './util' export async function compressIfNeeded( img: RNImage, diff --git a/src/lib/media/picker.e2e.tsx b/src/lib/media/picker.e2e.tsx index d7b6080417..08ee91b74f 100644 --- a/src/lib/media/picker.e2e.tsx +++ b/src/lib/media/picker.e2e.tsx @@ -1,7 +1,8 @@ -import {Image as RNImage} from 'react-native-image-crop-picker' import RNFS from 'react-native-fs' -import {CropperOptions} from './types' +import {Image as RNImage} from 'react-native-image-crop-picker' + import {compressIfNeeded} from './manip' +import {CropperOptions} from './types' let _imageCounter = 0 async function getFile() { diff --git a/src/lib/media/picker.shared.ts b/src/lib/media/picker.shared.ts index 8bade34e25..d00c2b8a61 100644 --- a/src/lib/media/picker.shared.ts +++ b/src/lib/media/picker.shared.ts @@ -3,9 +3,10 @@ import { launchImageLibraryAsync, MediaTypeOptions, } from 'expo-image-picker' -import {getDataUriSize} from './util' import * as Toast from 'view/com/util/Toast' +import {getDataUriSize} from './util' + export async function openPicker(opts?: ImagePickerOptions) { const response = await launchImageLibraryAsync({ exif: false, diff --git a/src/lib/media/picker.tsx b/src/lib/media/picker.tsx index bf531c9814..37e01e67f9 100644 --- a/src/lib/media/picker.tsx +++ b/src/lib/media/picker.tsx @@ -1,8 +1,9 @@ import { + Image as RNImage, openCamera as openCameraFn, openCropper as openCropperFn, - Image as RNImage, } from 'react-native-image-crop-picker' + import {CameraOpts, CropperOptions} from './types' export {openPicker} from './picker.shared' diff --git a/src/lib/media/picker.web.tsx b/src/lib/media/picker.web.tsx index 995a0c95f9..7e2562e297 100644 --- a/src/lib/media/picker.web.tsx +++ b/src/lib/media/picker.web.tsx @@ -1,7 +1,8 @@ /// -import {CameraOpts, CropperOptions} from './types' import {Image as RNImage} from 'react-native-image-crop-picker' + +import {CameraOpts, CropperOptions} from './types' export {openPicker} from './picker.shared' import {unstable__openModal} from '#/state/modals' diff --git a/src/lib/moderatePost_wrapped.ts b/src/lib/moderatePost_wrapped.ts index 9f6fa9c076..566e46a050 100644 --- a/src/lib/moderatePost_wrapped.ts +++ b/src/lib/moderatePost_wrapped.ts @@ -1,12 +1,12 @@ import { + AppBskyActorDefs, + AppBskyEmbedExternal, + AppBskyEmbedImages, AppBskyEmbedRecord, AppBskyEmbedRecordWithMedia, - moderatePost, - AppBskyActorDefs, AppBskyFeedPost, AppBskyRichtextFacet, - AppBskyEmbedImages, - AppBskyEmbedExternal, + moderatePost, } from '@atproto/api' type ModeratePost = typeof moderatePost diff --git a/src/lib/moderation.ts b/src/lib/moderation.ts index b6ebb47a02..3f8a032194 100644 --- a/src/lib/moderation.ts +++ b/src/lib/moderation.ts @@ -1,4 +1,4 @@ -import {ModerationCause, ProfileModeration, PostModeration} from '@atproto/api' +import {ModerationCause, PostModeration, ProfileModeration} from '@atproto/api' export interface ModerationCauseDescription { name: string diff --git a/src/lib/notifications/notifications.ts b/src/lib/notifications/notifications.ts index 62d0bfc4b1..146bd98538 100644 --- a/src/lib/notifications/notifications.ts +++ b/src/lib/notifications/notifications.ts @@ -1,12 +1,14 @@ -import * as Notifications from 'expo-notifications' import {QueryClient} from '@tanstack/react-query' -import {resetToTab} from '../../Navigation' -import {devicePlatform, isIOS} from 'platform/detection' +import * as Notifications from 'expo-notifications' import {track} from 'lib/analytics/analytics' +import {devicePlatform, isIOS} from 'platform/detection' + import {logger} from '#/logger' import {RQKEY as RQKEY_NOTIFS} from '#/state/queries/notifications/feed' import {truncateAndInvalidate} from '#/state/queries/util' -import {SessionAccount, getAgent} from '#/state/session' +import {getAgent, SessionAccount} from '#/state/session' + +import {resetToTab} from '../../Navigation' const SERVICE_DID = (serviceUrl?: string) => serviceUrl?.includes('staging') diff --git a/src/lib/react-query.ts b/src/lib/react-query.ts index 7fe3fe7a47..94a09c9419 100644 --- a/src/lib/react-query.ts +++ b/src/lib/react-query.ts @@ -1,5 +1,6 @@ +import {focusManager, QueryClient} from '@tanstack/react-query' import {AppState, AppStateStatus} from 'react-native' -import {QueryClient, focusManager} from '@tanstack/react-query' + import {isNative} from '#/platform/detection' focusManager.setEventListener(onFocus => { diff --git a/src/lib/routes/helpers.ts b/src/lib/routes/helpers.ts index 0da8850433..03302da1ac 100644 --- a/src/lib/routes/helpers.ts +++ b/src/lib/routes/helpers.ts @@ -1,5 +1,6 @@ import {NavigationProp} from '@react-navigation/native' -import {State, RouteParams} from './types' + +import {RouteParams, State} from './types' export function getRootNavigation( nav: NavigationProp, diff --git a/src/lib/routes/router.ts b/src/lib/routes/router.ts index 8c8be37397..45f9c85fdb 100644 --- a/src/lib/routes/router.ts +++ b/src/lib/routes/router.ts @@ -1,4 +1,4 @@ -import {RouteParams, Route} from './types' +import {Route, RouteParams} from './types' export class Router { routes: [string, Route][] = [] diff --git a/src/lib/sentry.ts b/src/lib/sentry.ts index d0a5fe0fd5..1120c389f1 100644 --- a/src/lib/sentry.ts +++ b/src/lib/sentry.ts @@ -3,9 +3,9 @@ * avoid future conflicts and/or circular deps */ +import * as info from 'expo-updates' import {Platform} from 'react-native' import app from 'react-native-version-number' -import * as info from 'expo-updates' import {init} from 'sentry-expo' /** diff --git a/src/lib/sharing.ts b/src/lib/sharing.ts index 9f402f8737..6c45e46cf8 100644 --- a/src/lib/sharing.ts +++ b/src/lib/sharing.ts @@ -1,9 +1,10 @@ -import {isIOS, isAndroid} from 'platform/detection' // import * as Sharing from 'expo-sharing' import Clipboard from '@react-native-clipboard/clipboard' -import * as Toast from '../view/com/util/Toast' +import {isAndroid, isIOS} from 'platform/detection' import {Share} from 'react-native' +import * as Toast from '../view/com/util/Toast' + /** * This function shares a URL using the native Share API if available, or copies it to the clipboard * and displays a toast message if not (mostly on web) diff --git a/src/lib/statsig/statsig.tsx b/src/lib/statsig/statsig.tsx index 6d9ebeb099..c9e497af0c 100644 --- a/src/lib/statsig/statsig.tsx +++ b/src/lib/statsig/statsig.tsx @@ -1,11 +1,12 @@ +import {sha256} from 'js-sha256' import React from 'react' import { Statsig, StatsigProvider, useGate as useStatsigGate, } from 'statsig-react-native-expo' + import {useSession} from '../../state/session' -import {sha256} from 'js-sha256' const statsigOptions = { environment: { diff --git a/src/lib/statsig/statsig.web.tsx b/src/lib/statsig/statsig.web.tsx index d1c9120194..c9cc56b6df 100644 --- a/src/lib/statsig/statsig.web.tsx +++ b/src/lib/statsig/statsig.web.tsx @@ -1,11 +1,12 @@ +import {sha256} from 'js-sha256' import React from 'react' import { Statsig, StatsigProvider, useGate as useStatsigGate, } from 'statsig-react' + import {useSession} from '../../state/session' -import {sha256} from 'js-sha256' const statsigOptions = { environment: { diff --git a/src/lib/strings/display-names.ts b/src/lib/strings/display-names.ts index 75383dd4fd..e5eb4cfe59 100644 --- a/src/lib/strings/display-names.ts +++ b/src/lib/strings/display-names.ts @@ -1,4 +1,5 @@ import {ModerationUI} from '@atproto/api' + import {describeModerationCause} from '../moderation' // \u2705 = ✅ diff --git a/src/lib/strings/embed-player.ts b/src/lib/strings/embed-player.ts index 1cf3b12937..2ef6efdf12 100644 --- a/src/lib/strings/embed-player.ts +++ b/src/lib/strings/embed-player.ts @@ -1,5 +1,5 @@ -import {Dimensions} from 'react-native' import {isWeb} from 'platform/detection' +import {Dimensions} from 'react-native' const {height: SCREEN_HEIGHT} = Dimensions.get('window') export const embedPlayerSources = [ diff --git a/src/lib/strings/rich-text-helpers.ts b/src/lib/strings/rich-text-helpers.ts index 662004599b..54f0733d0c 100644 --- a/src/lib/strings/rich-text-helpers.ts +++ b/src/lib/strings/rich-text-helpers.ts @@ -1,4 +1,5 @@ import {AppBskyRichtextFacet, RichText} from '@atproto/api' + import {linkRequiresWarning} from './url-helpers' export function richTextToString(rt: RichText, loose: boolean): string { diff --git a/src/lib/strings/rich-text-manip.ts b/src/lib/strings/rich-text-manip.ts index d9cd8c0714..508e0772e0 100644 --- a/src/lib/strings/rich-text-manip.ts +++ b/src/lib/strings/rich-text-manip.ts @@ -1,4 +1,5 @@ import {RichText, UnicodeString} from '@atproto/api' + import {toShortUrl} from './url-helpers' export function shortenLinks(rt: RichText): RichText { diff --git a/src/lib/strings/url-helpers.ts b/src/lib/strings/url-helpers.ts index 820311e4ee..60d5f3cbb3 100644 --- a/src/lib/strings/url-helpers.ts +++ b/src/lib/strings/url-helpers.ts @@ -1,7 +1,7 @@ import {AtUri} from '@atproto/api' import {BSKY_SERVICE} from 'lib/constants' -import TLDs from 'tlds' import psl from 'psl' +import TLDs from 'tlds' export const BSKY_APP_HOST = 'https://bsky.app' diff --git a/src/lib/styles.ts b/src/lib/styles.ts index 263127440f..50755f53df 100644 --- a/src/lib/styles.ts +++ b/src/lib/styles.ts @@ -1,6 +1,7 @@ +import {isWeb} from 'platform/detection' import {Dimensions, StyleProp, StyleSheet, TextStyle} from 'react-native' + import {Theme, TypographyVariant} from './ThemeContext' -import {isWeb} from 'platform/detection' // 1 is lightest, 2 is light, 3 is mid, 4 is dark, 5 is darkest export const colors = { diff --git a/src/lib/themes.ts b/src/lib/themes.ts index bd75aabea6..4fb1184009 100644 --- a/src/lib/themes.ts +++ b/src/lib/themes.ts @@ -1,8 +1,9 @@ import {Platform} from 'react-native' -import type {Theme} from './ThemeContext' -import {colors} from './styles' -import {darkPalette, lightPalette, dimPalette} from '#/alf/themes' +import {darkPalette, dimPalette, lightPalette} from '#/alf/themes' + +import {colors} from './styles' +import type {Theme} from './ThemeContext' export const defaultTheme: Theme = { colorScheme: 'light', diff --git a/src/locale/__tests__/helpers.test.ts b/src/locale/__tests__/helpers.test.ts index 5e924c9fe8..0cc0b7816e 100644 --- a/src/locale/__tests__/helpers.test.ts +++ b/src/locale/__tests__/helpers.test.ts @@ -1,4 +1,4 @@ -import {test, expect} from '@jest/globals' +import {expect, test} from '@jest/globals' import {sanitizeAppLanguageSetting} from '#/locale/helpers' import {AppLanguage} from '#/locale/languages' diff --git a/src/locale/helpers.ts b/src/locale/helpers.ts index c73242e707..54b05cb687 100644 --- a/src/locale/helpers.ts +++ b/src/locale/helpers.ts @@ -1,7 +1,8 @@ import {AppBskyFeedDefs, AppBskyFeedPost} from '@atproto/api' +import * as bcp47Match from 'bcp-47-match' import lande from 'lande' import {hasProp} from 'lib/type-guards' -import * as bcp47Match from 'bcp-47-match' + import { AppLanguage, LANGUAGES_MAP_CODE2, diff --git a/src/locale/i18n.ts b/src/locale/i18n.ts index e8addb0b4f..310f17a10c 100644 --- a/src/locale/i18n.ts +++ b/src/locale/i18n.ts @@ -1,23 +1,22 @@ -import {useEffect} from 'react' import {i18n} from '@lingui/core' +import {useEffect} from 'react' -import {useLanguagePrefs} from '#/state/preferences' -import {messages as messagesEn} from '#/locale/locales/en/messages' +import {sanitizeAppLanguageSetting} from '#/locale/helpers' +import {AppLanguage} from '#/locale/languages' +import {messages as messagesCa} from '#/locale/locales/ca/messages' import {messages as messagesDe} from '#/locale/locales/de/messages' -import {messages as messagesId} from '#/locale/locales/id/messages' +import {messages as messagesEn} from '#/locale/locales/en/messages' import {messages as messagesEs} from '#/locale/locales/es/messages' import {messages as messagesFr} from '#/locale/locales/fr/messages' import {messages as messagesHi} from '#/locale/locales/hi/messages' +import {messages as messagesId} from '#/locale/locales/id/messages' +import {messages as messagesIt} from '#/locale/locales/it/messages' import {messages as messagesJa} from '#/locale/locales/ja/messages' import {messages as messagesKo} from '#/locale/locales/ko/messages' import {messages as messagesPt_BR} from '#/locale/locales/pt-BR/messages' import {messages as messagesUk} from '#/locale/locales/uk/messages' -import {messages as messagesCa} from '#/locale/locales/ca/messages' import {messages as messagesZh_CN} from '#/locale/locales/zh-CN/messages' -import {messages as messagesIt} from '#/locale/locales/it/messages' - -import {sanitizeAppLanguageSetting} from '#/locale/helpers' -import {AppLanguage} from '#/locale/languages' +import {useLanguagePrefs} from '#/state/preferences' /** * We do a dynamic import of just the catalog that we need diff --git a/src/locale/i18n.web.ts b/src/locale/i18n.web.ts index d8e51723ff..ce0c640fe7 100644 --- a/src/locale/i18n.web.ts +++ b/src/locale/i18n.web.ts @@ -1,9 +1,9 @@ -import {useEffect} from 'react' import {i18n} from '@lingui/core' +import {useEffect} from 'react' -import {useLanguagePrefs} from '#/state/preferences' import {sanitizeAppLanguageSetting} from '#/locale/helpers' import {AppLanguage} from '#/locale/languages' +import {useLanguagePrefs} from '#/state/preferences' /** * We do a dynamic import of just the catalog that we need diff --git a/src/locale/i18nProvider.tsx b/src/locale/i18nProvider.tsx index 3766f5b716..645c0fc6a7 100644 --- a/src/locale/i18nProvider.tsx +++ b/src/locale/i18nProvider.tsx @@ -1,6 +1,7 @@ -import React from 'react' -import {I18nProvider as DefaultI18nProvider} from '@lingui/react' import {i18n} from '@lingui/core' +import {I18nProvider as DefaultI18nProvider} from '@lingui/react' +import React from 'react' + import {useLocaleLanguage} from './i18n' export default function I18nProvider({children}: {children: React.ReactNode}) { diff --git a/src/logger/__tests__/logger.test.ts b/src/logger/__tests__/logger.test.ts index 12d60abaac..5c3f7d8248 100644 --- a/src/logger/__tests__/logger.test.ts +++ b/src/logger/__tests__/logger.test.ts @@ -1,5 +1,5 @@ +import {beforeAll, describe, expect, jest, test} from '@jest/globals' import {nanoid} from 'nanoid/non-secure' -import {jest, describe, expect, test, beforeAll} from '@jest/globals' import {Native as Sentry} from 'sentry-expo' import {Logger, LogLevel, sentryTransport} from '#/logger' diff --git a/src/logger/index.ts b/src/logger/index.ts index d6d8d9fc1d..c9e323db6d 100644 --- a/src/logger/index.ts +++ b/src/logger/index.ts @@ -1,10 +1,10 @@ import format from 'date-fns/format' import {nanoid} from 'nanoid/non-secure' -import {Sentry} from '#/logger/sentry' import * as env from '#/env' import {DebugContext} from '#/logger/debugContext' import {add} from '#/logger/logDump' +import {Sentry} from '#/logger/sentry' export enum LogLevel { Debug = 'debug', diff --git a/src/platform/detection.ts b/src/platform/detection.ts index 150fc1fe33..891377568f 100644 --- a/src/platform/detection.ts +++ b/src/platform/detection.ts @@ -1,6 +1,6 @@ -import {Platform} from 'react-native' import {getLocales} from 'expo-localization' import {dedupArray} from 'lib/functions' +import {Platform} from 'react-native' export const isIOS = Platform.OS === 'ios' export const isAndroid = Platform.OS === 'android' diff --git a/src/platform/urls.tsx b/src/platform/urls.tsx index fd844d9331..514bde43e2 100644 --- a/src/platform/urls.tsx +++ b/src/platform/urls.tsx @@ -1,4 +1,5 @@ import {Linking} from 'react-native' + import {isNative, isWeb} from './detection' export async function getInitialURL(): Promise { diff --git a/src/screens/Deactivated.tsx b/src/screens/Deactivated.tsx index f4c2014750..44b6bfb86b 100644 --- a/src/screens/Deactivated.tsx +++ b/src/screens/Deactivated.tsx @@ -1,19 +1,19 @@ +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' import React from 'react' import {View} from 'react-native' import {useSafeAreaInsets} from 'react-native-safe-area-context' -import {useLingui} from '@lingui/react' -import {msg, Trans} from '@lingui/macro' -import {useOnboardingDispatch} from '#/state/shell' -import {getAgent, isSessionDeactivated, useSessionApi} from '#/state/session' -import {logger} from '#/logger' -import {pluralize} from '#/lib/strings/helpers' -import {atoms as a, useTheme, useBreakpoints} from '#/alf' +import {atoms as a, useBreakpoints, useTheme} from '#/alf' import {Button, ButtonIcon, ButtonText} from '#/components/Button' -import {Text, P} from '#/components/Typography' +import {Loader} from '#/components/Loader' +import {P, Text} from '#/components/Typography' +import {pluralize} from '#/lib/strings/helpers' +import {logger} from '#/logger' import {isWeb} from '#/platform/detection' +import {getAgent, isSessionDeactivated, useSessionApi} from '#/state/session' +import {useOnboardingDispatch} from '#/state/shell' import {ScrollView} from '#/view/com/util/Views' -import {Loader} from '#/components/Loader' import {Logo} from '#/view/icons/Logo' const COL_WIDTH = 400 diff --git a/src/screens/Hashtag.tsx b/src/screens/Hashtag.tsx index 776cc585e3..d890fe1da4 100644 --- a/src/screens/Hashtag.tsx +++ b/src/screens/Hashtag.tsx @@ -1,28 +1,29 @@ -import React from 'react' -import {ListRenderItemInfo, Pressable} from 'react-native' +import {PostView} from '@atproto/api/dist/client/types/app/bsky/feed/defs' +import {msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' import {useFocusEffect} from '@react-navigation/native' -import {useSetMinimalShellMode} from 'state/shell' -import {ViewHeader} from 'view/com/util/ViewHeader' import {NativeStackScreenProps} from '@react-navigation/native-stack' +import {HITSLOP_10} from 'lib/constants' +import {useInitialNumToRender} from 'lib/hooks/useInitialNumToRender' import {CommonNavigatorParams} from 'lib/routes/types' +import {shareUrl} from 'lib/sharing' +import {sanitizeHandle} from 'lib/strings/handles' +import {enforceLen} from 'lib/strings/helpers' +import {isNative} from 'platform/detection' +import React from 'react' +import {ListRenderItemInfo, Pressable} from 'react-native' import {useSearchPostsQuery} from 'state/queries/search-posts' +import {useSetMinimalShellMode} from 'state/shell' import {Post} from 'view/com/post/Post' -import {PostView} from '@atproto/api/dist/client/types/app/bsky/feed/defs' -import {enforceLen} from 'lib/strings/helpers' +import {List} from 'view/com/util/List' +import {ViewHeader} from 'view/com/util/ViewHeader' + +import {ArrowOutOfBox_Stroke2_Corner0_Rounded} from '#/components/icons/ArrowOutOfBox' import { ListFooter, ListHeaderDesktop, ListMaybePlaceholder, } from '#/components/Lists' -import {List} from 'view/com/util/List' -import {msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {sanitizeHandle} from 'lib/strings/handles' -import {ArrowOutOfBox_Stroke2_Corner0_Rounded} from '#/components/icons/ArrowOutOfBox' -import {shareUrl} from 'lib/sharing' -import {HITSLOP_10} from 'lib/constants' -import {isNative} from 'platform/detection' -import {useInitialNumToRender} from 'lib/hooks/useInitialNumToRender' const renderItem = ({item}: ListRenderItemInfo) => { return diff --git a/src/screens/Onboarding/Layout.tsx b/src/screens/Onboarding/Layout.tsx index 6337cee09d..e9c834c45f 100644 --- a/src/screens/Onboarding/Layout.tsx +++ b/src/screens/Onboarding/Layout.tsx @@ -1,29 +1,27 @@ +import {msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' import React from 'react' import {View} from 'react-native' import {useSafeAreaInsets} from 'react-native-safe-area-context' -import {useLingui} from '@lingui/react' -import {msg} from '@lingui/macro' - -import {IS_DEV} from '#/env' -import {isWeb} from '#/platform/detection' -import {useOnboardingDispatch} from '#/state/shell' import { - useTheme, atoms as a, - useBreakpoints, - web, - native, flatten, + native, TextStyleProp, + useBreakpoints, + useTheme, + web, } from '#/alf' -import {P, leading, Text} from '#/components/Typography' -import {ChevronLeft_Stroke2_Corner0_Rounded as ChevronLeft} from '#/components/icons/Chevron' import {Button, ButtonIcon} from '#/components/Button' -import {ScrollView} from '#/view/com/util/Views' +import {ChevronLeft_Stroke2_Corner0_Rounded as ChevronLeft} from '#/components/icons/Chevron' import {createPortalGroup} from '#/components/Portal' - +import {leading, P, Text} from '#/components/Typography' +import {IS_DEV} from '#/env' +import {isWeb} from '#/platform/detection' import {Context} from '#/screens/Onboarding/state' +import {useOnboardingDispatch} from '#/state/shell' +import {ScrollView} from '#/view/com/util/Views' const COL_WIDTH = 500 diff --git a/src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx b/src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx index 1123f26755..7ed193ed3d 100644 --- a/src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx +++ b/src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx @@ -1,18 +1,17 @@ +import {msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {Image} from 'expo-image' import React from 'react' import {View} from 'react-native' import LinearGradient from 'react-native-linear-gradient' -import {Image} from 'expo-image' -import {useLingui} from '@lingui/react' -import {msg} from '@lingui/macro' -import {useTheme, atoms as a} from '#/alf' +import {atoms as a, useTheme} from '#/alf' import * as Toggle from '#/components/forms/Toggle' -import {useFeedSourceInfoQuery, FeedSourceInfo} from '#/state/queries/feed' -import {Text} from '#/components/Typography' -import {RichText} from '#/components/RichText' - import {Check_Stroke2_Corner0_Rounded as Check} from '#/components/icons/Check' +import {RichText} from '#/components/RichText' +import {Text} from '#/components/Typography' import {FeedConfig} from '#/screens/Onboarding/StepAlgoFeeds' +import {FeedSourceInfo, useFeedSourceInfoQuery} from '#/state/queries/feed' function PrimaryFeedCardInner({ feed, diff --git a/src/screens/Onboarding/StepAlgoFeeds/index.tsx b/src/screens/Onboarding/StepAlgoFeeds/index.tsx index 1a4e4c493b..50436e7681 100644 --- a/src/screens/Onboarding/StepAlgoFeeds/index.tsx +++ b/src/screens/Onboarding/StepAlgoFeeds/index.tsx @@ -1,26 +1,25 @@ +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' import React from 'react' import {View} from 'react-native' -import {useLingui} from '@lingui/react' -import {msg, Trans} from '@lingui/macro' -import {IS_PROD} from '#/env' import {atoms as a, tokens, useTheme} from '#/alf' -import {ChevronRight_Stroke2_Corner0_Rounded as ChevronRight} from '#/components/icons/Chevron' import {Button, ButtonIcon, ButtonText} from '#/components/Button' import * as Toggle from '#/components/forms/Toggle' -import {Text} from '#/components/Typography' -import {Loader} from '#/components/Loader' +import {IconCircle} from '#/components/IconCircle' +import {ChevronRight_Stroke2_Corner0_Rounded as ChevronRight} from '#/components/icons/Chevron' import {ListSparkle_Stroke2_Corner0_Rounded as ListSparkle} from '#/components/icons/ListSparkle' +import {Loader} from '#/components/Loader' +import {Text} from '#/components/Typography' +import {IS_PROD} from '#/env' import {useAnalytics} from '#/lib/analytics/analytics' - -import {Context} from '#/screens/Onboarding/state' import { - Title, Description, OnboardingControls, + Title, } from '#/screens/Onboarding/Layout' +import {Context} from '#/screens/Onboarding/state' import {FeedCard} from '#/screens/Onboarding/StepAlgoFeeds/FeedCard' -import {IconCircle} from '#/components/IconCircle' export type FeedConfig = { default: boolean diff --git a/src/screens/Onboarding/StepFinished.tsx b/src/screens/Onboarding/StepFinished.tsx index 944dcb96d2..f23b1ac7b4 100644 --- a/src/screens/Onboarding/StepFinished.tsx +++ b/src/screens/Onboarding/StepFinished.tsx @@ -1,33 +1,32 @@ +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' import React from 'react' import {View} from 'react-native' -import {useLingui} from '@lingui/react' -import {msg, Trans} from '@lingui/macro' -import {logger} from '#/logger' import {atoms as a, useTheme} from '#/alf' -import {Button, ButtonText, ButtonIcon} from '#/components/Button' -import {News2_Stroke2_Corner0_Rounded as News} from '#/components/icons/News2' +import {Button, ButtonIcon, ButtonText} from '#/components/Button' +import {IconCircle} from '#/components/IconCircle' import {Check_Stroke2_Corner0_Rounded as Check} from '#/components/icons/Check' import {Growth_Stroke2_Corner0_Rounded as Growth} from '#/components/icons/Growth' +import {News2_Stroke2_Corner0_Rounded as News} from '#/components/icons/News2' import {Trending2_Stroke2_Corner2_Rounded as Trending} from '#/components/icons/Trending2' -import {Text} from '#/components/Typography' -import {useOnboardingDispatch} from '#/state/shell' import {Loader} from '#/components/Loader' -import {useSetSaveFeedsMutation} from '#/state/queries/preferences' -import {getAgent} from '#/state/session' +import {Text} from '#/components/Typography' import {useAnalytics} from '#/lib/analytics/analytics' - -import {Context} from '#/screens/Onboarding/state' +import {logger} from '#/logger' import { - Title, Description, OnboardingControls, + Title, } from '#/screens/Onboarding/Layout' -import {IconCircle} from '#/components/IconCircle' +import {Context} from '#/screens/Onboarding/state' import { bulkWriteFollows, sortPrimaryAlgorithmFeeds, } from '#/screens/Onboarding/util' +import {useSetSaveFeedsMutation} from '#/state/queries/preferences' +import {getAgent} from '#/state/session' +import {useOnboardingDispatch} from '#/state/shell' export function StepFinished() { const {_} = useLingui() diff --git a/src/screens/Onboarding/StepFollowingFeed.tsx b/src/screens/Onboarding/StepFollowingFeed.tsx index 898afad134..5b8c49264d 100644 --- a/src/screens/Onboarding/StepFollowingFeed.tsx +++ b/src/screens/Onboarding/StepFollowingFeed.tsx @@ -1,28 +1,27 @@ +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' import React from 'react' import {View} from 'react-native' -import {useLingui} from '@lingui/react' -import {msg, Trans} from '@lingui/macro' +import { + usePreferencesQuery, + useSetFeedViewPreferencesMutation, +} from 'state/queries/preferences' import {atoms as a} from '#/alf' -import {ChevronRight_Stroke2_Corner0_Rounded as ChevronRight} from '#/components/icons/Chevron' -import {FilterTimeline_Stroke2_Corner0_Rounded as FilterTimeline} from '#/components/icons/FilterTimeline' import {Button, ButtonIcon, ButtonText} from '#/components/Button' -import {Text} from '#/components/Typography' import {Divider} from '#/components/Divider' import * as Toggle from '#/components/forms/Toggle' +import {IconCircle} from '#/components/IconCircle' +import {ChevronRight_Stroke2_Corner0_Rounded as ChevronRight} from '#/components/icons/Chevron' +import {FilterTimeline_Stroke2_Corner0_Rounded as FilterTimeline} from '#/components/icons/FilterTimeline' +import {Text} from '#/components/Typography' import {useAnalytics} from '#/lib/analytics/analytics' - -import {Context} from '#/screens/Onboarding/state' import { - Title, Description, OnboardingControls, + Title, } from '#/screens/Onboarding/Layout' -import { - usePreferencesQuery, - useSetFeedViewPreferencesMutation, -} from 'state/queries/preferences' -import {IconCircle} from '#/components/IconCircle' +import {Context} from '#/screens/Onboarding/state' export function StepFollowingFeed() { const {_} = useLingui() diff --git a/src/screens/Onboarding/StepInterests/InterestButton.tsx b/src/screens/Onboarding/StepInterests/InterestButton.tsx index cc692dafd8..94685f3e18 100644 --- a/src/screens/Onboarding/StepInterests/InterestButton.tsx +++ b/src/screens/Onboarding/StepInterests/InterestButton.tsx @@ -1,11 +1,10 @@ import React from 'react' -import {View, ViewStyle, TextStyle} from 'react-native' +import {TextStyle, View, ViewStyle} from 'react-native' -import {useTheme, atoms as a, native} from '#/alf' +import {atoms as a, native, useTheme} from '#/alf' import * as Toggle from '#/components/forms/Toggle' import {Text} from '#/components/Typography' import {capitalize} from '#/lib/strings/capitalize' - import {Context} from '#/screens/Onboarding/state' export function InterestButton({interest}: {interest: string}) { diff --git a/src/screens/Onboarding/StepInterests/index.tsx b/src/screens/Onboarding/StepInterests/index.tsx index ea23b74f09..1b4ba30ff9 100644 --- a/src/screens/Onboarding/StepInterests/index.tsx +++ b/src/screens/Onboarding/StepInterests/index.tsx @@ -1,32 +1,31 @@ -import React from 'react' -import {View} from 'react-native' -import {useLingui} from '@lingui/react' import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' import {useQuery} from '@tanstack/react-query' +import React from 'react' +import {View} from 'react-native' -import {logger} from '#/logger' import {atoms as a, useBreakpoints, useTheme} from '#/alf' +import {Button, ButtonIcon, ButtonText} from '#/components/Button' +import * as Toggle from '#/components/forms/Toggle' +import {IconCircle} from '#/components/IconCircle' +import {ArrowRotateCounterClockwise_Stroke2_Corner0_Rounded as ArrowRotateCounterClockwise} from '#/components/icons/ArrowRotateCounterClockwise' import {ChevronRight_Stroke2_Corner0_Rounded as ChevronRight} from '#/components/icons/Chevron' -import {Hashtag_Stroke2_Corner0_Rounded as Hashtag} from '#/components/icons/Hashtag' import {EmojiSad_Stroke2_Corner0_Rounded as EmojiSad} from '#/components/icons/Emoji' -import {ArrowRotateCounterClockwise_Stroke2_Corner0_Rounded as ArrowRotateCounterClockwise} from '#/components/icons/ArrowRotateCounterClockwise' -import {Button, ButtonIcon, ButtonText} from '#/components/Button' +import {Hashtag_Stroke2_Corner0_Rounded as Hashtag} from '#/components/icons/Hashtag' import {Loader} from '#/components/Loader' -import * as Toggle from '#/components/forms/Toggle' -import {getAgent} from '#/state/session' -import {useAnalytics} from '#/lib/analytics/analytics' import {Text} from '#/components/Typography' -import {useOnboardingDispatch} from '#/state/shell' +import {useAnalytics} from '#/lib/analytics/analytics' import {capitalize} from '#/lib/strings/capitalize' - -import {Context, ApiResponseMap} from '#/screens/Onboarding/state' +import {logger} from '#/logger' import { - Title, Description, OnboardingControls, + Title, } from '#/screens/Onboarding/Layout' +import {ApiResponseMap, Context} from '#/screens/Onboarding/state' import {InterestButton} from '#/screens/Onboarding/StepInterests/InterestButton' -import {IconCircle} from '#/components/IconCircle' +import {getAgent} from '#/state/session' +import {useOnboardingDispatch} from '#/state/shell' export function StepInterests() { const {_} = useLingui() diff --git a/src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx b/src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx index 360025c02f..e97c251948 100644 --- a/src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx +++ b/src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx @@ -1,18 +1,18 @@ -import React from 'react' -import {View} from 'react-native' -import {useLingui} from '@lingui/react' import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' import {UseMutateFunction} from '@tanstack/react-query' +import React from 'react' +import {View} from 'react-native' -import * as Toast from '#/view/com/util/Toast' import {atoms as a, useTheme} from '#/alf' -import {usePreferencesQuery} from '#/state/queries/preferences' -import {logger} from '#/logger' -import {Text} from '#/components/Typography' import * as Toggle from '#/components/forms/Toggle' import {CircleInfo_Stroke2_Corner0_Rounded as CircleInfo} from '#/components/icons/CircleInfo' import * as Prompt from '#/components/Prompt' +import {Text} from '#/components/Typography' +import {logger} from '#/logger' import {isIOS} from '#/platform/detection' +import {usePreferencesQuery} from '#/state/queries/preferences' +import * as Toast from '#/view/com/util/Toast' function Card({children}: React.PropsWithChildren<{}>) { const t = useTheme() diff --git a/src/screens/Onboarding/StepModeration/ModerationOption.tsx b/src/screens/Onboarding/StepModeration/ModerationOption.tsx index c61b520bab..0ca317afc6 100644 --- a/src/screens/Onboarding/StepModeration/ModerationOption.tsx +++ b/src/screens/Onboarding/StepModeration/ModerationOption.tsx @@ -1,19 +1,19 @@ -import React from 'react' -import {View} from 'react-native' import {LabelPreference} from '@atproto/api' -import {useLingui} from '@lingui/react' import {msg} from '@lingui/macro' -import Animated, {Easing, Layout, FadeIn} from 'react-native-reanimated' +import {useLingui} from '@lingui/react' +import React from 'react' +import {View} from 'react-native' +import Animated, {Easing, FadeIn, Layout} from 'react-native-reanimated' +import {atoms as a, useTheme} from '#/alf' +import * as ToggleButton from '#/components/forms/ToggleButton' +import {Text} from '#/components/Typography' import { CONFIGURABLE_LABEL_GROUPS, ConfigurableLabelGroup, usePreferencesQuery, usePreferencesSetContentLabelMutation, } from '#/state/queries/preferences' -import {atoms as a, useTheme} from '#/alf' -import {Text} from '#/components/Typography' -import * as ToggleButton from '#/components/forms/ToggleButton' export function ModerationOption({ labelGroup, diff --git a/src/screens/Onboarding/StepModeration/index.tsx b/src/screens/Onboarding/StepModeration/index.tsx index 543a5b1598..d74eed03b0 100644 --- a/src/screens/Onboarding/StepModeration/index.tsx +++ b/src/screens/Onboarding/StepModeration/index.tsx @@ -1,32 +1,31 @@ +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' import React from 'react' import {View} from 'react-native' -import {useLingui} from '@lingui/react' -import {msg, Trans} from '@lingui/macro' import Animated, {Easing, Layout} from 'react-native-reanimated' - -import {atoms as a} from '#/alf' import { configurableAdultLabelGroups, configurableOtherLabelGroups, usePreferencesSetAdultContentMutation, } from 'state/queries/preferences' -import {Divider} from '#/components/Divider' + +import {atoms as a} from '#/alf' import {Button, ButtonIcon, ButtonText} from '#/components/Button' +import {Divider} from '#/components/Divider' +import {IconCircle} from '#/components/IconCircle' import {ChevronRight_Stroke2_Corner0_Rounded as ChevronRight} from '#/components/icons/Chevron' import {EyeSlash_Stroke2_Corner0_Rounded as EyeSlash} from '#/components/icons/EyeSlash' -import {usePreferencesQuery} from '#/state/queries/preferences' import {Loader} from '#/components/Loader' import {useAnalytics} from '#/lib/analytics/analytics' - import { Description, OnboardingControls, Title, } from '#/screens/Onboarding/Layout' -import {ModerationOption} from '#/screens/Onboarding/StepModeration/ModerationOption' -import {AdultContentEnabledPref} from '#/screens/Onboarding/StepModeration/AdultContentEnabledPref' import {Context} from '#/screens/Onboarding/state' -import {IconCircle} from '#/components/IconCircle' +import {AdultContentEnabledPref} from '#/screens/Onboarding/StepModeration/AdultContentEnabledPref' +import {ModerationOption} from '#/screens/Onboarding/StepModeration/ModerationOption' +import {usePreferencesQuery} from '#/state/queries/preferences' function AnimatedDivider() { return ( diff --git a/src/screens/Onboarding/StepSuggestedAccounts/SuggestedAccountCard.tsx b/src/screens/Onboarding/StepSuggestedAccounts/SuggestedAccountCard.tsx index 0670058920..4f5595a29d 100644 --- a/src/screens/Onboarding/StepSuggestedAccounts/SuggestedAccountCard.tsx +++ b/src/screens/Onboarding/StepSuggestedAccounts/SuggestedAccountCard.tsx @@ -1,14 +1,14 @@ +import {AppBskyActorDefs, moderateProfile} from '@atproto/api' import React from 'react' import {View, ViewStyle} from 'react-native' -import {AppBskyActorDefs, moderateProfile} from '@atproto/api' -import {useTheme, atoms as a, flatten} from '#/alf' -import {Text} from '#/components/Typography' +import {atoms as a, flatten, useTheme} from '#/alf' import {useItemContext} from '#/components/forms/Toggle' import {Check_Stroke2_Corner0_Rounded as Check} from '#/components/icons/Check' -import {UserAvatar} from '#/view/com/util/UserAvatar' -import {useModerationOpts} from '#/state/queries/preferences' import {RichText} from '#/components/RichText' +import {Text} from '#/components/Typography' +import {useModerationOpts} from '#/state/queries/preferences' +import {UserAvatar} from '#/view/com/util/UserAvatar' export function SuggestedAccountCard({ profile, diff --git a/src/screens/Onboarding/StepSuggestedAccounts/index.tsx b/src/screens/Onboarding/StepSuggestedAccounts/index.tsx index 14faddc10f..eb051ac85d 100644 --- a/src/screens/Onboarding/StepSuggestedAccounts/index.tsx +++ b/src/screens/Onboarding/StepSuggestedAccounts/index.tsx @@ -1,33 +1,32 @@ -import React from 'react' -import {View} from 'react-native' import {AppBskyActorDefs} from '@atproto/api' -import {useLingui} from '@lingui/react' import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import React from 'react' +import {View} from 'react-native' import {atoms as a, useBreakpoints} from '#/alf' -import {PlusLarge_Stroke2_Corner0_Rounded as Plus} from '#/components/icons/Plus' -import {At_Stroke2_Corner0_Rounded as At} from '#/components/icons/At' import {Button, ButtonIcon, ButtonText} from '#/components/Button' -import {Text} from '#/components/Typography' -import {useProfilesQuery} from '#/state/queries/profile' -import {Loader} from '#/components/Loader' import * as Toggle from '#/components/forms/Toggle' -import {useModerationOpts} from '#/state/queries/preferences' +import {IconCircle} from '#/components/IconCircle' +import {At_Stroke2_Corner0_Rounded as At} from '#/components/icons/At' +import {PlusLarge_Stroke2_Corner0_Rounded as Plus} from '#/components/icons/Plus' +import {Loader} from '#/components/Loader' +import {Text} from '#/components/Typography' import {useAnalytics} from '#/lib/analytics/analytics' import {capitalize} from '#/lib/strings/capitalize' - -import {Context} from '#/screens/Onboarding/state' import { - Title, Description, OnboardingControls, + Title, } from '#/screens/Onboarding/Layout' +import {Context} from '#/screens/Onboarding/state' import { SuggestedAccountCard, SuggestedAccountCardPlaceholder, } from '#/screens/Onboarding/StepSuggestedAccounts/SuggestedAccountCard' import {aggregateInterestItems} from '#/screens/Onboarding/util' -import {IconCircle} from '#/components/IconCircle' +import {useModerationOpts} from '#/state/queries/preferences' +import {useProfilesQuery} from '#/state/queries/profile' export function Inner({ profiles, diff --git a/src/screens/Onboarding/StepTopicalFeeds.tsx b/src/screens/Onboarding/StepTopicalFeeds.tsx index 636565e340..88906b581e 100644 --- a/src/screens/Onboarding/StepTopicalFeeds.tsx +++ b/src/screens/Onboarding/StepTopicalFeeds.tsx @@ -1,28 +1,27 @@ +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {IS_PROD_SERVICE} from 'lib/constants' import React from 'react' import {View} from 'react-native' -import {useLingui} from '@lingui/react' -import {msg, Trans} from '@lingui/macro' +import {useSession} from 'state/session' import {atoms as a} from '#/alf' -import {ChevronRight_Stroke2_Corner0_Rounded as ChevronRight} from '#/components/icons/Chevron' -import {ListMagnifyingGlass_Stroke2_Corner0_Rounded as ListMagnifyingGlass} from '#/components/icons/ListMagnifyingGlass' import {Button, ButtonIcon, ButtonText} from '#/components/Button' import * as Toggle from '#/components/forms/Toggle' +import {IconCircle} from '#/components/IconCircle' +import {ChevronRight_Stroke2_Corner0_Rounded as ChevronRight} from '#/components/icons/Chevron' +import {ListMagnifyingGlass_Stroke2_Corner0_Rounded as ListMagnifyingGlass} from '#/components/icons/ListMagnifyingGlass' import {Loader} from '#/components/Loader' import {useAnalytics} from '#/lib/analytics/analytics' import {capitalize} from '#/lib/strings/capitalize' - -import {Context} from '#/screens/Onboarding/state' import { - Title, Description, OnboardingControls, + Title, } from '#/screens/Onboarding/Layout' +import {Context} from '#/screens/Onboarding/state' import {FeedCard} from '#/screens/Onboarding/StepAlgoFeeds/FeedCard' import {aggregateInterestItems} from '#/screens/Onboarding/util' -import {IconCircle} from '#/components/IconCircle' -import {IS_PROD_SERVICE} from 'lib/constants' -import {useSession} from 'state/session' export function StepTopicalFeeds() { const {_} = useLingui() diff --git a/src/screens/Onboarding/index.tsx b/src/screens/Onboarding/index.tsx index 9e5029e87a..d171869b87 100644 --- a/src/screens/Onboarding/index.tsx +++ b/src/screens/Onboarding/index.tsx @@ -1,18 +1,17 @@ -import React from 'react' -import {useLingui} from '@lingui/react' import {msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import React from 'react' import {Portal} from '#/components/Portal' - -import {Context, initialState, reducer} from '#/screens/Onboarding/state' import {Layout, OnboardingControls} from '#/screens/Onboarding/Layout' -import {StepInterests} from '#/screens/Onboarding/StepInterests' -import {StepSuggestedAccounts} from '#/screens/Onboarding/StepSuggestedAccounts' -import {StepFollowingFeed} from '#/screens/Onboarding/StepFollowingFeed' +import {Context, initialState, reducer} from '#/screens/Onboarding/state' import {StepAlgoFeeds} from '#/screens/Onboarding/StepAlgoFeeds' -import {StepTopicalFeeds} from '#/screens/Onboarding/StepTopicalFeeds' import {StepFinished} from '#/screens/Onboarding/StepFinished' +import {StepFollowingFeed} from '#/screens/Onboarding/StepFollowingFeed' +import {StepInterests} from '#/screens/Onboarding/StepInterests' import {StepModeration} from '#/screens/Onboarding/StepModeration' +import {StepSuggestedAccounts} from '#/screens/Onboarding/StepSuggestedAccounts' +import {StepTopicalFeeds} from '#/screens/Onboarding/StepTopicalFeeds' export function Onboarding() { const {_} = useLingui() diff --git a/src/screens/Onboarding/util.ts b/src/screens/Onboarding/util.ts index 1a0b8d21bc..ac2c50abdf 100644 --- a/src/screens/Onboarding/util.ts +++ b/src/screens/Onboarding/util.ts @@ -2,6 +2,7 @@ import {AppBskyGraphFollow, AppBskyGraphGetFollows} from '@atproto/api' import {until} from '#/lib/async/until' import {getAgent} from '#/state/session' + import {PRIMARY_FEEDS} from './StepAlgoFeeds' function shuffle(array: any) { diff --git a/src/state/cache/post-shadow.ts b/src/state/cache/post-shadow.ts index 7cf72fae43..f9d8b19958 100644 --- a/src/state/cache/post-shadow.ts +++ b/src/state/cache/post-shadow.ts @@ -1,13 +1,15 @@ -import {useEffect, useState, useMemo} from 'react' -import EventEmitter from 'eventemitter3' import {AppBskyFeedDefs} from '@atproto/api' +import EventEmitter from 'eventemitter3' +import {queryClient} from 'lib/react-query' +import {useEffect, useMemo, useState} from 'react' + import {batchedUpdates} from '#/lib/batchedUpdates' -import {Shadow, castAsShadow} from './types' + import {findAllPostsInQueryData as findAllPostsInNotifsQueryData} from '../queries/notifications/feed' import {findAllPostsInQueryData as findAllPostsInFeedQueryData} from '../queries/post-feed' import {findAllPostsInQueryData as findAllPostsInThreadQueryData} from '../queries/post-thread' import {findAllPostsInQueryData as findAllPostsInSearchQueryData} from '../queries/search-posts' -import {queryClient} from 'lib/react-query' +import {castAsShadow, Shadow} from './types' export type {Shadow} from './types' export interface PostShadow { diff --git a/src/state/cache/profile-shadow.ts b/src/state/cache/profile-shadow.ts index 34fe5995d3..f688a7b4f7 100644 --- a/src/state/cache/profile-shadow.ts +++ b/src/state/cache/profile-shadow.ts @@ -1,7 +1,11 @@ -import {useEffect, useState, useMemo} from 'react' -import EventEmitter from 'eventemitter3' import {AppBskyActorDefs} from '@atproto/api' +import EventEmitter from 'eventemitter3' +import {queryClient} from 'lib/react-query' +import {useEffect, useMemo, useState} from 'react' + import {batchedUpdates} from '#/lib/batchedUpdates' + +import {findAllProfilesInQueryData as findAllProfilesInActorSearchQueryData} from '../queries/actor-search' import {findAllProfilesInQueryData as findAllProfilesInListMembersQueryData} from '../queries/list-members' import {findAllProfilesInQueryData as findAllProfilesInMyBlockedAccountsQueryData} from '../queries/my-blocked-accounts' import {findAllProfilesInQueryData as findAllProfilesInMyMutedAccountsQueryData} from '../queries/my-muted-accounts' @@ -11,9 +15,7 @@ import {findAllProfilesInQueryData as findAllProfilesInProfileQueryData} from '. import {findAllProfilesInQueryData as findAllProfilesInProfileFollowersQueryData} from '../queries/profile-followers' import {findAllProfilesInQueryData as findAllProfilesInProfileFollowsQueryData} from '../queries/profile-follows' import {findAllProfilesInQueryData as findAllProfilesInSuggestedFollowsQueryData} from '../queries/suggested-follows' -import {findAllProfilesInQueryData as findAllProfilesInActorSearchQueryData} from '../queries/actor-search' -import {Shadow, castAsShadow} from './types' -import {queryClient} from 'lib/react-query' +import {castAsShadow, Shadow} from './types' export type {Shadow} from './types' export interface ProfileShadow { diff --git a/src/state/dialogs/index.tsx b/src/state/dialogs/index.tsx index 951105a509..279e02a49c 100644 --- a/src/state/dialogs/index.tsx +++ b/src/state/dialogs/index.tsx @@ -1,5 +1,6 @@ import React from 'react' import {SharedValue, useSharedValue} from 'react-native-reanimated' + import {DialogControlRefProps} from '#/components/Dialog' import {Provider as GlobalDialogsProvider} from '#/components/dialogs/Context' diff --git a/src/state/invites.tsx b/src/state/invites.tsx index 6a0d1b5900..9dbbefe2ff 100644 --- a/src/state/invites.tsx +++ b/src/state/invites.tsx @@ -1,4 +1,5 @@ import React from 'react' + import * as persisted from '#/state/persisted' type StateContext = persisted.Schema['invites'] diff --git a/src/state/lightbox.tsx b/src/state/lightbox.tsx index e3bddaee02..4a4f2807dc 100644 --- a/src/state/lightbox.tsx +++ b/src/state/lightbox.tsx @@ -1,5 +1,6 @@ -import React from 'react' import {AppBskyActorDefs} from '@atproto/api' +import React from 'react' + import {useNonReactiveCallback} from '#/lib/hooks/useNonReactiveCallback' interface Lightbox { diff --git a/src/state/modals/index.tsx b/src/state/modals/index.tsx index 691add0050..b9af874933 100644 --- a/src/state/modals/index.tsx +++ b/src/state/modals/index.tsx @@ -1,12 +1,13 @@ -import React from 'react' import {AppBskyActorDefs, AppBskyGraphDefs, ModerationUI} from '@atproto/api' +import React from 'react' import {StyleProp, ViewStyle} from 'react-native' import {Image as RNImage} from 'react-native-image-crop-picker' -import {ImageModel} from '#/state/models/media/image' -import {GalleryModel} from '#/state/models/media/gallery' import {useNonReactiveCallback} from '#/lib/hooks/useNonReactiveCallback' import {EmbedPlayerSource} from '#/lib/strings/embed-player' +import {GalleryModel} from '#/state/models/media/gallery' +import {ImageModel} from '#/state/models/media/image' + import {ThreadgateSetting} from '../queries/threadgate' export interface ConfirmModal { diff --git a/src/state/models/media/gallery.ts b/src/state/models/media/gallery.ts index 9c8c13010d..52fb623b01 100644 --- a/src/state/models/media/gallery.ts +++ b/src/state/models/media/gallery.ts @@ -1,8 +1,9 @@ +import {getImageDim} from 'lib/media/manip' +import {openPicker} from 'lib/media/picker' import {makeAutoObservable, runInAction} from 'mobx' -import {ImageModel} from './image' import {Image as RNImage} from 'react-native-image-crop-picker' -import {openPicker} from 'lib/media/picker' -import {getImageDim} from 'lib/media/manip' + +import {ImageModel} from './image' interface InitialImageUri { uri: string diff --git a/src/state/models/media/image.e2e.ts b/src/state/models/media/image.e2e.ts index ccabd50475..d2c65bdf73 100644 --- a/src/state/models/media/image.e2e.ts +++ b/src/state/models/media/image.e2e.ts @@ -1,9 +1,9 @@ -import {Image as RNImage} from 'react-native-image-crop-picker' -import {makeAutoObservable} from 'mobx' -import {POST_IMG_MAX} from 'lib/constants' import {ActionCrop} from 'expo-image-manipulator' -import {Position} from 'react-avatar-editor' +import {POST_IMG_MAX} from 'lib/constants' import {Dimensions} from 'lib/media/types' +import {makeAutoObservable} from 'mobx' +import {Position} from 'react-avatar-editor' +import {Image as RNImage} from 'react-native-image-crop-picker' export interface ImageManipulationAttributes { aspectRatio?: '4:3' | '1:1' | '3:4' | 'None' diff --git a/src/state/models/media/image.ts b/src/state/models/media/image.ts index 5c547c148f..31f2bba66d 100644 --- a/src/state/models/media/image.ts +++ b/src/state/models/media/image.ts @@ -1,13 +1,14 @@ -import {Image as RNImage} from 'react-native-image-crop-picker' -import {makeAutoObservable, runInAction} from 'mobx' -import {POST_IMG_MAX} from 'lib/constants' import * as ImageManipulator from 'expo-image-manipulator' -import {getDataUriSize} from 'lib/media/util' -import {openCropper} from 'lib/media/picker' import {ActionCrop, FlipType, SaveFormat} from 'expo-image-manipulator' -import {Position} from 'react-avatar-editor' +import {POST_IMG_MAX} from 'lib/constants' +import {openCropper} from 'lib/media/picker' import {Dimensions} from 'lib/media/types' +import {getDataUriSize} from 'lib/media/util' +import {makeAutoObservable, runInAction} from 'mobx' import {isIOS} from 'platform/detection' +import {Position} from 'react-avatar-editor' +import {Image as RNImage} from 'react-native-image-crop-picker' + import {logger} from '#/logger' export interface ImageManipulationAttributes { diff --git a/src/state/muted-threads.tsx b/src/state/muted-threads.tsx index 84a717eb79..eeb33e9483 100644 --- a/src/state/muted-threads.tsx +++ b/src/state/muted-threads.tsx @@ -1,6 +1,7 @@ import React from 'react' -import * as persisted from '#/state/persisted' + import {track} from '#/lib/analytics/analytics' +import * as persisted from '#/state/persisted' type StateContext = persisted.Schema['mutedThreads'] type ToggleContext = (uri: string) => boolean diff --git a/src/state/persisted/__tests__/index.test.ts b/src/state/persisted/__tests__/index.test.ts index 90c5e0e4ec..6832d274af 100644 --- a/src/state/persisted/__tests__/index.test.ts +++ b/src/state/persisted/__tests__/index.test.ts @@ -1,10 +1,10 @@ -import {jest, expect, test, afterEach} from '@jest/globals' +import {afterEach, expect, jest, test} from '@jest/globals' import AsyncStorage from '@react-native-async-storage/async-storage' -import {defaults} from '#/state/persisted/schema' +import * as persisted from '#/state/persisted' import {migrate} from '#/state/persisted/legacy' +import {defaults} from '#/state/persisted/schema' import * as store from '#/state/persisted/store' -import * as persisted from '#/state/persisted' const write = jest.mocked(store.write) const read = jest.mocked(store.read) diff --git a/src/state/persisted/__tests__/migrate.test.ts b/src/state/persisted/__tests__/migrate.test.ts index 97767e2732..61250bd884 100644 --- a/src/state/persisted/__tests__/migrate.test.ts +++ b/src/state/persisted/__tests__/migrate.test.ts @@ -1,11 +1,11 @@ -import {jest, expect, test, afterEach} from '@jest/globals' +import {afterEach, expect, jest, test} from '@jest/globals' import AsyncStorage from '@react-native-async-storage/async-storage' -import {defaults, schema} from '#/state/persisted/schema' -import {transform, migrate} from '#/state/persisted/legacy' -import * as store from '#/state/persisted/store' import {logger} from '#/logger' import * as fixtures from '#/state/persisted/__tests__/fixtures' +import {migrate, transform} from '#/state/persisted/legacy' +import {defaults, schema} from '#/state/persisted/schema' +import * as store from '#/state/persisted/store' const write = jest.mocked(store.write) const read = jest.mocked(store.read) diff --git a/src/state/persisted/__tests__/schema.test.ts b/src/state/persisted/__tests__/schema.test.ts index c78a2c27cb..8bea28ec01 100644 --- a/src/state/persisted/__tests__/schema.test.ts +++ b/src/state/persisted/__tests__/schema.test.ts @@ -1,8 +1,8 @@ import {expect, test} from '@jest/globals' +import * as fixtures from '#/state/persisted/__tests__/fixtures' import {transform} from '#/state/persisted/legacy' import {defaults, schema} from '#/state/persisted/schema' -import * as fixtures from '#/state/persisted/__tests__/fixtures' test('defaults', () => { expect(() => schema.parse(defaults)).not.toThrow() diff --git a/src/state/persisted/index.ts b/src/state/persisted/index.ts index f57172d2fe..4e0aafd822 100644 --- a/src/state/persisted/index.ts +++ b/src/state/persisted/index.ts @@ -1,11 +1,12 @@ import EventEmitter from 'eventemitter3' + +import BroadcastChannel from '#/lib/broadcast' import {logger} from '#/logger' -import {defaults, Schema} from '#/state/persisted/schema' import {migrate} from '#/state/persisted/legacy' +import {defaults, Schema} from '#/state/persisted/schema' import * as store from '#/state/persisted/store' -import BroadcastChannel from '#/lib/broadcast' -export type {Schema, PersistedAccount} from '#/state/persisted/schema' +export type {PersistedAccount, Schema} from '#/state/persisted/schema' export {defaults} from '#/state/persisted/schema' const broadcast = new BroadcastChannel('BSKY_BROADCAST_CHANNEL') diff --git a/src/state/persisted/legacy.ts b/src/state/persisted/legacy.ts index fd94a96a24..9918ac4629 100644 --- a/src/state/persisted/legacy.ts +++ b/src/state/persisted/legacy.ts @@ -2,7 +2,7 @@ import AsyncStorage from '@react-native-async-storage/async-storage' import {logger} from '#/logger' import {defaults, Schema, schema} from '#/state/persisted/schema' -import {write, read} from '#/state/persisted/store' +import {read, write} from '#/state/persisted/store' /** * The shape of the serialized data from our legacy Mobx store. diff --git a/src/state/persisted/schema.ts b/src/state/persisted/schema.ts index 0aefaa4744..14328748eb 100644 --- a/src/state/persisted/schema.ts +++ b/src/state/persisted/schema.ts @@ -1,4 +1,5 @@ import {z} from 'zod' + import {deviceLocales} from '#/platform/detection' const externalEmbedOptions = ['show', 'hide'] as const diff --git a/src/state/persisted/store.ts b/src/state/persisted/store.ts index bb7fbed890..0971b5d717 100644 --- a/src/state/persisted/store.ts +++ b/src/state/persisted/store.ts @@ -1,7 +1,7 @@ import AsyncStorage from '@react-native-async-storage/async-storage' -import {Schema, schema} from '#/state/persisted/schema' import {logger} from '#/logger' +import {Schema, schema} from '#/state/persisted/schema' const BSKY_STORAGE = 'BSKY_STORAGE' diff --git a/src/state/preferences/alt-text-required.tsx b/src/state/preferences/alt-text-required.tsx index 81de9e0060..642e790fbc 100644 --- a/src/state/preferences/alt-text-required.tsx +++ b/src/state/preferences/alt-text-required.tsx @@ -1,4 +1,5 @@ import React from 'react' + import * as persisted from '#/state/persisted' type StateContext = persisted.Schema['requireAltTextEnabled'] diff --git a/src/state/preferences/external-embeds-prefs.tsx b/src/state/preferences/external-embeds-prefs.tsx index 0f6385fe8e..1c6429adca 100644 --- a/src/state/preferences/external-embeds-prefs.tsx +++ b/src/state/preferences/external-embeds-prefs.tsx @@ -1,6 +1,7 @@ +import {EmbedPlayerSource} from 'lib/strings/embed-player' import React from 'react' + import * as persisted from '#/state/persisted' -import {EmbedPlayerSource} from 'lib/strings/embed-player' type StateContext = persisted.Schema['externalEmbeds'] type SetContext = (source: EmbedPlayerSource, value: 'show' | 'hide') => void diff --git a/src/state/preferences/feed-tuners.tsx b/src/state/preferences/feed-tuners.tsx index c4954d20a8..48131707f0 100644 --- a/src/state/preferences/feed-tuners.tsx +++ b/src/state/preferences/feed-tuners.tsx @@ -1,9 +1,11 @@ import {useMemo} from 'react' + import {FeedTuner} from '#/lib/api/feed-manip' + import {FeedDescriptor} from '../queries/post-feed' -import {useLanguagePrefs} from './languages' import {usePreferencesQuery} from '../queries/preferences' import {useSession} from '../session' +import {useLanguagePrefs} from './languages' export function useFeedTuners(feedDesc: FeedDescriptor) { const langPrefs = useLanguagePrefs() diff --git a/src/state/preferences/hidden-posts.tsx b/src/state/preferences/hidden-posts.tsx index 11119ce758..2c6a373e15 100644 --- a/src/state/preferences/hidden-posts.tsx +++ b/src/state/preferences/hidden-posts.tsx @@ -1,4 +1,5 @@ import React from 'react' + import * as persisted from '#/state/persisted' type SetStateCb = ( diff --git a/src/state/preferences/in-app-browser.tsx b/src/state/preferences/in-app-browser.tsx index 2398f1f812..c0eb541bb3 100644 --- a/src/state/preferences/in-app-browser.tsx +++ b/src/state/preferences/in-app-browser.tsx @@ -1,15 +1,17 @@ -import React from 'react' -import * as persisted from '#/state/persisted' -import {Linking} from 'react-native' import * as WebBrowser from 'expo-web-browser' -import {isNative} from '#/platform/detection' -import {useModalControls} from '../modals' import {usePalette} from 'lib/hooks/usePalette' import { + createBskyAppAbsoluteUrl, isBskyRSSUrl, isRelativeUrl, - createBskyAppAbsoluteUrl, } from 'lib/strings/url-helpers' +import React from 'react' +import {Linking} from 'react-native' + +import {isNative} from '#/platform/detection' +import * as persisted from '#/state/persisted' + +import {useModalControls} from '../modals' type StateContext = persisted.Schema['useInAppBrowser'] type SetContext = (v: persisted.Schema['useInAppBrowser']) => void diff --git a/src/state/preferences/index.tsx b/src/state/preferences/index.tsx index a442b763ad..6c045326d9 100644 --- a/src/state/preferences/index.tsx +++ b/src/state/preferences/index.tsx @@ -1,11 +1,11 @@ import React from 'react' -import {Provider as LanguagesProvider} from './languages' + import {Provider as AltTextRequiredProvider} from '../preferences/alt-text-required' import {Provider as HiddenPostsProvider} from '../preferences/hidden-posts' import {Provider as ExternalEmbedsProvider} from './external-embeds-prefs' import {Provider as InAppBrowserProvider} from './in-app-browser' +import {Provider as LanguagesProvider} from './languages' -export {useLanguagePrefs, useLanguagePrefsApi} from './languages' export { useRequireAltTextEnabled, useSetRequireAltTextEnabled, @@ -15,6 +15,7 @@ export { useSetExternalEmbedPref, } from './external-embeds-prefs' export * from './hidden-posts' +export {useLanguagePrefs, useLanguagePrefsApi} from './languages' export function Provider({children}: React.PropsWithChildren<{}>) { return ( diff --git a/src/state/preferences/languages.tsx b/src/state/preferences/languages.tsx index df774c05e2..2905a465e6 100644 --- a/src/state/preferences/languages.tsx +++ b/src/state/preferences/languages.tsx @@ -1,6 +1,7 @@ import React from 'react' -import * as persisted from '#/state/persisted' + import {AppLanguage} from '#/locale/languages' +import * as persisted from '#/state/persisted' type SetStateCb = ( s: persisted.Schema['languagePrefs'], diff --git a/src/state/queries/actor-autocomplete.ts b/src/state/queries/actor-autocomplete.ts index 3159ad7aaf..9fffe3bd73 100644 --- a/src/state/queries/actor-autocomplete.ts +++ b/src/state/queries/actor-autocomplete.ts @@ -1,17 +1,18 @@ -import React from 'react' -import {AppBskyActorDefs, ModerationOpts, moderateProfile} from '@atproto/api' +import {AppBskyActorDefs, moderateProfile, ModerationOpts} from '@atproto/api' import {useQuery, useQueryClient} from '@tanstack/react-query' +import React from 'react' +import {isInvalidHandle} from '#/lib/strings/handles' import {logger} from '#/logger' -import {getAgent} from '#/state/session' -import {useMyFollowsQuery} from '#/state/queries/my-follows' import {STALE} from '#/state/queries' +import {useMyFollowsQuery} from '#/state/queries/my-follows' +import {getAgent} from '#/state/session' + import { DEFAULT_LOGGED_OUT_PREFERENCES, getModerationOpts, useModerationOpts, } from './preferences' -import {isInvalidHandle} from '#/lib/strings/handles' const DEFAULT_MOD_OPTS = getModerationOpts({ userDid: '', diff --git a/src/state/queries/actor-search.ts b/src/state/queries/actor-search.ts index f72511548c..9f85ad613d 100644 --- a/src/state/queries/actor-search.ts +++ b/src/state/queries/actor-search.ts @@ -1,8 +1,8 @@ import {AppBskyActorDefs} from '@atproto/api' import {QueryClient, useQuery} from '@tanstack/react-query' -import {getAgent} from '#/state/session' import {STALE} from '#/state/queries' +import {getAgent} from '#/state/session' export const RQKEY = (prefix: string) => ['actor-search', prefix] diff --git a/src/state/queries/app-passwords.ts b/src/state/queries/app-passwords.ts index 014244f01c..91c01c1f3c 100644 --- a/src/state/queries/app-passwords.ts +++ b/src/state/queries/app-passwords.ts @@ -1,7 +1,8 @@ import {ComAtprotoServerCreateAppPassword} from '@atproto/api' -import {useQuery, useQueryClient, useMutation} from '@tanstack/react-query' +import {useMutation, useQuery, useQueryClient} from '@tanstack/react-query' import {STALE} from '#/state/queries' + import {getAgent} from '../session' export const RQKEY = () => ['app-passwords'] diff --git a/src/state/queries/feed.ts b/src/state/queries/feed.ts index 1fa92c291f..53ce885a55 100644 --- a/src/state/queries/feed.ts +++ b/src/state/queries/feed.ts @@ -1,24 +1,24 @@ import { - useQuery, - useInfiniteQuery, - InfiniteData, - QueryKey, - useMutation, -} from '@tanstack/react-query' -import { - AtUri, - RichText, AppBskyFeedDefs, AppBskyGraphDefs, AppBskyUnspeccedGetPopularFeedGenerators, + AtUri, + RichText, } from '@atproto/api' +import { + InfiniteData, + QueryKey, + useInfiniteQuery, + useMutation, + useQuery, +} from '@tanstack/react-query' -import {router} from '#/routes' import {sanitizeDisplayName} from '#/lib/strings/display-names' import {sanitizeHandle} from '#/lib/strings/handles' -import {getAgent} from '#/state/session' -import {usePreferencesQuery} from '#/state/queries/preferences' +import {router} from '#/routes' import {STALE} from '#/state/queries' +import {usePreferencesQuery} from '#/state/queries/preferences' +import {getAgent} from '#/state/session' export type FeedSourceFeedInfo = { type: 'feed' diff --git a/src/state/queries/handle.ts b/src/state/queries/handle.ts index d7c4116999..77d757d830 100644 --- a/src/state/queries/handle.ts +++ b/src/state/queries/handle.ts @@ -1,8 +1,8 @@ +import {useMutation, useQueryClient} from '@tanstack/react-query' import React from 'react' -import {useQueryClient, useMutation} from '@tanstack/react-query' -import {getAgent} from '#/state/session' import {STALE} from '#/state/queries' +import {getAgent} from '#/state/session' const fetchHandleQueryKey = (handleOrDid: string) => ['handle', handleOrDid] const fetchDidQueryKey = (handleOrDid: string) => ['did', handleOrDid] diff --git a/src/state/queries/invites.ts b/src/state/queries/invites.ts index 9ae9c707f4..9ea49ebcae 100644 --- a/src/state/queries/invites.ts +++ b/src/state/queries/invites.ts @@ -1,9 +1,9 @@ import {ComAtprotoServerDefs} from '@atproto/api' import {useQuery} from '@tanstack/react-query' -import {getAgent} from '#/state/session' -import {STALE} from '#/state/queries' import {cleanError} from '#/lib/strings/errors' +import {STALE} from '#/state/queries' +import {getAgent} from '#/state/session' function isInviteAvailable(invite: ComAtprotoServerDefs.InviteCode): boolean { return invite.available - invite.uses.length > 0 && !invite.disabled diff --git a/src/state/queries/list-members.ts b/src/state/queries/list-members.ts index d84089c90d..8bce0e4185 100644 --- a/src/state/queries/list-members.ts +++ b/src/state/queries/list-members.ts @@ -1,13 +1,13 @@ import {AppBskyActorDefs, AppBskyGraphGetList} from '@atproto/api' import { - useInfiniteQuery, InfiniteData, QueryClient, QueryKey, + useInfiniteQuery, } from '@tanstack/react-query' -import {getAgent} from '#/state/session' import {STALE} from '#/state/queries' +import {getAgent} from '#/state/session' const PAGE_SIZE = 30 type RQPageParam = string | undefined diff --git a/src/state/queries/list-memberships.ts b/src/state/queries/list-memberships.ts index 6cae3fa2e8..9df50c403f 100644 --- a/src/state/queries/list-memberships.ts +++ b/src/state/queries/list-memberships.ts @@ -17,9 +17,9 @@ import {AtUri} from '@atproto/api' import {useMutation, useQuery, useQueryClient} from '@tanstack/react-query' -import {useSession, getAgent} from '#/state/session' -import {RQKEY as LIST_MEMBERS_RQKEY} from '#/state/queries/list-members' import {STALE} from '#/state/queries' +import {RQKEY as LIST_MEMBERS_RQKEY} from '#/state/queries/list-members' +import {getAgent, useSession} from '#/state/session' // sanity limit is SANITY_PAGE_LIMIT*PAGE_SIZE total records const SANITY_PAGE_LIMIT = 1000 diff --git a/src/state/queries/list.ts b/src/state/queries/list.ts index 845658a279..1bdf96e17b 100644 --- a/src/state/queries/list.ts +++ b/src/state/queries/list.ts @@ -1,20 +1,22 @@ import { - AtUri, + AppBskyGraphDefs, AppBskyGraphGetList, AppBskyGraphList, - AppBskyGraphDefs, + AtUri, Facet, } from '@atproto/api' -import {Image as RNImage} from 'react-native-image-crop-picker' -import {useQuery, useMutation, useQueryClient} from '@tanstack/react-query' +import {useMutation, useQuery, useQueryClient} from '@tanstack/react-query' import chunk from 'lodash.chunk' -import {useSession, getAgent} from '../session' -import {invalidate as invalidateMyLists} from './my-lists' -import {RQKEY as PROFILE_LISTS_RQKEY} from './profile-lists' +import {Image as RNImage} from 'react-native-image-crop-picker' + import {uploadBlob} from '#/lib/api' import {until} from '#/lib/async/until' import {STALE} from '#/state/queries' +import {getAgent, useSession} from '../session' +import {invalidate as invalidateMyLists} from './my-lists' +import {RQKEY as PROFILE_LISTS_RQKEY} from './profile-lists' + export const RQKEY = (uri: string) => ['list', uri] export function useListQuery(uri?: string) { diff --git a/src/state/queries/my-blocked-accounts.ts b/src/state/queries/my-blocked-accounts.ts index badaaec34d..6e981f1e24 100644 --- a/src/state/queries/my-blocked-accounts.ts +++ b/src/state/queries/my-blocked-accounts.ts @@ -1,9 +1,9 @@ import {AppBskyActorDefs, AppBskyGraphGetBlocks} from '@atproto/api' import { - useInfiniteQuery, InfiniteData, QueryClient, QueryKey, + useInfiniteQuery, } from '@tanstack/react-query' import {getAgent} from '#/state/session' diff --git a/src/state/queries/my-follows.ts b/src/state/queries/my-follows.ts index f95c3f5a7c..e66b642e2f 100644 --- a/src/state/queries/my-follows.ts +++ b/src/state/queries/my-follows.ts @@ -1,8 +1,10 @@ import {AppBskyActorDefs} from '@atproto/api' import {useQuery} from '@tanstack/react-query' -import {useSession, getAgent} from '../session' + import {STALE} from '#/state/queries' +import {getAgent, useSession} from '../session' + // sanity limit is SANITY_PAGE_LIMIT*PAGE_SIZE total records const SANITY_PAGE_LIMIT = 1000 const PAGE_SIZE = 100 diff --git a/src/state/queries/my-lists.ts b/src/state/queries/my-lists.ts index d53e130327..5cf3dfca03 100644 --- a/src/state/queries/my-lists.ts +++ b/src/state/queries/my-lists.ts @@ -1,9 +1,9 @@ import {AppBskyGraphDefs} from '@atproto/api' -import {useQuery, QueryClient} from '@tanstack/react-query' +import {QueryClient, useQuery} from '@tanstack/react-query' import {accumulate} from '#/lib/async/accumulate' -import {useSession, getAgent} from '#/state/session' import {STALE} from '#/state/queries' +import {getAgent, useSession} from '#/state/session' export type MyListsFilter = | 'all' diff --git a/src/state/queries/my-muted-accounts.ts b/src/state/queries/my-muted-accounts.ts index 8929e04d3e..a397887d85 100644 --- a/src/state/queries/my-muted-accounts.ts +++ b/src/state/queries/my-muted-accounts.ts @@ -1,9 +1,9 @@ import {AppBskyActorDefs, AppBskyGraphGetMutes} from '@atproto/api' import { - useInfiniteQuery, InfiniteData, QueryClient, QueryKey, + useInfiniteQuery, } from '@tanstack/react-query' import {getAgent} from '#/state/session' diff --git a/src/state/queries/notifications/feed.ts b/src/state/queries/notifications/feed.ts index 405d054d44..dbc23fcbdd 100644 --- a/src/state/queries/notifications/feed.ts +++ b/src/state/queries/notifications/feed.ts @@ -16,24 +16,26 @@ * 3. Don't call this query's `refetch()` if you're trying to sync latest; call `checkUnread()` instead. */ -import {useEffect, useRef} from 'react' import {AppBskyFeedDefs} from '@atproto/api' import { - useInfiniteQuery, InfiniteData, + QueryClient, QueryKey, + useInfiniteQuery, useQueryClient, - QueryClient, } from '@tanstack/react-query' -import {useModerationOpts} from '../preferences' -import {useUnreadNotificationsApi} from './unread' -import {fetchPage} from './util' -import {FeedPage} from './types' +import {useEffect, useRef} from 'react' + import {useMutedThreads} from '#/state/muted-threads' + import {STALE} from '..' +import {useModerationOpts} from '../preferences' import {embedViewRecordToPostView, getEmbeddedPost} from '../util' +import {FeedPage} from './types' +import {useUnreadNotificationsApi} from './unread' +import {fetchPage} from './util' -export type {NotificationType, FeedNotification, FeedPage} from './types' +export type {FeedNotification, FeedPage, NotificationType} from './types' const PAGE_SIZE = 30 diff --git a/src/state/queries/notifications/types.ts b/src/state/queries/notifications/types.ts index 812236cf06..db1cf878f2 100644 --- a/src/state/queries/notifications/types.ts +++ b/src/state/queries/notifications/types.ts @@ -1,6 +1,6 @@ import { - AppBskyNotificationListNotifications, AppBskyFeedDefs, + AppBskyNotificationListNotifications, } from '@atproto/api' export type NotificationType = diff --git a/src/state/queries/notifications/unread.tsx b/src/state/queries/notifications/unread.tsx index e7a0631ecf..2f55872eb9 100644 --- a/src/state/queries/notifications/unread.tsx +++ b/src/state/queries/notifications/unread.tsx @@ -2,20 +2,22 @@ * A kind of companion API to ./feed.ts. See that file for more info. */ -import React from 'react' -import * as Notifications from 'expo-notifications' import {useQueryClient} from '@tanstack/react-query' +import * as Notifications from 'expo-notifications' +import React from 'react' +import {AppState} from 'react-native' + import BroadcastChannel from '#/lib/broadcast' -import {useSession, getAgent} from '#/state/session' -import {useModerationOpts} from '../preferences' -import {fetchPage} from './util' -import {CachedFeedPage, FeedPage} from './types' +import {logger} from '#/logger' import {isNative} from '#/platform/detection' import {useMutedThreads} from '#/state/muted-threads' -import {RQKEY as RQKEY_NOTIFS} from './feed' -import {logger} from '#/logger' +import {getAgent, useSession} from '#/state/session' + +import {useModerationOpts} from '../preferences' import {truncateAndInvalidate} from '../util' -import {AppState} from 'react-native' +import {RQKEY as RQKEY_NOTIFS} from './feed' +import {CachedFeedPage, FeedPage} from './types' +import {fetchPage} from './util' const UPDATE_INTERVAL = 30 * 1e3 // 30sec diff --git a/src/state/queries/notifications/util.ts b/src/state/queries/notifications/util.ts index 626d3e9118..f019c89660 100644 --- a/src/state/queries/notifications/util.ts +++ b/src/state/queries/notifications/util.ts @@ -1,19 +1,21 @@ import { - AppBskyNotificationListNotifications, - ModerationOpts, - moderateProfile, + AppBskyEmbedRecord, AppBskyFeedDefs, + AppBskyFeedLike, AppBskyFeedPost, AppBskyFeedRepost, - AppBskyFeedLike, - AppBskyEmbedRecord, + AppBskyNotificationListNotifications, + moderateProfile, + ModerationOpts, } from '@atproto/api' -import {moderatePost_wrapped as moderatePost} from '#/lib/moderatePost_wrapped' -import chunk from 'lodash.chunk' import {QueryClient} from '@tanstack/react-query' +import chunk from 'lodash.chunk' + +import {moderatePost_wrapped as moderatePost} from '#/lib/moderatePost_wrapped' + import {getAgent} from '../../session' import {precacheProfile} from '../profile' -import {NotificationType, FeedNotification, FeedPage} from './types' +import {FeedNotification, FeedPage, NotificationType} from './types' const GROUPABLE_REASONS = ['like', 'repost', 'follow'] const MS_1HR = 1e3 * 60 * 60 diff --git a/src/state/queries/post-feed.ts b/src/state/queries/post-feed.ts index c295ffcb03..db6debc5ad 100644 --- a/src/state/queries/post-feed.ts +++ b/src/state/queries/post-feed.ts @@ -1,5 +1,3 @@ -import React, {useCallback, useEffect, useRef} from 'react' -import {AppState} from 'react-native' import { AppBskyFeedDefs, AppBskyFeedPost, @@ -7,34 +5,38 @@ import { PostModeration, } from '@atproto/api' import { - useInfiniteQuery, InfiniteData, - QueryKey, QueryClient, + QueryKey, + useInfiniteQuery, useQueryClient, } from '@tanstack/react-query' -import {moderatePost_wrapped as moderatePost} from '#/lib/moderatePost_wrapped' -import {useFeedTuners} from '../preferences/feed-tuners' -import {FeedTuner, FeedTunerFn, NoopFeedTuner} from 'lib/api/feed-manip' -import {FeedAPI, ReasonFeedSource} from 'lib/api/feed/types' -import {FollowingFeedAPI} from 'lib/api/feed/following' import {AuthorFeedAPI} from 'lib/api/feed/author' -import {LikesFeedAPI} from 'lib/api/feed/likes' import {CustomFeedAPI} from 'lib/api/feed/custom' +import {FollowingFeedAPI} from 'lib/api/feed/following' +import {LikesFeedAPI} from 'lib/api/feed/likes' import {ListFeedAPI} from 'lib/api/feed/list' import {MergeFeedAPI} from 'lib/api/feed/merge' +import {FeedAPI, ReasonFeedSource} from 'lib/api/feed/types' +import {FeedTuner, FeedTunerFn, NoopFeedTuner} from 'lib/api/feed-manip' +import {BSKY_FEED_OWNER_DIDS} from 'lib/constants' +import {queryClient} from 'lib/react-query' +import React, {useCallback, useEffect, useRef} from 'react' +import {AppState} from 'react-native' + import {HomeFeedAPI} from '#/lib/api/feed/home' +import {moderatePost_wrapped as moderatePost} from '#/lib/moderatePost_wrapped' import {logger} from '#/logger' import {STALE} from '#/state/queries' -import {precacheFeedPostProfiles} from './profile' -import {getAgent} from '#/state/session' import {DEFAULT_LOGGED_OUT_PREFERENCES} from '#/state/queries/preferences/const' import {getModerationOpts} from '#/state/queries/preferences/moderation' +import {getAgent} from '#/state/session' import {KnownError} from '#/view/com/posts/FeedErrorMessage' -import {embedViewRecordToPostView, getEmbeddedPost} from './util' + +import {useFeedTuners} from '../preferences/feed-tuners' import {useModerationOpts} from './preferences' -import {queryClient} from 'lib/react-query' -import {BSKY_FEED_OWNER_DIDS} from 'lib/constants' +import {precacheFeedPostProfiles} from './profile' +import {embedViewRecordToPostView, getEmbeddedPost} from './util' type ActorDid = string type AuthorFilter = diff --git a/src/state/queries/post-liked-by.ts b/src/state/queries/post-liked-by.ts index 2cde07f280..b48b0e92e0 100644 --- a/src/state/queries/post-liked-by.ts +++ b/src/state/queries/post-liked-by.ts @@ -1,9 +1,9 @@ import {AppBskyActorDefs, AppBskyFeedGetLikes} from '@atproto/api' import { - useInfiniteQuery, InfiniteData, QueryClient, QueryKey, + useInfiniteQuery, } from '@tanstack/react-query' import {getAgent} from '#/state/session' diff --git a/src/state/queries/post-reposted-by.ts b/src/state/queries/post-reposted-by.ts index db5fa65140..c33d1b2bb7 100644 --- a/src/state/queries/post-reposted-by.ts +++ b/src/state/queries/post-reposted-by.ts @@ -1,9 +1,9 @@ import {AppBskyActorDefs, AppBskyFeedGetRepostedBy} from '@atproto/api' import { - useInfiniteQuery, InfiniteData, QueryClient, QueryKey, + useInfiniteQuery, } from '@tanstack/react-query' import {getAgent} from '#/state/session' diff --git a/src/state/queries/post-thread.ts b/src/state/queries/post-thread.ts index 26d40599c6..e46b770da2 100644 --- a/src/state/queries/post-thread.ts +++ b/src/state/queries/post-thread.ts @@ -1,15 +1,16 @@ import { + AppBskyEmbedRecord, AppBskyFeedDefs, - AppBskyFeedPost, AppBskyFeedGetPostThread, - AppBskyEmbedRecord, + AppBskyFeedPost, } from '@atproto/api' -import {useQuery, useQueryClient, QueryClient} from '@tanstack/react-query' +import {QueryClient, useQuery, useQueryClient} from '@tanstack/react-query' -import {getAgent} from '#/state/session' import {UsePreferencesQueryResponse} from '#/state/queries/preferences/types' -import {findAllPostsInQueryData as findAllPostsInFeedQueryData} from './post-feed' +import {getAgent} from '#/state/session' + import {findAllPostsInQueryData as findAllPostsInNotifsQueryData} from './notifications/feed' +import {findAllPostsInQueryData as findAllPostsInFeedQueryData} from './post-feed' import {precacheThreadPostProfiles} from './profile' import {getEmbeddedPost} from './util' diff --git a/src/state/queries/post.ts b/src/state/queries/post.ts index eb59f7da40..1179eb22b7 100644 --- a/src/state/queries/post.ts +++ b/src/state/queries/post.ts @@ -1,11 +1,12 @@ -import {useCallback} from 'react' import {AppBskyFeedDefs, AtUri} from '@atproto/api' -import {useQuery, useMutation, useQueryClient} from '@tanstack/react-query' -import {Shadow} from '#/state/cache/types' -import {getAgent} from '#/state/session' -import {updatePostShadow} from '#/state/cache/post-shadow' +import {useMutation, useQuery, useQueryClient} from '@tanstack/react-query' +import {useCallback} from 'react' + import {track} from '#/lib/analytics/analytics' import {useToggleMutationQueue} from '#/lib/hooks/useToggleMutationQueue' +import {updatePostShadow} from '#/state/cache/post-shadow' +import {Shadow} from '#/state/cache/types' +import {getAgent} from '#/state/session' export const RQKEY = (postUri: string) => ['post', postUri] diff --git a/src/state/queries/preferences/const.ts b/src/state/queries/preferences/const.ts index 53c9e482af..97e54a8ce8 100644 --- a/src/state/queries/preferences/const.ts +++ b/src/state/queries/preferences/const.ts @@ -1,8 +1,8 @@ +import {DEFAULT_LOGGED_OUT_LABEL_PREFERENCES} from '#/state/queries/preferences/moderation' import { - UsePreferencesQueryResponse, ThreadViewPreferences, + UsePreferencesQueryResponse, } from '#/state/queries/preferences/types' -import {DEFAULT_LOGGED_OUT_LABEL_PREFERENCES} from '#/state/queries/preferences/moderation' export const DEFAULT_HOME_FEED_PREFS: UsePreferencesQueryResponse['feedViewPrefs'] = { diff --git a/src/state/queries/preferences/index.ts b/src/state/queries/preferences/index.ts index 37ef10ae0c..88b315f959 100644 --- a/src/state/queries/preferences/index.ts +++ b/src/state/queries/preferences/index.ts @@ -1,33 +1,33 @@ -import {useMemo} from 'react' -import {useQuery, useMutation, useQueryClient} from '@tanstack/react-query' import { - LabelPreference, - BskyFeedViewPreference, AppBskyActorDefs, + BskyFeedViewPreference, + LabelPreference, } from '@atproto/api' +import {useMutation, useQuery, useQueryClient} from '@tanstack/react-query' +import {useMemo} from 'react' import {track} from '#/lib/analytics/analytics' import {getAge} from '#/lib/strings/time' -import {useSession, getAgent} from '#/state/session' +import {useHiddenPosts} from '#/state/preferences/hidden-posts' +import {STALE} from '#/state/queries' +import { + DEFAULT_HOME_FEED_PREFS, + DEFAULT_LOGGED_OUT_PREFERENCES, + DEFAULT_THREAD_VIEW_PREFS, +} from '#/state/queries/preferences/const' import {DEFAULT_LABEL_PREFERENCES} from '#/state/queries/preferences/moderation' +import {getModerationOpts} from '#/state/queries/preferences/moderation' import { ConfigurableLabelGroup, - UsePreferencesQueryResponse, ThreadViewPreferences, + UsePreferencesQueryResponse, } from '#/state/queries/preferences/types' import {temp__migrateLabelPref} from '#/state/queries/preferences/util' -import { - DEFAULT_HOME_FEED_PREFS, - DEFAULT_THREAD_VIEW_PREFS, - DEFAULT_LOGGED_OUT_PREFERENCES, -} from '#/state/queries/preferences/const' -import {getModerationOpts} from '#/state/queries/preferences/moderation' -import {STALE} from '#/state/queries' -import {useHiddenPosts} from '#/state/preferences/hidden-posts' +import {getAgent, useSession} from '#/state/session' -export * from '#/state/queries/preferences/types' -export * from '#/state/queries/preferences/moderation' export * from '#/state/queries/preferences/const' +export * from '#/state/queries/preferences/moderation' +export * from '#/state/queries/preferences/types' export const preferencesQueryKey = ['getPreferences'] diff --git a/src/state/queries/preferences/moderation.ts b/src/state/queries/preferences/moderation.ts index cdae529374..bf5139be5a 100644 --- a/src/state/queries/preferences/moderation.ts +++ b/src/state/queries/preferences/moderation.ts @@ -1,12 +1,12 @@ import { - LabelPreference, ComAtprotoLabelDefs, + LabelPreference, ModerationOpts, } from '@atproto/api' import { - LabelGroup, ConfigurableLabelGroup, + LabelGroup, UsePreferencesQueryResponse, } from '#/state/queries/preferences/types' diff --git a/src/state/queries/preferences/types.ts b/src/state/queries/preferences/types.ts index 45c9eed7de..3c65c31e0d 100644 --- a/src/state/queries/preferences/types.ts +++ b/src/state/queries/preferences/types.ts @@ -1,8 +1,8 @@ import { + BskyFeedViewPreference, BskyPreferences, - LabelPreference, BskyThreadViewPreference, - BskyFeedViewPreference, + LabelPreference, } from '@atproto/api' export const configurableAdultLabelGroups = [ diff --git a/src/state/queries/profile-extra-info.ts b/src/state/queries/profile-extra-info.ts index 8fc32c33eb..e5bdff58af 100644 --- a/src/state/queries/profile-extra-info.ts +++ b/src/state/queries/profile-extra-info.ts @@ -1,7 +1,7 @@ import {useQuery} from '@tanstack/react-query' -import {getAgent} from '#/state/session' import {STALE} from '#/state/queries' +import {getAgent} from '#/state/session' // TODO refactor invalidate on mutate? export const RQKEY = (did: string) => ['profile-extra-info', did] diff --git a/src/state/queries/profile-feedgens.ts b/src/state/queries/profile-feedgens.ts index 7d33eb9c80..5b01259ec4 100644 --- a/src/state/queries/profile-feedgens.ts +++ b/src/state/queries/profile-feedgens.ts @@ -1,5 +1,5 @@ import {AppBskyFeedGetActorFeeds} from '@atproto/api' -import {useInfiniteQuery, InfiniteData, QueryKey} from '@tanstack/react-query' +import {InfiniteData, QueryKey, useInfiniteQuery} from '@tanstack/react-query' import {getAgent} from '#/state/session' diff --git a/src/state/queries/profile-followers.ts b/src/state/queries/profile-followers.ts index fdefc82536..28cc82d7ab 100644 --- a/src/state/queries/profile-followers.ts +++ b/src/state/queries/profile-followers.ts @@ -1,9 +1,9 @@ import {AppBskyActorDefs, AppBskyGraphGetFollowers} from '@atproto/api' import { - useInfiniteQuery, InfiniteData, QueryClient, QueryKey, + useInfiniteQuery, } from '@tanstack/react-query' import {getAgent} from '#/state/session' diff --git a/src/state/queries/profile-follows.ts b/src/state/queries/profile-follows.ts index 428c8aebd1..697074d07f 100644 --- a/src/state/queries/profile-follows.ts +++ b/src/state/queries/profile-follows.ts @@ -1,13 +1,13 @@ import {AppBskyActorDefs, AppBskyGraphGetFollows} from '@atproto/api' import { - useInfiniteQuery, InfiniteData, QueryClient, QueryKey, + useInfiniteQuery, } from '@tanstack/react-query' -import {getAgent} from '#/state/session' import {STALE} from '#/state/queries' +import {getAgent} from '#/state/session' const PAGE_SIZE = 30 type RQPageParam = string | undefined diff --git a/src/state/queries/profile-lists.ts b/src/state/queries/profile-lists.ts index 505d33b9fa..d20f8a0310 100644 --- a/src/state/queries/profile-lists.ts +++ b/src/state/queries/profile-lists.ts @@ -1,5 +1,6 @@ import {AppBskyGraphGetLists} from '@atproto/api' -import {useInfiniteQuery, InfiniteData, QueryKey} from '@tanstack/react-query' +import {InfiniteData, QueryKey, useInfiniteQuery} from '@tanstack/react-query' + import {getAgent} from '#/state/session' const PAGE_SIZE = 30 diff --git a/src/state/queries/profile.ts b/src/state/queries/profile.ts index e81ea0f3f0..5c4c071c62 100644 --- a/src/state/queries/profile.ts +++ b/src/state/queries/profile.ts @@ -1,31 +1,33 @@ -import {useCallback} from 'react' import { - AtUri, AppBskyActorDefs, - AppBskyActorProfile, AppBskyActorGetProfile, - AppBskyFeedDefs, + AppBskyActorProfile, AppBskyEmbedRecord, AppBskyEmbedRecordWithMedia, + AppBskyFeedDefs, + AtUri, } from '@atproto/api' import { + QueryClient, + useMutation, useQuery, useQueryClient, - useMutation, - QueryClient, } from '@tanstack/react-query' +import {useCallback} from 'react' import {Image as RNImage} from 'react-native-image-crop-picker' -import {useSession, getAgent} from '../session' -import {updateProfileShadow} from '../cache/profile-shadow' + +import {track} from '#/lib/analytics/analytics' import {uploadBlob} from '#/lib/api' import {until} from '#/lib/async/until' +import {useToggleMutationQueue} from '#/lib/hooks/useToggleMutationQueue' import {Shadow} from '#/state/cache/types' +import {STALE} from '#/state/queries' import {resetProfilePostsQueries} from '#/state/queries/post-feed' -import {useToggleMutationQueue} from '#/lib/hooks/useToggleMutationQueue' -import {RQKEY as RQKEY_MY_MUTED} from './my-muted-accounts' + +import {updateProfileShadow} from '../cache/profile-shadow' +import {getAgent, useSession} from '../session' import {RQKEY as RQKEY_MY_BLOCKED} from './my-blocked-accounts' -import {STALE} from '#/state/queries' -import {track} from '#/lib/analytics/analytics' +import {RQKEY as RQKEY_MY_MUTED} from './my-muted-accounts' import {ThreadNode} from './post-thread' export const RQKEY = (did: string) => ['profile', did] diff --git a/src/state/queries/resolve-uri.ts b/src/state/queries/resolve-uri.ts index 95fc867ddf..dd6769baa3 100644 --- a/src/state/queries/resolve-uri.ts +++ b/src/state/queries/resolve-uri.ts @@ -1,9 +1,10 @@ +import {AppBskyActorDefs, AtUri} from '@atproto/api' import {useQuery, useQueryClient, UseQueryResult} from '@tanstack/react-query' -import {AtUri, AppBskyActorDefs} from '@atproto/api' -import {profileBasicQueryKey as RQKEY_PROFILE_BASIC} from './profile' -import {getAgent} from '#/state/session' import {STALE} from '#/state/queries' +import {getAgent} from '#/state/session' + +import {profileBasicQueryKey as RQKEY_PROFILE_BASIC} from './profile' export const RQKEY = (didOrHandle: string) => ['resolved-did', didOrHandle] diff --git a/src/state/queries/search-posts.ts b/src/state/queries/search-posts.ts index e0b317ca9d..58dba59683 100644 --- a/src/state/queries/search-posts.ts +++ b/src/state/queries/search-posts.ts @@ -1,12 +1,13 @@ import {AppBskyFeedDefs, AppBskyFeedSearchPosts} from '@atproto/api' import { - useInfiniteQuery, InfiniteData, - QueryKey, QueryClient, + QueryKey, + useInfiniteQuery, } from '@tanstack/react-query' import {getAgent} from '#/state/session' + import {embedViewRecordToPostView, getEmbeddedPost} from './util' const searchPostsQueryKey = ({query}: {query: string}) => [ diff --git a/src/state/queries/suggested-feeds.ts b/src/state/queries/suggested-feeds.ts index 7e6b534ad5..f8f40384db 100644 --- a/src/state/queries/suggested-feeds.ts +++ b/src/state/queries/suggested-feeds.ts @@ -1,8 +1,8 @@ -import {useInfiniteQuery, InfiniteData, QueryKey} from '@tanstack/react-query' import {AppBskyFeedGetSuggestedFeeds} from '@atproto/api' +import {InfiniteData, QueryKey, useInfiniteQuery} from '@tanstack/react-query' -import {getAgent} from '#/state/session' import {STALE} from '#/state/queries' +import {getAgent} from '#/state/session' export const suggestedFeedsQueryKey = ['suggestedFeeds'] diff --git a/src/state/queries/suggested-follows.ts b/src/state/queries/suggested-follows.ts index 932226b75c..ba9de82d19 100644 --- a/src/state/queries/suggested-follows.ts +++ b/src/state/queries/suggested-follows.ts @@ -1,4 +1,3 @@ -import React from 'react' import { AppBskyActorDefs, AppBskyActorGetSuggestions, @@ -6,17 +5,18 @@ import { moderateProfile, } from '@atproto/api' import { - useInfiniteQuery, - useQueryClient, - useQuery, InfiniteData, QueryClient, QueryKey, + useInfiniteQuery, + useQuery, + useQueryClient, } from '@tanstack/react-query' +import React from 'react' -import {useSession, getAgent} from '#/state/session' -import {useModerationOpts} from '#/state/queries/preferences' import {STALE} from '#/state/queries' +import {useModerationOpts} from '#/state/queries/preferences' +import {getAgent, useSession} from '#/state/session' const suggestedFollowsQueryKey = ['suggested-follows'] const suggestedFollowsByActorQueryKey = (did: string) => [ diff --git a/src/state/queries/util.ts b/src/state/queries/util.ts index 54752b332a..24f28ca529 100644 --- a/src/state/queries/util.ts +++ b/src/state/queries/util.ts @@ -1,10 +1,10 @@ -import {QueryClient, QueryKey, InfiniteData} from '@tanstack/react-query' import { AppBskyEmbedRecord, AppBskyEmbedRecordWithMedia, AppBskyFeedDefs, AppBskyFeedPost, } from '@atproto/api' +import {InfiniteData, QueryClient, QueryKey} from '@tanstack/react-query' export function truncateAndInvalidate( queryClient: QueryClient, diff --git a/src/state/session/index.tsx b/src/state/session/index.tsx index 46628318c5..9918e2e75b 100644 --- a/src/state/session/index.tsx +++ b/src/state/session/index.tsx @@ -1,17 +1,18 @@ -import React from 'react' -import {BskyAgent, AtpPersistSessionHandler} from '@atproto/api' +import {AtpPersistSessionHandler, BskyAgent} from '@atproto/api' import {useQueryClient} from '@tanstack/react-query' import {jwtDecode} from 'jwt-decode' +import React from 'react' +import {track} from '#/lib/analytics/analytics' import {networkRetry} from '#/lib/async/retry' +import {hasProp} from '#/lib/type-guards' import {logger} from '#/logger' import * as persisted from '#/state/persisted' import {PUBLIC_BSKY_AGENT} from '#/state/queries' -import {emitSessionDropped} from '../events' import {useLoggedOutViewControls} from '#/state/shell/logged-out' import {useCloseAllActiveElements} from '#/state/util' -import {track} from '#/lib/analytics/analytics' -import {hasProp} from '#/lib/type-guards' + +import {emitSessionDropped} from '../events' let __globalAgent: BskyAgent = PUBLIC_BSKY_AGENT diff --git a/src/state/shell/color-mode.tsx b/src/state/shell/color-mode.tsx index f3339d2406..f16e2be533 100644 --- a/src/state/shell/color-mode.tsx +++ b/src/state/shell/color-mode.tsx @@ -1,4 +1,5 @@ import React from 'react' + import * as persisted from '#/state/persisted' type StateContext = { diff --git a/src/state/shell/composer.tsx b/src/state/shell/composer.tsx index c9dbfbeac4..1fb08baa28 100644 --- a/src/state/shell/composer.tsx +++ b/src/state/shell/composer.tsx @@ -1,9 +1,10 @@ -import React from 'react' import { AppBskyEmbedRecord, AppBskyRichtextFacet, PostModeration, } from '@atproto/api' +import React from 'react' + import {useNonReactiveCallback} from '#/lib/hooks/useNonReactiveCallback' export interface ComposerOptsPostRef { diff --git a/src/state/shell/index.tsx b/src/state/shell/index.tsx index 07909c0001..7e41967f53 100644 --- a/src/state/shell/index.tsx +++ b/src/state/shell/index.tsx @@ -1,22 +1,23 @@ import React from 'react' -import {Provider as ShellLayoutProvder} from './shell-layout' + +import {Provider as ColorModeProvider} from './color-mode' +import {Provider as ComposerProvider} from './composer' import {Provider as DrawerOpenProvider} from './drawer-open' import {Provider as DrawerSwipableProvider} from './drawer-swipe-disabled' import {Provider as MinimalModeProvider} from './minimal-mode' -import {Provider as ColorModeProvider} from './color-mode' import {Provider as OnboardingProvider} from './onboarding' -import {Provider as ComposerProvider} from './composer' +import {Provider as ShellLayoutProvder} from './shell-layout' import {Provider as TickEveryMinuteProvider} from './tick-every-minute' +export {useSetThemePrefs, useThemePrefs} from './color-mode' +export {useComposerControls, useComposerState} from './composer' export {useIsDrawerOpen, useSetDrawerOpen} from './drawer-open' export { useIsDrawerSwipeDisabled, useSetDrawerSwipeDisabled, } from './drawer-swipe-disabled' export {useMinimalShellMode, useSetMinimalShellMode} from './minimal-mode' -export {useThemePrefs, useSetThemePrefs} from './color-mode' -export {useOnboardingState, useOnboardingDispatch} from './onboarding' -export {useComposerState, useComposerControls} from './composer' +export {useOnboardingDispatch, useOnboardingState} from './onboarding' export {useTickEveryMinute} from './tick-every-minute' export function Provider({children}: React.PropsWithChildren<{}>) { diff --git a/src/state/shell/onboarding.tsx b/src/state/shell/onboarding.tsx index 6a18b461f9..cd26e42c0f 100644 --- a/src/state/shell/onboarding.tsx +++ b/src/state/shell/onboarding.tsx @@ -1,6 +1,7 @@ import React from 'react' -import * as persisted from '#/state/persisted' + import {track} from '#/lib/analytics/analytics' +import * as persisted from '#/state/persisted' export const OnboardingScreenSteps = { Welcome: 'Welcome', diff --git a/src/state/shell/reminders.ts b/src/state/shell/reminders.ts index ee924eb001..6f68b9b795 100644 --- a/src/state/shell/reminders.ts +++ b/src/state/shell/reminders.ts @@ -1,7 +1,9 @@ -import * as persisted from '#/state/persisted' import {toHashCode} from 'lib/strings/helpers' -import {isOnboardingActive} from './onboarding' + +import * as persisted from '#/state/persisted' + import {SessionAccount} from '../session' +import {isOnboardingActive} from './onboarding' export function shouldRequestEmailConfirmation(account: SessionAccount) { if (!account) { diff --git a/src/state/shell/selected-feed.tsx b/src/state/shell/selected-feed.tsx index a05d8661b4..8a6e82636f 100644 --- a/src/state/shell/selected-feed.tsx +++ b/src/state/shell/selected-feed.tsx @@ -1,6 +1,7 @@ import React from 'react' -import * as persisted from '#/state/persisted' + import {isWeb} from '#/platform/detection' +import * as persisted from '#/state/persisted' type StateContext = string type SetContext = (v: string) => void diff --git a/src/state/util.ts b/src/state/util.ts index f65d14a84c..af6d9026b4 100644 --- a/src/state/util.ts +++ b/src/state/util.ts @@ -1,9 +1,11 @@ import {useCallback} from 'react' + +import {useDialogStateControlContext} from '#/state/dialogs' + import {useLightboxControls} from './lightbox' import {useModalControls} from './modals' import {useComposerControls} from './shell/composer' import {useSetDrawerOpen} from './shell/drawer-open' -import {useDialogStateControlContext} from '#/state/dialogs' /** * returns true if something was closed diff --git a/src/view/com/auth/HomeLoggedOutCTA.tsx b/src/view/com/auth/HomeLoggedOutCTA.tsx index f796d8baee..f2a3c5170b 100644 --- a/src/view/com/auth/HomeLoggedOutCTA.tsx +++ b/src/view/com/auth/HomeLoggedOutCTA.tsx @@ -1,15 +1,17 @@ +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' import React from 'react' import {StyleSheet, TouchableOpacity, View} from 'react-native' -import {useLingui} from '@lingui/react' -import {Trans, msg} from '@lingui/macro' -import {ScrollView} from '../util/Views' -import {Text} from '../util/text/Text' + import {usePalette} from '#/lib/hooks/usePalette' -import {colors, s} from '#/lib/styles' -import {TextLink} from '../util/Link' import {useWebMediaQueries} from '#/lib/hooks/useWebMediaQueries' +import {colors, s} from '#/lib/styles' import {useLoggedOutViewControls} from '#/state/shell/logged-out' +import {TextLink} from '../util/Link' +import {Text} from '../util/text/Text' +import {ScrollView} from '../util/Views' + export function HomeLoggedOutCTA() { const pal = usePalette('default') const {_} = useLingui() diff --git a/src/view/com/auth/LoggedOut.tsx b/src/view/com/auth/LoggedOut.tsx index 603abbab2d..b2df062dd9 100644 --- a/src/view/com/auth/LoggedOut.tsx +++ b/src/view/com/auth/LoggedOut.tsx @@ -1,27 +1,28 @@ -import React from 'react' -import {View, Pressable} from 'react-native' import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' +import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' -import {Trans, msg} from '@lingui/macro' import {useNavigation} from '@react-navigation/native' - +import {useAnalytics} from 'lib/analytics/analytics' +import {usePalette} from 'lib/hooks/usePalette' +import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' +import {NavigationProp} from 'lib/routes/types' +import {s} from 'lib/styles' import {isIOS, isNative} from 'platform/detection' -import {Login} from 'view/com/auth/login/Login' +import React from 'react' +import {Pressable, View} from 'react-native' import {CreateAccount} from 'view/com/auth/create/CreateAccount' +import {Login} from 'view/com/auth/login/Login' import {ErrorBoundary} from 'view/com/util/ErrorBoundary' -import {s} from 'lib/styles' -import {usePalette} from 'lib/hooks/usePalette' -import {useAnalytics} from 'lib/analytics/analytics' -import {SplashScreen} from './SplashScreen' -import {useSetMinimalShellMode} from '#/state/shell/minimal-mode' -import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' + +import {useSession} from '#/state/session' import { useLoggedOutView, useLoggedOutViewControls, } from '#/state/shell/logged-out' -import {useSession} from '#/state/session' +import {useSetMinimalShellMode} from '#/state/shell/minimal-mode' import {Text} from '#/view/com/util/text/Text' -import {NavigationProp} from 'lib/routes/types' + +import {SplashScreen} from './SplashScreen' enum ScreenState { S_LoginOrCreateAccount, diff --git a/src/view/com/auth/Onboarding.tsx b/src/view/com/auth/Onboarding.tsx index bdb7f27c81..e102b1ccf8 100644 --- a/src/view/com/auth/Onboarding.tsx +++ b/src/view/com/auth/Onboarding.tsx @@ -1,13 +1,15 @@ +import {usePalette} from 'lib/hooks/usePalette' +import {s} from 'lib/styles' import React from 'react' -import {SafeAreaView, Platform} from 'react-native' +import {Platform, SafeAreaView} from 'react-native' import {ErrorBoundary} from 'view/com/util/ErrorBoundary' -import {s} from 'lib/styles' -import {usePalette} from 'lib/hooks/usePalette' -import {Welcome} from './onboarding/Welcome' + +import {useOnboardingDispatch, useOnboardingState} from '#/state/shell' +import {useSetMinimalShellMode} from '#/state/shell/minimal-mode' + import {RecommendedFeeds} from './onboarding/RecommendedFeeds' import {RecommendedFollows} from './onboarding/RecommendedFollows' -import {useSetMinimalShellMode} from '#/state/shell/minimal-mode' -import {useOnboardingState, useOnboardingDispatch} from '#/state/shell' +import {Welcome} from './onboarding/Welcome' export function Onboarding() { const pal = usePalette('default') diff --git a/src/view/com/auth/SplashScreen.tsx b/src/view/com/auth/SplashScreen.tsx index 134ae11f10..2b54cb1b63 100644 --- a/src/view/com/auth/SplashScreen.tsx +++ b/src/view/com/auth/SplashScreen.tsx @@ -1,23 +1,25 @@ -import React from 'react' -import {StyleSheet, TouchableOpacity, View} from 'react-native' -import {useSafeAreaInsets} from 'react-native-safe-area-context' -import {Text} from 'view/com/util/text/Text' -import {ErrorBoundary} from 'view/com/util/ErrorBoundary' -import {s, colors} from 'lib/styles' -import {usePalette} from 'lib/hooks/usePalette' -import {CenteredView} from '../util/Views' -import {Trans, msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {Logo} from '#/view/icons/Logo' -import {Logotype} from '#/view/icons/Logotype' import { FontAwesomeIcon, FontAwesomeIconStyle, } from '@fortawesome/react-native-fontawesome' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {usePalette} from 'lib/hooks/usePalette' +import {colors, s} from 'lib/styles' +import React from 'react' +import {StyleSheet, TouchableOpacity, View} from 'react-native' import RNPickerSelect, {PickerSelectProps} from 'react-native-picker-select' +import {useSafeAreaInsets} from 'react-native-safe-area-context' +import {ErrorBoundary} from 'view/com/util/ErrorBoundary' +import {Text} from 'view/com/util/text/Text' + import {sanitizeAppLanguageSetting} from '#/locale/helpers' -import {useLanguagePrefs, useLanguagePrefsApi} from '#/state/preferences' import {APP_LANGUAGES} from '#/locale/languages' +import {useLanguagePrefs, useLanguagePrefsApi} from '#/state/preferences' +import {Logo} from '#/view/icons/Logo' +import {Logotype} from '#/view/icons/Logotype' + +import {CenteredView} from '../util/Views' export const SplashScreen = ({ onPressSignin, diff --git a/src/view/com/auth/SplashScreen.web.tsx b/src/view/com/auth/SplashScreen.web.tsx index f1921c7ffb..2bf4a12950 100644 --- a/src/view/com/auth/SplashScreen.web.tsx +++ b/src/view/com/auth/SplashScreen.web.tsx @@ -1,21 +1,23 @@ -import React from 'react' -import {StyleSheet, TouchableOpacity, View, Pressable} from 'react-native' import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' -import {Text} from 'view/com/util/text/Text' -import {TextLink} from '../util/Link' -import {ErrorBoundary} from 'view/com/util/ErrorBoundary' -import {s, colors} from 'lib/styles' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' import {usePalette} from 'lib/hooks/usePalette' -import {CenteredView} from '../util/Views' -import {isWeb} from 'platform/detection' import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {Trans, msg} from '@lingui/macro' -import {Logo} from '#/view/icons/Logo' -import {Logotype} from '#/view/icons/Logotype' -import {useLingui} from '@lingui/react' +import {colors, s} from 'lib/styles' +import {isWeb} from 'platform/detection' +import React from 'react' +import {Pressable, StyleSheet, TouchableOpacity, View} from 'react-native' +import {ErrorBoundary} from 'view/com/util/ErrorBoundary' +import {Text} from 'view/com/util/text/Text' + import {sanitizeAppLanguageSetting} from '#/locale/helpers' -import {useLanguagePrefs, useLanguagePrefsApi} from '#/state/preferences' import {APP_LANGUAGES} from '#/locale/languages' +import {useLanguagePrefs, useLanguagePrefsApi} from '#/state/preferences' +import {Logo} from '#/view/icons/Logo' +import {Logotype} from '#/view/icons/Logotype' + +import {TextLink} from '../util/Link' +import {CenteredView} from '../util/Views' export const SplashScreen = ({ onDismiss, diff --git a/src/view/com/auth/create/CaptchaWebView.tsx b/src/view/com/auth/create/CaptchaWebView.tsx index b0de8b4a4b..9bfc9218e3 100644 --- a/src/view/com/auth/create/CaptchaWebView.tsx +++ b/src/view/com/auth/create/CaptchaWebView.tsx @@ -1,7 +1,7 @@ import React from 'react' +import {StyleSheet} from 'react-native' import {WebView, WebViewNavigation} from 'react-native-webview' import {ShouldStartLoadRequest} from 'react-native-webview/lib/WebViewTypes' -import {StyleSheet} from 'react-native' import {CreateAccountState} from 'view/com/auth/create/state' const ALLOWED_HOSTS = [ diff --git a/src/view/com/auth/create/CreateAccount.tsx b/src/view/com/auth/create/CreateAccount.tsx index d193802fe0..be7e4c4327 100644 --- a/src/view/com/auth/create/CreateAccount.tsx +++ b/src/view/com/auth/create/CreateAccount.tsx @@ -1,3 +1,9 @@ +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {useAnalytics} from 'lib/analytics/analytics' +import {usePalette} from 'lib/hooks/usePalette' +import {createFullHandle, validateHandle} from 'lib/strings/handles' +import {s} from 'lib/styles' import React from 'react' import { ActivityIndicator, @@ -6,24 +12,19 @@ import { TouchableOpacity, View, } from 'react-native' -import {useAnalytics} from 'lib/analytics/analytics' -import {Text} from '../../util/text/Text' +import {getAgent} from 'state/session' import {LoggedOutLayout} from 'view/com/util/layouts/LoggedOutLayout' -import {s} from 'lib/styles' -import {usePalette} from 'lib/hooks/usePalette' -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {useCreateAccount, useSubmitCreateAccount} from './state' -import {useServiceQuery} from '#/state/queries/service' + import {FEEDBACK_FORM_URL, HITSLOP_10} from '#/lib/constants' +import {useWebMediaQueries} from '#/lib/hooks/useWebMediaQueries' +import {useServiceQuery} from '#/state/queries/service' +import {TextLink} from '../../util/Link' +import {Text} from '../../util/text/Text' +import {useCreateAccount, useSubmitCreateAccount} from './state' import {Step1} from './Step1' import {Step2} from './Step2' import {Step3} from './Step3' -import {useWebMediaQueries} from '#/lib/hooks/useWebMediaQueries' -import {TextLink} from '../../util/Link' -import {getAgent} from 'state/session' -import {createFullHandle, validateHandle} from 'lib/strings/handles' export function CreateAccount({onPressBack}: {onPressBack: () => void}) { const {screen} = useAnalytics() diff --git a/src/view/com/auth/create/Policies.tsx b/src/view/com/auth/create/Policies.tsx index 2c7d60818e..fea4566b8d 100644 --- a/src/view/com/auth/create/Policies.tsx +++ b/src/view/com/auth/create/Policies.tsx @@ -1,14 +1,15 @@ -import React from 'react' -import {StyleSheet, View} from 'react-native' +import {ComAtprotoServerDescribeServer} from '@atproto/api' import { FontAwesomeIcon, FontAwesomeIconStyle, } from '@fortawesome/react-native-fontawesome' -import {ComAtprotoServerDescribeServer} from '@atproto/api' +import {usePalette} from 'lib/hooks/usePalette' +import {colors, s} from 'lib/styles' +import React from 'react' +import {StyleSheet, View} from 'react-native' + import {TextLink} from '../../util/Link' import {Text} from '../../util/text/Text' -import {s, colors} from 'lib/styles' -import {usePalette} from 'lib/hooks/usePalette' type ServiceDescription = ComAtprotoServerDescribeServer.OutputSchema diff --git a/src/view/com/auth/create/Step1.tsx b/src/view/com/auth/create/Step1.tsx index 1f6852f8cc..9dcc74f7dd 100644 --- a/src/view/com/auth/create/Step1.tsx +++ b/src/view/com/auth/create/Step1.tsx @@ -1,3 +1,12 @@ +import { + FontAwesomeIcon, + FontAwesomeIconStyle, +} from '@fortawesome/react-native-fontawesome' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {usePalette} from 'lib/hooks/usePalette' +import {s} from 'lib/styles' +import {isWeb} from 'platform/detection' import React from 'react' import { ActivityIndicator, @@ -6,27 +15,19 @@ import { TouchableOpacity, View, } from 'react-native' -import {CreateAccountState, CreateAccountDispatch, is18} from './state' -import {Text} from 'view/com/util/text/Text' -import {DateInput} from 'view/com/util/forms/DateInput' -import {StepHeader} from './StepHeader' -import {s} from 'lib/styles' -import {usePalette} from 'lib/hooks/usePalette' -import {TextInput} from '../util/TextInput' -import {Policies} from './Policies' import {ErrorMessage} from 'view/com/util/error/ErrorMessage' -import {isWeb} from 'platform/detection' -import {Trans, msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {logger} from '#/logger' -import { - FontAwesomeIcon, - FontAwesomeIconStyle, -} from '@fortawesome/react-native-fontawesome' +import {DateInput} from 'view/com/util/forms/DateInput' +import {Text} from 'view/com/util/text/Text' + import {useDialogControl} from '#/components/Dialog' +import {toNiceDomain} from '#/lib/strings/url-helpers' +import {logger} from '#/logger' import {ServerInputDialog} from '../server-input' -import {toNiceDomain} from '#/lib/strings/url-helpers' +import {TextInput} from '../util/TextInput' +import {Policies} from './Policies' +import {CreateAccountDispatch, CreateAccountState, is18} from './state' +import {StepHeader} from './StepHeader' function sanitizeDate(date: Date): Date { if (!date || date.toString() === 'Invalid Date') { diff --git a/src/view/com/auth/create/Step2.tsx b/src/view/com/auth/create/Step2.tsx index 5c262977f1..08eb34fb3b 100644 --- a/src/view/com/auth/create/Step2.tsx +++ b/src/view/com/auth/create/Step2.tsx @@ -1,22 +1,24 @@ -import React from 'react' -import {View} from 'react-native' -import {CreateAccountState, CreateAccountDispatch} from './state' -import {Text} from 'view/com/util/text/Text' -import {StepHeader} from './StepHeader' -import {s} from 'lib/styles' -import {TextInput} from '../util/TextInput' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {useFocusEffect} from '@react-navigation/native' +import {usePalette} from 'lib/hooks/usePalette' import { createFullHandle, IsValidHandle, validateHandle, } from 'lib/strings/handles' -import {usePalette} from 'lib/hooks/usePalette' -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' +import {s} from 'lib/styles' +import React from 'react' +import {View} from 'react-native' +import {Text} from 'view/com/util/text/Text' + import {atoms as a, useTheme} from '#/alf' import {Check_Stroke2_Corner0_Rounded as Check} from '#/components/icons/Check' import {TimesLarge_Stroke2_Corner0_Rounded as Times} from '#/components/icons/Times' -import {useFocusEffect} from '@react-navigation/native' + +import {TextInput} from '../util/TextInput' +import {CreateAccountDispatch, CreateAccountState} from './state' +import {StepHeader} from './StepHeader' /** STEP 3: Your user handle * @field User handle diff --git a/src/view/com/auth/create/Step3.tsx b/src/view/com/auth/create/Step3.tsx index 53fdfdde81..b572871716 100644 --- a/src/view/com/auth/create/Step3.tsx +++ b/src/view/com/auth/create/Step3.tsx @@ -1,20 +1,20 @@ +import {msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {createFullHandle} from 'lib/strings/handles' +import {useTheme} from 'lib/ThemeContext' +import {nanoid} from 'nanoid/non-secure' +import {isWeb} from 'platform/detection' import React from 'react' import {ActivityIndicator, StyleSheet, View} from 'react-native' +import {CaptchaWebView} from 'view/com/auth/create/CaptchaWebView' +import {ErrorMessage} from 'view/com/util/error/ErrorMessage' + import { - CreateAccountState, CreateAccountDispatch, + CreateAccountState, useSubmitCreateAccount, } from './state' import {StepHeader} from './StepHeader' -import {ErrorMessage} from 'view/com/util/error/ErrorMessage' -import {isWeb} from 'platform/detection' -import {msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' - -import {nanoid} from 'nanoid/non-secure' -import {CaptchaWebView} from 'view/com/auth/create/CaptchaWebView' -import {useTheme} from 'lib/ThemeContext' -import {createFullHandle} from 'lib/strings/handles' const CAPTCHA_PATH = '/gate/signup' diff --git a/src/view/com/auth/create/StepHeader.tsx b/src/view/com/auth/create/StepHeader.tsx index a98b392d8d..90946e37b4 100644 --- a/src/view/com/auth/create/StepHeader.tsx +++ b/src/view/com/auth/create/StepHeader.tsx @@ -1,8 +1,9 @@ +import {Trans} from '@lingui/macro' +import {usePalette} from 'lib/hooks/usePalette' import React from 'react' import {StyleSheet, View} from 'react-native' import {Text} from 'view/com/util/text/Text' -import {usePalette} from 'lib/hooks/usePalette' -import {Trans} from '@lingui/macro' + import {CreateAccountState} from './state' export function StepHeader({ diff --git a/src/view/com/auth/create/state.ts b/src/view/com/auth/create/state.ts index 7a727ec0b2..7ff5fceb65 100644 --- a/src/view/com/auth/create/state.ts +++ b/src/view/com/auth/create/state.ts @@ -1,24 +1,25 @@ -import {useCallback, useReducer} from 'react' import { - ComAtprotoServerDescribeServer, ComAtprotoServerCreateAccount, + ComAtprotoServerDescribeServer, } from '@atproto/api' -import {I18nContext, useLingui} from '@lingui/react' import {msg} from '@lingui/macro' +import {I18nContext, useLingui} from '@lingui/react' import * as EmailValidator from 'email-validator' import {getAge} from 'lib/strings/time' -import {logger} from '#/logger' -import {createFullHandle, validateHandle} from '#/lib/strings/handles' -import {cleanError} from '#/lib/strings/errors' -import {useOnboardingDispatch} from '#/state/shell/onboarding' -import {useSessionApi} from '#/state/session' -import {DEFAULT_SERVICE, IS_PROD_SERVICE} from '#/lib/constants' +import {useCallback, useReducer} from 'react' import { DEFAULT_PROD_FEEDS, usePreferencesSetBirthDateMutation, useSetSaveFeedsMutation, } from 'state/queries/preferences' +import {DEFAULT_SERVICE, IS_PROD_SERVICE} from '#/lib/constants' +import {cleanError} from '#/lib/strings/errors' +import {createFullHandle, validateHandle} from '#/lib/strings/handles' +import {logger} from '#/logger' +import {useSessionApi} from '#/state/session' +import {useOnboardingDispatch} from '#/state/shell/onboarding' + export type ServiceDescription = ComAtprotoServerDescribeServer.OutputSchema const DEFAULT_DATE = new Date(Date.now() - 60e3 * 60 * 24 * 365 * 20) // default to 20 years ago diff --git a/src/view/com/auth/login/ChooseAccountForm.tsx b/src/view/com/auth/login/ChooseAccountForm.tsx index 32cd8315d3..440b066ee2 100644 --- a/src/view/com/auth/login/ChooseAccountForm.tsx +++ b/src/view/com/auth/login/ChooseAccountForm.tsx @@ -1,22 +1,24 @@ -import React from 'react' -import {ScrollView, TouchableOpacity, View} from 'react-native' import { FontAwesomeIcon, FontAwesomeIconStyle, } from '@fortawesome/react-native-fontawesome' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' import {useAnalytics} from 'lib/analytics/analytics' -import {Text} from '../../util/text/Text' -import {UserAvatar} from '../../util/UserAvatar' -import {s, colors} from 'lib/styles' import {usePalette} from 'lib/hooks/usePalette' -import {Trans, msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {styles} from './styles' -import {useSession, useSessionApi, SessionAccount} from '#/state/session' +import {colors, s} from 'lib/styles' +import React from 'react' +import {ScrollView, TouchableOpacity, View} from 'react-native' + import {useProfileQuery} from '#/state/queries/profile' +import {SessionAccount, useSession, useSessionApi} from '#/state/session' import {useLoggedOutViewControls} from '#/state/shell/logged-out' import * as Toast from '#/view/com/util/Toast' +import {Text} from '../../util/text/Text' +import {UserAvatar} from '../../util/UserAvatar' +import {styles} from './styles' + function AccountItem({ account, onSelect, diff --git a/src/view/com/auth/login/ForgotPasswordForm.tsx b/src/view/com/auth/login/ForgotPasswordForm.tsx index 322da2b8fd..74dd1d85a1 100644 --- a/src/view/com/auth/login/ForgotPasswordForm.tsx +++ b/src/view/com/auth/login/ForgotPasswordForm.tsx @@ -1,33 +1,34 @@ -import React, {useState, useEffect} from 'react' -import { - ActivityIndicator, - Keyboard, - TextInput, - TouchableOpacity, - View, -} from 'react-native' +import {ComAtprotoServerDescribeServer} from '@atproto/api' +import {BskyAgent} from '@atproto/api' import { FontAwesomeIcon, FontAwesomeIconStyle, } from '@fortawesome/react-native-fontawesome' -import {ComAtprotoServerDescribeServer} from '@atproto/api' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' import * as EmailValidator from 'email-validator' -import {BskyAgent} from '@atproto/api' import {useAnalytics} from 'lib/analytics/analytics' -import {Text} from '../../util/text/Text' -import {s} from 'lib/styles' -import {toNiceDomain} from 'lib/strings/url-helpers' -import {isNetworkError} from 'lib/strings/errors' import {usePalette} from 'lib/hooks/usePalette' -import {useTheme} from 'lib/ThemeContext' +import {isNetworkError} from 'lib/strings/errors' import {cleanError} from 'lib/strings/errors' -import {logger} from '#/logger' -import {Trans, msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {styles} from './styles' +import {toNiceDomain} from 'lib/strings/url-helpers' +import {s} from 'lib/styles' +import {useTheme} from 'lib/ThemeContext' +import React, {useEffect, useState} from 'react' +import { + ActivityIndicator, + Keyboard, + TextInput, + TouchableOpacity, + View, +} from 'react-native' + import {useDialogControl} from '#/components/Dialog' +import {logger} from '#/logger' +import {Text} from '../../util/text/Text' import {ServerInputDialog} from '../server-input' +import {styles} from './styles' type ServiceDescription = ComAtprotoServerDescribeServer.OutputSchema diff --git a/src/view/com/auth/login/Login.tsx b/src/view/com/auth/login/Login.tsx index bc931ac04c..f634342a28 100644 --- a/src/view/com/auth/login/Login.tsx +++ b/src/view/com/auth/login/Login.tsx @@ -1,20 +1,22 @@ -import React, {useState, useEffect} from 'react' -import {KeyboardAvoidingView} from 'react-native' +import {msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' import {useAnalytics} from 'lib/analytics/analytics' +import {usePalette} from 'lib/hooks/usePalette' +import React, {useEffect, useState} from 'react' +import {KeyboardAvoidingView} from 'react-native' import {LoggedOutLayout} from 'view/com/util/layouts/LoggedOutLayout' + import {DEFAULT_SERVICE} from '#/lib/constants' -import {usePalette} from 'lib/hooks/usePalette' import {logger} from '#/logger' +import {useServiceQuery} from '#/state/queries/service' +import {SessionAccount, useSession} from '#/state/session' +import {useLoggedOutView} from '#/state/shell/logged-out' + import {ChooseAccountForm} from './ChooseAccountForm' -import {LoginForm} from './LoginForm' import {ForgotPasswordForm} from './ForgotPasswordForm' -import {SetNewPasswordForm} from './SetNewPasswordForm' +import {LoginForm} from './LoginForm' import {PasswordUpdatedForm} from './PasswordUpdatedForm' -import {useLingui} from '@lingui/react' -import {msg} from '@lingui/macro' -import {useSession, SessionAccount} from '#/state/session' -import {useServiceQuery} from '#/state/queries/service' -import {useLoggedOutView} from '#/state/shell/logged-out' +import {SetNewPasswordForm} from './SetNewPasswordForm' enum Forms { Login, diff --git a/src/view/com/auth/login/LoginForm.tsx b/src/view/com/auth/login/LoginForm.tsx index fdba9f203f..acff2fc8bd 100644 --- a/src/view/com/auth/login/LoginForm.tsx +++ b/src/view/com/auth/login/LoginForm.tsx @@ -1,33 +1,34 @@ -import React, {useState, useRef} from 'react' -import { - ActivityIndicator, - Keyboard, - TextInput, - TouchableOpacity, - View, -} from 'react-native' +import {ComAtprotoServerDescribeServer} from '@atproto/api' import { FontAwesomeIcon, FontAwesomeIconStyle, } from '@fortawesome/react-native-fontawesome' -import {ComAtprotoServerDescribeServer} from '@atproto/api' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' import {useAnalytics} from 'lib/analytics/analytics' -import {Text} from '../../util/text/Text' -import {s} from 'lib/styles' +import {usePalette} from 'lib/hooks/usePalette' +import {isNetworkError} from 'lib/strings/errors' +import {cleanError} from 'lib/strings/errors' import {createFullHandle} from 'lib/strings/handles' import {toNiceDomain} from 'lib/strings/url-helpers' -import {isNetworkError} from 'lib/strings/errors' -import {usePalette} from 'lib/hooks/usePalette' +import {s} from 'lib/styles' import {useTheme} from 'lib/ThemeContext' -import {useSessionApi} from '#/state/session' -import {cleanError} from 'lib/strings/errors' -import {logger} from '#/logger' -import {Trans, msg} from '@lingui/macro' -import {styles} from './styles' -import {useLingui} from '@lingui/react' +import React, {useRef, useState} from 'react' +import { + ActivityIndicator, + Keyboard, + TextInput, + TouchableOpacity, + View, +} from 'react-native' + import {useDialogControl} from '#/components/Dialog' +import {logger} from '#/logger' +import {useSessionApi} from '#/state/session' +import {Text} from '../../util/text/Text' import {ServerInputDialog} from '../server-input' +import {styles} from './styles' type ServiceDescription = ComAtprotoServerDescribeServer.OutputSchema diff --git a/src/view/com/auth/login/PasswordUpdatedForm.tsx b/src/view/com/auth/login/PasswordUpdatedForm.tsx index 71f750b141..a88a1dc996 100644 --- a/src/view/com/auth/login/PasswordUpdatedForm.tsx +++ b/src/view/com/auth/login/PasswordUpdatedForm.tsx @@ -1,12 +1,13 @@ +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {useAnalytics} from 'lib/analytics/analytics' +import {usePalette} from 'lib/hooks/usePalette' +import {s} from 'lib/styles' import React, {useEffect} from 'react' import {TouchableOpacity, View} from 'react-native' -import {useAnalytics} from 'lib/analytics/analytics' + import {Text} from '../../util/text/Text' -import {s} from 'lib/styles' -import {usePalette} from 'lib/hooks/usePalette' import {styles} from './styles' -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' export const PasswordUpdatedForm = ({ onPressNext, diff --git a/src/view/com/auth/login/SetNewPasswordForm.tsx b/src/view/com/auth/login/SetNewPasswordForm.tsx index 6d1584c86c..18a95d629e 100644 --- a/src/view/com/auth/login/SetNewPasswordForm.tsx +++ b/src/view/com/auth/login/SetNewPasswordForm.tsx @@ -1,24 +1,26 @@ -import React, {useState, useEffect} from 'react' +import {BskyAgent} from '@atproto/api' +import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {useAnalytics} from 'lib/analytics/analytics' +import {usePalette} from 'lib/hooks/usePalette' +import {isNetworkError} from 'lib/strings/errors' +import {cleanError} from 'lib/strings/errors' +import {checkAndFormatResetCode} from 'lib/strings/password' +import {s} from 'lib/styles' +import {useTheme} from 'lib/ThemeContext' +import React, {useEffect, useState} from 'react' import { ActivityIndicator, TextInput, TouchableOpacity, View, } from 'react-native' -import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' -import {BskyAgent} from '@atproto/api' -import {useAnalytics} from 'lib/analytics/analytics' -import {Text} from '../../util/text/Text' -import {s} from 'lib/styles' -import {isNetworkError} from 'lib/strings/errors' -import {usePalette} from 'lib/hooks/usePalette' -import {useTheme} from 'lib/ThemeContext' -import {cleanError} from 'lib/strings/errors' -import {checkAndFormatResetCode} from 'lib/strings/password' + import {logger} from '#/logger' + +import {Text} from '../../util/text/Text' import {styles} from './styles' -import {Trans, msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' export const SetNewPasswordForm = ({ error, diff --git a/src/view/com/auth/login/styles.ts b/src/view/com/auth/login/styles.ts index 9dccc2803b..5adea4c87b 100644 --- a/src/view/com/auth/login/styles.ts +++ b/src/view/com/auth/login/styles.ts @@ -1,5 +1,6 @@ -import {StyleSheet} from 'react-native' import {colors} from 'lib/styles' +import {StyleSheet} from 'react-native' + import {isWeb} from '#/platform/detection' export const styles = StyleSheet.create({ diff --git a/src/view/com/auth/onboarding/RecommendedFeeds.tsx b/src/view/com/auth/onboarding/RecommendedFeeds.tsx index d3318bffd8..6b78c14156 100644 --- a/src/view/com/auth/onboarding/RecommendedFeeds.tsx +++ b/src/view/com/auth/onboarding/RecommendedFeeds.tsx @@ -1,19 +1,21 @@ +import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {usePalette} from 'lib/hooks/usePalette' +import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' import React from 'react' import {ActivityIndicator, FlatList, StyleSheet, View} from 'react-native' -import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' -import {TabletOrDesktop, Mobile} from 'view/com/util/layouts/Breakpoints' +import {ErrorMessage} from 'view/com/util/error/ErrorMessage' +import {Button} from 'view/com/util/forms/Button' +import {Mobile, TabletOrDesktop} from 'view/com/util/layouts/Breakpoints' +import {TitleColumnLayout} from 'view/com/util/layouts/TitleColumnLayout' import {Text} from 'view/com/util/text/Text' import {ViewHeader} from 'view/com/util/ViewHeader' -import {TitleColumnLayout} from 'view/com/util/layouts/TitleColumnLayout' -import {Button} from 'view/com/util/forms/Button' -import {RecommendedFeedsItem} from './RecommendedFeedsItem' -import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {usePalette} from 'lib/hooks/usePalette' -import {ErrorMessage} from 'view/com/util/error/ErrorMessage' -import {Trans, msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' + import {useSuggestedFeedsQuery} from '#/state/queries/suggested-feeds' +import {RecommendedFeedsItem} from './RecommendedFeedsItem' + type Props = { next: () => void } diff --git a/src/view/com/auth/onboarding/RecommendedFeedsItem.tsx b/src/view/com/auth/onboarding/RecommendedFeedsItem.tsx index ea3e1f725d..92035a4929 100644 --- a/src/view/com/auth/onboarding/RecommendedFeedsItem.tsx +++ b/src/view/com/auth/onboarding/RecommendedFeedsItem.tsx @@ -1,25 +1,26 @@ -import React from 'react' -import {View} from 'react-native' -import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' import {AppBskyFeedDefs, RichText as BskRichText} from '@atproto/api' -import {Text} from 'view/com/util/text/Text' -import {RichText} from 'view/com/util/text/RichText' -import {Button} from 'view/com/util/forms/Button' -import {UserAvatar} from 'view/com/util/UserAvatar' -import * as Toast from 'view/com/util/Toast' -import {HeartIcon} from 'lib/icons' +import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' import {usePalette} from 'lib/hooks/usePalette' import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' +import {HeartIcon} from 'lib/icons' import {sanitizeHandle} from 'lib/strings/handles' +import React from 'react' +import {View} from 'react-native' +import {Button} from 'view/com/util/forms/Button' +import {RichText} from 'view/com/util/text/RichText' +import {Text} from 'view/com/util/text/Text' +import * as Toast from 'view/com/util/Toast' +import {UserAvatar} from 'view/com/util/UserAvatar' + +import {useAnalytics} from '#/lib/analytics/analytics' +import {logger} from '#/logger' import { - usePreferencesQuery, usePinFeedMutation, + usePreferencesQuery, useRemoveFeedMutation, } from '#/state/queries/preferences' -import {logger} from '#/logger' -import {useAnalytics} from '#/lib/analytics/analytics' -import {Trans, msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' export function RecommendedFeedsItem({ item, diff --git a/src/view/com/auth/onboarding/RecommendedFollows.tsx b/src/view/com/auth/onboarding/RecommendedFollows.tsx index d275f6c90e..a7a1eebed9 100644 --- a/src/view/com/auth/onboarding/RecommendedFollows.tsx +++ b/src/view/com/auth/onboarding/RecommendedFollows.tsx @@ -1,21 +1,23 @@ +import {AppBskyActorDefs, moderateProfile} from '@atproto/api' +import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {usePalette} from 'lib/hooks/usePalette' +import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' import React from 'react' import {ActivityIndicator, FlatList, StyleSheet, View} from 'react-native' -import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' -import {AppBskyActorDefs, moderateProfile} from '@atproto/api' -import {TabletOrDesktop, Mobile} from 'view/com/util/layouts/Breakpoints' +import {Button} from 'view/com/util/forms/Button' +import {Mobile, TabletOrDesktop} from 'view/com/util/layouts/Breakpoints' +import {TitleColumnLayout} from 'view/com/util/layouts/TitleColumnLayout' import {Text} from 'view/com/util/text/Text' import {ViewHeader} from 'view/com/util/ViewHeader' -import {TitleColumnLayout} from 'view/com/util/layouts/TitleColumnLayout' -import {Button} from 'view/com/util/forms/Button' -import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {usePalette} from 'lib/hooks/usePalette' -import {RecommendedFollowsItem} from './RecommendedFollowsItem' + +import {logger} from '#/logger' +import {useModerationOpts} from '#/state/queries/preferences' import {useSuggestedFollowsQuery} from '#/state/queries/suggested-follows' import {useGetSuggestedFollowersByActor} from '#/state/queries/suggested-follows' -import {useModerationOpts} from '#/state/queries/preferences' -import {logger} from '#/logger' -import {Trans, msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' + +import {RecommendedFollowsItem} from './RecommendedFollowsItem' type Props = { next: () => void diff --git a/src/view/com/auth/onboarding/RecommendedFollowsItem.tsx b/src/view/com/auth/onboarding/RecommendedFollowsItem.tsx index 07001068cc..e530dbd352 100644 --- a/src/view/com/auth/onboarding/RecommendedFollowsItem.tsx +++ b/src/view/com/auth/onboarding/RecommendedFollowsItem.tsx @@ -1,20 +1,21 @@ -import React from 'react' -import {View, StyleSheet, ActivityIndicator} from 'react-native' -import {ProfileModeration, AppBskyActorDefs} from '@atproto/api' -import {Button} from '#/view/com/util/forms/Button' +import {AppBskyActorDefs, ProfileModeration} from '@atproto/api' +import {Trans} from '@lingui/macro' +import {useAnalytics} from 'lib/analytics/analytics' import {usePalette} from 'lib/hooks/usePalette' +import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' import {sanitizeDisplayName} from 'lib/strings/display-names' import {sanitizeHandle} from 'lib/strings/handles' import {s} from 'lib/styles' -import {UserAvatar} from 'view/com/util/UserAvatar' -import {Text} from 'view/com/util/text/Text' +import React from 'react' +import {ActivityIndicator, StyleSheet, View} from 'react-native' import Animated, {FadeInRight} from 'react-native-reanimated' -import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {useAnalytics} from 'lib/analytics/analytics' -import {Trans} from '@lingui/macro' +import {Text} from 'view/com/util/text/Text' +import {UserAvatar} from 'view/com/util/UserAvatar' + +import {logger} from '#/logger' import {Shadow, useProfileShadow} from '#/state/cache/profile-shadow' import {useProfileFollowMutationQueue} from '#/state/queries/profile' -import {logger} from '#/logger' +import {Button} from '#/view/com/util/forms/Button' type Props = { profile: AppBskyActorDefs.ProfileViewBasic diff --git a/src/view/com/auth/onboarding/Welcome.tsx b/src/view/com/auth/onboarding/Welcome.tsx index b44b58f843..64de7fee09 100644 --- a/src/view/com/auth/onboarding/Welcome.tsx +++ b/src/view/com/auth/onboarding/Welcome.tsx @@ -1,5 +1,7 @@ import 'react' + import {withBreakpoints} from 'view/com/util/layouts/withBreakpoints' + import {WelcomeDesktop} from './WelcomeDesktop' import {WelcomeMobile} from './WelcomeMobile' diff --git a/src/view/com/auth/onboarding/WelcomeDesktop.tsx b/src/view/com/auth/onboarding/WelcomeDesktop.tsx index fdb31197c0..926c4fcda5 100644 --- a/src/view/com/auth/onboarding/WelcomeDesktop.tsx +++ b/src/view/com/auth/onboarding/WelcomeDesktop.tsx @@ -1,13 +1,13 @@ +import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' +import {Trans} from '@lingui/macro' +import {usePalette} from 'lib/hooks/usePalette' +import {s} from 'lib/styles' import React from 'react' import {StyleSheet, View} from 'react-native' import {useMediaQuery} from 'react-responsive' -import {Text} from 'view/com/util/text/Text' -import {s} from 'lib/styles' -import {usePalette} from 'lib/hooks/usePalette' -import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' -import {TitleColumnLayout} from 'view/com/util/layouts/TitleColumnLayout' import {Button} from 'view/com/util/forms/Button' -import {Trans} from '@lingui/macro' +import {TitleColumnLayout} from 'view/com/util/layouts/TitleColumnLayout' +import {Text} from 'view/com/util/text/Text' type Props = { next: () => void diff --git a/src/view/com/auth/onboarding/WelcomeMobile.tsx b/src/view/com/auth/onboarding/WelcomeMobile.tsx index 5de1a78170..030eddee13 100644 --- a/src/view/com/auth/onboarding/WelcomeMobile.tsx +++ b/src/view/com/auth/onboarding/WelcomeMobile.tsx @@ -1,12 +1,12 @@ +import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' +import {Trans} from '@lingui/macro' +import {usePalette} from 'lib/hooks/usePalette' +import {s} from 'lib/styles' import React from 'react' import {Pressable, StyleSheet, View} from 'react-native' -import {Text} from 'view/com/util/text/Text' -import {s} from 'lib/styles' -import {usePalette} from 'lib/hooks/usePalette' -import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' import {Button} from 'view/com/util/forms/Button' +import {Text} from 'view/com/util/text/Text' import {ViewHeader} from 'view/com/util/ViewHeader' -import {Trans} from '@lingui/macro' type Props = { next: () => void diff --git a/src/view/com/auth/server-input/index.tsx b/src/view/com/auth/server-input/index.tsx index 32b5a3141a..39a395402f 100644 --- a/src/view/com/auth/server-input/index.tsx +++ b/src/view/com/auth/server-input/index.tsx @@ -1,17 +1,17 @@ -import React from 'react' -import {View} from 'react-native' +import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' -import {Trans, msg} from '@lingui/macro' import {BSKY_SERVICE} from 'lib/constants' -import * as persisted from '#/state/persisted' +import React from 'react' +import {View} from 'react-native' import {atoms as a, useBreakpoints, useTheme} from '#/alf' -import * as Dialog from '#/components/Dialog' -import {Text, P} from '#/components/Typography' import {Button, ButtonText} from '#/components/Button' -import * as ToggleButton from '#/components/forms/ToggleButton' +import * as Dialog from '#/components/Dialog' import * as TextField from '#/components/forms/TextField' +import * as ToggleButton from '#/components/forms/ToggleButton' import {Globe_Stroke2_Corner0_Rounded as Globe} from '#/components/icons/Globe' +import {P, Text} from '#/components/Typography' +import * as persisted from '#/state/persisted' export function ServerInputDialog({ control, diff --git a/src/view/com/auth/util/HelpTip.tsx b/src/view/com/auth/util/HelpTip.tsx index 65f7278d6b..349eb2f3a8 100644 --- a/src/view/com/auth/util/HelpTip.tsx +++ b/src/view/com/auth/util/HelpTip.tsx @@ -1,9 +1,9 @@ +import {useColorSchemeStyle} from 'lib/hooks/useColorSchemeStyle' +import {InfoCircleIcon} from 'lib/icons' +import {colors, s} from 'lib/styles' import React from 'react' import {StyleSheet, View} from 'react-native' import {Text} from 'view/com/util/text/Text' -import {InfoCircleIcon} from 'lib/icons' -import {s, colors} from 'lib/styles' -import {useColorSchemeStyle} from 'lib/hooks/useColorSchemeStyle' export function HelpTip({text}: {text: string}) { const bg = useColorSchemeStyle( diff --git a/src/view/com/auth/util/TextInput.tsx b/src/view/com/auth/util/TextInput.tsx index 38aff03849..33ebfd8027 100644 --- a/src/view/com/auth/util/TextInput.tsx +++ b/src/view/com/auth/util/TextInput.tsx @@ -1,9 +1,9 @@ -import React, {ComponentProps} from 'react' -import {StyleSheet, TextInput as RNTextInput, View} from 'react-native' -import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' import {IconProp} from '@fortawesome/fontawesome-svg-core' +import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' import {usePalette} from 'lib/hooks/usePalette' import {useTheme} from 'lib/ThemeContext' +import React, {ComponentProps} from 'react' +import {StyleSheet, TextInput as RNTextInput, View} from 'react-native' interface Props extends Omit, 'onChange'> { testID?: string diff --git a/src/view/com/composer/Composer.tsx b/src/view/com/composer/Composer.tsx index 2855d4232c..57be93ca75 100644 --- a/src/view/com/composer/Composer.tsx +++ b/src/view/com/composer/Composer.tsx @@ -1,5 +1,21 @@ -import React, {useCallback, useEffect, useMemo, useRef, useState} from 'react' +import {RichText} from '@atproto/api' +import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {useAnalytics} from 'lib/analytics/analytics' +import * as apilib from 'lib/api/index' +import {MAX_GRAPHEME_LENGTH} from 'lib/constants' +import {useIsKeyboardVisible} from 'lib/hooks/useIsKeyboardVisible' +import {usePalette} from 'lib/hooks/usePalette' +import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' +import {cleanError} from 'lib/strings/errors' +import {insertMentionAt} from 'lib/strings/mention-manip' +import {shortenLinks} from 'lib/strings/rich-text-manip' +import {toShortUrl} from 'lib/strings/url-helpers' +import {colors, gradients, s} from 'lib/styles' import {observer} from 'mobx-react-lite' +import {isAndroid, isIOS, isNative, isWeb} from 'platform/detection' +import React, {useCallback, useEffect, useMemo, useRef, useState} from 'react' import { ActivityIndicator, BackHandler, @@ -12,57 +28,43 @@ import { TouchableOpacity, View, } from 'react-native' -import {useSafeAreaInsets} from 'react-native-safe-area-context' import LinearGradient from 'react-native-linear-gradient' -import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' -import {RichText} from '@atproto/api' -import {useAnalytics} from 'lib/analytics/analytics' -import {useIsKeyboardVisible} from 'lib/hooks/useIsKeyboardVisible' -import {ExternalEmbed} from './ExternalEmbed' -import {Text} from '../util/text/Text' -import * as Toast from '../util/Toast' -// TODO: Prevent naming components that coincide with RN primitives -// due to linting false positives -import {TextInput, TextInputRef} from './text-input/TextInput' -import {CharProgress} from './char-progress/CharProgress' -import {UserAvatar} from '../util/UserAvatar' -import * as apilib from 'lib/api/index' -import {ComposerOpts} from 'state/shell/composer' -import {s, colors, gradients} from 'lib/styles' -import {cleanError} from 'lib/strings/errors' -import {shortenLinks} from 'lib/strings/rich-text-manip' -import {toShortUrl} from 'lib/strings/url-helpers' -import {SelectPhotoBtn} from './photos/SelectPhotoBtn' -import {OpenCameraBtn} from './photos/OpenCameraBtn' -import {ThreadgateBtn} from './threadgate/ThreadgateBtn' -import {usePalette} from 'lib/hooks/usePalette' -import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {useExternalLinkFetch} from './useExternalLinkFetch' -import {isWeb, isNative, isAndroid, isIOS} from 'platform/detection' -import QuoteEmbed from '../util/post-embeds/QuoteEmbed' +import {useSafeAreaInsets} from 'react-native-safe-area-context' import {GalleryModel} from 'state/models/media/gallery' -import {Gallery} from './photos/Gallery' -import {MAX_GRAPHEME_LENGTH} from 'lib/constants' -import {LabelsBtn} from './labels/LabelsBtn' -import {SelectLangBtn} from './select-language/SelectLangBtn' -import {SuggestedLanguage} from './select-language/SuggestedLanguage' -import {insertMentionAt} from 'lib/strings/mention-manip' -import {Trans, msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {useModals, useModalControls} from '#/state/modals' +import {ComposerOpts} from 'state/shell/composer' +import {ComposerReplyTo} from 'view/com/composer/ComposerReplyTo' + +import {logger} from '#/logger' +import {emitPostCreated} from '#/state/events' +import {useModalControls, useModals} from '#/state/modals' import {useRequireAltTextEnabled} from '#/state/preferences' import { + toPostLanguages, useLanguagePrefs, useLanguagePrefsApi, - toPostLanguages, } from '#/state/preferences/languages' -import {useSession, getAgent} from '#/state/session' import {useProfileQuery} from '#/state/queries/profile' -import {useComposerControls} from '#/state/shell/composer' -import {emitPostCreated} from '#/state/events' import {ThreadgateSetting} from '#/state/queries/threadgate' -import {logger} from '#/logger' -import {ComposerReplyTo} from 'view/com/composer/ComposerReplyTo' +import {getAgent, useSession} from '#/state/session' +import {useComposerControls} from '#/state/shell/composer' + +import QuoteEmbed from '../util/post-embeds/QuoteEmbed' +import {Text} from '../util/text/Text' +import * as Toast from '../util/Toast' +import {UserAvatar} from '../util/UserAvatar' +import {CharProgress} from './char-progress/CharProgress' +import {ExternalEmbed} from './ExternalEmbed' +import {LabelsBtn} from './labels/LabelsBtn' +import {Gallery} from './photos/Gallery' +import {OpenCameraBtn} from './photos/OpenCameraBtn' +import {SelectPhotoBtn} from './photos/SelectPhotoBtn' +import {SelectLangBtn} from './select-language/SelectLangBtn' +import {SuggestedLanguage} from './select-language/SuggestedLanguage' +// TODO: Prevent naming components that coincide with RN primitives +// due to linting false positives +import {TextInput, TextInputRef} from './text-input/TextInput' +import {ThreadgateBtn} from './threadgate/ThreadgateBtn' +import {useExternalLinkFetch} from './useExternalLinkFetch' type Props = ComposerOpts export const ComposePost = observer(function ComposePost({ diff --git a/src/view/com/composer/ComposerReplyTo.tsx b/src/view/com/composer/ComposerReplyTo.tsx index 39a1473a3b..e6fe11565f 100644 --- a/src/view/com/composer/ComposerReplyTo.tsx +++ b/src/view/com/composer/ComposerReplyTo.tsx @@ -1,21 +1,21 @@ -import React from 'react' -import {LayoutAnimation, Pressable, StyleSheet, View} from 'react-native' -import {Image} from 'expo-image' -import {useLingui} from '@lingui/react' -import {msg} from '@lingui/macro' import { AppBskyEmbedImages, AppBskyEmbedRecord, AppBskyEmbedRecordWithMedia, AppBskyFeedPost, } from '@atproto/api' -import {ComposerOptsPostRef} from 'state/shell/composer' +import {msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {Image} from 'expo-image' import {usePalette} from 'lib/hooks/usePalette' import {sanitizeDisplayName} from 'lib/strings/display-names' import {sanitizeHandle} from 'lib/strings/handles' -import {UserAvatar} from 'view/com/util/UserAvatar' -import {Text} from 'view/com/util/text/Text' +import React from 'react' +import {LayoutAnimation, Pressable, StyleSheet, View} from 'react-native' +import {ComposerOptsPostRef} from 'state/shell/composer' import QuoteEmbed from 'view/com/util/post-embeds/QuoteEmbed' +import {Text} from 'view/com/util/text/Text' +import {UserAvatar} from 'view/com/util/UserAvatar' export function ComposerReplyTo({replyTo}: {replyTo: ComposerOptsPostRef}) { const pal = usePalette('default') diff --git a/src/view/com/composer/ExternalEmbed.tsx b/src/view/com/composer/ExternalEmbed.tsx index 02dd1bbd75..c2aebccd64 100644 --- a/src/view/com/composer/ExternalEmbed.tsx +++ b/src/view/com/composer/ExternalEmbed.tsx @@ -1,3 +1,9 @@ +import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' +import {msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {ExternalEmbedDraft} from 'lib/api/index' +import {usePalette} from 'lib/hooks/usePalette' +import {s} from 'lib/styles' import React from 'react' import { ActivityIndicator, @@ -5,14 +11,9 @@ import { TouchableOpacity, View, } from 'react-native' -import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' + import {AutoSizedImage} from '../util/images/AutoSizedImage' import {Text} from '../util/text/Text' -import {s} from 'lib/styles' -import {usePalette} from 'lib/hooks/usePalette' -import {ExternalEmbedDraft} from 'lib/api/index' -import {useLingui} from '@lingui/react' -import {msg} from '@lingui/macro' export const ExternalEmbed = ({ link, diff --git a/src/view/com/composer/Prompt.tsx b/src/view/com/composer/Prompt.tsx index 632bb2634b..5f19a64bdd 100644 --- a/src/view/com/composer/Prompt.tsx +++ b/src/view/com/composer/Prompt.tsx @@ -1,13 +1,15 @@ -import React from 'react' -import {StyleSheet, TouchableOpacity} from 'react-native' -import {UserAvatar} from '../util/UserAvatar' -import {Text} from '../util/text/Text' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' import {usePalette} from 'lib/hooks/usePalette' import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {Trans, msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {useSession} from '#/state/session' +import React from 'react' +import {StyleSheet, TouchableOpacity} from 'react-native' + import {useProfileQuery} from '#/state/queries/profile' +import {useSession} from '#/state/session' + +import {Text} from '../util/text/Text' +import {UserAvatar} from '../util/UserAvatar' export function ComposePrompt({onPressCompose}: {onPressCompose: () => void}) { const {currentAccount} = useSession() diff --git a/src/view/com/composer/char-progress/CharProgress.tsx b/src/view/com/composer/char-progress/CharProgress.tsx index a3fa78a59a..3c5cee492e 100644 --- a/src/view/com/composer/char-progress/CharProgress.tsx +++ b/src/view/com/composer/char-progress/CharProgress.tsx @@ -1,13 +1,14 @@ +import {MAX_GRAPHEME_LENGTH} from 'lib/constants' +import {usePalette} from 'lib/hooks/usePalette' +import {s} from 'lib/styles' import React from 'react' import {View} from 'react-native' -import {Text} from '../../util/text/Text' // @ts-ignore no type definition -prf import ProgressCircle from 'react-native-progress/Circle' // @ts-ignore no type definition -prf import ProgressPie from 'react-native-progress/Pie' -import {s} from 'lib/styles' -import {usePalette} from 'lib/hooks/usePalette' -import {MAX_GRAPHEME_LENGTH} from 'lib/constants' + +import {Text} from '../../util/text/Text' const DANGER_LENGTH = MAX_GRAPHEME_LENGTH diff --git a/src/view/com/composer/labels/LabelsBtn.tsx b/src/view/com/composer/labels/LabelsBtn.tsx index b880dd3306..11f3d03d37 100644 --- a/src/view/com/composer/labels/LabelsBtn.tsx +++ b/src/view/com/composer/labels/LabelsBtn.tsx @@ -1,13 +1,14 @@ -import React from 'react' -import {Keyboard, StyleSheet} from 'react-native' -import {Button} from 'view/com/util/forms/Button' -import {usePalette} from 'lib/hooks/usePalette' -import {ShieldExclamation} from 'lib/icons' import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' import {FontAwesomeIconStyle} from '@fortawesome/react-native-fontawesome' -import {isNative} from 'platform/detection' -import {useLingui} from '@lingui/react' import {msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {usePalette} from 'lib/hooks/usePalette' +import {ShieldExclamation} from 'lib/icons' +import {isNative} from 'platform/detection' +import React from 'react' +import {Keyboard, StyleSheet} from 'react-native' +import {Button} from 'view/com/util/forms/Button' + import {useModalControls} from '#/state/modals' export function LabelsBtn({ diff --git a/src/view/com/composer/photos/Gallery.tsx b/src/view/com/composer/photos/Gallery.tsx index 69c8debb02..380b70c9c8 100644 --- a/src/view/com/composer/photos/Gallery.tsx +++ b/src/view/com/composer/photos/Gallery.tsx @@ -1,19 +1,20 @@ -import React, {useState} from 'react' -import {ImageStyle, Keyboard, LayoutChangeEvent} from 'react-native' -import {GalleryModel} from 'state/models/media/gallery' -import {observer} from 'mobx-react-lite' import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' -import {s, colors} from 'lib/styles' -import {StyleSheet, TouchableOpacity, View} from 'react-native' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' import {Image} from 'expo-image' -import {Text} from 'view/com/util/text/Text' -import {Dimensions} from 'lib/media/types' import {usePalette} from 'lib/hooks/usePalette' import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {Trans, msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {useModalControls} from '#/state/modals' +import {Dimensions} from 'lib/media/types' +import {colors, s} from 'lib/styles' +import {observer} from 'mobx-react-lite' import {isNative} from 'platform/detection' +import React, {useState} from 'react' +import {ImageStyle, Keyboard, LayoutChangeEvent} from 'react-native' +import {StyleSheet, TouchableOpacity, View} from 'react-native' +import {GalleryModel} from 'state/models/media/gallery' +import {Text} from 'view/com/util/text/Text' + +import {useModalControls} from '#/state/modals' const IMAGE_GAP = 8 diff --git a/src/view/com/composer/photos/OpenCameraBtn.tsx b/src/view/com/composer/photos/OpenCameraBtn.tsx index 4353704d57..ce5318a2f6 100644 --- a/src/view/com/composer/photos/OpenCameraBtn.tsx +++ b/src/view/com/composer/photos/OpenCameraBtn.tsx @@ -1,20 +1,21 @@ -import React, {useCallback} from 'react' -import {TouchableOpacity, StyleSheet} from 'react-native' -import * as MediaLibrary from 'expo-media-library' import { FontAwesomeIcon, FontAwesomeIconStyle, } from '@fortawesome/react-native-fontawesome' -import {usePalette} from 'lib/hooks/usePalette' +import {msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import * as MediaLibrary from 'expo-media-library' import {useAnalytics} from 'lib/analytics/analytics' -import {openCamera} from 'lib/media/picker' -import {useCameraPermission} from 'lib/hooks/usePermissions' import {HITSLOP_10, POST_IMG_MAX} from 'lib/constants' -import {GalleryModel} from 'state/models/media/gallery' +import {usePalette} from 'lib/hooks/usePalette' +import {useCameraPermission} from 'lib/hooks/usePermissions' +import {openCamera} from 'lib/media/picker' import {isMobileWeb, isNative} from 'platform/detection' +import React, {useCallback} from 'react' +import {StyleSheet, TouchableOpacity} from 'react-native' +import {GalleryModel} from 'state/models/media/gallery' + import {logger} from '#/logger' -import {useLingui} from '@lingui/react' -import {msg} from '@lingui/macro' type Props = { gallery: GalleryModel diff --git a/src/view/com/composer/photos/SelectPhotoBtn.tsx b/src/view/com/composer/photos/SelectPhotoBtn.tsx index f7fa9502d6..1e0e64090f 100644 --- a/src/view/com/composer/photos/SelectPhotoBtn.tsx +++ b/src/view/com/composer/photos/SelectPhotoBtn.tsx @@ -1,17 +1,17 @@ -import React, {useCallback} from 'react' -import {TouchableOpacity, StyleSheet} from 'react-native' import { FontAwesomeIcon, FontAwesomeIconStyle, } from '@fortawesome/react-native-fontawesome' -import {usePalette} from 'lib/hooks/usePalette' +import {msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' import {useAnalytics} from 'lib/analytics/analytics' -import {usePhotoLibraryPermission} from 'lib/hooks/usePermissions' -import {GalleryModel} from 'state/models/media/gallery' import {HITSLOP_10} from 'lib/constants' +import {usePalette} from 'lib/hooks/usePalette' +import {usePhotoLibraryPermission} from 'lib/hooks/usePermissions' import {isNative} from 'platform/detection' -import {useLingui} from '@lingui/react' -import {msg} from '@lingui/macro' +import React, {useCallback} from 'react' +import {StyleSheet, TouchableOpacity} from 'react-native' +import {GalleryModel} from 'state/models/media/gallery' type Props = { gallery: GalleryModel diff --git a/src/view/com/composer/select-language/SelectLangBtn.tsx b/src/view/com/composer/select-language/SelectLangBtn.tsx index 78b1e9ba27..bfcf248ee1 100644 --- a/src/view/com/composer/select-language/SelectLangBtn.tsx +++ b/src/view/com/composer/select-language/SelectLangBtn.tsx @@ -1,27 +1,29 @@ -import React, {useCallback, useMemo} from 'react' -import {StyleSheet, Keyboard} from 'react-native' import { FontAwesomeIcon, FontAwesomeIconStyle, } from '@fortawesome/react-native-fontawesome' -import {Text} from 'view/com/util/text/Text' +import {msg, t} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {usePalette} from 'lib/hooks/usePalette' +import {isNative} from 'platform/detection' +import React, {useCallback, useMemo} from 'react' +import {Keyboard, StyleSheet} from 'react-native' import { DropdownButton, DropdownItem, DropdownItemButton, } from 'view/com/util/forms/DropdownButton' -import {usePalette} from 'lib/hooks/usePalette' -import {isNative} from 'platform/detection' -import {codeToLanguageName} from '../../../../locale/helpers' +import {Text} from 'view/com/util/text/Text' + import {useModalControls} from '#/state/modals' import { + hasPostLanguage, + toPostLanguages, useLanguagePrefs, useLanguagePrefsApi, - toPostLanguages, - hasPostLanguage, } from '#/state/preferences/languages' -import {t, msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' + +import {codeToLanguageName} from '../../../../locale/helpers' export function SelectLangBtn() { const pal = usePalette('default') diff --git a/src/view/com/composer/select-language/SuggestedLanguage.tsx b/src/view/com/composer/select-language/SuggestedLanguage.tsx index 0bf62ae0d8..97a2a98300 100644 --- a/src/view/com/composer/select-language/SuggestedLanguage.tsx +++ b/src/view/com/composer/select-language/SuggestedLanguage.tsx @@ -1,22 +1,24 @@ +import { + FontAwesomeIcon, + FontAwesomeIconStyle, +} from '@fortawesome/react-native-fontawesome' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import lande from 'lande' import React, {useEffect, useState} from 'react' import {StyleSheet, View} from 'react-native' -import lande from 'lande' -import {Trans, msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {Text} from '../../util/text/Text' -import {Button} from '../../util/forms/Button' + +import {usePalette} from '#/lib/hooks/usePalette' +import {s} from '#/lib/styles' import {code3ToCode2Strict, codeToLanguageName} from '#/locale/helpers' import { toPostLanguages, useLanguagePrefs, useLanguagePrefsApi, } from '#/state/preferences/languages' -import {usePalette} from '#/lib/hooks/usePalette' -import {s} from '#/lib/styles' -import { - FontAwesomeIcon, - FontAwesomeIconStyle, -} from '@fortawesome/react-native-fontawesome' + +import {Button} from '../../util/forms/Button' +import {Text} from '../../util/text/Text' // fallbacks for safari const onIdle = globalThis.requestIdleCallback || (cb => setTimeout(cb, 1)) diff --git a/src/view/com/composer/text-input/TextInput.tsx b/src/view/com/composer/text-input/TextInput.tsx index 20be585c25..435adfa33c 100644 --- a/src/view/com/composer/text-input/TextInput.tsx +++ b/src/view/com/composer/text-input/TextInput.tsx @@ -1,10 +1,24 @@ +import {AppBskyRichtextFacet, RichText} from '@atproto/api' +import PasteInput, { + PastedFile, + PasteInputRef, +} from '@mattermost/react-native-paste-input' +import {POST_IMG_MAX} from 'lib/constants' +import {usePalette} from 'lib/hooks/usePalette' +import {downloadAndResize} from 'lib/media/manip' +import {isUriImage} from 'lib/media/util' +import {cleanError} from 'lib/strings/errors' +import {getMentionAt, insertMentionAt} from 'lib/strings/mention-manip' +import {useTheme} from 'lib/ThemeContext' +import isEqual from 'lodash.isequal' +import {isIOS} from 'platform/detection' import React, { + ComponentProps, forwardRef, useCallback, - useRef, useMemo, + useRef, useState, - ComponentProps, } from 'react' import { NativeSyntheticEvent, @@ -13,22 +27,9 @@ import { TextInputSelectionChangeEventData, View, } from 'react-native' -import PasteInput, { - PastedFile, - PasteInputRef, -} from '@mattermost/react-native-paste-input' -import {AppBskyRichtextFacet, RichText} from '@atproto/api' -import isEqual from 'lodash.isequal' -import {Autocomplete} from './mobile/Autocomplete' import {Text} from 'view/com/util/text/Text' -import {cleanError} from 'lib/strings/errors' -import {getMentionAt, insertMentionAt} from 'lib/strings/mention-manip' -import {usePalette} from 'lib/hooks/usePalette' -import {useTheme} from 'lib/ThemeContext' -import {isUriImage} from 'lib/media/util' -import {downloadAndResize} from 'lib/media/manip' -import {POST_IMG_MAX} from 'lib/constants' -import {isIOS} from 'platform/detection' + +import {Autocomplete} from './mobile/Autocomplete' export interface TextInputRef { focus: () => void diff --git a/src/view/com/composer/text-input/TextInput.web.tsx b/src/view/com/composer/text-input/TextInput.web.tsx index c62d11201f..6b363558ab 100644 --- a/src/view/com/composer/text-input/TextInput.web.tsx +++ b/src/view/com/composer/text-input/TextInput.web.tsx @@ -1,28 +1,30 @@ -import React from 'react' -import {StyleSheet, View} from 'react-native' -import {RichText, AppBskyRichtextFacet} from '@atproto/api' -import EventEmitter from 'eventemitter3' -import {useEditor, EditorContent, JSONContent} from '@tiptap/react' +import {AppBskyRichtextFacet, RichText} from '@atproto/api' +import {Trans} from '@lingui/macro' import {Document} from '@tiptap/extension-document' -import History from '@tiptap/extension-history' import Hardbreak from '@tiptap/extension-hard-break' +import History from '@tiptap/extension-history' import {Mention} from '@tiptap/extension-mention' import {Paragraph} from '@tiptap/extension-paragraph' import {Placeholder} from '@tiptap/extension-placeholder' import {Text as TiptapText} from '@tiptap/extension-text' +import {generateJSON} from '@tiptap/html' +import {EditorContent, JSONContent, useEditor} from '@tiptap/react' +import EventEmitter from 'eventemitter3' +import {useColorSchemeStyle} from 'lib/hooks/useColorSchemeStyle' +import {blobToDataUri, isUriImage} from 'lib/media/util' import isEqual from 'lodash.isequal' +import React from 'react' +import {StyleSheet, View} from 'react-native' +import Animated, {FadeIn, FadeOut} from 'react-native-reanimated' + +import {Portal} from '#/components/Portal' +import {usePalette} from '#/lib/hooks/usePalette' +import {useActorAutocompleteFn} from '#/state/queries/actor-autocomplete' + +import {Text} from '../../util/text/Text' import {createSuggestion} from './web/Autocomplete' -import {useColorSchemeStyle} from 'lib/hooks/useColorSchemeStyle' -import {isUriImage, blobToDataUri} from 'lib/media/util' import {Emoji} from './web/EmojiPicker.web' import {LinkDecorator} from './web/LinkDecorator' -import {generateJSON} from '@tiptap/html' -import {useActorAutocompleteFn} from '#/state/queries/actor-autocomplete' -import {usePalette} from '#/lib/hooks/usePalette' -import {Portal} from '#/components/Portal' -import {Text} from '../../util/text/Text' -import {Trans} from '@lingui/macro' -import Animated, {FadeIn, FadeOut} from 'react-native-reanimated' import {TagDecorator} from './web/TagDecorator' export interface TextInputRef { diff --git a/src/view/com/composer/text-input/mobile/Autocomplete.tsx b/src/view/com/composer/text-input/mobile/Autocomplete.tsx index c400aa48d5..1e8b7900b5 100644 --- a/src/view/com/composer/text-input/mobile/Autocomplete.tsx +++ b/src/view/com/composer/text-input/mobile/Autocomplete.tsx @@ -1,13 +1,15 @@ -import React, {useEffect, useRef} from 'react' -import {Animated, TouchableOpacity, StyleSheet, View} from 'react-native' +import {AppBskyActorDefs} from '@atproto/api' +import {Trans} from '@lingui/macro' import {useAnimatedValue} from 'lib/hooks/useAnimatedValue' import {usePalette} from 'lib/hooks/usePalette' +import React, {useEffect, useRef} from 'react' +import {Animated, StyleSheet, TouchableOpacity, View} from 'react-native' import {Text} from 'view/com/util/text/Text' import {UserAvatar} from 'view/com/util/UserAvatar' -import {useGrapheme} from '../hooks/useGrapheme' + import {useActorAutocompleteQuery} from '#/state/queries/actor-autocomplete' -import {Trans} from '@lingui/macro' -import {AppBskyActorDefs} from '@atproto/api' + +import {useGrapheme} from '../hooks/useGrapheme' export function Autocomplete({ prefix, diff --git a/src/view/com/composer/text-input/web/Autocomplete.tsx b/src/view/com/composer/text-input/web/Autocomplete.tsx index 76058fed34..21fae297c6 100644 --- a/src/view/com/composer/text-input/web/Autocomplete.tsx +++ b/src/view/com/composer/text-input/web/Autocomplete.tsx @@ -1,3 +1,11 @@ +import {Trans} from '@lingui/macro' +import {ReactRenderer} from '@tiptap/react' +import { + SuggestionKeyDownProps, + SuggestionOptions, + SuggestionProps, +} from '@tiptap/suggestion' +import {usePalette} from 'lib/hooks/usePalette' import React, { forwardRef, useEffect, @@ -5,19 +13,13 @@ import React, { useState, } from 'react' import {Pressable, StyleSheet, View} from 'react-native' -import {ReactRenderer} from '@tiptap/react' import tippy, {Instance as TippyInstance} from 'tippy.js' -import { - SuggestionOptions, - SuggestionProps, - SuggestionKeyDownProps, -} from '@tiptap/suggestion' -import {ActorAutocompleteFn} from '#/state/queries/actor-autocomplete' -import {usePalette} from 'lib/hooks/usePalette' import {Text} from 'view/com/util/text/Text' import {UserAvatar} from 'view/com/util/UserAvatar' + +import {ActorAutocompleteFn} from '#/state/queries/actor-autocomplete' + import {useGrapheme} from '../hooks/useGrapheme' -import {Trans} from '@lingui/macro' interface MentionListRef { onKeyDown: (props: SuggestionKeyDownProps) => boolean diff --git a/src/view/com/composer/text-input/web/EmojiPicker.web.tsx b/src/view/com/composer/text-input/web/EmojiPicker.web.tsx index 1493621160..d918953de9 100644 --- a/src/view/com/composer/text-input/web/EmojiPicker.web.tsx +++ b/src/view/com/composer/text-input/web/EmojiPicker.web.tsx @@ -1,11 +1,12 @@ -import React from 'react' import Picker from '@emoji-mart/react' +import React from 'react' import { StyleSheet, TouchableWithoutFeedback, useWindowDimensions, View, } from 'react-native' + import {textInputWebEmitter} from '../TextInput.web' const HEIGHT_OFFSET = 40 diff --git a/src/view/com/composer/text-input/web/LinkDecorator.ts b/src/view/com/composer/text-input/web/LinkDecorator.ts index e36ac80e42..207dbe7e40 100644 --- a/src/view/com/composer/text-input/web/LinkDecorator.ts +++ b/src/view/com/composer/text-input/web/LinkDecorator.ts @@ -14,12 +14,11 @@ * the facet-set. */ +import {URL_REGEX} from '@atproto/api' import {Mark} from '@tiptap/core' -import {Plugin, PluginKey} from '@tiptap/pm/state' import {Node as ProsemirrorNode} from '@tiptap/pm/model' +import {Plugin, PluginKey} from '@tiptap/pm/state' import {Decoration, DecorationSet} from '@tiptap/pm/view' -import {URL_REGEX} from '@atproto/api' - import {isValidDomain} from 'lib/strings/url-helpers' export const LinkDecorator = Mark.create({ diff --git a/src/view/com/composer/text-input/web/TagDecorator.ts b/src/view/com/composer/text-input/web/TagDecorator.ts index 2bf3184a8c..9225fd6bf9 100644 --- a/src/view/com/composer/text-input/web/TagDecorator.ts +++ b/src/view/com/composer/text-input/web/TagDecorator.ts @@ -14,11 +14,11 @@ * the facet-set. */ +import {TAG_REGEX, TRAILING_PUNCTUATION_REGEX} from '@atproto/api' import {Mark} from '@tiptap/core' -import {Plugin, PluginKey} from '@tiptap/pm/state' import {Node as ProsemirrorNode} from '@tiptap/pm/model' +import {Plugin, PluginKey} from '@tiptap/pm/state' import {Decoration, DecorationSet} from '@tiptap/pm/view' -import {TAG_REGEX, TRAILING_PUNCTUATION_REGEX} from '@atproto/api' function getDecorations(doc: ProsemirrorNode) { const decorations: Decoration[] = [] diff --git a/src/view/com/composer/threadgate/ThreadgateBtn.tsx b/src/view/com/composer/threadgate/ThreadgateBtn.tsx index ebbc613fff..0647d4215b 100644 --- a/src/view/com/composer/threadgate/ThreadgateBtn.tsx +++ b/src/view/com/composer/threadgate/ThreadgateBtn.tsx @@ -1,17 +1,18 @@ -import React from 'react' -import {TouchableOpacity, StyleSheet, Keyboard} from 'react-native' import { FontAwesomeIcon, FontAwesomeIconStyle, } from '@fortawesome/react-native-fontawesome' -import {usePalette} from 'lib/hooks/usePalette' +import {msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' import {useAnalytics} from 'lib/analytics/analytics' import {HITSLOP_10} from 'lib/constants' -import {useLingui} from '@lingui/react' -import {msg} from '@lingui/macro' +import {usePalette} from 'lib/hooks/usePalette' +import React from 'react' +import {Keyboard, StyleSheet, TouchableOpacity} from 'react-native' + +import {isNative} from '#/platform/detection' import {useModalControls} from '#/state/modals' import {ThreadgateSetting} from '#/state/queries/threadgate' -import {isNative} from '#/platform/detection' export function ThreadgateBtn({ threadgate, diff --git a/src/view/com/composer/useExternalLinkFetch.ts b/src/view/com/composer/useExternalLinkFetch.ts index 54773d565c..5daff41eab 100644 --- a/src/view/com/composer/useExternalLinkFetch.ts +++ b/src/view/com/composer/useExternalLinkFetch.ts @@ -1,24 +1,25 @@ -import {useState, useEffect} from 'react' -import {ImageModel} from 'state/models/media/image' import * as apilib from 'lib/api/index' -import {getLinkMeta} from 'lib/link-meta/link-meta' +import {POST_IMG_MAX} from 'lib/constants' import { - getPostAsQuote, getFeedAsEmbed, getListAsEmbed, + getPostAsQuote, } from 'lib/link-meta/bsky' +import {getLinkMeta} from 'lib/link-meta/link-meta' import {downloadAndResize} from 'lib/media/manip' import { - isBskyPostUrl, isBskyCustomFeedUrl, isBskyListUrl, + isBskyPostUrl, } from 'lib/strings/url-helpers' +import {useEffect, useState} from 'react' +import {ImageModel} from 'state/models/media/image' import {ComposerOpts} from 'state/shell/composer' -import {POST_IMG_MAX} from 'lib/constants' + import {logger} from '#/logger' -import {getAgent} from '#/state/session' -import {useGetPost} from '#/state/queries/post' import {useFetchDid} from '#/state/queries/handle' +import {useGetPost} from '#/state/queries/post' +import {getAgent} from '#/state/session' export function useExternalLinkFetch({ setQuote, diff --git a/src/view/com/feeds/FeedPage.tsx b/src/view/com/feeds/FeedPage.tsx index e6b5d1fb68..1694877534 100644 --- a/src/view/com/feeds/FeedPage.tsx +++ b/src/view/com/feeds/FeedPage.tsx @@ -1,27 +1,29 @@ -import React from 'react' +import {msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' import {useNavigation} from '@react-navigation/native' -import {useAnalytics} from 'lib/analytics/analytics' import {useQueryClient} from '@tanstack/react-query' -import {RQKEY as FEED_RQKEY} from '#/state/queries/post-feed' -import {MainScrollProvider} from '../util/MainScrollProvider' +import {useAnalytics} from 'lib/analytics/analytics' import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {useSetMinimalShellMode} from '#/state/shell' -import {FeedDescriptor, FeedParams} from '#/state/queries/post-feed' import {ComposeIcon2} from 'lib/icons' import {s} from 'lib/styles' -import {View, useWindowDimensions} from 'react-native' -import {ListMethods} from '../util/List' +import React from 'react' +import {useWindowDimensions, View} from 'react-native' + +import {getRootNavigation, getTabState, TabState} from '#/lib/routes/helpers' +import {isNative} from '#/platform/detection' +import {listenSoftReset} from '#/state/events' +import {RQKEY as FEED_RQKEY} from '#/state/queries/post-feed' +import {FeedDescriptor, FeedParams} from '#/state/queries/post-feed' +import {truncateAndInvalidate} from '#/state/queries/util' +import {useSession} from '#/state/session' +import {useSetMinimalShellMode} from '#/state/shell' +import {useComposerControls} from '#/state/shell/composer' + import {Feed} from '../posts/Feed' import {FAB} from '../util/fab/FAB' +import {ListMethods} from '../util/List' import {LoadLatestBtn} from '../util/load-latest/LoadLatestBtn' -import {msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {useSession} from '#/state/session' -import {useComposerControls} from '#/state/shell/composer' -import {listenSoftReset} from '#/state/events' -import {truncateAndInvalidate} from '#/state/queries/util' -import {TabState, getTabState, getRootNavigation} from '#/lib/routes/helpers' -import {isNative} from '#/platform/detection' +import {MainScrollProvider} from '../util/MainScrollProvider' const POLL_FREQ = 60e3 // 60sec diff --git a/src/view/com/feeds/FeedSourceCard.tsx b/src/view/com/feeds/FeedSourceCard.tsx index 4af62f6f63..4e0865af57 100644 --- a/src/view/com/feeds/FeedSourceCard.tsx +++ b/src/view/com/feeds/FeedSourceCard.tsx @@ -1,30 +1,32 @@ -import React from 'react' -import {Pressable, StyleProp, StyleSheet, View, ViewStyle} from 'react-native' +import {AtUri} from '@atproto/api' import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' -import {Text} from '../util/text/Text' -import {RichText} from '#/components/RichText' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {useNavigationDeduped} from 'lib/hooks/useNavigationDeduped' import {usePalette} from 'lib/hooks/usePalette' -import {s} from 'lib/styles' -import {UserAvatar} from '../util/UserAvatar' +import {sanitizeHandle} from 'lib/strings/handles' import {pluralize} from 'lib/strings/helpers' -import {AtUri} from '@atproto/api' +import {s} from 'lib/styles' +import React from 'react' +import {Pressable, StyleProp, StyleSheet, View, ViewStyle} from 'react-native' import * as Toast from 'view/com/util/Toast' -import {sanitizeHandle} from 'lib/strings/handles' + +import {useTheme} from '#/alf' +import {RichText} from '#/components/RichText' import {logger} from '#/logger' import {useModalControls} from '#/state/modals' -import {Trans, msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' +import {FeedSourceInfo, useFeedSourceInfoQuery} from '#/state/queries/feed' import { usePinFeedMutation, - UsePreferencesQueryResponse, usePreferencesQuery, - useSaveFeedMutation, + UsePreferencesQueryResponse, useRemoveFeedMutation, + useSaveFeedMutation, } from '#/state/queries/preferences' -import {useFeedSourceInfoQuery, FeedSourceInfo} from '#/state/queries/feed' import {FeedLoadingPlaceholder} from '#/view/com/util/LoadingPlaceholder' -import {useTheme} from '#/alf' -import {useNavigationDeduped} from 'lib/hooks/useNavigationDeduped' + +import {Text} from '../util/text/Text' +import {UserAvatar} from '../util/UserAvatar' export function FeedSourceCard({ feedUri, diff --git a/src/view/com/feeds/ProfileFeedgens.tsx b/src/view/com/feeds/ProfileFeedgens.tsx index e9cf9e5359..702fe0d4e8 100644 --- a/src/view/com/feeds/ProfileFeedgens.tsx +++ b/src/view/com/feeds/ProfileFeedgens.tsx @@ -1,22 +1,24 @@ -import React from 'react' -import {StyleProp, StyleSheet, View, ViewStyle} from 'react-native' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' import {useQueryClient} from '@tanstack/react-query' -import {List, ListRef} from '../util/List' -import {FeedSourceCardLoaded} from './FeedSourceCard' -import {ErrorMessage} from '../util/error/ErrorMessage' -import {LoadMoreRetryBtn} from '../util/LoadMoreRetryBtn' -import {Text} from '../util/text/Text' import {usePalette} from 'lib/hooks/usePalette' -import {useProfileFeedgensQuery, RQKEY} from '#/state/queries/profile-feedgens' -import {logger} from '#/logger' -import {Trans, msg} from '@lingui/macro' +import React from 'react' +import {StyleProp, StyleSheet, View, ViewStyle} from 'react-native' + import {cleanError} from '#/lib/strings/errors' import {useTheme} from '#/lib/ThemeContext' -import {usePreferencesQuery} from '#/state/queries/preferences' +import {logger} from '#/logger' +import {isNative} from '#/platform/detection' import {hydrateFeedGenerator} from '#/state/queries/feed' +import {usePreferencesQuery} from '#/state/queries/preferences' +import {RQKEY, useProfileFeedgensQuery} from '#/state/queries/profile-feedgens' import {FeedLoadingPlaceholder} from '#/view/com/util/LoadingPlaceholder' -import {isNative} from '#/platform/detection' -import {useLingui} from '@lingui/react' + +import {ErrorMessage} from '../util/error/ErrorMessage' +import {List, ListRef} from '../util/List' +import {LoadMoreRetryBtn} from '../util/LoadMoreRetryBtn' +import {Text} from '../util/text/Text' +import {FeedSourceCardLoaded} from './FeedSourceCard' const LOADING = {_reactKey: '__loading__'} const EMPTY = {_reactKey: '__empty__'} diff --git a/src/view/com/home/HomeHeader.tsx b/src/view/com/home/HomeHeader.tsx index aa3ecb7fc2..13819142a2 100644 --- a/src/view/com/home/HomeHeader.tsx +++ b/src/view/com/home/HomeHeader.tsx @@ -1,12 +1,14 @@ -import React from 'react' -import {RenderTabBarFnProps} from 'view/com/pager/Pager' -import {HomeHeaderLayout} from './HomeHeaderLayout' -import {FeedSourceInfo} from '#/state/queries/feed' import {useNavigation} from '@react-navigation/native' import {NavigationProp} from 'lib/routes/types' import {isWeb} from 'platform/detection' -import {TabBar} from '../pager/TabBar' +import React from 'react' +import {RenderTabBarFnProps} from 'view/com/pager/Pager' + import {usePalette} from '#/lib/hooks/usePalette' +import {FeedSourceInfo} from '#/state/queries/feed' + +import {TabBar} from '../pager/TabBar' +import {HomeHeaderLayout} from './HomeHeaderLayout' export function HomeHeader( props: RenderTabBarFnProps & { diff --git a/src/view/com/home/HomeHeaderLayout.web.tsx b/src/view/com/home/HomeHeaderLayout.web.tsx index 9818b56f6f..25d90e4e4b 100644 --- a/src/view/com/home/HomeHeaderLayout.web.tsx +++ b/src/view/com/home/HomeHeaderLayout.web.tsx @@ -1,20 +1,22 @@ -import React from 'react' -import {StyleSheet, View} from 'react-native' -import Animated from 'react-native-reanimated' -import {usePalette} from 'lib/hooks/usePalette' -import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {HomeHeaderLayoutMobile} from './HomeHeaderLayoutMobile' -import {Logo} from '#/view/icons/Logo' -import {Link} from '../util/Link' import { FontAwesomeIcon, FontAwesomeIconStyle, } from '@fortawesome/react-native-fontawesome' -import {useLingui} from '@lingui/react' import {msg} from '@lingui/macro' -import {CogIcon} from '#/lib/icons' +import {useLingui} from '@lingui/react' import {useMinimalShellMode} from 'lib/hooks/useMinimalShellMode' +import {usePalette} from 'lib/hooks/usePalette' +import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' +import React from 'react' +import {StyleSheet, View} from 'react-native' +import Animated from 'react-native-reanimated' + +import {CogIcon} from '#/lib/icons' import {useShellLayout} from '#/state/shell/shell-layout' +import {Logo} from '#/view/icons/Logo' + +import {Link} from '../util/Link' +import {HomeHeaderLayoutMobile} from './HomeHeaderLayoutMobile' export function HomeHeaderLayout(props: { children: React.ReactNode diff --git a/src/view/com/home/HomeHeaderLayoutMobile.tsx b/src/view/com/home/HomeHeaderLayoutMobile.tsx index d7b7231c60..c621c80d2a 100644 --- a/src/view/com/home/HomeHeaderLayoutMobile.tsx +++ b/src/view/com/home/HomeHeaderLayoutMobile.tsx @@ -1,23 +1,24 @@ -import React from 'react' -import {StyleSheet, TouchableOpacity, View} from 'react-native' -import {usePalette} from 'lib/hooks/usePalette' -import {Link} from '../util/Link' import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' import {FontAwesomeIconStyle} from '@fortawesome/react-native-fontawesome' -import {HITSLOP_10} from 'lib/constants' -import Animated from 'react-native-reanimated' import {msg} from '@lingui/macro' import {useLingui} from '@lingui/react' +import {HITSLOP_10} from 'lib/constants' import {useMinimalShellMode} from 'lib/hooks/useMinimalShellMode' -import {useSetDrawerOpen} from '#/state/shell/drawer-open' -import {useShellLayout} from '#/state/shell/shell-layout' +import {usePalette} from 'lib/hooks/usePalette' import {isWeb} from 'platform/detection' -import {Logo} from '#/view/icons/Logo' +import React from 'react' +import {StyleSheet, TouchableOpacity, View} from 'react-native' +import Animated from 'react-native-reanimated' -import {IS_DEV} from '#/env' import {atoms} from '#/alf' -import {Link as Link2} from '#/components/Link' import {ColorPalette_Stroke2_Corner0_Rounded as ColorPalette} from '#/components/icons/ColorPalette' +import {Link as Link2} from '#/components/Link' +import {IS_DEV} from '#/env' +import {useSetDrawerOpen} from '#/state/shell/drawer-open' +import {useShellLayout} from '#/state/shell/shell-layout' +import {Logo} from '#/view/icons/Logo' + +import {Link} from '../util/Link' export function HomeHeaderLayoutMobile({ children, diff --git a/src/view/com/lightbox/ImageViewing/components/ImageDefaultHeader.tsx b/src/view/com/lightbox/ImageViewing/components/ImageDefaultHeader.tsx index 3401adaff4..eecc3f6f36 100644 --- a/src/view/com/lightbox/ImageViewing/components/ImageDefaultHeader.tsx +++ b/src/view/com/lightbox/ImageViewing/components/ImageDefaultHeader.tsx @@ -5,10 +5,10 @@ * LICENSE file in the root directory of this source tree. * */ -import React from 'react' -import {createHitslop} from 'lib/constants' -import {SafeAreaView, Text, TouchableOpacity, StyleSheet} from 'react-native' import {t} from '@lingui/macro' +import {createHitslop} from 'lib/constants' +import React from 'react' +import {SafeAreaView, StyleSheet, Text, TouchableOpacity} from 'react-native' type Props = { onRequestClose: () => void diff --git a/src/view/com/lightbox/ImageViewing/components/ImageItem/ImageItem.android.tsx b/src/view/com/lightbox/ImageViewing/components/ImageItem/ImageItem.android.tsx index 414f98a611..85963067c5 100644 --- a/src/view/com/lightbox/ImageViewing/components/ImageItem/ImageItem.android.tsx +++ b/src/view/com/lightbox/ImageViewing/components/ImageItem/ImageItem.android.tsx @@ -1,28 +1,28 @@ +import {Image} from 'expo-image' import React, {useState} from 'react' - import {ActivityIndicator, Dimensions, StyleSheet} from 'react-native' -import {Image} from 'expo-image' +import {Gesture, GestureDetector} from 'react-native-gesture-handler' import Animated, { runOnJS, + useAnimatedReaction, useAnimatedRef, useAnimatedStyle, - useAnimatedReaction, useSharedValue, withDecay, withSpring, } from 'react-native-reanimated' -import {GestureDetector, Gesture} from 'react-native-gesture-handler' + +import type {Dimensions as ImageDimensions, ImageSource} from '../../@types' import useImageDimensions from '../../hooks/useImageDimensions' import { - createTransform, - readTransform, applyRounding, + createTransform, prependPan, prependPinch, prependTransform, + readTransform, TransformMatrix, } from '../../transforms' -import type {ImageSource, Dimensions as ImageDimensions} from '../../@types' const SCREEN = Dimensions.get('window') const MIN_DOUBLE_TAP_SCALE = 2 diff --git a/src/view/com/lightbox/ImageViewing/components/ImageItem/ImageItem.ios.tsx b/src/view/com/lightbox/ImageViewing/components/ImageItem/ImageItem.ios.tsx index 383490f4f1..5fabeb1703 100644 --- a/src/view/com/lightbox/ImageViewing/components/ImageItem/ImageItem.ios.tsx +++ b/src/view/com/lightbox/ImageViewing/components/ImageItem/ImageItem.ios.tsx @@ -6,10 +6,10 @@ * */ +import {Image} from 'expo-image' import React, {useState} from 'react' - import {Dimensions, StyleSheet} from 'react-native' -import {Image} from 'expo-image' +import {Gesture, GestureDetector} from 'react-native-gesture-handler' import Animated, { interpolate, runOnJS, @@ -17,12 +17,11 @@ import Animated, { useAnimatedStyle, useSharedValue, } from 'react-native-reanimated' + import {useAnimatedScrollHandler} from '#/lib/hooks/useAnimatedScrollHandler_FIXED' -import {Gesture, GestureDetector} from 'react-native-gesture-handler' +import {Dimensions as ImageDimensions, ImageSource} from '../../@types' import useImageDimensions from '../../hooks/useImageDimensions' - -import {ImageSource, Dimensions as ImageDimensions} from '../../@types' import {ImageLoading} from './ImageLoading' const SWIPE_CLOSE_OFFSET = 75 diff --git a/src/view/com/lightbox/ImageViewing/components/ImageItem/ImageItem.tsx b/src/view/com/lightbox/ImageViewing/components/ImageItem/ImageItem.tsx index 08b99bf9ee..4cb7903efa 100644 --- a/src/view/com/lightbox/ImageViewing/components/ImageItem/ImageItem.tsx +++ b/src/view/com/lightbox/ImageViewing/components/ImageItem/ImageItem.tsx @@ -2,6 +2,7 @@ import React from 'react' import {View} from 'react-native' + import {ImageSource} from '../../@types' type Props = { diff --git a/src/view/com/lightbox/ImageViewing/components/ImageItem/ImageLoading.tsx b/src/view/com/lightbox/ImageViewing/components/ImageItem/ImageLoading.tsx index 9667fcaa7b..318e7d8da2 100644 --- a/src/view/com/lightbox/ImageViewing/components/ImageItem/ImageLoading.tsx +++ b/src/view/com/lightbox/ImageViewing/components/ImageItem/ImageLoading.tsx @@ -7,7 +7,6 @@ */ import React from 'react' - import {ActivityIndicator, Dimensions, StyleSheet, View} from 'react-native' const SCREEN = Dimensions.get('screen') diff --git a/src/view/com/lightbox/ImageViewing/hooks/useImageDimensions.ts b/src/view/com/lightbox/ImageViewing/hooks/useImageDimensions.ts index cb46fd0d9c..46f9f22953 100644 --- a/src/view/com/lightbox/ImageViewing/hooks/useImageDimensions.ts +++ b/src/view/com/lightbox/ImageViewing/hooks/useImageDimensions.ts @@ -8,6 +8,7 @@ import {useEffect, useState} from 'react' import {Image, ImageURISource} from 'react-native' + import {Dimensions, ImageSource} from '../@types' const CACHE_SIZE = 50 diff --git a/src/view/com/lightbox/ImageViewing/index.tsx b/src/view/com/lightbox/ImageViewing/index.tsx index ff8fdb86d3..1432b34ff8 100644 --- a/src/view/com/lightbox/ImageViewing/index.tsx +++ b/src/view/com/lightbox/ImageViewing/index.tsx @@ -9,15 +9,14 @@ // https://github.com/jobtoday/react-native-image-viewing import React, {ComponentType, useCallback, useMemo, useState} from 'react' -import {StyleSheet, View, Platform} from 'react-native' - -import ImageItem from './components/ImageItem/ImageItem' -import ImageDefaultHeader from './components/ImageDefaultHeader' - -import {ImageSource} from './@types' +import {Platform, StyleSheet, View} from 'react-native' +import PagerView from 'react-native-pager-view' import Animated, {useAnimatedStyle, withSpring} from 'react-native-reanimated' import {Edge, SafeAreaView} from 'react-native-safe-area-context' -import PagerView from 'react-native-pager-view' + +import {ImageSource} from './@types' +import ImageDefaultHeader from './components/ImageDefaultHeader' +import ImageItem from './components/ImageItem/ImageItem' type Props = { images: ImageSource[] diff --git a/src/view/com/lightbox/Lightbox.tsx b/src/view/com/lightbox/Lightbox.tsx index 2ee5b8d593..b3e5dfb9b2 100644 --- a/src/view/com/lightbox/Lightbox.tsx +++ b/src/view/com/lightbox/Lightbox.tsx @@ -1,22 +1,24 @@ -import React from 'react' -import {LayoutAnimation, StyleSheet, View} from 'react-native' import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' -import ImageView from './ImageViewing' -import {shareImageModal, saveImageToMediaLibrary} from 'lib/media/manip' -import * as Toast from '../util/Toast' -import {Text} from '../util/text/Text' -import {s, colors} from 'lib/styles' -import {Button} from '../util/forms/Button' -import {isIOS} from 'platform/detection' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' import * as MediaLibrary from 'expo-media-library' +import {saveImageToMediaLibrary, shareImageModal} from 'lib/media/manip' +import {colors, s} from 'lib/styles' +import {isIOS} from 'platform/detection' +import React from 'react' +import {LayoutAnimation, StyleSheet, View} from 'react-native' + import { + ImagesLightbox, + ProfileImageLightbox, useLightbox, useLightboxControls, - ProfileImageLightbox, - ImagesLightbox, } from '#/state/lightbox' -import {Trans, msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' + +import {Button} from '../util/forms/Button' +import {Text} from '../util/text/Text' +import * as Toast from '../util/Toast' +import ImageView from './ImageViewing' export function Lightbox() { const {activeLightbox} = useLightbox() diff --git a/src/view/com/lightbox/Lightbox.web.tsx b/src/view/com/lightbox/Lightbox.web.tsx index fb97c30a45..e3c3d5acde 100644 --- a/src/view/com/lightbox/Lightbox.web.tsx +++ b/src/view/com/lightbox/Lightbox.web.tsx @@ -1,29 +1,31 @@ +import { + FontAwesomeIcon, + FontAwesomeIconStyle, +} from '@fortawesome/react-native-fontawesome' +import {msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {colors, s} from 'lib/styles' import React, {useCallback, useEffect, useState} from 'react' import { Image, ImageStyle, + Pressable, + StyleSheet, TouchableOpacity, TouchableWithoutFeedback, - StyleSheet, View, - Pressable, } from 'react-native' + +import {useWebBodyScrollLock} from '#/lib/hooks/useWebBodyScrollLock' import { - FontAwesomeIcon, - FontAwesomeIconStyle, -} from '@fortawesome/react-native-fontawesome' -import {colors, s} from 'lib/styles' -import ImageDefaultHeader from './ImageViewing/components/ImageDefaultHeader' -import {Text} from '../util/text/Text' -import {useLingui} from '@lingui/react' -import {msg} from '@lingui/macro' -import { - useLightbox, - useLightboxControls, ImagesLightbox, ProfileImageLightbox, + useLightbox, + useLightboxControls, } from '#/state/lightbox' -import {useWebBodyScrollLock} from '#/lib/hooks/useWebBodyScrollLock' + +import {Text} from '../util/text/Text' +import ImageDefaultHeader from './ImageViewing/components/ImageDefaultHeader' interface Img { uri: string diff --git a/src/view/com/lists/ListCard.tsx b/src/view/com/lists/ListCard.tsx index 19842eb54d..0a36902a42 100644 --- a/src/view/com/lists/ListCard.tsx +++ b/src/view/com/lists/ListCard.tsx @@ -1,18 +1,20 @@ +import {AppBskyGraphDefs, AtUri, RichText} from '@atproto/api' +import {Trans} from '@lingui/macro' +import {usePalette} from 'lib/hooks/usePalette' +import {makeProfileLink} from 'lib/routes/links' +import {sanitizeDisplayName} from 'lib/strings/display-names' +import {sanitizeHandle} from 'lib/strings/handles' +import {s} from 'lib/styles' import React from 'react' import {StyleProp, StyleSheet, View, ViewStyle} from 'react-native' -import {AtUri, AppBskyGraphDefs, RichText} from '@atproto/api' + +import {atoms as a} from '#/alf' +import {RichText as RichTextCom} from '#/components/RichText' +import {useSession} from '#/state/session' + import {Link} from '../util/Link' import {Text} from '../util/text/Text' -import {RichText as RichTextCom} from '#/components/RichText' import {UserAvatar} from '../util/UserAvatar' -import {s} from 'lib/styles' -import {usePalette} from 'lib/hooks/usePalette' -import {useSession} from '#/state/session' -import {sanitizeDisplayName} from 'lib/strings/display-names' -import {sanitizeHandle} from 'lib/strings/handles' -import {makeProfileLink} from 'lib/routes/links' -import {Trans} from '@lingui/macro' -import {atoms as a} from '#/alf' export const ListCard = ({ testID, diff --git a/src/view/com/lists/ListMembers.tsx b/src/view/com/lists/ListMembers.tsx index 4f2b56426e..796db89673 100644 --- a/src/view/com/lists/ListMembers.tsx +++ b/src/view/com/lists/ListMembers.tsx @@ -1,3 +1,8 @@ +import {AppBskyActorDefs, AppBskyGraphDefs} from '@atproto/api' +import {msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {useAnalytics} from 'lib/analytics/analytics' +import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' import React from 'react' import { ActivityIndicator, @@ -6,22 +11,19 @@ import { View, ViewStyle, } from 'react-native' -import {AppBskyActorDefs, AppBskyGraphDefs} from '@atproto/api' -import {List, ListRef} from '../util/List' -import {ProfileCardFeedLoadingPlaceholder} from '../util/LoadingPlaceholder' -import {ErrorMessage} from '../util/error/ErrorMessage' -import {LoadMoreRetryBtn} from '../util/LoadMoreRetryBtn' -import {ProfileCard} from '../profile/ProfileCard' -import {Button} from '../util/forms/Button' -import {useAnalytics} from 'lib/analytics/analytics' -import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {useListMembersQuery} from '#/state/queries/list-members' + +import {cleanError} from '#/lib/strings/errors' import {logger} from '#/logger' import {useModalControls} from '#/state/modals' +import {useListMembersQuery} from '#/state/queries/list-members' import {useSession} from '#/state/session' -import {cleanError} from '#/lib/strings/errors' -import {useLingui} from '@lingui/react' -import {msg} from '@lingui/macro' + +import {ProfileCard} from '../profile/ProfileCard' +import {ErrorMessage} from '../util/error/ErrorMessage' +import {Button} from '../util/forms/Button' +import {List, ListRef} from '../util/List' +import {ProfileCardFeedLoadingPlaceholder} from '../util/LoadingPlaceholder' +import {LoadMoreRetryBtn} from '../util/LoadMoreRetryBtn' const LOADING_ITEM = {_reactKey: '__loading__'} const EMPTY_ITEM = {_reactKey: '__empty__'} diff --git a/src/view/com/lists/MyLists.tsx b/src/view/com/lists/MyLists.tsx index e9d2e4f0fe..8d746ca340 100644 --- a/src/view/com/lists/MyLists.tsx +++ b/src/view/com/lists/MyLists.tsx @@ -1,3 +1,8 @@ +import {AppBskyGraphDefs as GraphDefs} from '@atproto/api' +import {Trans} from '@lingui/macro' +import {useAnalytics} from 'lib/analytics/analytics' +import {usePalette} from 'lib/hooks/usePalette' +import {s} from 'lib/styles' import React from 'react' import { ActivityIndicator, @@ -8,18 +13,15 @@ import { View, ViewStyle, } from 'react-native' -import {AppBskyGraphDefs as GraphDefs} from '@atproto/api' -import {ListCard} from './ListCard' + +import {cleanError} from '#/lib/strings/errors' +import {logger} from '#/logger' import {MyListsFilter, useMyListsQuery} from '#/state/queries/my-lists' + import {ErrorMessage} from '../util/error/ErrorMessage' -import {Text} from '../util/text/Text' -import {useAnalytics} from 'lib/analytics/analytics' -import {usePalette} from 'lib/hooks/usePalette' import {List} from '../util/List' -import {s} from 'lib/styles' -import {logger} from '#/logger' -import {Trans} from '@lingui/macro' -import {cleanError} from '#/lib/strings/errors' +import {Text} from '../util/text/Text' +import {ListCard} from './ListCard' const LOADING = {_reactKey: '__loading__'} const EMPTY = {_reactKey: '__empty__'} diff --git a/src/view/com/lists/ProfileLists.tsx b/src/view/com/lists/ProfileLists.tsx index a47b25bed4..d2344914ae 100644 --- a/src/view/com/lists/ProfileLists.tsx +++ b/src/view/com/lists/ProfileLists.tsx @@ -1,21 +1,23 @@ -import React from 'react' -import {StyleProp, StyleSheet, View, ViewStyle} from 'react-native' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' import {useQueryClient} from '@tanstack/react-query' -import {List, ListRef} from '../util/List' -import {ListCard} from './ListCard' -import {ErrorMessage} from '../util/error/ErrorMessage' -import {LoadMoreRetryBtn} from '../util/LoadMoreRetryBtn' -import {Text} from '../util/text/Text' import {useAnalytics} from 'lib/analytics/analytics' import {usePalette} from 'lib/hooks/usePalette' -import {useProfileListsQuery, RQKEY} from '#/state/queries/profile-lists' -import {logger} from '#/logger' -import {Trans, msg} from '@lingui/macro' +import React from 'react' +import {StyleProp, StyleSheet, View, ViewStyle} from 'react-native' + import {cleanError} from '#/lib/strings/errors' import {useTheme} from '#/lib/ThemeContext' -import {FeedLoadingPlaceholder} from '#/view/com/util/LoadingPlaceholder' +import {logger} from '#/logger' import {isNative} from '#/platform/detection' -import {useLingui} from '@lingui/react' +import {RQKEY, useProfileListsQuery} from '#/state/queries/profile-lists' +import {FeedLoadingPlaceholder} from '#/view/com/util/LoadingPlaceholder' + +import {ErrorMessage} from '../util/error/ErrorMessage' +import {List, ListRef} from '../util/List' +import {LoadMoreRetryBtn} from '../util/LoadMoreRetryBtn' +import {Text} from '../util/text/Text' +import {ListCard} from './ListCard' const LOADING = {_reactKey: '__loading__'} const EMPTY = {_reactKey: '__empty__'} diff --git a/src/view/com/modals/AddAppPasswords.tsx b/src/view/com/modals/AddAppPasswords.tsx index a8913dd54c..2346f6d4e0 100644 --- a/src/view/com/modals/AddAppPasswords.tsx +++ b/src/view/com/modals/AddAppPasswords.tsx @@ -1,25 +1,27 @@ -import React, {useState} from 'react' -import {StyleSheet, TextInput, View, TouchableOpacity} from 'react-native' -import {Text} from '../util/text/Text' -import {Button} from '../util/forms/Button' -import {s} from 'lib/styles' -import {usePalette} from 'lib/hooks/usePalette' -import {isNative} from 'platform/detection' import { FontAwesomeIcon, FontAwesomeIconStyle, } from '@fortawesome/react-native-fontawesome' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' import Clipboard from '@react-native-clipboard/clipboard' -import * as Toast from '../util/Toast' +import {usePalette} from 'lib/hooks/usePalette' +import {s} from 'lib/styles' +import {isNative} from 'platform/detection' +import React, {useState} from 'react' +import {StyleSheet, TextInput, TouchableOpacity, View} from 'react-native' + import {logger} from '#/logger' -import {Trans, msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' import {useModalControls} from '#/state/modals' import { - useAppPasswordsQuery, useAppPasswordCreateMutation, + useAppPasswordsQuery, } from '#/state/queries/app-passwords' +import {Button} from '../util/forms/Button' +import {Text} from '../util/text/Text' +import * as Toast from '../util/Toast' + export const snapPoints = ['70%'] const shadesOfBlue: string[] = [ diff --git a/src/view/com/modals/AltImage.tsx b/src/view/com/modals/AltImage.tsx index 17ce05cda8..e3e872a172 100644 --- a/src/view/com/modals/AltImage.tsx +++ b/src/view/com/modals/AltImage.tsx @@ -1,29 +1,31 @@ -import React, {useMemo, useCallback, useState} from 'react' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {Image} from 'expo-image' +import {MAX_ALT_TEXT} from 'lib/constants' +import {useIsKeyboardVisible} from 'lib/hooks/useIsKeyboardVisible' +import {usePalette} from 'lib/hooks/usePalette' +import {enforceLen} from 'lib/strings/helpers' +import {gradients, s} from 'lib/styles' +import {useTheme} from 'lib/ThemeContext' +import {isWeb} from 'platform/detection' +import React, {useCallback, useMemo, useState} from 'react' import { ImageStyle, + ScrollView as RNScrollView, StyleSheet, - TouchableOpacity, - View, TextInput as RNTextInput, + TouchableOpacity, useWindowDimensions, - ScrollView as RNScrollView, + View, } from 'react-native' -import {ScrollView, TextInput} from './util' -import {Image} from 'expo-image' -import {usePalette} from 'lib/hooks/usePalette' -import {gradients, s} from 'lib/styles' -import {enforceLen} from 'lib/strings/helpers' -import {MAX_ALT_TEXT} from 'lib/constants' -import {useTheme} from 'lib/ThemeContext' -import {useIsKeyboardVisible} from 'lib/hooks/useIsKeyboardVisible' -import {Text} from '../util/text/Text' import LinearGradient from 'react-native-linear-gradient' -import {isWeb} from 'platform/detection' import {ImageModel} from 'state/models/media/image' -import {useLingui} from '@lingui/react' -import {Trans, msg} from '@lingui/macro' + import {useModalControls} from '#/state/modals' +import {Text} from '../util/text/Text' +import {ScrollView, TextInput} from './util' + export const snapPoints = ['100%'] interface Props { diff --git a/src/view/com/modals/AppealLabel.tsx b/src/view/com/modals/AppealLabel.tsx index b0aaaf6255..5756452a2a 100644 --- a/src/view/com/modals/AppealLabel.tsx +++ b/src/view/com/modals/AppealLabel.tsx @@ -1,17 +1,19 @@ -import React, {useState} from 'react' -import {StyleSheet, TouchableOpacity, View} from 'react-native' import {ComAtprotoModerationDefs} from '@atproto/api' -import {ScrollView, TextInput} from './util' -import {Text} from '../util/text/Text' -import {s, colors} from 'lib/styles' -import {usePalette} from 'lib/hooks/usePalette' -import {Trans, msg} from '@lingui/macro' +import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' +import {usePalette} from 'lib/hooks/usePalette' +import {colors, s} from 'lib/styles' +import React, {useState} from 'react' +import {StyleSheet, TouchableOpacity, View} from 'react-native' + +import {useWebMediaQueries} from '#/lib/hooks/useWebMediaQueries' import {useModalControls} from '#/state/modals' -import {CharProgress} from '../composer/char-progress/CharProgress' import {getAgent} from '#/state/session' + +import {CharProgress} from '../composer/char-progress/CharProgress' +import {Text} from '../util/text/Text' import * as Toast from '../util/Toast' -import {useWebMediaQueries} from '#/lib/hooks/useWebMediaQueries' +import {ScrollView, TextInput} from './util' export const snapPoints = ['40%'] diff --git a/src/view/com/modals/BirthDateSettings.tsx b/src/view/com/modals/BirthDateSettings.tsx index 1cab959896..dc8b914a50 100644 --- a/src/view/com/modals/BirthDateSettings.tsx +++ b/src/view/com/modals/BirthDateSettings.tsx @@ -1,3 +1,10 @@ +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {usePalette} from 'lib/hooks/usePalette' +import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' +import {cleanError} from 'lib/strings/errors' +import {colors, s} from 'lib/styles' +import {isWeb} from 'platform/detection' import React, {useState} from 'react' import { ActivityIndicator, @@ -5,23 +12,18 @@ import { TouchableOpacity, View, } from 'react-native' -import {Text} from '../util/text/Text' -import {DateInput} from '../util/forms/DateInput' -import {ErrorMessage} from '../util/error/ErrorMessage' -import {s, colors} from 'lib/styles' -import {usePalette} from 'lib/hooks/usePalette' -import {isWeb} from 'platform/detection' -import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {cleanError} from 'lib/strings/errors' -import {Trans, msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' + +import {logger} from '#/logger' import {useModalControls} from '#/state/modals' import { usePreferencesQuery, - usePreferencesSetBirthDateMutation, UsePreferencesQueryResponse, + usePreferencesSetBirthDateMutation, } from '#/state/queries/preferences' -import {logger} from '#/logger' + +import {ErrorMessage} from '../util/error/ErrorMessage' +import {DateInput} from '../util/forms/DateInput' +import {Text} from '../util/text/Text' export const snapPoints = ['50%', '90%'] diff --git a/src/view/com/modals/ChangeEmail.tsx b/src/view/com/modals/ChangeEmail.tsx index c5672bc814..23d0b6f0d7 100644 --- a/src/view/com/modals/ChangeEmail.tsx +++ b/src/view/com/modals/ChangeEmail.tsx @@ -1,19 +1,21 @@ -import React, {useState} from 'react' -import {ActivityIndicator, SafeAreaView, StyleSheet, View} from 'react-native' -import {ScrollView, TextInput} from './util' -import {Text} from '../util/text/Text' -import {Button} from '../util/forms/Button' -import {ErrorMessage} from '../util/error/ErrorMessage' -import * as Toast from '../util/Toast' -import {s, colors} from 'lib/styles' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' import {usePalette} from 'lib/hooks/usePalette' -import {isWeb} from 'platform/detection' import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' import {cleanError} from 'lib/strings/errors' -import {Trans, msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' +import {colors, s} from 'lib/styles' +import {isWeb} from 'platform/detection' +import React, {useState} from 'react' +import {ActivityIndicator, SafeAreaView, StyleSheet, View} from 'react-native' + import {useModalControls} from '#/state/modals' -import {useSession, useSessionApi, getAgent} from '#/state/session' +import {getAgent, useSession, useSessionApi} from '#/state/session' + +import {ErrorMessage} from '../util/error/ErrorMessage' +import {Button} from '../util/forms/Button' +import {Text} from '../util/text/Text' +import * as Toast from '../util/Toast' +import {ScrollView, TextInput} from './util' enum Stages { InputEmail, diff --git a/src/view/com/modals/ChangeHandle.tsx b/src/view/com/modals/ChangeHandle.tsx index a43c30c29c..1521b2d5cc 100644 --- a/src/view/com/modals/ChangeHandle.tsx +++ b/src/view/com/modals/ChangeHandle.tsx @@ -1,38 +1,40 @@ -import React, {useState} from 'react' -import Clipboard from '@react-native-clipboard/clipboard' import {ComAtprotoServerDescribeServer} from '@atproto/api' -import * as Toast from '../util/Toast' +import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import Clipboard from '@react-native-clipboard/clipboard' +import {useAnalytics} from 'lib/analytics/analytics' +import {usePalette} from 'lib/hooks/usePalette' +import {cleanError} from 'lib/strings/errors' +import {createFullHandle, makeValidHandle} from 'lib/strings/handles' +import {s} from 'lib/styles' +import {useTheme} from 'lib/ThemeContext' +import React, {useState} from 'react' import { ActivityIndicator, StyleSheet, TouchableOpacity, View, } from 'react-native' -import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' -import {ScrollView, TextInput} from './util' -import {Text} from '../util/text/Text' -import {Button} from '../util/forms/Button' -import {SelectableBtn} from '../util/forms/SelectableBtn' -import {ErrorMessage} from '../util/error/ErrorMessage' -import {s} from 'lib/styles' -import {createFullHandle, makeValidHandle} from 'lib/strings/handles' -import {usePalette} from 'lib/hooks/usePalette' -import {useTheme} from 'lib/ThemeContext' -import {useAnalytics} from 'lib/analytics/analytics' -import {cleanError} from 'lib/strings/errors' + import {logger} from '#/logger' -import {Trans, msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' import {useModalControls} from '#/state/modals' +import {useFetchDid, useUpdateHandleMutation} from '#/state/queries/handle' import {useServiceQuery} from '#/state/queries/service' -import {useUpdateHandleMutation, useFetchDid} from '#/state/queries/handle' import { + getAgent, + SessionAccount, useSession, useSessionApi, - SessionAccount, - getAgent, } from '#/state/session' +import {ErrorMessage} from '../util/error/ErrorMessage' +import {Button} from '../util/forms/Button' +import {SelectableBtn} from '../util/forms/SelectableBtn' +import {Text} from '../util/text/Text' +import * as Toast from '../util/Toast' +import {ScrollView, TextInput} from './util' + export const snapPoints = ['100%'] export type Props = {onChanged: () => void} diff --git a/src/view/com/modals/ChangePassword.tsx b/src/view/com/modals/ChangePassword.tsx index d8add97946..ba60e5d889 100644 --- a/src/view/com/modals/ChangePassword.tsx +++ b/src/view/com/modals/ChangePassword.tsx @@ -1,3 +1,13 @@ +import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import * as EmailValidator from 'email-validator' +import {usePalette} from 'lib/hooks/usePalette' +import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' +import {cleanError, isNetworkError} from 'lib/strings/errors' +import {checkAndFormatResetCode} from 'lib/strings/password' +import {colors, s} from 'lib/styles' +import {isAndroid, isWeb} from 'platform/detection' import React, {useState} from 'react' import { ActivityIndicator, @@ -6,24 +16,16 @@ import { TouchableOpacity, View, } from 'react-native' + +import {logger} from '#/logger' +import {useModalControls} from '#/state/modals' +import {getAgent, useSession} from '#/state/session' + +import {ErrorMessage} from '../util/error/ErrorMessage' +import {Button} from '../util/forms/Button' +import {Text} from '../util/text/Text' import {ScrollView} from './util' -import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' import {TextInput} from './util' -import {Text} from '../util/text/Text' -import {Button} from '../util/forms/Button' -import {ErrorMessage} from '../util/error/ErrorMessage' -import {s, colors} from 'lib/styles' -import {usePalette} from 'lib/hooks/usePalette' -import {isAndroid, isWeb} from 'platform/detection' -import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {cleanError, isNetworkError} from 'lib/strings/errors' -import {checkAndFormatResetCode} from 'lib/strings/password' -import {Trans, msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {useModalControls} from '#/state/modals' -import {useSession, getAgent} from '#/state/session' -import * as EmailValidator from 'email-validator' -import {logger} from '#/logger' enum Stages { RequestCode, diff --git a/src/view/com/modals/Confirm.tsx b/src/view/com/modals/Confirm.tsx index 307897fb8a..470d3cf61f 100644 --- a/src/view/com/modals/Confirm.tsx +++ b/src/view/com/modals/Confirm.tsx @@ -1,3 +1,9 @@ +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {usePalette} from 'lib/hooks/usePalette' +import {cleanError} from 'lib/strings/errors' +import {colors, s} from 'lib/styles' +import {isWeb} from 'platform/detection' import React, {useState} from 'react' import { ActivityIndicator, @@ -5,17 +11,13 @@ import { TouchableOpacity, View, } from 'react-native' -import {Text} from '../util/text/Text' -import {s, colors} from 'lib/styles' -import {ErrorMessage} from '../util/error/ErrorMessage' -import {cleanError} from 'lib/strings/errors' -import {usePalette} from 'lib/hooks/usePalette' -import {isWeb} from 'platform/detection' -import {useLingui} from '@lingui/react' -import {Trans, msg} from '@lingui/macro' + import type {ConfirmModal} from '#/state/modals' import {useModalControls} from '#/state/modals' +import {ErrorMessage} from '../util/error/ErrorMessage' +import {Text} from '../util/text/Text' + export const snapPoints = ['50%'] export function Component({ diff --git a/src/view/com/modals/ContentFilteringSettings.tsx b/src/view/com/modals/ContentFilteringSettings.tsx index 328d23dc29..ed0b6dcf82 100644 --- a/src/view/com/modals/ContentFilteringSettings.tsx +++ b/src/view/com/modals/ContentFilteringSettings.tsx @@ -1,30 +1,32 @@ -import React from 'react' import {LabelPreference} from '@atproto/api' -import {StyleSheet, Pressable, View, Linking} from 'react-native' -import LinearGradient from 'react-native-linear-gradient' -import {ScrollView} from './util' -import {s, colors, gradients} from 'lib/styles' -import {Text} from '../util/text/Text' -import {TextLink} from '../util/Link' -import {ToggleButton} from '../util/forms/ToggleButton' -import {Button} from '../util/forms/Button' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' import {usePalette} from 'lib/hooks/usePalette' -import {isIOS} from 'platform/detection' import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import * as Toast from '../util/Toast' +import {colors, gradients, s} from 'lib/styles' +import {isIOS} from 'platform/detection' +import React from 'react' +import {Linking, Pressable, StyleSheet, View} from 'react-native' +import LinearGradient from 'react-native-linear-gradient' + import {logger} from '#/logger' -import {Trans, msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' import {useModalControls} from '#/state/modals' import { - usePreferencesQuery, - usePreferencesSetContentLabelMutation, - usePreferencesSetAdultContentMutation, - ConfigurableLabelGroup, CONFIGURABLE_LABEL_GROUPS, + ConfigurableLabelGroup, + usePreferencesQuery, UsePreferencesQueryResponse, + usePreferencesSetAdultContentMutation, + usePreferencesSetContentLabelMutation, } from '#/state/queries/preferences' +import {Button} from '../util/forms/Button' +import {ToggleButton} from '../util/forms/ToggleButton' +import {TextLink} from '../util/Link' +import {Text} from '../util/text/Text' +import * as Toast from '../util/Toast' +import {ScrollView} from './util' + export const snapPoints = ['90%'] export function Component({}: {}) { diff --git a/src/view/com/modals/CreateOrEditList.tsx b/src/view/com/modals/CreateOrEditList.tsx index 0e11fcffd5..3c7618e1e6 100644 --- a/src/view/com/modals/CreateOrEditList.tsx +++ b/src/view/com/modals/CreateOrEditList.tsx @@ -1,4 +1,19 @@ -import React, {useState, useCallback, useMemo} from 'react' +import { + AppBskyGraphDefs, + AppBskyRichtextFacet, + RichText as RichTextAPI, +} from '@atproto/api' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {useAnalytics} from 'lib/analytics/analytics' +import {usePalette} from 'lib/hooks/usePalette' +import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' +import {compressIfNeeded} from 'lib/media/manip' +import {cleanError, isNetworkError} from 'lib/strings/errors' +import {enforceLen} from 'lib/strings/helpers' +import {colors, gradients, s} from 'lib/styles' +import {useTheme} from 'lib/ThemeContext' +import React, {useCallback, useMemo, useState} from 'react' import { ActivityIndicator, KeyboardAvoidingView, @@ -8,36 +23,23 @@ import { TouchableOpacity, View, } from 'react-native' -import { - AppBskyGraphDefs, - AppBskyRichtextFacet, - RichText as RichTextAPI, -} from '@atproto/api' -import LinearGradient from 'react-native-linear-gradient' import {Image as RNImage} from 'react-native-image-crop-picker' -import {Text} from '../util/text/Text' -import {ErrorMessage} from '../util/error/ErrorMessage' -import * as Toast from '../util/Toast' -import {s, colors, gradients} from 'lib/styles' -import {enforceLen} from 'lib/strings/helpers' -import {compressIfNeeded} from 'lib/media/manip' -import {EditableUserAvatar} from '../util/UserAvatar' -import {usePalette} from 'lib/hooks/usePalette' -import {useTheme} from 'lib/ThemeContext' -import {useAnalytics} from 'lib/analytics/analytics' -import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {cleanError, isNetworkError} from 'lib/strings/errors' -import {Trans, msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' +import LinearGradient from 'react-native-linear-gradient' + +import {richTextToString} from '#/lib/strings/rich-text-helpers' +import {shortenLinks} from '#/lib/strings/rich-text-manip' import {useModalControls} from '#/state/modals' import { useListCreateMutation, useListMetadataMutation, } from '#/state/queries/list' -import {richTextToString} from '#/lib/strings/rich-text-helpers' -import {shortenLinks} from '#/lib/strings/rich-text-manip' import {getAgent} from '#/state/session' +import {ErrorMessage} from '../util/error/ErrorMessage' +import {Text} from '../util/text/Text' +import * as Toast from '../util/Toast' +import {EditableUserAvatar} from '../util/UserAvatar' + const MAX_NAME = 64 // todo const MAX_DESCRIPTION = 300 // todo diff --git a/src/view/com/modals/DeleteAccount.tsx b/src/view/com/modals/DeleteAccount.tsx index 40d78cfe0c..f0d2af8d25 100644 --- a/src/view/com/modals/DeleteAccount.tsx +++ b/src/view/com/modals/DeleteAccount.tsx @@ -1,27 +1,29 @@ +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {usePalette} from 'lib/hooks/usePalette' +import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' +import {cleanError} from 'lib/strings/errors' +import {colors, gradients, s} from 'lib/styles' +import {useTheme} from 'lib/ThemeContext' +import {isAndroid} from 'platform/detection' import React from 'react' import { - SafeAreaView, ActivityIndicator, + SafeAreaView, StyleSheet, TouchableOpacity, View, } from 'react-native' -import {TextInput, ScrollView} from './util' import LinearGradient from 'react-native-linear-gradient' -import * as Toast from '../util/Toast' -import {Text} from '../util/text/Text' -import {s, colors, gradients} from 'lib/styles' -import {usePalette} from 'lib/hooks/usePalette' -import {useTheme} from 'lib/ThemeContext' -import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {ErrorMessage} from '../util/error/ErrorMessage' -import {cleanError} from 'lib/strings/errors' -import {resetToTab} from '../../../Navigation' -import {Trans, msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' + import {useModalControls} from '#/state/modals' -import {useSession, useSessionApi, getAgent} from '#/state/session' -import {isAndroid} from 'platform/detection' +import {getAgent, useSession, useSessionApi} from '#/state/session' + +import {resetToTab} from '../../../Navigation' +import {ErrorMessage} from '../util/error/ErrorMessage' +import {Text} from '../util/text/Text' +import * as Toast from '../util/Toast' +import {ScrollView, TextInput} from './util' export const snapPoints = isAndroid ? ['90%'] : ['55%'] diff --git a/src/view/com/modals/EditImage.tsx b/src/view/com/modals/EditImage.tsx index 3b35ffee21..0b77a506a1 100644 --- a/src/view/com/modals/EditImage.tsx +++ b/src/view/com/modals/EditImage.tsx @@ -1,27 +1,29 @@ -import React, {useCallback, useEffect, useMemo, useRef, useState} from 'react' -import {Pressable, StyleSheet, View} from 'react-native' +import {MaterialIcons} from '@expo/vector-icons' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {Slider} from '@miblanchard/react-native-slider' +import {MAX_ALT_TEXT} from 'lib/constants' import {usePalette} from 'lib/hooks/usePalette' -import {useWindowDimensions} from 'react-native' +import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' +import {RectTallIcon, RectWideIcon, SquareIcon} from 'lib/icons' +import {enforceLen} from 'lib/strings/helpers' import {gradients, s} from 'lib/styles' import {useTheme} from 'lib/ThemeContext' -import {Text} from '../util/text/Text' -import LinearGradient from 'react-native-linear-gradient' -import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' +import {getKeys} from 'lib/type-assertions' +import {observer} from 'mobx-react-lite' +import React, {useCallback, useEffect, useMemo, useRef, useState} from 'react' import ImageEditor, {Position} from 'react-avatar-editor' -import {TextInput} from './util' -import {enforceLen} from 'lib/strings/helpers' -import {MAX_ALT_TEXT} from 'lib/constants' +import {Pressable, StyleSheet, View} from 'react-native' +import {useWindowDimensions} from 'react-native' +import LinearGradient from 'react-native-linear-gradient' import {GalleryModel} from 'state/models/media/gallery' import {ImageModel} from 'state/models/media/image' -import {SquareIcon, RectWideIcon, RectTallIcon} from 'lib/icons' -import {Slider} from '@miblanchard/react-native-slider' -import {MaterialIcons} from '@expo/vector-icons' -import {observer} from 'mobx-react-lite' -import {getKeys} from 'lib/type-assertions' -import {Trans, msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' + import {useModalControls} from '#/state/modals' +import {Text} from '../util/text/Text' +import {TextInput} from './util' + export const snapPoints = ['80%'] const RATIOS = { diff --git a/src/view/com/modals/EditProfile.tsx b/src/view/com/modals/EditProfile.tsx index 097b7b0d1b..7e11e6bbc2 100644 --- a/src/view/com/modals/EditProfile.tsx +++ b/src/view/com/modals/EditProfile.tsx @@ -1,5 +1,16 @@ -import React, {useState, useCallback} from 'react' -import * as Toast from '../util/Toast' +import {AppBskyActorDefs} from '@atproto/api' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {useAnalytics} from 'lib/analytics/analytics' +import {MAX_DESCRIPTION, MAX_DISPLAY_NAME} from 'lib/constants' +import {usePalette} from 'lib/hooks/usePalette' +import {compressIfNeeded} from 'lib/media/manip' +import {cleanError} from 'lib/strings/errors' +import {enforceLen} from 'lib/strings/helpers' +import {colors, gradients, s} from 'lib/styles' +import {useTheme} from 'lib/ThemeContext' +import {isWeb} from 'platform/detection' +import React, {useCallback, useState} from 'react' import { ActivityIndicator, KeyboardAvoidingView, @@ -9,28 +20,19 @@ import { TouchableOpacity, View, } from 'react-native' -import LinearGradient from 'react-native-linear-gradient' import {Image as RNImage} from 'react-native-image-crop-picker' -import {AppBskyActorDefs} from '@atproto/api' -import {Text} from '../util/text/Text' -import {ErrorMessage} from '../util/error/ErrorMessage' -import {s, colors, gradients} from 'lib/styles' -import {enforceLen} from 'lib/strings/helpers' -import {MAX_DISPLAY_NAME, MAX_DESCRIPTION} from 'lib/constants' -import {compressIfNeeded} from 'lib/media/manip' -import {UserBanner} from '../util/UserBanner' -import {EditableUserAvatar} from '../util/UserAvatar' -import {usePalette} from 'lib/hooks/usePalette' -import {useTheme} from 'lib/ThemeContext' -import {useAnalytics} from 'lib/analytics/analytics' -import {cleanError} from 'lib/strings/errors' +import LinearGradient from 'react-native-linear-gradient' import Animated, {FadeOut} from 'react-native-reanimated' -import {isWeb} from 'platform/detection' -import {Trans, msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' + +import {logger} from '#/logger' import {useModalControls} from '#/state/modals' import {useProfileUpdateMutation} from '#/state/queries/profile' -import {logger} from '#/logger' + +import {ErrorMessage} from '../util/error/ErrorMessage' +import {Text} from '../util/text/Text' +import * as Toast from '../util/Toast' +import {EditableUserAvatar} from '../util/UserAvatar' +import {UserBanner} from '../util/UserBanner' const AnimatedTouchableOpacity = Animated.createAnimatedComponent(TouchableOpacity) diff --git a/src/view/com/modals/EmbedConsent.tsx b/src/view/com/modals/EmbedConsent.tsx index 04104c52e1..9eaaf082a0 100644 --- a/src/view/com/modals/EmbedConsent.tsx +++ b/src/view/com/modals/EmbedConsent.tsx @@ -1,20 +1,22 @@ +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {usePalette} from 'lib/hooks/usePalette' +import {colors, gradients, s} from 'lib/styles' import React from 'react' import {StyleSheet, TouchableOpacity, View} from 'react-native' import LinearGradient from 'react-native-linear-gradient' -import {s, colors, gradients} from 'lib/styles' -import {Text} from '../util/text/Text' -import {ScrollView} from './util' -import {usePalette} from 'lib/hooks/usePalette' + +import {useWebMediaQueries} from '#/lib/hooks/useWebMediaQueries' import { EmbedPlayerSource, embedPlayerSources, externalEmbedLabels, } from '#/lib/strings/embed-player' -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' import {useModalControls} from '#/state/modals' import {useSetExternalEmbedPref} from '#/state/preferences/external-embeds-prefs' -import {useWebMediaQueries} from '#/lib/hooks/useWebMediaQueries' + +import {Text} from '../util/text/Text' +import {ScrollView} from './util' export const snapPoints = [450] diff --git a/src/view/com/modals/InAppBrowserConsent.tsx b/src/view/com/modals/InAppBrowserConsent.tsx index 86bb46ca81..cc19037571 100644 --- a/src/view/com/modals/InAppBrowserConsent.tsx +++ b/src/view/com/modals/InAppBrowserConsent.tsx @@ -1,20 +1,20 @@ +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {usePalette} from 'lib/hooks/usePalette' +import {s} from 'lib/styles' import React from 'react' import {StyleSheet, View} from 'react-native' -import {s} from 'lib/styles' -import {Text} from '../util/text/Text' -import {Button} from '../util/forms/Button' -import {ScrollView} from './util' -import {usePalette} from 'lib/hooks/usePalette' - -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' import {useModalControls} from '#/state/modals' import { useOpenLink, useSetInAppBrowser, } from '#/state/preferences/in-app-browser' +import {Button} from '../util/forms/Button' +import {Text} from '../util/text/Text' +import {ScrollView} from './util' + export const snapPoints = [350] export function Component({href}: {href: string}) { diff --git a/src/view/com/modals/InviteCodes.tsx b/src/view/com/modals/InviteCodes.tsx index c0318df015..80155e2280 100644 --- a/src/view/com/modals/InviteCodes.tsx +++ b/src/view/com/modals/InviteCodes.tsx @@ -1,36 +1,38 @@ -import React from 'react' -import { - StyleSheet, - TouchableOpacity, - View, - ActivityIndicator, -} from 'react-native' import {ComAtprotoServerDefs} from '@atproto/api' import { FontAwesomeIcon, FontAwesomeIconStyle, } from '@fortawesome/react-native-fontawesome' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' import Clipboard from '@react-native-clipboard/clipboard' -import {Text} from '../util/text/Text' -import {Button} from '../util/forms/Button' -import * as Toast from '../util/Toast' -import {ScrollView} from './util' import {usePalette} from 'lib/hooks/usePalette' -import {isWeb} from 'platform/detection' import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {Trans, msg} from '@lingui/macro' import {cleanError} from 'lib/strings/errors' -import {useModalControls} from '#/state/modals' -import {useInvitesState, useInvitesAPI} from '#/state/invites' -import {UserInfoText} from '../util/UserInfoText' +import {isWeb} from 'platform/detection' +import React from 'react' +import { + ActivityIndicator, + StyleSheet, + TouchableOpacity, + View, +} from 'react-native' + import {makeProfileLink} from '#/lib/routes/links' -import {Link} from '../util/Link' -import {ErrorMessage} from '../util/error/ErrorMessage' +import {useInvitesAPI, useInvitesState} from '#/state/invites' +import {useModalControls} from '#/state/modals' import { - useInviteCodesQuery, InviteCodesQueryResponse, + useInviteCodesQuery, } from '#/state/queries/invites' -import {useLingui} from '@lingui/react' + +import {ErrorMessage} from '../util/error/ErrorMessage' +import {Button} from '../util/forms/Button' +import {Link} from '../util/Link' +import {Text} from '../util/text/Text' +import * as Toast from '../util/Toast' +import {UserInfoText} from '../util/UserInfoText' +import {ScrollView} from './util' export const snapPoints = ['70%'] diff --git a/src/view/com/modals/LinkWarning.tsx b/src/view/com/modals/LinkWarning.tsx index 81fdc72853..1d0f1bda67 100644 --- a/src/view/com/modals/LinkWarning.tsx +++ b/src/view/com/modals/LinkWarning.tsx @@ -1,19 +1,21 @@ -import React from 'react' -import {SafeAreaView, StyleSheet, View} from 'react-native' -import {ScrollView} from './util' import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' -import {Text} from '../util/text/Text' -import {Button} from '../util/forms/Button' -import {s, colors} from 'lib/styles' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' import {usePalette} from 'lib/hooks/usePalette' -import {isWeb} from 'platform/detection' import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' import {isPossiblyAUrl, splitApexDomain} from 'lib/strings/url-helpers' -import {Trans, msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' +import {colors, s} from 'lib/styles' +import {isWeb} from 'platform/detection' +import React from 'react' +import {SafeAreaView, StyleSheet, View} from 'react-native' + import {useModalControls} from '#/state/modals' import {useOpenLink} from '#/state/preferences/in-app-browser' +import {Button} from '../util/forms/Button' +import {Text} from '../util/text/Text' +import {ScrollView} from './util' + export const snapPoints = ['50%'] export function Component({text, href}: {text: string; href: string}) { diff --git a/src/view/com/modals/ListAddRemoveUsers.tsx b/src/view/com/modals/ListAddRemoveUsers.tsx index 27c33f806c..eae746d2bf 100644 --- a/src/view/com/modals/ListAddRemoveUsers.tsx +++ b/src/view/com/modals/ListAddRemoveUsers.tsx @@ -1,3 +1,15 @@ +import {AppBskyActorDefs, AppBskyGraphDefs} from '@atproto/api' +import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {useIsKeyboardVisible} from 'lib/hooks/useIsKeyboardVisible' +import {usePalette} from 'lib/hooks/usePalette' +import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' +import {sanitizeDisplayName} from 'lib/strings/display-names' +import {cleanError} from 'lib/strings/errors' +import {sanitizeHandle} from 'lib/strings/handles' +import {colors, s} from 'lib/styles' +import {isWeb} from 'platform/detection' import React, {useCallback, useState} from 'react' import { ActivityIndicator, @@ -6,33 +18,23 @@ import { StyleSheet, View, } from 'react-native' -import {AppBskyActorDefs, AppBskyGraphDefs} from '@atproto/api' -import {ScrollView, TextInput} from './util' -import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' -import {Text} from '../util/text/Text' -import {Button} from '../util/forms/Button' -import {UserAvatar} from '../util/UserAvatar' -import * as Toast from '../util/Toast' -import {s, colors} from 'lib/styles' -import {usePalette} from 'lib/hooks/usePalette' -import {isWeb} from 'platform/detection' -import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {useIsKeyboardVisible} from 'lib/hooks/useIsKeyboardVisible' -import {cleanError} from 'lib/strings/errors' -import {sanitizeDisplayName} from 'lib/strings/display-names' -import {sanitizeHandle} from 'lib/strings/handles' + import {HITSLOP_20} from '#/lib/constants' -import {Trans, msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' import {useModalControls} from '#/state/modals' +import {useActorAutocompleteQuery} from '#/state/queries/actor-autocomplete' import { - useDangerousListMembershipsQuery, getMembership, ListMembersip, + useDangerousListMembershipsQuery, useListMembershipAddMutation, useListMembershipRemoveMutation, } from '#/state/queries/list-memberships' -import {useActorAutocompleteQuery} from '#/state/queries/actor-autocomplete' + +import {Button} from '../util/forms/Button' +import {Text} from '../util/text/Text' +import * as Toast from '../util/Toast' +import {UserAvatar} from '../util/UserAvatar' +import {ScrollView, TextInput} from './util' export const snapPoints = ['90%'] diff --git a/src/view/com/modals/Modal.tsx b/src/view/com/modals/Modal.tsx index 100444ff58..fb0ea471d7 100644 --- a/src/view/com/modals/Modal.tsx +++ b/src/view/com/modals/Modal.tsx @@ -1,39 +1,40 @@ -import React, {useRef, useEffect} from 'react' -import {StyleSheet} from 'react-native' -import {SafeAreaView} from 'react-native-safe-area-context' import BottomSheet from '@gorhom/bottom-sheet' -import {createCustomBackdrop} from '../util/BottomSheetCustomBackdrop' import {usePalette} from 'lib/hooks/usePalette' +import React, {useEffect, useRef} from 'react' +import {StyleSheet} from 'react-native' +import {SafeAreaView} from 'react-native-safe-area-context' -import {useModals, useModalControls} from '#/state/modals' -import * as ConfirmModal from './Confirm' -import * as EditProfileModal from './EditProfile' -import * as RepostModal from './Repost' -import * as SelfLabelModal from './SelfLabel' -import * as ThreadgateModal from './Threadgate' -import * as CreateOrEditListModal from './CreateOrEditList' -import * as UserAddRemoveListsModal from './UserAddRemoveLists' -import * as ListAddUserModal from './ListAddRemoveUsers' +import {useModalControls, useModals} from '#/state/modals' + +import {createCustomBackdrop} from '../util/BottomSheetCustomBackdrop' +import * as AddAppPassword from './AddAppPasswords' import * as AltImageModal from './AltImage' import * as EditImageModal from './AltImage' -import * as ReportModal from './report/Modal' import * as AppealLabelModal from './AppealLabel' -import * as DeleteAccountModal from './DeleteAccount' +import * as BirthDateSettingsModal from './BirthDateSettings' +import * as ChangeEmailModal from './ChangeEmail' import * as ChangeHandleModal from './ChangeHandle' -import * as InviteCodesModal from './InviteCodes' -import * as AddAppPassword from './AddAppPasswords' +import * as ChangePasswordModal from './ChangePassword' +import * as ConfirmModal from './Confirm' import * as ContentFilteringSettingsModal from './ContentFilteringSettings' +import * as CreateOrEditListModal from './CreateOrEditList' +import * as DeleteAccountModal from './DeleteAccount' +import * as EditProfileModal from './EditProfile' +import * as EmbedConsentModal from './EmbedConsent' +import * as InAppBrowserConsentModal from './InAppBrowserConsent' +import * as InviteCodesModal from './InviteCodes' import * as ContentLanguagesSettingsModal from './lang-settings/ContentLanguagesSettings' import * as PostLanguagesSettingsModal from './lang-settings/PostLanguagesSettings' +import * as LinkWarningModal from './LinkWarning' +import * as ListAddUserModal from './ListAddRemoveUsers' import * as ModerationDetailsModal from './ModerationDetails' -import * as BirthDateSettingsModal from './BirthDateSettings' -import * as VerifyEmailModal from './VerifyEmail' -import * as ChangeEmailModal from './ChangeEmail' -import * as ChangePasswordModal from './ChangePassword' +import * as ReportModal from './report/Modal' +import * as RepostModal from './Repost' +import * as SelfLabelModal from './SelfLabel' import * as SwitchAccountModal from './SwitchAccount' -import * as LinkWarningModal from './LinkWarning' -import * as EmbedConsentModal from './EmbedConsent' -import * as InAppBrowserConsentModal from './InAppBrowserConsent' +import * as ThreadgateModal from './Threadgate' +import * as UserAddRemoveListsModal from './UserAddRemoveLists' +import * as VerifyEmailModal from './VerifyEmail' const DEFAULT_SNAPPOINTS = ['90%'] const HANDLE_HEIGHT = 24 diff --git a/src/view/com/modals/Modal.web.tsx b/src/view/com/modals/Modal.web.tsx index 0ced894a17..295942dd67 100644 --- a/src/view/com/modals/Modal.web.tsx +++ b/src/view/com/modals/Modal.web.tsx @@ -1,39 +1,40 @@ -import React from 'react' -import {TouchableWithoutFeedback, StyleSheet, View} from 'react-native' -import Animated, {FadeIn, FadeOut} from 'react-native-reanimated' import {usePalette} from 'lib/hooks/usePalette' import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {useWebBodyScrollLock} from '#/lib/hooks/useWebBodyScrollLock' +import React from 'react' +import {StyleSheet, TouchableWithoutFeedback, View} from 'react-native' +import Animated, {FadeIn, FadeOut} from 'react-native-reanimated' -import {useModals, useModalControls} from '#/state/modals' +import {useWebBodyScrollLock} from '#/lib/hooks/useWebBodyScrollLock' import type {Modal as ModalIface} from '#/state/modals' -import * as ConfirmModal from './Confirm' -import * as EditProfileModal from './EditProfile' -import * as ReportModal from './report/Modal' +import {useModalControls, useModals} from '#/state/modals' + +import * as AddAppPassword from './AddAppPasswords' +import * as AltTextImageModal from './AltImage' import * as AppealLabelModal from './AppealLabel' +import * as BirthDateSettingsModal from './BirthDateSettings' +import * as ChangeEmailModal from './ChangeEmail' +import * as ChangeHandleModal from './ChangeHandle' +import * as ChangePasswordModal from './ChangePassword' +import * as ConfirmModal from './Confirm' +import * as ContentFilteringSettingsModal from './ContentFilteringSettings' import * as CreateOrEditListModal from './CreateOrEditList' -import * as UserAddRemoveLists from './UserAddRemoveLists' -import * as ListAddUserModal from './ListAddRemoveUsers' -import * as DeleteAccountModal from './DeleteAccount' -import * as RepostModal from './Repost' -import * as SelfLabelModal from './SelfLabel' -import * as ThreadgateModal from './Threadgate' import * as CropImageModal from './crop-image/CropImage.web' -import * as AltTextImageModal from './AltImage' +import * as DeleteAccountModal from './DeleteAccount' import * as EditImageModal from './EditImage' -import * as ChangeHandleModal from './ChangeHandle' +import * as EditProfileModal from './EditProfile' +import * as EmbedConsentModal from './EmbedConsent' import * as InviteCodesModal from './InviteCodes' -import * as AddAppPassword from './AddAppPasswords' -import * as ContentFilteringSettingsModal from './ContentFilteringSettings' import * as ContentLanguagesSettingsModal from './lang-settings/ContentLanguagesSettings' import * as PostLanguagesSettingsModal from './lang-settings/PostLanguagesSettings' +import * as LinkWarningModal from './LinkWarning' +import * as ListAddUserModal from './ListAddRemoveUsers' import * as ModerationDetailsModal from './ModerationDetails' -import * as BirthDateSettingsModal from './BirthDateSettings' +import * as ReportModal from './report/Modal' +import * as RepostModal from './Repost' +import * as SelfLabelModal from './SelfLabel' +import * as ThreadgateModal from './Threadgate' +import * as UserAddRemoveLists from './UserAddRemoveLists' import * as VerifyEmailModal from './VerifyEmail' -import * as ChangeEmailModal from './ChangeEmail' -import * as ChangePasswordModal from './ChangePassword' -import * as LinkWarningModal from './LinkWarning' -import * as EmbedConsentModal from './EmbedConsent' export function ModalsContainer() { const {isModalActive, activeModals} = useModals() diff --git a/src/view/com/modals/ModerationDetails.tsx b/src/view/com/modals/ModerationDetails.tsx index f890d50dce..77b7628e6f 100644 --- a/src/view/com/modals/ModerationDetails.tsx +++ b/src/view/com/modals/ModerationDetails.tsx @@ -1,17 +1,19 @@ -import React from 'react' -import {StyleSheet, View} from 'react-native' import {ModerationUI} from '@atproto/api' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {usePalette} from 'lib/hooks/usePalette' import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' +import {listUriToHref} from 'lib/strings/url-helpers' import {s} from 'lib/styles' -import {Text} from '../util/text/Text' -import {TextLink} from '../util/Link' -import {usePalette} from 'lib/hooks/usePalette' import {isWeb} from 'platform/detection' -import {listUriToHref} from 'lib/strings/url-helpers' -import {Button} from '../util/forms/Button' +import React from 'react' +import {StyleSheet, View} from 'react-native' + import {useModalControls} from '#/state/modals' -import {useLingui} from '@lingui/react' -import {Trans, msg} from '@lingui/macro' + +import {Button} from '../util/forms/Button' +import {TextLink} from '../util/Link' +import {Text} from '../util/text/Text' export const snapPoints = [300] diff --git a/src/view/com/modals/Repost.tsx b/src/view/com/modals/Repost.tsx index 6e4881adcd..a052979dd1 100644 --- a/src/view/com/modals/Repost.tsx +++ b/src/view/com/modals/Repost.tsx @@ -1,15 +1,17 @@ +import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {usePalette} from 'lib/hooks/usePalette' +import {RepostIcon} from 'lib/icons' +import {colors, gradients, s} from 'lib/styles' import React from 'react' import {StyleSheet, TouchableOpacity, View} from 'react-native' import LinearGradient from 'react-native-linear-gradient' -import {s, colors, gradients} from 'lib/styles' -import {Text} from '../util/text/Text' -import {usePalette} from 'lib/hooks/usePalette' -import {RepostIcon} from 'lib/icons' -import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' -import {Trans, msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' + import {useModalControls} from '#/state/modals' +import {Text} from '../util/text/Text' + export const snapPoints = [250] export function Component({ diff --git a/src/view/com/modals/SelfLabel.tsx b/src/view/com/modals/SelfLabel.tsx index 779a9e71b3..a79a90d372 100644 --- a/src/view/com/modals/SelfLabel.tsx +++ b/src/view/com/modals/SelfLabel.tsx @@ -1,17 +1,19 @@ -import React, {useState} from 'react' -import {StyleSheet, TouchableOpacity, View} from 'react-native' -import {Text} from '../util/text/Text' -import {s, colors} from 'lib/styles' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' import {usePalette} from 'lib/hooks/usePalette' import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' +import {colors, s} from 'lib/styles' import {isWeb} from 'platform/detection' -import {Button} from '../util/forms/Button' -import {SelectableBtn} from '../util/forms/SelectableBtn' +import React, {useState} from 'react' +import {StyleSheet, TouchableOpacity, View} from 'react-native' import {ScrollView} from 'view/com/modals/util' -import {Trans, msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' + import {useModalControls} from '#/state/modals' +import {Button} from '../util/forms/Button' +import {SelectableBtn} from '../util/forms/SelectableBtn' +import {Text} from '../util/text/Text' + const ADULT_CONTENT_LABELS = ['sexual', 'nudity', 'porn'] export const snapPoints = ['50%'] diff --git a/src/view/com/modals/SwitchAccount.tsx b/src/view/com/modals/SwitchAccount.tsx index c034c4b528..220aba43f4 100644 --- a/src/view/com/modals/SwitchAccount.tsx +++ b/src/view/com/modals/SwitchAccount.tsx @@ -1,3 +1,12 @@ +import {BottomSheetScrollView} from '@gorhom/bottom-sheet' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {useAnalytics} from 'lib/analytics/analytics' +import {Haptics} from 'lib/haptics' +import {useAccountSwitcher} from 'lib/hooks/useAccountSwitcher' +import {usePalette} from 'lib/hooks/usePalette' +import {makeProfileLink} from 'lib/routes/links' +import {s} from 'lib/styles' import React from 'react' import { ActivityIndicator, @@ -5,23 +14,16 @@ import { TouchableOpacity, View, } from 'react-native' -import {Text} from '../util/text/Text' -import {s} from 'lib/styles' -import {usePalette} from 'lib/hooks/usePalette' -import {useAnalytics} from 'lib/analytics/analytics' -import {useAccountSwitcher} from 'lib/hooks/useAccountSwitcher' -import {UserAvatar} from '../util/UserAvatar' -import {AccountDropdownBtn} from '../util/AccountDropdownBtn' -import {Link} from '../util/Link' -import {makeProfileLink} from 'lib/routes/links' -import {BottomSheetScrollView} from '@gorhom/bottom-sheet' -import {Haptics} from 'lib/haptics' -import {Trans, msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {useSession, useSessionApi, SessionAccount} from '#/state/session' + import {useProfileQuery} from '#/state/queries/profile' +import {SessionAccount, useSession, useSessionApi} from '#/state/session' import {useCloseAllActiveElements} from '#/state/util' +import {AccountDropdownBtn} from '../util/AccountDropdownBtn' +import {Link} from '../util/Link' +import {Text} from '../util/text/Text' +import {UserAvatar} from '../util/UserAvatar' + export const snapPoints = ['40%', '90%'] function SwitchAccountCard({account}: {account: SessionAccount}) { diff --git a/src/view/com/modals/Threadgate.tsx b/src/view/com/modals/Threadgate.tsx index 0e49fc2f35..b7661c4287 100644 --- a/src/view/com/modals/Threadgate.tsx +++ b/src/view/com/modals/Threadgate.tsx @@ -1,3 +1,10 @@ +import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {usePalette} from 'lib/hooks/usePalette' +import {colors, s} from 'lib/styles' +import isEqual from 'lodash.isequal' +import {isWeb} from 'platform/detection' import React, {useState} from 'react' import { Pressable, @@ -7,18 +14,13 @@ import { View, ViewStyle, } from 'react-native' -import {Text} from '../util/text/Text' -import {s, colors} from 'lib/styles' -import {usePalette} from 'lib/hooks/usePalette' -import {isWeb} from 'platform/detection' import {ScrollView} from 'view/com/modals/util' -import {Trans, msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' + import {useModalControls} from '#/state/modals' -import {ThreadgateSetting} from '#/state/queries/threadgate' import {useMyListsQuery} from '#/state/queries/my-lists' -import isEqual from 'lodash.isequal' -import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' +import {ThreadgateSetting} from '#/state/queries/threadgate' + +import {Text} from '../util/text/Text' export const snapPoints = ['60%'] diff --git a/src/view/com/modals/UserAddRemoveLists.tsx b/src/view/com/modals/UserAddRemoveLists.tsx index 8452f25133..ff5dfea1d3 100644 --- a/src/view/com/modals/UserAddRemoveLists.tsx +++ b/src/view/com/modals/UserAddRemoveLists.tsx @@ -1,3 +1,11 @@ +import {AppBskyGraphDefs as GraphDefs} from '@atproto/api' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {usePalette} from 'lib/hooks/usePalette' +import {sanitizeDisplayName} from 'lib/strings/display-names' +import {sanitizeHandle} from 'lib/strings/handles' +import {s} from 'lib/styles' +import {isAndroid, isMobileWeb, isWeb} from 'platform/detection' import React, {useCallback} from 'react' import { ActivityIndicator, @@ -5,30 +13,24 @@ import { useWindowDimensions, View, } from 'react-native' -import {AppBskyGraphDefs as GraphDefs} from '@atproto/api' -import {Text} from '../util/text/Text' -import {UserAvatar} from '../util/UserAvatar' -import {MyLists} from '../lists/MyLists' -import {Button} from '../util/forms/Button' -import * as Toast from '../util/Toast' -import {sanitizeDisplayName} from 'lib/strings/display-names' -import {sanitizeHandle} from 'lib/strings/handles' -import {s} from 'lib/styles' -import {usePalette} from 'lib/hooks/usePalette' -import {isWeb, isAndroid, isMobileWeb} from 'platform/detection' -import {Trans, msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' + +import {cleanError} from '#/lib/strings/errors' import {useModalControls} from '#/state/modals' import { - useDangerousListMembershipsQuery, getMembership, ListMembersip, + useDangerousListMembershipsQuery, useListMembershipAddMutation, useListMembershipRemoveMutation, } from '#/state/queries/list-memberships' -import {cleanError} from '#/lib/strings/errors' import {useSession} from '#/state/session' +import {MyLists} from '../lists/MyLists' +import {Button} from '../util/forms/Button' +import {Text} from '../util/text/Text' +import * as Toast from '../util/Toast' +import {UserAvatar} from '../util/UserAvatar' + export const snapPoints = ['fullscreen'] export function Component({ diff --git a/src/view/com/modals/VerifyEmail.tsx b/src/view/com/modals/VerifyEmail.tsx index 30a57afc58..8c8c64ad92 100644 --- a/src/view/com/modals/VerifyEmail.tsx +++ b/src/view/com/modals/VerifyEmail.tsx @@ -1,3 +1,11 @@ +import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {usePalette} from 'lib/hooks/usePalette' +import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' +import {cleanError} from 'lib/strings/errors' +import {colors, s} from 'lib/styles' +import {isWeb} from 'platform/detection' import React, {useState} from 'react' import { ActivityIndicator, @@ -6,23 +14,17 @@ import { StyleSheet, View, } from 'react-native' -import {Svg, Circle, Path} from 'react-native-svg' -import {ScrollView, TextInput} from './util' -import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' -import {Text} from '../util/text/Text' -import {Button} from '../util/forms/Button' +import {Circle, Path, Svg} from 'react-native-svg' + +import {logger} from '#/logger' +import {useModalControls} from '#/state/modals' +import {getAgent, useSession, useSessionApi} from '#/state/session' + import {ErrorMessage} from '../util/error/ErrorMessage' +import {Button} from '../util/forms/Button' +import {Text} from '../util/text/Text' import * as Toast from '../util/Toast' -import {s, colors} from 'lib/styles' -import {usePalette} from 'lib/hooks/usePalette' -import {isWeb} from 'platform/detection' -import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {cleanError} from 'lib/strings/errors' -import {Trans, msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {useModalControls} from '#/state/modals' -import {useSession, useSessionApi, getAgent} from '#/state/session' -import {logger} from '#/logger' +import {ScrollView, TextInput} from './util' export const snapPoints = ['90%'] diff --git a/src/view/com/modals/crop-image/CropImage.web.tsx b/src/view/com/modals/crop-image/CropImage.web.tsx index 6f094a1fdf..9c42d9532f 100644 --- a/src/view/com/modals/crop-image/CropImage.web.tsx +++ b/src/view/com/modals/crop-image/CropImage.web.tsx @@ -1,17 +1,18 @@ -import React from 'react' -import {StyleSheet, TouchableOpacity, View} from 'react-native' -import ImageEditor from 'react-avatar-editor' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' import {Slider} from '@miblanchard/react-native-slider' -import LinearGradient from 'react-native-linear-gradient' -import {Text} from 'view/com/util/text/Text' +import {usePalette} from 'lib/hooks/usePalette' +import {RectTallIcon, RectWideIcon, SquareIcon} from 'lib/icons' import {Dimensions} from 'lib/media/types' import {getDataUriSize} from 'lib/media/util' -import {s, gradients} from 'lib/styles' -import {usePalette} from 'lib/hooks/usePalette' -import {SquareIcon, RectWideIcon, RectTallIcon} from 'lib/icons' +import {gradients, s} from 'lib/styles' +import React from 'react' +import ImageEditor from 'react-avatar-editor' +import {StyleSheet, TouchableOpacity, View} from 'react-native' import {Image as RNImage} from 'react-native-image-crop-picker' -import {Trans, msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' +import LinearGradient from 'react-native-linear-gradient' +import {Text} from 'view/com/util/text/Text' + import {useModalControls} from '#/state/modals' enum AspectRatio { diff --git a/src/view/com/modals/lang-settings/ConfirmLanguagesButton.tsx b/src/view/com/modals/lang-settings/ConfirmLanguagesButton.tsx index 91e11a19ca..ce462d072e 100644 --- a/src/view/com/modals/lang-settings/ConfirmLanguagesButton.tsx +++ b/src/view/com/modals/lang-settings/ConfirmLanguagesButton.tsx @@ -1,11 +1,11 @@ -import React from 'react' -import {StyleSheet, Text, View, Pressable} from 'react-native' -import LinearGradient from 'react-native-linear-gradient' -import {s, colors, gradients} from 'lib/styles' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' import {usePalette} from 'lib/hooks/usePalette' import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {Trans, msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' +import {colors, gradients, s} from 'lib/styles' +import React from 'react' +import {Pressable, StyleSheet, Text, View} from 'react-native' +import LinearGradient from 'react-native-linear-gradient' export const ConfirmLanguagesButton = ({ onPress, diff --git a/src/view/com/modals/lang-settings/ContentLanguagesSettings.tsx b/src/view/com/modals/lang-settings/ContentLanguagesSettings.tsx index b8c125b65c..52863b2a8b 100644 --- a/src/view/com/modals/lang-settings/ContentLanguagesSettings.tsx +++ b/src/view/com/modals/lang-settings/ContentLanguagesSettings.tsx @@ -1,20 +1,22 @@ -import React from 'react' -import {StyleSheet, View} from 'react-native' -import {ScrollView} from '../util' -import {Text} from '../../util/text/Text' +import {Trans} from '@lingui/macro' import {usePalette} from 'lib/hooks/usePalette' import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' import {deviceLocales} from 'platform/detection' -import {LANGUAGES, LANGUAGES_MAP_CODE2} from '../../../../locale/languages' -import {LanguageToggle} from './LanguageToggle' -import {ConfirmLanguagesButton} from './ConfirmLanguagesButton' -import {Trans} from '@lingui/macro' +import React from 'react' +import {StyleSheet, View} from 'react-native' + import {useModalControls} from '#/state/modals' import { useLanguagePrefs, useLanguagePrefsApi, } from '#/state/preferences/languages' +import {LANGUAGES, LANGUAGES_MAP_CODE2} from '../../../../locale/languages' +import {Text} from '../../util/text/Text' +import {ScrollView} from '../util' +import {ConfirmLanguagesButton} from './ConfirmLanguagesButton' +import {LanguageToggle} from './LanguageToggle' + export const snapPoints = ['100%'] export function Component({}: {}) { diff --git a/src/view/com/modals/lang-settings/LanguageToggle.tsx b/src/view/com/modals/lang-settings/LanguageToggle.tsx index 45b100f201..3d65137018 100644 --- a/src/view/com/modals/lang-settings/LanguageToggle.tsx +++ b/src/view/com/modals/lang-settings/LanguageToggle.tsx @@ -1,8 +1,9 @@ +import {usePalette} from 'lib/hooks/usePalette' import React from 'react' import {StyleSheet} from 'react-native' -import {usePalette} from 'lib/hooks/usePalette' import {ToggleButton} from 'view/com/util/forms/ToggleButton' -import {useLanguagePrefs, toPostLanguages} from '#/state/preferences/languages' + +import {toPostLanguages, useLanguagePrefs} from '#/state/preferences/languages' export function LanguageToggle({ code2, diff --git a/src/view/com/modals/lang-settings/PostLanguagesSettings.tsx b/src/view/com/modals/lang-settings/PostLanguagesSettings.tsx index 05cfb81156..49a209759b 100644 --- a/src/view/com/modals/lang-settings/PostLanguagesSettings.tsx +++ b/src/view/com/modals/lang-settings/PostLanguagesSettings.tsx @@ -1,21 +1,23 @@ -import React from 'react' -import {StyleSheet, View} from 'react-native' -import {ScrollView} from '../util' -import {Text} from '../../util/text/Text' +import {Trans} from '@lingui/macro' import {usePalette} from 'lib/hooks/usePalette' import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' import {deviceLocales} from 'platform/detection' -import {LANGUAGES, LANGUAGES_MAP_CODE2} from '../../../../locale/languages' -import {ConfirmLanguagesButton} from './ConfirmLanguagesButton' +import React from 'react' +import {StyleSheet, View} from 'react-native' import {ToggleButton} from 'view/com/util/forms/ToggleButton' -import {Trans} from '@lingui/macro' + import {useModalControls} from '#/state/modals' import { + hasPostLanguage, useLanguagePrefs, useLanguagePrefsApi, - hasPostLanguage, } from '#/state/preferences/languages' +import {LANGUAGES, LANGUAGES_MAP_CODE2} from '../../../../locale/languages' +import {Text} from '../../util/text/Text' +import {ScrollView} from '../util' +import {ConfirmLanguagesButton} from './ConfirmLanguagesButton' + export const snapPoints = ['100%'] export function Component() { diff --git a/src/view/com/modals/report/InputIssueDetails.tsx b/src/view/com/modals/report/InputIssueDetails.tsx index 2bc86f75e7..e353da56f3 100644 --- a/src/view/com/modals/report/InputIssueDetails.tsx +++ b/src/view/com/modals/report/InputIssueDetails.tsx @@ -1,15 +1,16 @@ -import React from 'react' -import {View, TouchableOpacity, StyleSheet} from 'react-native' -import {TextInput} from '../util' import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' -import {CharProgress} from '../../composer/char-progress/CharProgress' -import {Text} from '../../util/text/Text' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' import {usePalette} from 'lib/hooks/usePalette' import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' import {s} from 'lib/styles' +import React from 'react' +import {StyleSheet, TouchableOpacity, View} from 'react-native' + +import {CharProgress} from '../../composer/char-progress/CharProgress' +import {Text} from '../../util/text/Text' +import {TextInput} from '../util' import {SendReportButton} from './SendReportButton' -import {Trans, msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' export function InputIssueDetails({ details, diff --git a/src/view/com/modals/report/Modal.tsx b/src/view/com/modals/report/Modal.tsx index abbad9b402..3540b8b029 100644 --- a/src/view/com/modals/report/Modal.tsx +++ b/src/view/com/modals/report/Modal.tsx @@ -1,22 +1,24 @@ -import React, {useState, useMemo} from 'react' -import {Linking, StyleSheet, TouchableOpacity, View} from 'react-native' -import {ScrollView} from 'react-native-gesture-handler' import {AtUri} from '@atproto/api' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {usePalette} from 'lib/hooks/usePalette' import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' +import {cleanError} from 'lib/strings/errors' import {s} from 'lib/styles' +import React, {useMemo, useState} from 'react' +import {Linking, StyleSheet, TouchableOpacity, View} from 'react-native' +import {ScrollView} from 'react-native-gesture-handler' + +import {useModalControls} from '#/state/modals' +import {getAgent} from '#/state/session' + +import {ErrorMessage} from '../../util/error/ErrorMessage' import {Text} from '../../util/text/Text' import * as Toast from '../../util/Toast' -import {ErrorMessage} from '../../util/error/ErrorMessage' -import {cleanError} from 'lib/strings/errors' -import {usePalette} from 'lib/hooks/usePalette' -import {SendReportButton} from './SendReportButton' import {InputIssueDetails} from './InputIssueDetails' import {ReportReasonOptions} from './ReasonOptions' +import {SendReportButton} from './SendReportButton' import {CollectionId} from './types' -import {Trans, msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {useModalControls} from '#/state/modals' -import {getAgent} from '#/state/session' const DMCA_LINK = 'https://bsky.social/about/support/copyright' diff --git a/src/view/com/modals/report/ReasonOptions.tsx b/src/view/com/modals/report/ReasonOptions.tsx index 23b49b6648..3ed7bb79d1 100644 --- a/src/view/com/modals/report/ReasonOptions.tsx +++ b/src/view/com/modals/report/ReasonOptions.tsx @@ -1,10 +1,10 @@ -import {View} from 'react-native' -import React, {useMemo} from 'react' import {AtUri, ComAtprotoModerationDefs} from '@atproto/api' +import {usePalette, UsePaletteValue} from 'lib/hooks/usePalette' +import React, {useMemo} from 'react' +import {View} from 'react-native' +import {RadioGroup, RadioGroupItem} from 'view/com/util/forms/RadioGroup' import {Text} from '../../util/text/Text' -import {UsePaletteValue, usePalette} from 'lib/hooks/usePalette' -import {RadioGroup, RadioGroupItem} from 'view/com/util/forms/RadioGroup' import {CollectionId} from './types' type ReasonMap = Record diff --git a/src/view/com/modals/report/SendReportButton.tsx b/src/view/com/modals/report/SendReportButton.tsx index 40c239bffe..eeda20b84c 100644 --- a/src/view/com/modals/report/SendReportButton.tsx +++ b/src/view/com/modals/report/SendReportButton.tsx @@ -1,15 +1,16 @@ +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {colors, gradients, s} from 'lib/styles' import React from 'react' -import LinearGradient from 'react-native-linear-gradient' import { ActivityIndicator, StyleSheet, TouchableOpacity, View, } from 'react-native' +import LinearGradient from 'react-native-linear-gradient' + import {Text} from '../../util/text/Text' -import {s, gradients, colors} from 'lib/styles' -import {Trans, msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' export function SendReportButton({ onPress, diff --git a/src/view/com/notifications/Feed.tsx b/src/view/com/notifications/Feed.tsx index dd439d4755..bfce184368 100644 --- a/src/view/com/notifications/Feed.tsx +++ b/src/view/com/notifications/Feed.tsx @@ -1,21 +1,23 @@ +import {msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {s} from 'lib/styles' import React from 'react' -import {CenteredView} from '../util/Views' import {ActivityIndicator, StyleSheet, View} from 'react-native' -import {FeedItem} from './FeedItem' -import {NotificationFeedLoadingPlaceholder} from '../util/LoadingPlaceholder' -import {ErrorMessage} from '../util/error/ErrorMessage' -import {LoadMoreRetryBtn} from '../util/LoadMoreRetryBtn' -import {EmptyState} from '../util/EmptyState' -import {s} from 'lib/styles' + +import {usePalette} from '#/lib/hooks/usePalette' +import {cleanError} from '#/lib/strings/errors' +import {logger} from '#/logger' import {useNotificationFeedQuery} from '#/state/queries/notifications/feed' import {useUnreadNotificationsApi} from '#/state/queries/notifications/unread' -import {logger} from '#/logger' -import {cleanError} from '#/lib/strings/errors' import {useModerationOpts} from '#/state/queries/preferences' + +import {EmptyState} from '../util/EmptyState' +import {ErrorMessage} from '../util/error/ErrorMessage' import {List, ListRef} from '../util/List' -import {useLingui} from '@lingui/react' -import {msg} from '@lingui/macro' -import {usePalette} from '#/lib/hooks/usePalette' +import {NotificationFeedLoadingPlaceholder} from '../util/LoadingPlaceholder' +import {LoadMoreRetryBtn} from '../util/LoadMoreRetryBtn' +import {CenteredView} from '../util/Views' +import {FeedItem} from './FeedItem' const EMPTY_FEED_ITEM = {_reactKey: '__empty__'} const LOAD_MORE_ERROR_ITEM = {_reactKey: '__load_more_error__'} diff --git a/src/view/com/notifications/FeedItem.tsx b/src/view/com/notifications/FeedItem.tsx index 45166fe3c3..e5b3466b5b 100644 --- a/src/view/com/notifications/FeedItem.tsx +++ b/src/view/com/notifications/FeedItem.tsx @@ -1,19 +1,11 @@ -import React, {memo, useMemo, useState, useEffect} from 'react' -import { - Animated, - TouchableOpacity, - Pressable, - StyleSheet, - View, -} from 'react-native' import { AppBskyEmbedImages, + AppBskyEmbedRecordWithMedia, AppBskyFeedDefs, AppBskyFeedPost, + moderateProfile, ModerationOpts, ProfileModeration, - moderateProfile, - AppBskyEmbedRecordWithMedia, } from '@atproto/api' import {AtUri} from '@atproto/api' import { @@ -21,28 +13,38 @@ import { FontAwesomeIconStyle, Props, } from '@fortawesome/react-native-fontawesome' -import {FeedNotification} from '#/state/queries/notifications/feed' -import {s, colors} from 'lib/styles' -import {niceDate} from 'lib/strings/time' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {useAnimatedValue} from 'lib/hooks/useAnimatedValue' +import {usePalette} from 'lib/hooks/usePalette' +import {HeartIconSolid} from 'lib/icons' +import {makeProfileLink} from 'lib/routes/links' import {sanitizeDisplayName} from 'lib/strings/display-names' import {sanitizeHandle} from 'lib/strings/handles' import {pluralize} from 'lib/strings/helpers' -import {HeartIconSolid} from 'lib/icons' -import {Text} from '../util/text/Text' -import {UserAvatar, PreviewableUserAvatar} from '../util/UserAvatar' -import {UserPreviewLink} from '../util/UserPreviewLink' -import {ImageHorzList} from '../util/images/ImageHorzList' +import {niceDate} from 'lib/strings/time' +import {colors, s} from 'lib/styles' +import {isWeb} from 'platform/detection' +import React, {memo, useEffect, useMemo, useState} from 'react' +import { + Animated, + Pressable, + StyleSheet, + TouchableOpacity, + View, +} from 'react-native' + +import {FeedNotification} from '#/state/queries/notifications/feed' + +import {FeedSourceCard} from '../feeds/FeedSourceCard' import {Post} from '../post/Post' +import {ImageHorzList} from '../util/images/ImageHorzList' import {Link, TextLink} from '../util/Link' -import {usePalette} from 'lib/hooks/usePalette' -import {useAnimatedValue} from 'lib/hooks/useAnimatedValue' import {formatCount} from '../util/numeric/format' -import {makeProfileLink} from 'lib/routes/links' +import {Text} from '../util/text/Text' import {TimeElapsed} from '../util/TimeElapsed' -import {isWeb} from 'platform/detection' -import {Trans, msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {FeedSourceCard} from '../feeds/FeedSourceCard' +import {PreviewableUserAvatar, UserAvatar} from '../util/UserAvatar' +import {UserPreviewLink} from '../util/UserPreviewLink' const MAX_AUTHORS = 5 diff --git a/src/view/com/pager/Pager.tsx b/src/view/com/pager/Pager.tsx index 06ec2e4503..e17e25099b 100644 --- a/src/view/com/pager/Pager.tsx +++ b/src/view/com/pager/Pager.tsx @@ -1,11 +1,11 @@ +import {s} from 'lib/styles' import React, {forwardRef} from 'react' import {Animated, View} from 'react-native' import PagerView, { - PagerViewOnPageSelectedEvent, PagerViewOnPageScrollEvent, + PagerViewOnPageSelectedEvent, PageScrollStateChangedNativeEvent, } from 'react-native-pager-view' -import {s} from 'lib/styles' export type PageSelectedEvent = PagerViewOnPageSelectedEvent const AnimatedPagerView = Animated.createAnimatedComponent(PagerView) diff --git a/src/view/com/pager/Pager.web.tsx b/src/view/com/pager/Pager.web.tsx index 42982ef7f8..2bad144910 100644 --- a/src/view/com/pager/Pager.web.tsx +++ b/src/view/com/pager/Pager.web.tsx @@ -1,7 +1,7 @@ +import {s} from 'lib/styles' import React from 'react' import {flushSync} from 'react-dom' import {View} from 'react-native' -import {s} from 'lib/styles' export interface RenderTabBarFnProps { selectedPage: number diff --git a/src/view/com/pager/PagerWithHeader.tsx b/src/view/com/pager/PagerWithHeader.tsx index aa110682a2..5317a77739 100644 --- a/src/view/com/pager/PagerWithHeader.tsx +++ b/src/view/com/pager/PagerWithHeader.tsx @@ -1,27 +1,29 @@ import * as React from 'react' import { LayoutChangeEvent, + NativeScrollEvent, ScrollView, StyleSheet, View, - NativeScrollEvent, } from 'react-native' import Animated, { - useAnimatedStyle, - useSharedValue, + AnimatedRef, runOnJS, runOnUI, scrollTo, - useAnimatedRef, - AnimatedRef, SharedValue, + useAnimatedRef, + useAnimatedStyle, + useSharedValue, } from 'react-native-reanimated' import {Pager, PagerRef, RenderTabBarFnProps} from 'view/com/pager/Pager' -import {TabBar} from './TabBar' + import {useNonReactiveCallback} from '#/lib/hooks/useNonReactiveCallback' -import {ListMethods} from '../util/List' import {ScrollProvider} from '#/lib/ScrollContext' +import {ListMethods} from '../util/List' +import {TabBar} from './TabBar' + export interface PagerWithHeaderChildParams { headerHeight: number isFocused: boolean diff --git a/src/view/com/pager/PagerWithHeader.web.tsx b/src/view/com/pager/PagerWithHeader.web.tsx index 9c63c149fe..4c95aa8780 100644 --- a/src/view/com/pager/PagerWithHeader.web.tsx +++ b/src/view/com/pager/PagerWithHeader.web.tsx @@ -2,10 +2,12 @@ import * as React from 'react' import {FlatList, ScrollView, StyleSheet, View} from 'react-native' import {useAnimatedRef} from 'react-native-reanimated' import {Pager, PagerRef, RenderTabBarFnProps} from 'view/com/pager/Pager' -import {TabBar} from './TabBar' + import {usePalette} from '#/lib/hooks/usePalette' import {useWebMediaQueries} from '#/lib/hooks/useWebMediaQueries' + import {ListMethods} from '../util/List' +import {TabBar} from './TabBar' export interface PagerWithHeaderChildParams { headerHeight: number diff --git a/src/view/com/pager/TabBar.tsx b/src/view/com/pager/TabBar.tsx index ff8acd60cc..db05237c54 100644 --- a/src/view/com/pager/TabBar.tsx +++ b/src/view/com/pager/TabBar.tsx @@ -1,12 +1,14 @@ -import React, {useRef, useMemo, useEffect, useState, useCallback} from 'react' -import {StyleSheet, View, ScrollView, LayoutChangeEvent} from 'react-native' -import {Text} from '../util/text/Text' -import {PressableWithHover} from '../util/PressableWithHover' import {usePalette} from 'lib/hooks/usePalette' import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {DraggableScrollView} from './DraggableScrollView' +import React, {useCallback, useEffect, useMemo, useRef, useState} from 'react' +import {LayoutChangeEvent, ScrollView, StyleSheet, View} from 'react-native' + import {isNative} from '#/platform/detection' +import {PressableWithHover} from '../util/PressableWithHover' +import {Text} from '../util/text/Text' +import {DraggableScrollView} from './DraggableScrollView' + export interface TabBarProps { testID?: string selectedPage: number diff --git a/src/view/com/post-thread/PostLikedBy.tsx b/src/view/com/post-thread/PostLikedBy.tsx index 55463dc137..67ed3b3f53 100644 --- a/src/view/com/post-thread/PostLikedBy.tsx +++ b/src/view/com/post-thread/PostLikedBy.tsx @@ -1,15 +1,17 @@ +import {AppBskyFeedGetLikes as GetLikes} from '@atproto/api' import React, {useCallback, useMemo, useState} from 'react' import {ActivityIndicator, StyleSheet, View} from 'react-native' -import {AppBskyFeedGetLikes as GetLikes} from '@atproto/api' -import {CenteredView} from '../util/Views' -import {List} from '../util/List' -import {ErrorMessage} from '../util/error/ErrorMessage' -import {ProfileCardWithFollowBtn} from '../profile/ProfileCard' + +import {cleanError} from '#/lib/strings/errors' import {logger} from '#/logger' -import {LoadingScreen} from '../util/LoadingScreen' -import {useResolveUriQuery} from '#/state/queries/resolve-uri' import {usePostLikedByQuery} from '#/state/queries/post-liked-by' -import {cleanError} from '#/lib/strings/errors' +import {useResolveUriQuery} from '#/state/queries/resolve-uri' + +import {ProfileCardWithFollowBtn} from '../profile/ProfileCard' +import {ErrorMessage} from '../util/error/ErrorMessage' +import {List} from '../util/List' +import {LoadingScreen} from '../util/LoadingScreen' +import {CenteredView} from '../util/Views' export function PostLikedBy({uri}: {uri: string}) { const [isPTRing, setIsPTRing] = useState(false) diff --git a/src/view/com/post-thread/PostRepostedBy.tsx b/src/view/com/post-thread/PostRepostedBy.tsx index 31a0be832d..82c969235e 100644 --- a/src/view/com/post-thread/PostRepostedBy.tsx +++ b/src/view/com/post-thread/PostRepostedBy.tsx @@ -1,15 +1,17 @@ -import React, {useMemo, useCallback, useState} from 'react' -import {ActivityIndicator, StyleSheet, View} from 'react-native' import {AppBskyActorDefs as ActorDefs} from '@atproto/api' -import {CenteredView} from '../util/Views' -import {List} from '../util/List' +import React, {useCallback, useMemo, useState} from 'react' +import {ActivityIndicator, StyleSheet, View} from 'react-native' + +import {cleanError} from '#/lib/strings/errors' +import {logger} from '#/logger' +import {usePostRepostedByQuery} from '#/state/queries/post-reposted-by' +import {useResolveUriQuery} from '#/state/queries/resolve-uri' + import {ProfileCardWithFollowBtn} from '../profile/ProfileCard' import {ErrorMessage} from '../util/error/ErrorMessage' -import {logger} from '#/logger' +import {List} from '../util/List' import {LoadingScreen} from '../util/LoadingScreen' -import {useResolveUriQuery} from '#/state/queries/resolve-uri' -import {usePostRepostedByQuery} from '#/state/queries/post-reposted-by' -import {cleanError} from '#/lib/strings/errors' +import {CenteredView} from '../util/Views' export function PostRepostedBy({uri}: {uri: string}) { const [isPTRing, setIsPTRing] = useState(false) diff --git a/src/view/com/post-thread/PostThread.tsx b/src/view/com/post-thread/PostThread.tsx index a7ee42a948..f022bdeacd 100644 --- a/src/view/com/post-thread/PostThread.tsx +++ b/src/view/com/post-thread/PostThread.tsx @@ -1,3 +1,17 @@ +import {AppBskyFeedDefs} from '@atproto/api' +import { + FontAwesomeIcon, + FontAwesomeIconStyle, +} from '@fortawesome/react-native-fontawesome' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {useNavigation} from '@react-navigation/native' +import {usePalette} from 'lib/hooks/usePalette' +import {useSetTitle} from 'lib/hooks/useSetTitle' +import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' +import {NavigationProp} from 'lib/routes/types' +import {sanitizeDisplayName} from 'lib/strings/display-names' +import {s} from 'lib/styles' import React, {useEffect, useRef} from 'react' import { ActivityIndicator, @@ -6,45 +20,33 @@ import { TouchableOpacity, View, } from 'react-native' -import {AppBskyFeedDefs} from '@atproto/api' -import {CenteredView} from '../util/Views' -import {LoadingScreen} from '../util/LoadingScreen' -import {List, ListMethods} from '../util/List' -import { - FontAwesomeIcon, - FontAwesomeIconStyle, -} from '@fortawesome/react-native-fontawesome' -import {PostThreadItem} from './PostThreadItem' -import {ComposePrompt} from '../composer/Prompt' -import {ViewHeader} from '../util/ViewHeader' -import {ErrorMessage} from '../util/error/ErrorMessage' -import {Text} from '../util/text/Text' -import {s} from 'lib/styles' -import {usePalette} from 'lib/hooks/usePalette' -import {useSetTitle} from 'lib/hooks/useSetTitle' + +import {moderatePost_wrapped as moderatePost} from '#/lib/moderatePost_wrapped' +import {cleanError} from '#/lib/strings/errors' +import {isAndroid, isNative, isWeb} from '#/platform/detection' import { + sortThread, + ThreadBlocked, ThreadNode, - ThreadPost, ThreadNotFound, - ThreadBlocked, + ThreadPost, usePostThreadQuery, - sortThread, } from '#/state/queries/post-thread' -import {useNavigation} from '@react-navigation/native' -import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {NavigationProp} from 'lib/routes/types' -import {sanitizeDisplayName} from 'lib/strings/display-names' -import {cleanError} from '#/lib/strings/errors' -import {Trans, msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' import { - UsePreferencesQueryResponse, useModerationOpts, usePreferencesQuery, + UsePreferencesQueryResponse, } from '#/state/queries/preferences' import {useSession} from '#/state/session' -import {isAndroid, isNative, isWeb} from '#/platform/detection' -import {moderatePost_wrapped as moderatePost} from '#/lib/moderatePost_wrapped' + +import {ComposePrompt} from '../composer/Prompt' +import {ErrorMessage} from '../util/error/ErrorMessage' +import {List, ListMethods} from '../util/List' +import {LoadingScreen} from '../util/LoadingScreen' +import {Text} from '../util/text/Text' +import {ViewHeader} from '../util/ViewHeader' +import {CenteredView} from '../util/Views' +import {PostThreadItem} from './PostThreadItem' // FlatList maintainVisibleContentPosition breaks if too many items // are prepended. This seems to be an optimal number based on *shrug*. diff --git a/src/view/com/post-thread/PostThreadFollowBtn.tsx b/src/view/com/post-thread/PostThreadFollowBtn.tsx index e5b747cc9a..63e2888fd5 100644 --- a/src/view/com/post-thread/PostThreadFollowBtn.tsx +++ b/src/view/com/post-thread/PostThreadFollowBtn.tsx @@ -1,24 +1,24 @@ -import React from 'react' -import {StyleSheet, TouchableOpacity, View} from 'react-native' -import {useNavigation} from '@react-navigation/native' import {AppBskyActorDefs} from '@atproto/api' +import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' -import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' - -import {logger} from '#/logger' -import {Text} from 'view/com/util/text/Text' -import * as Toast from 'view/com/util/Toast' -import {s} from 'lib/styles' +import {useNavigation} from '@react-navigation/native' +import {track} from 'lib/analytics/analytics' import {usePalette} from 'lib/hooks/usePalette' import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' +import {s} from 'lib/styles' +import React from 'react' +import {StyleSheet, TouchableOpacity, View} from 'react-native' import {Shadow, useProfileShadow} from 'state/cache/profile-shadow' -import {track} from 'lib/analytics/analytics' import { useProfileFollowMutationQueue, useProfileQuery, } from 'state/queries/profile' import {useRequireAuth} from 'state/session' +import {Text} from 'view/com/util/text/Text' +import * as Toast from 'view/com/util/Toast' + +import {logger} from '#/logger' export function PostThreadFollowBtn({did}: {did: string}) { const {data: profile, isLoading} = useProfileQuery({did}) diff --git a/src/view/com/post-thread/PostThreadItem.tsx b/src/view/com/post-thread/PostThreadItem.tsx index 9522ea6a07..54c47adaee 100644 --- a/src/view/com/post-thread/PostThreadItem.tsx +++ b/src/view/com/post-thread/PostThreadItem.tsx @@ -1,50 +1,52 @@ -import React, {memo, useMemo} from 'react' -import {StyleSheet, View} from 'react-native' import { - AtUri, AppBskyFeedDefs, AppBskyFeedPost, - RichText as RichTextAPI, + AtUri, PostModeration, + RichText as RichTextAPI, } from '@atproto/api' -import {moderatePost_wrapped as moderatePost} from '#/lib/moderatePost_wrapped' import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' -import {PostThreadFollowBtn} from 'view/com/post-thread/PostThreadFollowBtn' -import {Link, TextLink} from '../util/Link' -import {RichText} from '#/components/RichText' -import {Text} from '../util/text/Text' -import {PreviewableUserAvatar} from '../util/UserAvatar' -import {s} from 'lib/styles' -import {niceDate} from 'lib/strings/time' -import {sanitizeDisplayName} from 'lib/strings/display-names' -import {sanitizeHandle} from 'lib/strings/handles' -import {countLines, pluralize} from 'lib/strings/helpers' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {MAX_POST_LINES} from 'lib/constants' import {isEmbedByEmbedder} from 'lib/embeds' -import {getTranslatorLink, isPostInLanguage} from '../../../locale/helpers' -import {PostMeta} from '../util/PostMeta' -import {PostEmbeds} from '../util/post-embeds' -import {PostCtrls} from '../util/post-ctrls/PostCtrls' -import {PostHider} from '../util/moderation/PostHider' -import {ContentHider} from '../util/moderation/ContentHider' -import {PostAlerts} from '../util/moderation/PostAlerts' -import {ErrorMessage} from '../util/error/ErrorMessage' import {usePalette} from 'lib/hooks/usePalette' -import {formatCount} from '../util/numeric/format' -import {makeProfileLink} from 'lib/routes/links' import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {MAX_POST_LINES} from 'lib/constants' -import {Trans, msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' +import {makeProfileLink} from 'lib/routes/links' +import {sanitizeDisplayName} from 'lib/strings/display-names' +import {sanitizeHandle} from 'lib/strings/handles' +import {countLines, pluralize} from 'lib/strings/helpers' +import {niceDate} from 'lib/strings/time' +import {s} from 'lib/styles' +import React, {memo, useMemo} from 'react' +import {StyleSheet, View} from 'react-native' +import {useSession} from 'state/session' +import {PostThreadFollowBtn} from 'view/com/post-thread/PostThreadFollowBtn' + +import {atoms as a} from '#/alf' +import {RichText} from '#/components/RichText' +import {moderatePost_wrapped as moderatePost} from '#/lib/moderatePost_wrapped' +import {POST_TOMBSTONE, Shadow, usePostShadow} from '#/state/cache/post-shadow' import {useLanguagePrefs} from '#/state/preferences' -import {useComposerControls} from '#/state/shell/composer' -import {useModerationOpts} from '#/state/queries/preferences' import {useOpenLink} from '#/state/preferences/in-app-browser' -import {Shadow, usePostShadow, POST_TOMBSTONE} from '#/state/cache/post-shadow' import {ThreadPost} from '#/state/queries/post-thread' -import {useSession} from 'state/session' +import {useModerationOpts} from '#/state/queries/preferences' +import {useComposerControls} from '#/state/shell/composer' + +import {getTranslatorLink, isPostInLanguage} from '../../../locale/helpers' import {WhoCanReply} from '../threadgate/WhoCanReply' +import {ErrorMessage} from '../util/error/ErrorMessage' +import {Link, TextLink} from '../util/Link' import {LoadingPlaceholder} from '../util/LoadingPlaceholder' -import {atoms as a} from '#/alf' +import {ContentHider} from '../util/moderation/ContentHider' +import {PostAlerts} from '../util/moderation/PostAlerts' +import {PostHider} from '../util/moderation/PostHider' +import {formatCount} from '../util/numeric/format' +import {PostCtrls} from '../util/post-ctrls/PostCtrls' +import {PostEmbeds} from '../util/post-embeds' +import {PostMeta} from '../util/PostMeta' +import {Text} from '../util/text/Text' +import {PreviewableUserAvatar} from '../util/UserAvatar' export function PostThreadItem({ post, diff --git a/src/view/com/post/Post.tsx b/src/view/com/post/Post.tsx index 5fa4da84e1..d7f6bb2cbb 100644 --- a/src/view/com/post/Post.tsx +++ b/src/view/com/post/Post.tsx @@ -1,5 +1,3 @@ -import React, {useState, useMemo} from 'react' -import {StyleProp, StyleSheet, View, ViewStyle} from 'react-native' import { AppBskyFeedDefs, AppBskyFeedPost, @@ -7,29 +5,33 @@ import { PostModeration, RichText as RichTextAPI, } from '@atproto/api' -import {moderatePost_wrapped as moderatePost} from '#/lib/moderatePost_wrapped' import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' -import {Link, TextLink} from '../util/Link' -import {UserInfoText} from '../util/UserInfoText' -import {PostMeta} from '../util/PostMeta' -import {PostEmbeds} from '../util/post-embeds' -import {PostCtrls} from '../util/post-ctrls/PostCtrls' -import {ContentHider} from '../util/moderation/ContentHider' -import {PostAlerts} from '../util/moderation/PostAlerts' -import {Text} from '../util/text/Text' -import {RichText} from '#/components/RichText' -import {PreviewableUserAvatar} from '../util/UserAvatar' -import {s, colors} from 'lib/styles' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {MAX_POST_LINES} from 'lib/constants' import {usePalette} from 'lib/hooks/usePalette' import {makeProfileLink} from 'lib/routes/links' -import {MAX_POST_LINES} from 'lib/constants' import {countLines} from 'lib/strings/helpers' +import {colors, s} from 'lib/styles' +import React, {useMemo, useState} from 'react' +import {StyleProp, StyleSheet, View, ViewStyle} from 'react-native' + +import {atoms as a} from '#/alf' +import {RichText} from '#/components/RichText' +import {moderatePost_wrapped as moderatePost} from '#/lib/moderatePost_wrapped' +import {POST_TOMBSTONE, Shadow, usePostShadow} from '#/state/cache/post-shadow' import {useModerationOpts} from '#/state/queries/preferences' import {useComposerControls} from '#/state/shell/composer' -import {Shadow, usePostShadow, POST_TOMBSTONE} from '#/state/cache/post-shadow' -import {Trans, msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {atoms as a} from '#/alf' + +import {Link, TextLink} from '../util/Link' +import {ContentHider} from '../util/moderation/ContentHider' +import {PostAlerts} from '../util/moderation/PostAlerts' +import {PostCtrls} from '../util/post-ctrls/PostCtrls' +import {PostEmbeds} from '../util/post-embeds' +import {PostMeta} from '../util/PostMeta' +import {Text} from '../util/text/Text' +import {PreviewableUserAvatar} from '../util/UserAvatar' +import {UserInfoText} from '../util/UserInfoText' export function Post({ post, diff --git a/src/view/com/posts/CustomFeedEmptyState.tsx b/src/view/com/posts/CustomFeedEmptyState.tsx index 62a10fd197..473968fca4 100644 --- a/src/view/com/posts/CustomFeedEmptyState.tsx +++ b/src/view/com/posts/CustomFeedEmptyState.tsx @@ -1,18 +1,19 @@ -import React from 'react' -import {StyleSheet, View} from 'react-native' -import {useNavigation} from '@react-navigation/native' import { FontAwesomeIcon, FontAwesomeIconStyle, } from '@fortawesome/react-native-fontawesome' -import {Text} from '../util/text/Text' -import {Button} from '../util/forms/Button' +import {Trans} from '@lingui/macro' +import {useNavigation} from '@react-navigation/native' +import {usePalette} from 'lib/hooks/usePalette' import {MagnifyingGlassIcon} from 'lib/icons' import {NavigationProp} from 'lib/routes/types' -import {usePalette} from 'lib/hooks/usePalette' import {s} from 'lib/styles' import {isWeb} from 'platform/detection' -import {Trans} from '@lingui/macro' +import React from 'react' +import {StyleSheet, View} from 'react-native' + +import {Button} from '../util/forms/Button' +import {Text} from '../util/text/Text' export function CustomFeedEmptyState() { const pal = usePalette('default') diff --git a/src/view/com/posts/DiscoverFallbackHeader.tsx b/src/view/com/posts/DiscoverFallbackHeader.tsx index ffde899979..cb6dcc021f 100644 --- a/src/view/com/posts/DiscoverFallbackHeader.tsx +++ b/src/view/com/posts/DiscoverFallbackHeader.tsx @@ -1,11 +1,13 @@ +import {Trans} from '@lingui/macro' import React from 'react' import {View} from 'react-native' -import {Trans} from '@lingui/macro' -import {Text} from '../util/text/Text' + import {usePalette} from '#/lib/hooks/usePalette' -import {TextLink} from '../util/Link' import {InfoCircleIcon} from '#/lib/icons' +import {TextLink} from '../util/Link' +import {Text} from '../util/text/Text' + export function DiscoverFallbackHeader() { const pal = usePalette('default') return ( diff --git a/src/view/com/posts/Feed.tsx b/src/view/com/posts/Feed.tsx index cd3e98785d..65f5437cb8 100644 --- a/src/view/com/posts/Feed.tsx +++ b/src/view/com/posts/Feed.tsx @@ -1,3 +1,9 @@ +import {msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {useQueryClient} from '@tanstack/react-query' +import {useAnalytics} from 'lib/analytics/analytics' +import {useInitialNumToRender} from 'lib/hooks/useInitialNumToRender' +import {useTheme} from 'lib/ThemeContext' import React, {memo} from 'react' import { ActivityIndicator, @@ -8,31 +14,27 @@ import { View, ViewStyle, } from 'react-native' -import {useQueryClient} from '@tanstack/react-query' -import {List, ListRef} from '../util/List' -import {PostFeedLoadingPlaceholder} from '../util/LoadingPlaceholder' -import {FeedErrorMessage} from './FeedErrorMessage' -import {FeedSlice} from './FeedSlice' -import {LoadMoreRetryBtn} from '../util/LoadMoreRetryBtn' -import {useAnalytics} from 'lib/analytics/analytics' -import {useTheme} from 'lib/ThemeContext' + +import {FALLBACK_MARKER_POST} from '#/lib/api/feed/home' import {logger} from '#/logger' +import {isWeb} from '#/platform/detection' +import {listenPostCreated} from '#/state/events' +import {STALE} from '#/state/queries' import { - RQKEY, FeedDescriptor, FeedParams, - usePostFeedQuery, pollLatest, + RQKEY, + usePostFeedQuery, } from '#/state/queries/post-feed' -import {isWeb} from '#/platform/detection' -import {listenPostCreated} from '#/state/events' import {useSession} from '#/state/session' -import {STALE} from '#/state/queries' -import {msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' + +import {List, ListRef} from '../util/List' +import {PostFeedLoadingPlaceholder} from '../util/LoadingPlaceholder' +import {LoadMoreRetryBtn} from '../util/LoadMoreRetryBtn' import {DiscoverFallbackHeader} from './DiscoverFallbackHeader' -import {FALLBACK_MARKER_POST} from '#/lib/api/feed/home' -import {useInitialNumToRender} from 'lib/hooks/useInitialNumToRender' +import {FeedErrorMessage} from './FeedErrorMessage' +import {FeedSlice} from './FeedSlice' const LOADING_ITEM = {_reactKey: '__loading__'} const EMPTY_FEED_ITEM = {_reactKey: '__empty__'} diff --git a/src/view/com/posts/FeedErrorMessage.tsx b/src/view/com/posts/FeedErrorMessage.tsx index 6d99c32f18..54381081d1 100644 --- a/src/view/com/posts/FeedErrorMessage.tsx +++ b/src/view/com/posts/FeedErrorMessage.tsx @@ -1,22 +1,24 @@ -import React from 'react' -import {View} from 'react-native' import {AppBskyFeedGetAuthorFeed, AtUri} from '@atproto/api' -import {Text} from '../util/text/Text' -import {Button} from '../util/forms/Button' -import * as Toast from '../util/Toast' -import {ErrorMessage} from '../util/error/ErrorMessage' -import {usePalette} from 'lib/hooks/usePalette' +import {msg as msgLingui, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' import {useNavigation} from '@react-navigation/native' +import {usePalette} from 'lib/hooks/usePalette' import {NavigationProp} from 'lib/routes/types' +import React from 'react' +import {View} from 'react-native' + +import {cleanError} from '#/lib/strings/errors' import {logger} from '#/logger' import {useModalControls} from '#/state/modals' -import {msg as msgLingui, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' import {FeedDescriptor} from '#/state/queries/post-feed' -import {EmptyState} from '../util/EmptyState' -import {cleanError} from '#/lib/strings/errors' import {useRemoveFeedMutation} from '#/state/queries/preferences' +import {EmptyState} from '../util/EmptyState' +import {ErrorMessage} from '../util/error/ErrorMessage' +import {Button} from '../util/forms/Button' +import {Text} from '../util/text/Text' +import * as Toast from '../util/Toast' + export enum KnownError { Block = 'Block', FeedgenDoesNotExist = 'FeedgenDoesNotExist', diff --git a/src/view/com/posts/FeedItem.tsx b/src/view/com/posts/FeedItem.tsx index 7d29703e2d..078465961b 100644 --- a/src/view/com/posts/FeedItem.tsx +++ b/src/view/com/posts/FeedItem.tsx @@ -1,5 +1,3 @@ -import React, {memo, useMemo, useState} from 'react' -import {StyleSheet, View} from 'react-native' import { AppBskyFeedDefs, AppBskyFeedPost, @@ -11,32 +9,36 @@ import { FontAwesomeIcon, FontAwesomeIconStyle, } from '@fortawesome/react-native-fontawesome' -import {ReasonFeedSource, isReasonFeedSource} from 'lib/api/feed/types' -import {Link, TextLinkOnWebOnly, TextLink} from '../util/Link' -import {Text} from '../util/text/Text' -import {UserInfoText} from '../util/UserInfoText' -import {PostMeta} from '../util/PostMeta' -import {PostCtrls} from '../util/post-ctrls/PostCtrls' -import {PostEmbeds} from '../util/post-embeds' -import {ContentHider} from '../util/moderation/ContentHider' -import {PostAlerts} from '../util/moderation/PostAlerts' -import {RichText} from '#/components/RichText' -import {PreviewableUserAvatar} from '../util/UserAvatar' -import {s} from 'lib/styles' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {isReasonFeedSource, ReasonFeedSource} from 'lib/api/feed/types' +import {MAX_POST_LINES} from 'lib/constants' +import {isEmbedByEmbedder} from 'lib/embeds' import {usePalette} from 'lib/hooks/usePalette' +import {makeProfileLink} from 'lib/routes/links' import {sanitizeDisplayName} from 'lib/strings/display-names' import {sanitizeHandle} from 'lib/strings/handles' -import {makeProfileLink} from 'lib/routes/links' -import {isEmbedByEmbedder} from 'lib/embeds' -import {MAX_POST_LINES} from 'lib/constants' import {countLines} from 'lib/strings/helpers' +import {s} from 'lib/styles' +import React, {memo, useMemo, useState} from 'react' +import {StyleSheet, View} from 'react-native' + +import {atoms as a} from '#/alf' +import {RichText} from '#/components/RichText' +import {POST_TOMBSTONE, Shadow, usePostShadow} from '#/state/cache/post-shadow' +import {useSession} from '#/state/session' import {useComposerControls} from '#/state/shell/composer' -import {Shadow, usePostShadow, POST_TOMBSTONE} from '#/state/cache/post-shadow' + import {FeedNameText} from '../util/FeedInfoText' -import {useSession} from '#/state/session' -import {Trans, msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {atoms as a} from '#/alf' +import {Link, TextLink, TextLinkOnWebOnly} from '../util/Link' +import {ContentHider} from '../util/moderation/ContentHider' +import {PostAlerts} from '../util/moderation/PostAlerts' +import {PostCtrls} from '../util/post-ctrls/PostCtrls' +import {PostEmbeds} from '../util/post-embeds' +import {PostMeta} from '../util/PostMeta' +import {Text} from '../util/text/Text' +import {PreviewableUserAvatar} from '../util/UserAvatar' +import {UserInfoText} from '../util/UserInfoText' export function FeedItem({ post, diff --git a/src/view/com/posts/FeedSlice.tsx b/src/view/com/posts/FeedSlice.tsx index 84edee4a11..b4a6b37e67 100644 --- a/src/view/com/posts/FeedSlice.tsx +++ b/src/view/com/posts/FeedSlice.tsx @@ -1,14 +1,16 @@ +import {AtUri} from '@atproto/api' +import {Trans} from '@lingui/macro' +import {usePalette} from 'lib/hooks/usePalette' +import {makeProfileLink} from 'lib/routes/links' import React, {memo} from 'react' import {StyleSheet, View} from 'react-native' +import Svg, {Circle, Line} from 'react-native-svg' + import {FeedPostSlice} from '#/state/queries/post-feed' -import {AtUri} from '@atproto/api' + import {Link} from '../util/Link' import {Text} from '../util/text/Text' -import Svg, {Circle, Line} from 'react-native-svg' import {FeedItem} from './FeedItem' -import {usePalette} from 'lib/hooks/usePalette' -import {makeProfileLink} from 'lib/routes/links' -import {Trans} from '@lingui/macro' let FeedSlice = ({slice}: {slice: FeedPostSlice}): React.ReactNode => { if (slice.isThread && slice.items.length > 3) { diff --git a/src/view/com/posts/FollowingEmptyState.tsx b/src/view/com/posts/FollowingEmptyState.tsx index ef02039afb..e2991435e8 100644 --- a/src/view/com/posts/FollowingEmptyState.tsx +++ b/src/view/com/posts/FollowingEmptyState.tsx @@ -1,18 +1,19 @@ -import React from 'react' -import {StyleSheet, View} from 'react-native' -import {useNavigation} from '@react-navigation/native' import { FontAwesomeIcon, FontAwesomeIconStyle, } from '@fortawesome/react-native-fontawesome' -import {Text} from '../util/text/Text' -import {Button} from '../util/forms/Button' +import {Trans} from '@lingui/macro' +import {useNavigation} from '@react-navigation/native' +import {usePalette} from 'lib/hooks/usePalette' import {MagnifyingGlassIcon} from 'lib/icons' import {NavigationProp} from 'lib/routes/types' -import {usePalette} from 'lib/hooks/usePalette' import {s} from 'lib/styles' import {isWeb} from 'platform/detection' -import {Trans} from '@lingui/macro' +import React from 'react' +import {StyleSheet, View} from 'react-native' + +import {Button} from '../util/forms/Button' +import {Text} from '../util/text/Text' export function FollowingEmptyState() { const pal = usePalette('default') diff --git a/src/view/com/posts/FollowingEndOfFeed.tsx b/src/view/com/posts/FollowingEndOfFeed.tsx index bea5bedeac..c91d94ce24 100644 --- a/src/view/com/posts/FollowingEndOfFeed.tsx +++ b/src/view/com/posts/FollowingEndOfFeed.tsx @@ -1,17 +1,18 @@ -import React from 'react' -import {StyleSheet, View, Dimensions} from 'react-native' -import {useNavigation} from '@react-navigation/native' import { FontAwesomeIcon, FontAwesomeIconStyle, } from '@fortawesome/react-native-fontawesome' -import {Text} from '../util/text/Text' -import {Button} from '../util/forms/Button' -import {NavigationProp} from 'lib/routes/types' +import {Trans} from '@lingui/macro' +import {useNavigation} from '@react-navigation/native' import {usePalette} from 'lib/hooks/usePalette' +import {NavigationProp} from 'lib/routes/types' import {s} from 'lib/styles' import {isWeb} from 'platform/detection' -import {Trans} from '@lingui/macro' +import React from 'react' +import {Dimensions, StyleSheet, View} from 'react-native' + +import {Button} from '../util/forms/Button' +import {Text} from '../util/text/Text' export function FollowingEndOfFeed() { const pal = usePalette('default') diff --git a/src/view/com/profile/FollowButton.tsx b/src/view/com/profile/FollowButton.tsx index 9cc635b664..d1ef10c36c 100644 --- a/src/view/com/profile/FollowButton.tsx +++ b/src/view/com/profile/FollowButton.tsx @@ -1,12 +1,14 @@ +import {AppBskyActorDefs} from '@atproto/api' +import {msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' import React from 'react' import {StyleProp, TextStyle, View} from 'react-native' -import {AppBskyActorDefs} from '@atproto/api' + +import {Shadow} from '#/state/cache/types' +import {useProfileFollowMutationQueue} from '#/state/queries/profile' + import {Button, ButtonType} from '../util/forms/Button' import * as Toast from '../util/Toast' -import {useProfileFollowMutationQueue} from '#/state/queries/profile' -import {Shadow} from '#/state/cache/types' -import {useLingui} from '@lingui/react' -import {msg} from '@lingui/macro' export function FollowButton({ unfollowedType = 'inverted', diff --git a/src/view/com/profile/ProfileCard.tsx b/src/view/com/profile/ProfileCard.tsx index 266adc51de..2830268d43 100644 --- a/src/view/com/profile/ProfileCard.tsx +++ b/src/view/com/profile/ProfileCard.tsx @@ -1,29 +1,31 @@ -import * as React from 'react' -import {StyleProp, StyleSheet, View, ViewStyle} from 'react-native' import { AppBskyActorDefs, moderateProfile, ProfileModeration, } from '@atproto/api' -import {Link} from '../util/Link' -import {Text} from '../util/text/Text' -import {UserAvatar} from '../util/UserAvatar' -import {s} from 'lib/styles' +import {Trans} from '@lingui/macro' import {usePalette} from 'lib/hooks/usePalette' -import {FollowButton} from './FollowButton' -import {sanitizeDisplayName} from 'lib/strings/display-names' -import {sanitizeHandle} from 'lib/strings/handles' -import {makeProfileLink} from 'lib/routes/links' import { describeModerationCause, - getProfileModerationCauses, getModerationCauseKey, + getProfileModerationCauses, } from 'lib/moderation' +import {makeProfileLink} from 'lib/routes/links' +import {sanitizeDisplayName} from 'lib/strings/display-names' +import {sanitizeHandle} from 'lib/strings/handles' +import {s} from 'lib/styles' +import * as React from 'react' +import {StyleProp, StyleSheet, View, ViewStyle} from 'react-native' + +import {useProfileShadow} from '#/state/cache/profile-shadow' import {Shadow} from '#/state/cache/types' import {useModerationOpts} from '#/state/queries/preferences' -import {useProfileShadow} from '#/state/cache/profile-shadow' import {useSession} from '#/state/session' -import {Trans} from '@lingui/macro' + +import {Link} from '../util/Link' +import {Text} from '../util/text/Text' +import {UserAvatar} from '../util/UserAvatar' +import {FollowButton} from './FollowButton' export function ProfileCard({ testID, diff --git a/src/view/com/profile/ProfileFollowers.tsx b/src/view/com/profile/ProfileFollowers.tsx index 411ae6c176..e48ec96591 100644 --- a/src/view/com/profile/ProfileFollowers.tsx +++ b/src/view/com/profile/ProfileFollowers.tsx @@ -1,15 +1,17 @@ +import {AppBskyActorDefs as ActorDefs} from '@atproto/api' import React from 'react' import {ActivityIndicator, StyleSheet, View} from 'react-native' -import {AppBskyActorDefs as ActorDefs} from '@atproto/api' -import {CenteredView} from '../util/Views' -import {LoadingScreen} from '../util/LoadingScreen' -import {List} from '../util/List' -import {ErrorMessage} from '../util/error/ErrorMessage' -import {ProfileCardWithFollowBtn} from './ProfileCard' + +import {cleanError} from '#/lib/strings/errors' +import {logger} from '#/logger' import {useProfileFollowersQuery} from '#/state/queries/profile-followers' import {useResolveDidQuery} from '#/state/queries/resolve-uri' -import {logger} from '#/logger' -import {cleanError} from '#/lib/strings/errors' + +import {ErrorMessage} from '../util/error/ErrorMessage' +import {List} from '../util/List' +import {LoadingScreen} from '../util/LoadingScreen' +import {CenteredView} from '../util/Views' +import {ProfileCardWithFollowBtn} from './ProfileCard' export function ProfileFollowers({name}: {name: string}) { const [isPTRing, setIsPTRing] = React.useState(false) diff --git a/src/view/com/profile/ProfileFollows.tsx b/src/view/com/profile/ProfileFollows.tsx index bd4af10810..58275cd0ed 100644 --- a/src/view/com/profile/ProfileFollows.tsx +++ b/src/view/com/profile/ProfileFollows.tsx @@ -1,15 +1,17 @@ +import {AppBskyActorDefs as ActorDefs} from '@atproto/api' import React from 'react' import {ActivityIndicator, StyleSheet, View} from 'react-native' -import {AppBskyActorDefs as ActorDefs} from '@atproto/api' -import {CenteredView} from '../util/Views' -import {LoadingScreen} from '../util/LoadingScreen' -import {List} from '../util/List' -import {ErrorMessage} from '../util/error/ErrorMessage' -import {ProfileCardWithFollowBtn} from './ProfileCard' + +import {cleanError} from '#/lib/strings/errors' +import {logger} from '#/logger' import {useProfileFollowsQuery} from '#/state/queries/profile-follows' import {useResolveDidQuery} from '#/state/queries/resolve-uri' -import {logger} from '#/logger' -import {cleanError} from '#/lib/strings/errors' + +import {ErrorMessage} from '../util/error/ErrorMessage' +import {List} from '../util/List' +import {LoadingScreen} from '../util/LoadingScreen' +import {CenteredView} from '../util/Views' +import {ProfileCardWithFollowBtn} from './ProfileCard' export function ProfileFollows({name}: {name: string}) { const [isPTRing, setIsPTRing] = React.useState(false) diff --git a/src/view/com/profile/ProfileHeader.tsx b/src/view/com/profile/ProfileHeader.tsx index a11fe83743..b78c95f789 100644 --- a/src/view/com/profile/ProfileHeader.tsx +++ b/src/view/com/profile/ProfileHeader.tsx @@ -1,57 +1,59 @@ -import React, {memo, useMemo} from 'react' -import { - StyleSheet, - TouchableOpacity, - TouchableWithoutFeedback, - View, -} from 'react-native' -import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' -import {useNavigation} from '@react-navigation/native' import { AppBskyActorDefs, - ModerationOpts, moderateProfile, + ModerationOpts, RichText as RichTextAPI, } from '@atproto/api' -import {Trans, msg} from '@lingui/macro' +import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' +import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' +import {useNavigation} from '@react-navigation/native' +import {useAnalytics} from 'lib/analytics/analytics' +import {BACK_HITSLOP} from 'lib/constants' +import {usePalette} from 'lib/hooks/usePalette' +import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' +import {makeProfileLink} from 'lib/routes/links' import {NavigationProp} from 'lib/routes/types' +import {sanitizeDisplayName} from 'lib/strings/display-names' +import {isInvalidHandle, sanitizeHandle} from 'lib/strings/handles' +import {pluralize} from 'lib/strings/helpers' +import {colors, s} from 'lib/styles' import {isNative} from 'platform/detection' -import {BlurView} from '../util/BlurView' -import * as Toast from '../util/Toast' -import {LoadingPlaceholder} from '../util/LoadingPlaceholder' -import {Text} from '../util/text/Text' -import {ThemedText} from '../util/text/ThemedText' +import React, {memo, useMemo} from 'react' +import { + StyleSheet, + TouchableOpacity, + TouchableWithoutFeedback, + View, +} from 'react-native' +import {useProfileShadow} from 'state/cache/profile-shadow' +import {ProfileMenu} from 'view/com/profile/ProfileMenu' + +import {atoms as a} from '#/alf' import {RichText} from '#/components/RichText' -import {UserAvatar} from '../util/UserAvatar' -import {UserBanner} from '../util/UserBanner' -import {ProfileHeaderAlerts} from '../util/moderation/ProfileHeaderAlerts' -import {formatCount} from '../util/numeric/format' -import {Link} from '../util/Link' -import {ProfileHeaderSuggestedFollows} from './ProfileHeaderSuggestedFollows' +import {logger} from '#/logger' +import {Shadow} from '#/state/cache/types' +import {ProfileImageLightbox, useLightboxControls} from '#/state/lightbox' import {useModalControls} from '#/state/modals' -import {useLightboxControls, ProfileImageLightbox} from '#/state/lightbox' import { useProfileBlockMutationQueue, useProfileFollowMutationQueue, } from '#/state/queries/profile' -import {usePalette} from 'lib/hooks/usePalette' -import {useAnalytics} from 'lib/analytics/analytics' -import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {BACK_HITSLOP} from 'lib/constants' -import {isInvalidHandle, sanitizeHandle} from 'lib/strings/handles' -import {makeProfileLink} from 'lib/routes/links' -import {pluralize} from 'lib/strings/helpers' -import {sanitizeDisplayName} from 'lib/strings/display-names' -import {s, colors} from 'lib/styles' -import {logger} from '#/logger' import {useSession} from '#/state/session' -import {Shadow} from '#/state/cache/types' import {useRequireAuth} from '#/state/session' + +import {BlurView} from '../util/BlurView' +import {Link} from '../util/Link' +import {LoadingPlaceholder} from '../util/LoadingPlaceholder' import {LabelInfo} from '../util/moderation/LabelInfo' -import {useProfileShadow} from 'state/cache/profile-shadow' -import {atoms as a} from '#/alf' -import {ProfileMenu} from 'view/com/profile/ProfileMenu' +import {ProfileHeaderAlerts} from '../util/moderation/ProfileHeaderAlerts' +import {formatCount} from '../util/numeric/format' +import {Text} from '../util/text/Text' +import {ThemedText} from '../util/text/ThemedText' +import * as Toast from '../util/Toast' +import {UserAvatar} from '../util/UserAvatar' +import {UserBanner} from '../util/UserBanner' +import {ProfileHeaderSuggestedFollows} from './ProfileHeaderSuggestedFollows' let ProfileHeaderLoading = (_props: {}): React.ReactNode => { const pal = usePalette('default') diff --git a/src/view/com/profile/ProfileHeaderSuggestedFollows.tsx b/src/view/com/profile/ProfileHeaderSuggestedFollows.tsx index 6edc61fcf8..bc440a68ab 100644 --- a/src/view/com/profile/ProfileHeaderSuggestedFollows.tsx +++ b/src/view/com/profile/ProfileHeaderSuggestedFollows.tsx @@ -1,27 +1,28 @@ -import React from 'react' -import {View, StyleSheet, Pressable, ScrollView} from 'react-native' import {AppBskyActorDefs, moderateProfile} from '@atproto/api' import { FontAwesomeIcon, FontAwesomeIconStyle, } from '@fortawesome/react-native-fontawesome' - -import * as Toast from '../util/Toast' +import {Trans} from '@lingui/macro' +import {useAnalytics} from 'lib/analytics/analytics' import {usePalette} from 'lib/hooks/usePalette' -import {Text} from 'view/com/util/text/Text' -import {UserAvatar} from 'view/com/util/UserAvatar' -import {Button} from 'view/com/util/forms/Button' +import {makeProfileLink} from 'lib/routes/links' import {sanitizeDisplayName} from 'lib/strings/display-names' import {sanitizeHandle} from 'lib/strings/handles' -import {makeProfileLink} from 'lib/routes/links' -import {Link} from 'view/com/util/Link' -import {useAnalytics} from 'lib/analytics/analytics' import {isWeb} from 'platform/detection' -import {useModerationOpts} from '#/state/queries/preferences' -import {useSuggestedFollowsByActorQuery} from '#/state/queries/suggested-follows' +import React from 'react' +import {Pressable, ScrollView, StyleSheet, View} from 'react-native' +import {Button} from 'view/com/util/forms/Button' +import {Link} from 'view/com/util/Link' +import {Text} from 'view/com/util/text/Text' +import {UserAvatar} from 'view/com/util/UserAvatar' + import {useProfileShadow} from '#/state/cache/profile-shadow' +import {useModerationOpts} from '#/state/queries/preferences' import {useProfileFollowMutationQueue} from '#/state/queries/profile' -import {Trans} from '@lingui/macro' +import {useSuggestedFollowsByActorQuery} from '#/state/queries/suggested-follows' + +import * as Toast from '../util/Toast' const OUTER_PADDING = 10 const INNER_PADDING = 14 diff --git a/src/view/com/profile/ProfileMenu.tsx b/src/view/com/profile/ProfileMenu.tsx index d79e1891d8..c427ac9f72 100644 --- a/src/view/com/profile/ProfileMenu.tsx +++ b/src/view/com/profile/ProfileMenu.tsx @@ -1,21 +1,17 @@ -import React, {memo} from 'react' -import {TouchableOpacity} from 'react-native' import {AppBskyActorDefs} from '@atproto/api' +import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' -import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' import {useQueryClient} from '@tanstack/react-query' -import * as Toast from 'view/com/util/Toast' -import {EventStopper} from 'view/com/util/EventStopper' -import {useSession} from 'state/session' -import * as Menu from '#/components/Menu' -import {useTheme} from '#/alf' -import {usePalette} from 'lib/hooks/usePalette' +import {useAnalytics} from 'lib/analytics/analytics' import {HITSLOP_10} from 'lib/constants' +import {usePalette} from 'lib/hooks/usePalette' +import {makeProfileLink} from 'lib/routes/links' import {shareUrl} from 'lib/sharing' import {toShareUrl} from 'lib/strings/url-helpers' -import {makeProfileLink} from 'lib/routes/links' -import {useAnalytics} from 'lib/analytics/analytics' +import React, {memo} from 'react' +import {TouchableOpacity} from 'react-native' +import {Shadow} from 'state/cache/types' import {useModalControls} from 'state/modals' import { RQKEY as profileQueryKey, @@ -23,16 +19,21 @@ import { useProfileFollowMutationQueue, useProfileMuteMutationQueue, } from 'state/queries/profile' +import {useSession} from 'state/session' +import {EventStopper} from 'view/com/util/EventStopper' +import * as Toast from 'view/com/util/Toast' + +import {useTheme} from '#/alf' import {ArrowOutOfBox_Stroke2_Corner0_Rounded as Share} from '#/components/icons/ArrowOutOfBox' +import {Flag_Stroke2_Corner0_Rounded as Flag} from '#/components/icons/Flag' import {ListSparkle_Stroke2_Corner0_Rounded as List} from '#/components/icons/ListSparkle' import {Mute_Stroke2_Corner0_Rounded as Mute} from '#/components/icons/Mute' -import {SpeakerVolumeFull_Stroke2_Corner0_Rounded as Unmute} from '#/components/icons/Speaker' -import {Flag_Stroke2_Corner0_Rounded as Flag} from '#/components/icons/Flag' +import {PeopleRemove2_Stroke2_Corner0_Rounded as UserMinus} from '#/components/icons/PeopleRemove2' import {PersonCheck_Stroke2_Corner0_Rounded as PersonCheck} from '#/components/icons/PersonCheck' import {PersonX_Stroke2_Corner0_Rounded as PersonX} from '#/components/icons/PersonX' -import {PeopleRemove2_Stroke2_Corner0_Rounded as UserMinus} from '#/components/icons/PeopleRemove2' +import {SpeakerVolumeFull_Stroke2_Corner0_Rounded as Unmute} from '#/components/icons/Speaker' +import * as Menu from '#/components/Menu' import {logger} from '#/logger' -import {Shadow} from 'state/cache/types' let ProfileMenu = ({ profile, diff --git a/src/view/com/profile/ProfileSubpageHeader.tsx b/src/view/com/profile/ProfileSubpageHeader.tsx index eaf00f3e66..f2934fa1c3 100644 --- a/src/view/com/profile/ProfileSubpageHeader.tsx +++ b/src/view/com/profile/ProfileSubpageHeader.tsx @@ -1,24 +1,26 @@ -import React from 'react' -import {Pressable, StyleSheet, View} from 'react-native' import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' import {useNavigation} from '@react-navigation/native' +import {BACK_HITSLOP} from 'lib/constants' import {usePalette} from 'lib/hooks/usePalette' import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {Text} from '../util/text/Text' -import {TextLink} from '../util/Link' -import {UserAvatar, UserAvatarType} from '../util/UserAvatar' -import {LoadingPlaceholder} from '../util/LoadingPlaceholder' -import {CenteredView} from '../util/Views' -import {sanitizeHandle} from 'lib/strings/handles' import {makeProfileLink} from 'lib/routes/links' import {NavigationProp} from 'lib/routes/types' -import {BACK_HITSLOP} from 'lib/constants' +import {sanitizeHandle} from 'lib/strings/handles' import {isNative} from 'platform/detection' -import {useLightboxControls, ImagesLightbox} from '#/state/lightbox' -import {useLingui} from '@lingui/react' -import {Trans, msg} from '@lingui/macro' -import {useSetDrawerOpen} from '#/state/shell' +import React from 'react' +import {Pressable, StyleSheet, View} from 'react-native' + import {emitSoftReset} from '#/state/events' +import {ImagesLightbox, useLightboxControls} from '#/state/lightbox' +import {useSetDrawerOpen} from '#/state/shell' + +import {TextLink} from '../util/Link' +import {LoadingPlaceholder} from '../util/LoadingPlaceholder' +import {Text} from '../util/text/Text' +import {UserAvatar, UserAvatarType} from '../util/UserAvatar' +import {CenteredView} from '../util/Views' export function ProfileSubpageHeader({ isLoading, diff --git a/src/view/com/testing/TestCtrls.e2e.tsx b/src/view/com/testing/TestCtrls.e2e.tsx index e1e8994882..77a114b54a 100644 --- a/src/view/com/testing/TestCtrls.e2e.tsx +++ b/src/view/com/testing/TestCtrls.e2e.tsx @@ -1,12 +1,14 @@ +import {useQueryClient} from '@tanstack/react-query' import React from 'react' import {Pressable, View} from 'react-native' -import {navigate} from '../../../Navigation' + import {useModalControls} from '#/state/modals' -import {useQueryClient} from '@tanstack/react-query' -import {useSessionApi} from '#/state/session' import {useSetFeedViewPreferencesMutation} from '#/state/queries/preferences' +import {useSessionApi} from '#/state/session' import {useLoggedOutViewControls} from '#/state/shell/logged-out' +import {navigate} from '../../../Navigation' + /** * This utility component is only included in the test simulator * build. It gives some quick triggers which help improve the pace diff --git a/src/view/com/threadgate/WhoCanReply.tsx b/src/view/com/threadgate/WhoCanReply.tsx index 1c34623d84..bd17a0de32 100644 --- a/src/view/com/threadgate/WhoCanReply.tsx +++ b/src/view/com/threadgate/WhoCanReply.tsx @@ -1,22 +1,23 @@ -import React from 'react' -import {StyleProp, View, ViewStyle} from 'react-native' import { AppBskyFeedDefs, AppBskyFeedThreadgate, AppBskyGraphDefs, AtUri, } from '@atproto/api' -import {Trans} from '@lingui/macro' -import {usePalette} from '#/lib/hooks/usePalette' -import {Text} from '../util/text/Text' -import {TextLink} from '../util/Link' -import {makeProfileLink, makeListLink} from '#/lib/routes/links' import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' +import {Trans} from '@lingui/macro' +import React from 'react' +import {StyleProp, View, ViewStyle} from 'react-native' + import {useColorSchemeStyle} from '#/lib/hooks/useColorSchemeStyle' +import {usePalette} from '#/lib/hooks/usePalette' import {useWebMediaQueries} from '#/lib/hooks/useWebMediaQueries' - +import {makeListLink, makeProfileLink} from '#/lib/routes/links' import {colors} from '#/lib/styles' +import {TextLink} from '../util/Link' +import {Text} from '../util/text/Text' + export function WhoCanReply({ post, style, diff --git a/src/view/com/util/AccountDropdownBtn.tsx b/src/view/com/util/AccountDropdownBtn.tsx index 221879df79..24f64af456 100644 --- a/src/view/com/util/AccountDropdownBtn.tsx +++ b/src/view/com/util/AccountDropdownBtn.tsx @@ -1,16 +1,18 @@ -import React from 'react' -import {Pressable} from 'react-native' import { FontAwesomeIcon, FontAwesomeIconStyle, } from '@fortawesome/react-native-fontawesome' -import {s} from 'lib/styles' +import {msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' import {usePalette} from 'lib/hooks/usePalette' -import {DropdownItem, NativeDropdown} from './forms/NativeDropdown' +import {s} from 'lib/styles' +import React from 'react' +import {Pressable} from 'react-native' + +import {SessionAccount, useSessionApi} from '#/state/session' + import * as Toast from '../../com/util/Toast' -import {useSessionApi, SessionAccount} from '#/state/session' -import {useLingui} from '@lingui/react' -import {msg} from '@lingui/macro' +import {DropdownItem, NativeDropdown} from './forms/NativeDropdown' export function AccountDropdownBtn({account}: {account: SessionAccount}) { const pal = usePalette('default') diff --git a/src/view/com/util/BlurView.android.tsx b/src/view/com/util/BlurView.android.tsx index eee1d9d867..a62e1dff01 100644 --- a/src/view/com/util/BlurView.android.tsx +++ b/src/view/com/util/BlurView.android.tsx @@ -1,6 +1,6 @@ +import {addStyle} from 'lib/styles' import React from 'react' import {StyleSheet, View, ViewProps} from 'react-native' -import {addStyle} from 'lib/styles' type BlurViewProps = ViewProps & { blurType?: 'dark' | 'light' diff --git a/src/view/com/util/BlurView.web.tsx b/src/view/com/util/BlurView.web.tsx index d1fb4665fb..09807816b3 100644 --- a/src/view/com/util/BlurView.web.tsx +++ b/src/view/com/util/BlurView.web.tsx @@ -1,6 +1,6 @@ +import {addStyle} from 'lib/styles' import React from 'react' import {StyleSheet, View, ViewProps} from 'react-native' -import {addStyle} from 'lib/styles' type BlurViewProps = ViewProps & { blurType?: 'dark' | 'light' diff --git a/src/view/com/util/BottomSheetCustomBackdrop.tsx b/src/view/com/util/BottomSheetCustomBackdrop.tsx index ed5a2f1654..7cf9c10da6 100644 --- a/src/view/com/util/BottomSheetCustomBackdrop.tsx +++ b/src/view/com/util/BottomSheetCustomBackdrop.tsx @@ -1,12 +1,12 @@ +import {BottomSheetBackdropProps} from '@gorhom/bottom-sheet' +import {t} from '@lingui/macro' import React, {useMemo} from 'react' import {TouchableWithoutFeedback} from 'react-native' -import {BottomSheetBackdropProps} from '@gorhom/bottom-sheet' import Animated, { Extrapolate, interpolate, useAnimatedStyle, } from 'react-native-reanimated' -import {t} from '@lingui/macro' export function createCustomBackdrop( onClose?: (() => void) | undefined, diff --git a/src/view/com/util/EmptyState.tsx b/src/view/com/util/EmptyState.tsx index 7486b212fa..cc71165b55 100644 --- a/src/view/com/util/EmptyState.tsx +++ b/src/view/com/util/EmptyState.tsx @@ -1,13 +1,14 @@ -import React from 'react' -import {StyleProp, StyleSheet, View, ViewStyle} from 'react-native' import {IconProp} from '@fortawesome/fontawesome-svg-core' import { FontAwesomeIcon, FontAwesomeIconStyle, } from '@fortawesome/react-native-fontawesome' -import {Text} from './text/Text' -import {UserGroupIcon} from 'lib/icons' import {usePalette} from 'lib/hooks/usePalette' +import {UserGroupIcon} from 'lib/icons' +import React from 'react' +import {StyleProp, StyleSheet, View, ViewStyle} from 'react-native' + +import {Text} from './text/Text' export function EmptyState({ testID, diff --git a/src/view/com/util/EmptyStateWithButton.tsx b/src/view/com/util/EmptyStateWithButton.tsx index 008ca2bdb6..1a580ae9aa 100644 --- a/src/view/com/util/EmptyStateWithButton.tsx +++ b/src/view/com/util/EmptyStateWithButton.tsx @@ -1,14 +1,15 @@ -import React from 'react' -import {StyleSheet, View} from 'react-native' +import {IconProp} from '@fortawesome/fontawesome-svg-core' import { FontAwesomeIcon, FontAwesomeIconStyle, } from '@fortawesome/react-native-fontawesome' -import {IconProp} from '@fortawesome/fontawesome-svg-core' -import {Text} from './text/Text' -import {Button} from './forms/Button' import {usePalette} from 'lib/hooks/usePalette' import {s} from 'lib/styles' +import React from 'react' +import {StyleSheet, View} from 'react-native' + +import {Button} from './forms/Button' +import {Text} from './text/Text' interface Props { testID?: string diff --git a/src/view/com/util/ErrorBoundary.tsx b/src/view/com/util/ErrorBoundary.tsx index 5ec1d00144..b287a2469a 100644 --- a/src/view/com/util/ErrorBoundary.tsx +++ b/src/view/com/util/ErrorBoundary.tsx @@ -1,8 +1,10 @@ +import {t} from '@lingui/macro' import React, {Component, ErrorInfo, ReactNode} from 'react' + +import {logger} from '#/logger' + import {ErrorScreen} from './error/ErrorScreen' import {CenteredView} from './Views' -import {t} from '@lingui/macro' -import {logger} from '#/logger' interface Props { children?: ReactNode diff --git a/src/view/com/util/FeedInfoText.tsx b/src/view/com/util/FeedInfoText.tsx index 54124c739a..3afaf256cc 100644 --- a/src/view/com/util/FeedInfoText.tsx +++ b/src/view/com/util/FeedInfoText.tsx @@ -1,10 +1,12 @@ +import {sanitizeDisplayName} from 'lib/strings/display-names' +import {TypographyVariant} from 'lib/ThemeContext' import React from 'react' import {StyleProp, StyleSheet, TextStyle} from 'react-native' + +import {useFeedSourceInfoQuery} from '#/state/queries/feed' + import {TextLinkOnWebOnly} from './Link' import {LoadingPlaceholder} from './LoadingPlaceholder' -import {TypographyVariant} from 'lib/ThemeContext' -import {sanitizeDisplayName} from 'lib/strings/display-names' -import {useFeedSourceInfoQuery} from '#/state/queries/feed' export function FeedNameText({ type = 'md', diff --git a/src/view/com/util/Html.tsx b/src/view/com/util/Html.tsx index 2e47194811..b8d31dfd6a 100644 --- a/src/view/com/util/Html.tsx +++ b/src/view/com/util/Html.tsx @@ -1,16 +1,17 @@ -import * as React from 'react' -import {StyleSheet, View} from 'react-native' -import {usePalette} from 'lib/hooks/usePalette' -import {useTheme} from 'lib/ThemeContext' -import {Text} from './text/Text' -import {TextLink} from './Link' import { H1 as ExpoH1, H2 as ExpoH2, H3 as ExpoH3, H4 as ExpoH4, } from '@expo/html-elements' +import {usePalette} from 'lib/hooks/usePalette' import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' +import {useTheme} from 'lib/ThemeContext' +import * as React from 'react' +import {StyleSheet, View} from 'react-native' + +import {TextLink} from './Link' +import {Text} from './text/Text' /** * These utilities are used to define long documents in an html-like diff --git a/src/view/com/util/Link.tsx b/src/view/com/util/Link.tsx index f456224885..112e061bcc 100644 --- a/src/view/com/util/Link.tsx +++ b/src/view/com/util/Link.tsx @@ -1,36 +1,38 @@ +import {sanitizeUrl} from '@braintree/sanitize-url' +import {StackActions, useLinkProps} from '@react-navigation/native' +import { + DebouncedNavigationProp, + useNavigationDeduped, +} from 'lib/hooks/useNavigationDeduped' +import { + convertBskyAppUrlIfNeeded, + isExternalUrl, + linkRequiresWarning, +} from 'lib/strings/url-helpers' +import {TypographyVariant} from 'lib/ThemeContext' +import {isAndroid, isWeb} from 'platform/detection' import React, {ComponentProps, memo, useMemo} from 'react' import { GestureResponderEvent, Platform, + Pressable, StyleProp, - TextStyle, TextProps, + TextStyle, + TouchableOpacity, + TouchableWithoutFeedback, View, ViewStyle, - Pressable, - TouchableWithoutFeedback, - TouchableOpacity, } from 'react-native' -import {useLinkProps, StackActions} from '@react-navigation/native' -import {Text} from './text/Text' -import {TypographyVariant} from 'lib/ThemeContext' -import {router} from '../../../routes' -import { - convertBskyAppUrlIfNeeded, - isExternalUrl, - linkRequiresWarning, -} from 'lib/strings/url-helpers' -import {isAndroid, isWeb} from 'platform/detection' -import {sanitizeUrl} from '@braintree/sanitize-url' -import {PressableWithHover} from './PressableWithHover' -import FixedTouchableHighlight from '../pager/FixedTouchableHighlight' +import {WebAuxClickWrapper} from 'view/com/util/WebAuxClickWrapper' + import {useModalControls} from '#/state/modals' import {useOpenLink} from '#/state/preferences/in-app-browser' -import {WebAuxClickWrapper} from 'view/com/util/WebAuxClickWrapper' -import { - DebouncedNavigationProp, - useNavigationDeduped, -} from 'lib/hooks/useNavigationDeduped' + +import {router} from '../../../routes' +import FixedTouchableHighlight from '../pager/FixedTouchableHighlight' +import {PressableWithHover} from './PressableWithHover' +import {Text} from './text/Text' type Event = | React.MouseEvent diff --git a/src/view/com/util/List.tsx b/src/view/com/util/List.tsx index d30a9d805b..896608af1f 100644 --- a/src/view/com/util/List.tsx +++ b/src/view/com/util/List.tsx @@ -1,11 +1,13 @@ +import {addStyle} from 'lib/styles' import React, {memo} from 'react' import {FlatListProps, RefreshControl} from 'react-native' -import {FlatList_INTERNAL} from './Views' -import {addStyle} from 'lib/styles' -import {useScrollHandlers} from '#/lib/ScrollContext' import {runOnJS, useSharedValue} from 'react-native-reanimated' + import {useAnimatedScrollHandler} from '#/lib/hooks/useAnimatedScrollHandler_FIXED' import {usePalette} from '#/lib/hooks/usePalette' +import {useScrollHandlers} from '#/lib/ScrollContext' + +import {FlatList_INTERNAL} from './Views' export type ListMethods = FlatList_INTERNAL export type ListProps = Omit< diff --git a/src/view/com/util/List.web.tsx b/src/view/com/util/List.web.tsx index 936bac198d..6fb17b9f68 100644 --- a/src/view/com/util/List.web.tsx +++ b/src/view/com/util/List.web.tsx @@ -1,11 +1,12 @@ -import React, {isValidElement, memo, useRef, startTransition} from 'react' -import {FlatListProps, StyleSheet, View, ViewProps} from 'react-native' -import {addStyle} from 'lib/styles' import {usePalette} from 'lib/hooks/usePalette' import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {useScrollHandlers} from '#/lib/ScrollContext' -import {useNonReactiveCallback} from '#/lib/hooks/useNonReactiveCallback' +import {addStyle} from 'lib/styles' +import React, {isValidElement, memo, startTransition, useRef} from 'react' +import {FlatListProps, StyleSheet, View, ViewProps} from 'react-native' + import {batchedUpdates} from '#/lib/batchedUpdates' +import {useNonReactiveCallback} from '#/lib/hooks/useNonReactiveCallback' +import {useScrollHandlers} from '#/lib/ScrollContext' export type ListMethods = any // TODO: Better types. export type ListProps = Omit< diff --git a/src/view/com/util/LoadMoreRetryBtn.tsx b/src/view/com/util/LoadMoreRetryBtn.tsx index a2e9838b36..fa82456322 100644 --- a/src/view/com/util/LoadMoreRetryBtn.tsx +++ b/src/view/com/util/LoadMoreRetryBtn.tsx @@ -1,12 +1,13 @@ -import React from 'react' -import {StyleSheet} from 'react-native' import { FontAwesomeIcon, FontAwesomeIconStyle, } from '@fortawesome/react-native-fontawesome' +import {usePalette} from 'lib/hooks/usePalette' +import React from 'react' +import {StyleSheet} from 'react-native' + import {Button} from './forms/Button' import {Text} from './text/Text' -import {usePalette} from 'lib/hooks/usePalette' export function LoadMoreRetryBtn({ label, diff --git a/src/view/com/util/LoadingPlaceholder.tsx b/src/view/com/util/LoadingPlaceholder.tsx index 6dfe125985..fb2c226e8e 100644 --- a/src/view/com/util/LoadingPlaceholder.tsx +++ b/src/view/com/util/LoadingPlaceholder.tsx @@ -1,20 +1,20 @@ -import React from 'react' -import { - StyleSheet, - StyleProp, - View, - ViewStyle, - DimensionValue, -} from 'react-native' +import {usePalette} from 'lib/hooks/usePalette' import { + CommentBottomArrow, HeartIcon, HeartIconSolid, - CommentBottomArrow, RepostIcon, } from 'lib/icons' import {s} from 'lib/styles' import {useTheme} from 'lib/ThemeContext' -import {usePalette} from 'lib/hooks/usePalette' +import React from 'react' +import { + DimensionValue, + StyleProp, + StyleSheet, + View, + ViewStyle, +} from 'react-native' export function LoadingPlaceholder({ width, diff --git a/src/view/com/util/LoadingScreen.tsx b/src/view/com/util/LoadingScreen.tsx index 93c3bee42a..0736649316 100644 --- a/src/view/com/util/LoadingScreen.tsx +++ b/src/view/com/util/LoadingScreen.tsx @@ -1,6 +1,7 @@ +import {s} from 'lib/styles' import React from 'react' import {ActivityIndicator, View} from 'react-native' -import {s} from 'lib/styles' + import {CenteredView} from './Views' export function LoadingScreen() { diff --git a/src/view/com/util/MainScrollProvider.tsx b/src/view/com/util/MainScrollProvider.tsx index 01b8a954d5..1ed0631ac4 100644 --- a/src/view/com/util/MainScrollProvider.tsx +++ b/src/view/com/util/MainScrollProvider.tsx @@ -1,11 +1,12 @@ -import React, {useCallback, useEffect} from 'react' import EventEmitter from 'eventemitter3' -import {ScrollProvider} from '#/lib/ScrollContext' +import {isNative, isWeb} from 'platform/detection' +import React, {useCallback, useEffect} from 'react' import {NativeScrollEvent} from 'react-native' -import {useSetMinimalShellMode, useMinimalShellMode} from '#/state/shell' +import {interpolate, useSharedValue} from 'react-native-reanimated' + +import {ScrollProvider} from '#/lib/ScrollContext' +import {useMinimalShellMode, useSetMinimalShellMode} from '#/state/shell' import {useShellLayout} from '#/state/shell/shell-layout' -import {isNative, isWeb} from 'platform/detection' -import {useSharedValue, interpolate} from 'react-native-reanimated' const WEB_HIDE_SHELL_THRESHOLD = 200 diff --git a/src/view/com/util/PostMeta.tsx b/src/view/com/util/PostMeta.tsx index 3795dcf136..5832fc5d86 100644 --- a/src/view/com/util/PostMeta.tsx +++ b/src/view/com/util/PostMeta.tsx @@ -1,19 +1,21 @@ -import React, {memo} from 'react' -import {StyleProp, StyleSheet, TextStyle, View, ViewStyle} from 'react-native' -import {Text} from './text/Text' -import {TextLinkOnWebOnly} from './Link' -import {niceDate} from 'lib/strings/time' +import {ModerationUI} from '@atproto/api' import {usePalette} from 'lib/hooks/usePalette' -import {TypographyVariant} from 'lib/ThemeContext' -import {UserAvatar} from './UserAvatar' +import {makeProfileLink} from 'lib/routes/links' import {sanitizeDisplayName} from 'lib/strings/display-names' import {sanitizeHandle} from 'lib/strings/handles' +import {niceDate} from 'lib/strings/time' +import {TypographyVariant} from 'lib/ThemeContext' import {isAndroid, isWeb} from 'platform/detection' -import {TimeElapsed} from './TimeElapsed' -import {makeProfileLink} from 'lib/routes/links' -import {ModerationUI} from '@atproto/api' +import React, {memo} from 'react' +import {StyleProp, StyleSheet, TextStyle, View, ViewStyle} from 'react-native' + import {usePrefetchProfileQuery} from '#/state/queries/profile' +import {TextLinkOnWebOnly} from './Link' +import {Text} from './text/Text' +import {TimeElapsed} from './TimeElapsed' +import {UserAvatar} from './UserAvatar' + interface PostMetaOpts { author: { avatar?: string diff --git a/src/view/com/util/PressableWithHover.tsx b/src/view/com/util/PressableWithHover.tsx index 77276f1843..83c84f836b 100644 --- a/src/view/com/util/PressableWithHover.tsx +++ b/src/view/com/util/PressableWithHover.tsx @@ -1,12 +1,12 @@ +import {addStyle} from 'lib/styles' import React, { - useState, - useCallback, - PropsWithChildren, forwardRef, + PropsWithChildren, Ref, + useCallback, + useState, } from 'react' import {Pressable, PressableProps, StyleProp, ViewStyle} from 'react-native' -import {addStyle} from 'lib/styles' interface PressableWithHover extends PressableProps { hoverStyle: StyleProp diff --git a/src/view/com/util/Selector.tsx b/src/view/com/util/Selector.tsx index 66e363cd41..b607a018a9 100644 --- a/src/view/com/util/Selector.tsx +++ b/src/view/com/util/Selector.tsx @@ -1,9 +1,10 @@ -import React, {createRef, useState, useMemo, useRef} from 'react' +import {msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {usePalette} from 'lib/hooks/usePalette' +import React, {createRef, useMemo, useRef, useState} from 'react' import {Animated, Pressable, StyleSheet, View} from 'react-native' + import {Text} from './text/Text' -import {usePalette} from 'lib/hooks/usePalette' -import {useLingui} from '@lingui/react' -import {msg} from '@lingui/macro' interface Layout { x: number diff --git a/src/view/com/util/SimpleViewHeader.tsx b/src/view/com/util/SimpleViewHeader.tsx index 814b2fb15d..3319f7a943 100644 --- a/src/view/com/util/SimpleViewHeader.tsx +++ b/src/view/com/util/SimpleViewHeader.tsx @@ -1,3 +1,9 @@ +import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' +import {useNavigation} from '@react-navigation/native' +import {useAnalytics} from 'lib/analytics/analytics' +import {usePalette} from 'lib/hooks/usePalette' +import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' +import {NavigationProp} from 'lib/routes/types' import React from 'react' import { StyleProp, @@ -6,15 +12,11 @@ import { View, ViewStyle, } from 'react-native' -import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' -import {useNavigation} from '@react-navigation/native' -import {CenteredView} from './Views' -import {usePalette} from 'lib/hooks/usePalette' -import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {useAnalytics} from 'lib/analytics/analytics' -import {NavigationProp} from 'lib/routes/types' -import {useSetDrawerOpen} from '#/state/shell' + import {isWeb} from '#/platform/detection' +import {useSetDrawerOpen} from '#/state/shell' + +import {CenteredView} from './Views' const BACK_HITSLOP = {left: 20, top: 20, right: 50, bottom: 20} diff --git a/src/view/com/util/TimeElapsed.tsx b/src/view/com/util/TimeElapsed.tsx index aa3a092235..bf848193d1 100644 --- a/src/view/com/util/TimeElapsed.tsx +++ b/src/view/com/util/TimeElapsed.tsx @@ -1,5 +1,6 @@ -import React from 'react' import {ago} from 'lib/strings/time' +import React from 'react' + import {useTickEveryMinute} from '#/state/shell' // FIXME(dan): Figure out why the false positives diff --git a/src/view/com/util/Toast.tsx b/src/view/com/util/Toast.tsx index 5462505e1e..91187e2059 100644 --- a/src/view/com/util/Toast.tsx +++ b/src/view/com/util/Toast.tsx @@ -1,14 +1,16 @@ -import RootSiblings from 'react-native-root-siblings' -import React from 'react' -import {Animated, StyleSheet, View} from 'react-native' import {Props as FontAwesomeProps} from '@fortawesome/react-native-fontawesome' -import {Text} from './text/Text' +import {useAnimatedValue} from 'lib/hooks/useAnimatedValue' +import {usePalette} from 'lib/hooks/usePalette' import {colors} from 'lib/styles' import {useTheme} from 'lib/ThemeContext' -import {usePalette} from 'lib/hooks/usePalette' -import {useAnimatedValue} from 'lib/hooks/useAnimatedValue' +import React from 'react' +import {Animated, StyleSheet, View} from 'react-native' +import RootSiblings from 'react-native-root-siblings' + import {IS_TEST} from '#/env' +import {Text} from './text/Text' + const TIMEOUT = 4e3 export function show( diff --git a/src/view/com/util/Toast.web.tsx b/src/view/com/util/Toast.web.tsx index d5a8435412..da7a5df8ea 100644 --- a/src/view/com/util/Toast.web.tsx +++ b/src/view/com/util/Toast.web.tsx @@ -2,13 +2,13 @@ * Note: the dataSet properties are used to leverage custom CSS in public/index.html */ -import React, {useState, useEffect} from 'react' -import {StyleSheet, Text, View} from 'react-native' import { FontAwesomeIcon, FontAwesomeIconStyle, Props as FontAwesomeProps, } from '@fortawesome/react-native-fontawesome' +import React, {useEffect, useState} from 'react' +import {StyleSheet, Text, View} from 'react-native' const DURATION = 3500 diff --git a/src/view/com/util/UserAvatar.tsx b/src/view/com/util/UserAvatar.tsx index 4132373974..2aa28b725f 100644 --- a/src/view/com/util/UserAvatar.tsx +++ b/src/view/com/util/UserAvatar.tsx @@ -1,30 +1,31 @@ -import React, {memo, useMemo} from 'react' -import {Image, StyleSheet, TouchableOpacity, View} from 'react-native' -import Svg, {Circle, Rect, Path} from 'react-native-svg' -import {Image as RNImage} from 'react-native-image-crop-picker' -import {useLingui} from '@lingui/react' -import {msg, Trans} from '@lingui/macro' -import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' import {ModerationUI} from '@atproto/api' - -import {HighPriorityImage} from 'view/com/util/images/Image' -import {openCamera, openCropper, openPicker} from '../../../lib/media/picker' +import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {usePalette} from 'lib/hooks/usePalette' import { - usePhotoLibraryPermission, useCameraPermission, + usePhotoLibraryPermission, } from 'lib/hooks/usePermissions' import {colors} from 'lib/styles' -import {usePalette} from 'lib/hooks/usePalette' -import {isWeb, isAndroid, isNative} from 'platform/detection' -import {UserPreviewLink} from './UserPreviewLink' -import * as Menu from '#/components/Menu' +import {isAndroid, isNative, isWeb} from 'platform/detection' +import React, {memo, useMemo} from 'react' +import {Image, StyleSheet, TouchableOpacity, View} from 'react-native' +import {Image as RNImage} from 'react-native-image-crop-picker' +import Svg, {Circle, Path, Rect} from 'react-native-svg' +import {HighPriorityImage} from 'view/com/util/images/Image' + +import {useTheme} from '#/alf' import { - Camera_Stroke2_Corner0_Rounded as Camera, Camera_Filled_Stroke2_Corner0_Rounded as CameraFilled, + Camera_Stroke2_Corner0_Rounded as Camera, } from '#/components/icons/Camera' import {StreamingLive_Stroke2_Corner0_Rounded as Library} from '#/components/icons/StreamingLive' import {Trash_Stroke2_Corner0_Rounded as Trash} from '#/components/icons/Trash' -import {useTheme} from '#/alf' +import * as Menu from '#/components/Menu' + +import {openCamera, openCropper, openPicker} from '../../../lib/media/picker' +import {UserPreviewLink} from './UserPreviewLink' export type UserAvatarType = 'user' | 'algo' | 'list' diff --git a/src/view/com/util/UserBanner.tsx b/src/view/com/util/UserBanner.tsx index a5ddfee8ac..6eb0ccc12a 100644 --- a/src/view/com/util/UserBanner.tsx +++ b/src/view/com/util/UserBanner.tsx @@ -1,29 +1,30 @@ -import React from 'react' -import {StyleSheet, TouchableOpacity, View} from 'react-native' import {ModerationUI} from '@atproto/api' -import {Image} from 'expo-image' -import {useLingui} from '@lingui/react' import {msg, Trans} from '@lingui/macro' - -import {colors} from 'lib/styles' -import {useTheme} from 'lib/ThemeContext' -import {useTheme as useAlfTheme} from '#/alf' -import {openCamera, openCropper, openPicker} from '../../../lib/media/picker' +import {useLingui} from '@lingui/react' +import {Image} from 'expo-image' +import {usePalette} from 'lib/hooks/usePalette' import { - usePhotoLibraryPermission, useCameraPermission, + usePhotoLibraryPermission, } from 'lib/hooks/usePermissions' -import {usePalette} from 'lib/hooks/usePalette' +import {colors} from 'lib/styles' +import {useTheme} from 'lib/ThemeContext' import {isAndroid, isNative} from 'platform/detection' +import React from 'react' +import {StyleSheet, TouchableOpacity, View} from 'react-native' import {Image as RNImage} from 'react-native-image-crop-picker' import {EventStopper} from 'view/com/util/EventStopper' -import * as Menu from '#/components/Menu' + +import {useTheme as useAlfTheme} from '#/alf' import { Camera_Filled_Stroke2_Corner0_Rounded as CameraFilled, Camera_Stroke2_Corner0_Rounded as Camera, } from '#/components/icons/Camera' import {StreamingLive_Stroke2_Corner0_Rounded as Library} from '#/components/icons/StreamingLive' import {Trash_Stroke2_Corner0_Rounded as Trash} from '#/components/icons/Trash' +import * as Menu from '#/components/Menu' + +import {openCamera, openCropper, openPicker} from '../../../lib/media/picker' export function UserBanner({ banner, diff --git a/src/view/com/util/UserInfoText.tsx b/src/view/com/util/UserInfoText.tsx index 9cb9997f60..ab937c664b 100644 --- a/src/view/com/util/UserInfoText.tsx +++ b/src/view/com/util/UserInfoText.tsx @@ -1,15 +1,17 @@ -import React from 'react' import {AppBskyActorGetProfile as GetProfile} from '@atproto/api' -import {StyleProp, StyleSheet, TextStyle} from 'react-native' -import {TextLinkOnWebOnly} from './Link' -import {Text} from './text/Text' -import {LoadingPlaceholder} from './LoadingPlaceholder' -import {TypographyVariant} from 'lib/ThemeContext' +import {makeProfileLink} from 'lib/routes/links' import {sanitizeDisplayName} from 'lib/strings/display-names' import {sanitizeHandle} from 'lib/strings/handles' -import {makeProfileLink} from 'lib/routes/links' -import {useProfileQuery} from '#/state/queries/profile' +import {TypographyVariant} from 'lib/ThemeContext' +import React from 'react' +import {StyleProp, StyleSheet, TextStyle} from 'react-native' + import {STALE} from '#/state/queries' +import {useProfileQuery} from '#/state/queries/profile' + +import {TextLinkOnWebOnly} from './Link' +import {LoadingPlaceholder} from './LoadingPlaceholder' +import {Text} from './text/Text' export function UserInfoText({ type = 'md', diff --git a/src/view/com/util/UserPreviewLink.tsx b/src/view/com/util/UserPreviewLink.tsx index a2c46afc01..09d230000e 100644 --- a/src/view/com/util/UserPreviewLink.tsx +++ b/src/view/com/util/UserPreviewLink.tsx @@ -1,10 +1,12 @@ +import {makeProfileLink} from 'lib/routes/links' +import {isWeb} from 'platform/detection' import React from 'react' import {StyleProp, ViewStyle} from 'react-native' -import {Link} from './Link' -import {isWeb} from 'platform/detection' -import {makeProfileLink} from 'lib/routes/links' + import {usePrefetchProfileQuery} from '#/state/queries/profile' +import {Link} from './Link' + interface UserPreviewLinkProps { did: string handle: string diff --git a/src/view/com/util/ViewHeader.tsx b/src/view/com/util/ViewHeader.tsx index 872e10eef0..3ac7572692 100644 --- a/src/view/com/util/ViewHeader.tsx +++ b/src/view/com/util/ViewHeader.tsx @@ -1,19 +1,21 @@ -import React from 'react' -import {StyleSheet, TouchableOpacity, View} from 'react-native' import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' +import {msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' import {useNavigation} from '@react-navigation/native' -import {CenteredView} from './Views' -import {Text} from './text/Text' +import {useAnalytics} from 'lib/analytics/analytics' +import {useMinimalShellMode} from 'lib/hooks/useMinimalShellMode' import {usePalette} from 'lib/hooks/usePalette' import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {useAnalytics} from 'lib/analytics/analytics' import {NavigationProp} from 'lib/routes/types' -import {useMinimalShellMode} from 'lib/hooks/useMinimalShellMode' +import React from 'react' +import {StyleSheet, TouchableOpacity, View} from 'react-native' import Animated from 'react-native-reanimated' -import {useSetDrawerOpen} from '#/state/shell' -import {msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' + import {useTheme} from '#/alf' +import {useSetDrawerOpen} from '#/state/shell' + +import {Text} from './text/Text' +import {CenteredView} from './Views' const BACK_HITSLOP = {left: 20, top: 20, right: 50, bottom: 20} diff --git a/src/view/com/util/ViewSelector.tsx b/src/view/com/util/ViewSelector.tsx index ee993c564d..3800283349 100644 --- a/src/view/com/util/ViewSelector.tsx +++ b/src/view/com/util/ViewSelector.tsx @@ -1,20 +1,21 @@ +import {useColorSchemeStyle} from 'lib/hooks/useColorSchemeStyle' +import {usePalette} from 'lib/hooks/usePalette' +import {clamp} from 'lib/numbers' +import {colors, s} from 'lib/styles' +import {isAndroid} from 'platform/detection' import React, {useEffect, useState} from 'react' import { - NativeSyntheticEvent, NativeScrollEvent, + NativeSyntheticEvent, Pressable, RefreshControl, + ScrollView, StyleSheet, View, - ScrollView, } from 'react-native' -import {FlatList_INTERNAL} from './Views' -import {useColorSchemeStyle} from 'lib/hooks/useColorSchemeStyle' + import {Text} from './text/Text' -import {usePalette} from 'lib/hooks/usePalette' -import {clamp} from 'lib/numbers' -import {s, colors} from 'lib/styles' -import {isAndroid} from 'platform/detection' +import {FlatList_INTERNAL} from './Views' const HEADER_ITEM = {_reactKey: '__header__'} const SELECTOR_ITEM = {_reactKey: '__selector__'} diff --git a/src/view/com/util/Views.web.tsx b/src/view/com/util/Views.web.tsx index ae165077ca..db023a32c8 100644 --- a/src/view/com/util/Views.web.tsx +++ b/src/view/com/util/Views.web.tsx @@ -12,6 +12,9 @@ * need to match layout but which aren't scrolled. */ +import {usePalette} from 'lib/hooks/usePalette' +import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' +import {addStyle} from 'lib/styles' import React from 'react' import { FlatListProps, @@ -20,9 +23,6 @@ import { View, ViewProps, } from 'react-native' -import {addStyle} from 'lib/styles' -import {usePalette} from 'lib/hooks/usePalette' -import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' import Animated from 'react-native-reanimated' interface AddedProps { diff --git a/src/view/com/util/anim/TriggerableAnimated.tsx b/src/view/com/util/anim/TriggerableAnimated.tsx index eedeeda037..bb88035d7b 100644 --- a/src/view/com/util/anim/TriggerableAnimated.tsx +++ b/src/view/com/util/anim/TriggerableAnimated.tsx @@ -1,6 +1,6 @@ +import {useAnimatedValue} from 'lib/hooks/useAnimatedValue' import React from 'react' import {Animated, StyleProp, View, ViewStyle} from 'react-native' -import {useAnimatedValue} from 'lib/hooks/useAnimatedValue' type CreateAnimFn = (interp: Animated.Value) => Animated.CompositeAnimation type FinishCb = () => void diff --git a/src/view/com/util/error/ErrorMessage.tsx b/src/view/com/util/error/ErrorMessage.tsx index a4238b8a46..5418a0204d 100644 --- a/src/view/com/util/error/ErrorMessage.tsx +++ b/src/view/com/util/error/ErrorMessage.tsx @@ -1,20 +1,21 @@ +import { + FontAwesomeIcon, + FontAwesomeIconStyle, +} from '@fortawesome/react-native-fontawesome' +import {msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {usePalette} from 'lib/hooks/usePalette' +import {useTheme} from 'lib/ThemeContext' import React from 'react' import { + StyleProp, StyleSheet, TouchableOpacity, - StyleProp, View, ViewStyle, } from 'react-native' -import { - FontAwesomeIcon, - FontAwesomeIconStyle, -} from '@fortawesome/react-native-fontawesome' + import {Text} from '../text/Text' -import {useTheme} from 'lib/ThemeContext' -import {usePalette} from 'lib/hooks/usePalette' -import {useLingui} from '@lingui/react' -import {msg} from '@lingui/macro' export function ErrorMessage({ message, diff --git a/src/view/com/util/error/ErrorScreen.tsx b/src/view/com/util/error/ErrorScreen.tsx index 98fe6437b6..f3c4a7a3bd 100644 --- a/src/view/com/util/error/ErrorScreen.tsx +++ b/src/view/com/util/error/ErrorScreen.tsx @@ -1,18 +1,19 @@ -import React from 'react' -import {StyleSheet, View} from 'react-native' import { FontAwesomeIcon, FontAwesomeIconStyle, } from '@fortawesome/react-native-fontawesome' -import {Text} from '../text/Text' -import {useTheme} from 'lib/ThemeContext' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' import {usePalette} from 'lib/hooks/usePalette' +import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' +import {useTheme} from 'lib/ThemeContext' +import React from 'react' +import {StyleSheet, View} from 'react-native' +import {ViewHeader} from 'view/com/util/ViewHeader' + import {Button} from '../forms/Button' +import {Text} from '../text/Text' import {CenteredView} from '../Views' -import {Trans, msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {ViewHeader} from 'view/com/util/ViewHeader' -import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' export function ErrorScreen({ title, diff --git a/src/view/com/util/fab/FAB.web.tsx b/src/view/com/util/fab/FAB.web.tsx index 0a8831fa92..cbe1adfd38 100644 --- a/src/view/com/util/fab/FAB.web.tsx +++ b/src/view/com/util/fab/FAB.web.tsx @@ -1,7 +1,8 @@ +import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' import React from 'react' import {View} from 'react-native' + import {FABInner, FABProps} from './FABInner' -import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' export const FAB = (_opts: FABProps) => { const {isDesktop} = useWebMediaQueries() diff --git a/src/view/com/util/fab/FABInner.tsx b/src/view/com/util/fab/FABInner.tsx index 27a16117bd..15e3262ae9 100644 --- a/src/view/com/util/fab/FABInner.tsx +++ b/src/view/com/util/fab/FABInner.tsx @@ -1,13 +1,14 @@ +import {useMinimalShellMode} from 'lib/hooks/useMinimalShellMode' +import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' +import {clamp} from 'lib/numbers' +import {gradients} from 'lib/styles' import React, {ComponentProps} from 'react' import {StyleSheet, TouchableWithoutFeedback} from 'react-native' import LinearGradient from 'react-native-linear-gradient' -import {gradients} from 'lib/styles' -import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' +import Animated from 'react-native-reanimated' import {useSafeAreaInsets} from 'react-native-safe-area-context' -import {clamp} from 'lib/numbers' -import {useMinimalShellMode} from 'lib/hooks/useMinimalShellMode' + import {isWeb} from '#/platform/detection' -import Animated from 'react-native-reanimated' export interface FABProps extends ComponentProps { diff --git a/src/view/com/util/forms/Button.tsx b/src/view/com/util/forms/Button.tsx index e6e05bb044..62d49c00bf 100644 --- a/src/view/com/util/forms/Button.tsx +++ b/src/view/com/util/forms/Button.tsx @@ -1,20 +1,21 @@ +import {choose} from 'lib/functions' +import {useTheme} from 'lib/ThemeContext' import React from 'react' import { + ActivityIndicator, GestureResponderEvent, + NativeSyntheticEvent, + NativeTouchEvent, + Pressable, + PressableStateCallbackType, StyleProp, StyleSheet, TextStyle, - Pressable, - ViewStyle, - PressableStateCallbackType, - ActivityIndicator, View, - NativeSyntheticEvent, - NativeTouchEvent, + ViewStyle, } from 'react-native' + import {Text} from '../text/Text' -import {useTheme} from 'lib/ThemeContext' -import {choose} from 'lib/functions' export type ButtonType = | 'primary' diff --git a/src/view/com/util/forms/DateInput.tsx b/src/view/com/util/forms/DateInput.tsx index 0104562aa5..8a813049a4 100644 --- a/src/view/com/util/forms/DateInput.tsx +++ b/src/view/com/util/forms/DateInput.tsx @@ -1,18 +1,19 @@ -import React, {useState, useCallback} from 'react' -import {StyleProp, StyleSheet, TextStyle, View, ViewStyle} from 'react-native' import { FontAwesomeIcon, FontAwesomeIconStyle, } from '@fortawesome/react-native-fontawesome' -import {isIOS, isAndroid} from 'platform/detection' -import {Button, ButtonType} from './Button' -import {Text} from '../text/Text' +import {getLocales} from 'expo-localization' +import {usePalette} from 'lib/hooks/usePalette' import {TypographyVariant} from 'lib/ThemeContext' import {useTheme} from 'lib/ThemeContext' -import {usePalette} from 'lib/hooks/usePalette' -import {getLocales} from 'expo-localization' +import {isAndroid, isIOS} from 'platform/detection' +import React, {useCallback, useState} from 'react' +import {StyleProp, StyleSheet, TextStyle, View, ViewStyle} from 'react-native' import DatePicker from 'react-native-date-picker' +import {Text} from '../text/Text' +import {Button, ButtonType} from './Button' + const LOCALE = getLocales()[0] interface Props { diff --git a/src/view/com/util/forms/DateInput.web.tsx b/src/view/com/util/forms/DateInput.web.tsx index 8d74f6dae2..ff1ed58b76 100644 --- a/src/view/com/util/forms/DateInput.web.tsx +++ b/src/view/com/util/forms/DateInput.web.tsx @@ -1,8 +1,8 @@ -import React, {useState, useCallback} from 'react' +import {usePalette} from 'lib/hooks/usePalette' +import React, {useCallback, useState} from 'react' import {StyleProp, StyleSheet, TextStyle, View, ViewStyle} from 'react-native' // @ts-ignore types not available -prf import {unstable_createElement} from 'react-native-web' -import {usePalette} from 'lib/hooks/usePalette' interface Props { testID?: string diff --git a/src/view/com/util/forms/DropdownButton.tsx b/src/view/com/util/forms/DropdownButton.tsx index 2285b0615a..f12f1d09cc 100644 --- a/src/view/com/util/forms/DropdownButton.tsx +++ b/src/view/com/util/forms/DropdownButton.tsx @@ -1,3 +1,12 @@ +import {IconProp} from '@fortawesome/fontawesome-svg-core' +import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' +import {msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {HITSLOP_10} from 'lib/constants' +import {usePalette} from 'lib/hooks/usePalette' +import {colors} from 'lib/styles' +import {useTheme} from 'lib/ThemeContext' +import {isWeb} from 'platform/detection' import React, {PropsWithChildren, useMemo, useRef} from 'react' import { Dimensions, @@ -10,18 +19,10 @@ import { View, ViewStyle, } from 'react-native' -import {IconProp} from '@fortawesome/fontawesome-svg-core' import RootSiblings from 'react-native-root-siblings' -import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' + import {Text} from '../text/Text' import {Button, ButtonType} from './Button' -import {colors} from 'lib/styles' -import {usePalette} from 'lib/hooks/usePalette' -import {useTheme} from 'lib/ThemeContext' -import {HITSLOP_10} from 'lib/constants' -import {useLingui} from '@lingui/react' -import {msg} from '@lingui/macro' -import {isWeb} from 'platform/detection' const ESTIMATED_BTN_HEIGHT = 50 const ESTIMATED_SEP_HEIGHT = 16 diff --git a/src/view/com/util/forms/NativeDropdown.tsx b/src/view/com/util/forms/NativeDropdown.tsx index 0a47569f27..62f830c43b 100644 --- a/src/view/com/util/forms/NativeDropdown.tsx +++ b/src/view/com/util/forms/NativeDropdown.tsx @@ -1,13 +1,13 @@ -import React from 'react' -import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' -import * as DropdownMenu from 'zeego/dropdown-menu' -import {Pressable, StyleSheet, Platform, View, ViewStyle} from 'react-native' import {IconProp} from '@fortawesome/fontawesome-svg-core' -import {MenuItemCommonProps} from 'zeego/lib/typescript/menu' +import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' +import {HITSLOP_10} from 'lib/constants' import {usePalette} from 'lib/hooks/usePalette' -import {isWeb} from 'platform/detection' import {useTheme} from 'lib/ThemeContext' -import {HITSLOP_10} from 'lib/constants' +import {isWeb} from 'platform/detection' +import React from 'react' +import {Platform, Pressable, StyleSheet, View, ViewStyle} from 'react-native' +import * as DropdownMenu from 'zeego/dropdown-menu' +import {MenuItemCommonProps} from 'zeego/lib/typescript/menu' // Custom Dropdown Menu Components // == diff --git a/src/view/com/util/forms/NativeDropdown.web.tsx b/src/view/com/util/forms/NativeDropdown.web.tsx index 6abeb16cc2..10a005446c 100644 --- a/src/view/com/util/forms/NativeDropdown.web.tsx +++ b/src/view/com/util/forms/NativeDropdown.web.tsx @@ -1,12 +1,12 @@ -import React from 'react' +import {IconProp} from '@fortawesome/fontawesome-svg-core' import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' import * as DropdownMenu from '@radix-ui/react-dropdown-menu' -import {Pressable, StyleSheet, View, Text, ViewStyle} from 'react-native' -import {IconProp} from '@fortawesome/fontawesome-svg-core' -import {MenuItemCommonProps} from 'zeego/lib/typescript/menu' +import {HITSLOP_10} from 'lib/constants' import {usePalette} from 'lib/hooks/usePalette' import {useTheme} from 'lib/ThemeContext' -import {HITSLOP_10} from 'lib/constants' +import React from 'react' +import {Pressable, StyleSheet, Text, View, ViewStyle} from 'react-native' +import {MenuItemCommonProps} from 'zeego/lib/typescript/menu' // Custom Dropdown Menu Components // == diff --git a/src/view/com/util/forms/PostDropdownBtn.tsx b/src/view/com/util/forms/PostDropdownBtn.tsx index 3c1a736f3f..9727fc21f8 100644 --- a/src/view/com/util/forms/PostDropdownBtn.tsx +++ b/src/view/com/util/forms/PostDropdownBtn.tsx @@ -1,49 +1,50 @@ -import React, {memo} from 'react' -import {StyleProp, ViewStyle, Pressable, PressableProps} from 'react-native' -import Clipboard from '@react-native-clipboard/clipboard' -import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' -import {useNavigation} from '@react-navigation/native' import { AppBskyActorDefs, AppBskyFeedPost, AtUri, RichText as RichTextAPI, } from '@atproto/api' +import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' +import {msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import Clipboard from '@react-native-clipboard/clipboard' +import {useNavigation} from '@react-navigation/native' +import {getCurrentRoute} from 'lib/routes/helpers' +import {shareUrl} from 'lib/sharing' import {toShareUrl} from 'lib/strings/url-helpers' import {useTheme} from 'lib/ThemeContext' -import {shareUrl} from 'lib/sharing' -import * as Toast from '../Toast' -import {EventStopper} from '../EventStopper' -import {useModalControls} from '#/state/modals' +import React, {memo} from 'react' +import {Pressable, PressableProps, StyleProp, ViewStyle} from 'react-native' + +import {atoms as a, useTheme as useAlf} from '#/alf' +import {useGlobalDialogsControlContext} from '#/components/dialogs/Context' +import {ArrowOutOfBox_Stroke2_Corner0_Rounded as Share} from '#/components/icons/ArrowOutOfBox' +import {BubbleQuestion_Stroke2_Corner0_Rounded as Translate} from '#/components/icons/Bubble' +import {CircleInfo_Stroke2_Corner0_Rounded as CircleInfo} from '#/components/icons/CircleInfo' +import {Clipboard_Stroke2_Corner2_Rounded as ClipboardIcon} from '#/components/icons/Clipboard' +import {EyeSlash_Stroke2_Corner0_Rounded as EyeSlash} from '#/components/icons/EyeSlash' +import {Filter_Stroke2_Corner0_Rounded as Filter} from '#/components/icons/Filter' +import {Mute_Stroke2_Corner0_Rounded as Mute} from '#/components/icons/Mute' +import {SpeakerVolumeFull_Stroke2_Corner0_Rounded as Unmute} from '#/components/icons/Speaker' +import {Trash_Stroke2_Corner0_Rounded as Trash} from '#/components/icons/Trash' +import {Warning_Stroke2_Corner0_Rounded as Warning} from '#/components/icons/Warning' +import * as Menu from '#/components/Menu' import {makeProfileLink} from '#/lib/routes/links' import {CommonNavigatorParams} from '#/lib/routes/types' -import {getCurrentRoute} from 'lib/routes/helpers' +import {richTextToString} from '#/lib/strings/rich-text-helpers' import {getTranslatorLink} from '#/locale/helpers' -import {usePostDeleteMutation} from '#/state/queries/post' +import {logger} from '#/logger' +import {isWeb} from '#/platform/detection' +import {useModalControls} from '#/state/modals' import {useMutedThreads, useToggleThreadMute} from '#/state/muted-threads' import {useLanguagePrefs} from '#/state/preferences' import {useHiddenPosts, useHiddenPostsApi} from '#/state/preferences' import {useOpenLink} from '#/state/preferences/in-app-browser' -import {logger} from '#/logger' -import {msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' +import {usePostDeleteMutation} from '#/state/queries/post' import {useSession} from '#/state/session' -import {isWeb} from '#/platform/detection' -import {richTextToString} from '#/lib/strings/rich-text-helpers' -import {useGlobalDialogsControlContext} from '#/components/dialogs/Context' -import {atoms as a, useTheme as useAlf} from '#/alf' -import * as Menu from '#/components/Menu' -import {Clipboard_Stroke2_Corner2_Rounded as ClipboardIcon} from '#/components/icons/Clipboard' -import {Filter_Stroke2_Corner0_Rounded as Filter} from '#/components/icons/Filter' -import {ArrowOutOfBox_Stroke2_Corner0_Rounded as Share} from '#/components/icons/ArrowOutOfBox' -import {EyeSlash_Stroke2_Corner0_Rounded as EyeSlash} from '#/components/icons/EyeSlash' -import {Mute_Stroke2_Corner0_Rounded as Mute} from '#/components/icons/Mute' -import {SpeakerVolumeFull_Stroke2_Corner0_Rounded as Unmute} from '#/components/icons/Speaker' -import {BubbleQuestion_Stroke2_Corner0_Rounded as Translate} from '#/components/icons/Bubble' -import {Warning_Stroke2_Corner0_Rounded as Warning} from '#/components/icons/Warning' -import {Trash_Stroke2_Corner0_Rounded as Trash} from '#/components/icons/Trash' -import {CircleInfo_Stroke2_Corner0_Rounded as CircleInfo} from '#/components/icons/CircleInfo' +import {EventStopper} from '../EventStopper' +import * as Toast from '../Toast' let PostDropdownBtn = ({ testID, diff --git a/src/view/com/util/forms/RadioButton.tsx b/src/view/com/util/forms/RadioButton.tsx index 9d1cb47497..696a0c00ab 100644 --- a/src/view/com/util/forms/RadioButton.tsx +++ b/src/view/com/util/forms/RadioButton.tsx @@ -1,9 +1,10 @@ +import {choose} from 'lib/functions' +import {useTheme} from 'lib/ThemeContext' import React from 'react' import {StyleProp, StyleSheet, TextStyle, View, ViewStyle} from 'react-native' + import {Text} from '../text/Text' import {Button, ButtonType} from './Button' -import {useTheme} from 'lib/ThemeContext' -import {choose} from 'lib/functions' export function RadioButton({ testID, diff --git a/src/view/com/util/forms/RadioGroup.tsx b/src/view/com/util/forms/RadioGroup.tsx index 14599e6490..abd1f5589d 100644 --- a/src/view/com/util/forms/RadioGroup.tsx +++ b/src/view/com/util/forms/RadioGroup.tsx @@ -1,8 +1,9 @@ +import {s} from 'lib/styles' import React, {useState} from 'react' import {View} from 'react-native' -import {RadioButton} from './RadioButton' + import {ButtonType} from './Button' -import {s} from 'lib/styles' +import {RadioButton} from './RadioButton' export interface RadioGroupItem { label: string | JSX.Element diff --git a/src/view/com/util/forms/SearchInput.tsx b/src/view/com/util/forms/SearchInput.tsx index 5a21d8fdd0..ff8b6bbddb 100644 --- a/src/view/com/util/forms/SearchInput.tsx +++ b/src/view/com/util/forms/SearchInput.tsx @@ -1,3 +1,13 @@ +import { + FontAwesomeIcon, + FontAwesomeIconStyle, +} from '@fortawesome/react-native-fontawesome' +import {msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {HITSLOP_10} from 'lib/constants' +import {usePalette} from 'lib/hooks/usePalette' +import {MagnifyingGlassIcon} from 'lib/icons' +import {useTheme} from 'lib/ThemeContext' import React from 'react' import { StyleProp, @@ -7,16 +17,6 @@ import { View, ViewStyle, } from 'react-native' -import { - FontAwesomeIcon, - FontAwesomeIconStyle, -} from '@fortawesome/react-native-fontawesome' -import {HITSLOP_10} from 'lib/constants' -import {MagnifyingGlassIcon} from 'lib/icons' -import {useTheme} from 'lib/ThemeContext' -import {usePalette} from 'lib/hooks/usePalette' -import {useLingui} from '@lingui/react' -import {msg} from '@lingui/macro' interface Props { query: string diff --git a/src/view/com/util/forms/SelectableBtn.tsx b/src/view/com/util/forms/SelectableBtn.tsx index e577e155de..94eb049d2a 100644 --- a/src/view/com/util/forms/SelectableBtn.tsx +++ b/src/view/com/util/forms/SelectableBtn.tsx @@ -1,8 +1,9 @@ -import React from 'react' -import {Pressable, ViewStyle, StyleProp, StyleSheet} from 'react-native' -import {Text} from '../text/Text' import {usePalette} from 'lib/hooks/usePalette' import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' +import React from 'react' +import {Pressable, StyleProp, StyleSheet, ViewStyle} from 'react-native' + +import {Text} from '../text/Text' interface SelectableBtnProps { testID?: string diff --git a/src/view/com/util/forms/ToggleButton.tsx b/src/view/com/util/forms/ToggleButton.tsx index c98e846cd3..e40218b803 100644 --- a/src/view/com/util/forms/ToggleButton.tsx +++ b/src/view/com/util/forms/ToggleButton.tsx @@ -1,11 +1,12 @@ +import {choose} from 'lib/functions' +import {colors} from 'lib/styles' +import {useTheme} from 'lib/ThemeContext' +import {TypographyVariant} from 'lib/ThemeContext' import React from 'react' import {StyleProp, StyleSheet, TextStyle, View, ViewStyle} from 'react-native' + import {Text} from '../text/Text' import {Button, ButtonType} from './Button' -import {useTheme} from 'lib/ThemeContext' -import {choose} from 'lib/functions' -import {colors} from 'lib/styles' -import {TypographyVariant} from 'lib/ThemeContext' export function ToggleButton({ testID, diff --git a/src/view/com/util/images/AutoSizedImage.tsx b/src/view/com/util/images/AutoSizedImage.tsx index 61cb6f69f3..2b52b103d0 100644 --- a/src/view/com/util/images/AutoSizedImage.tsx +++ b/src/view/com/util/images/AutoSizedImage.tsx @@ -1,11 +1,11 @@ -import React from 'react' -import {StyleProp, StyleSheet, Pressable, View, ViewStyle} from 'react-native' -import {Image} from 'expo-image' -import {clamp} from 'lib/numbers' -import {Dimensions} from 'lib/media/types' -import * as imageSizes from 'lib/media/image-sizes' import {msg} from '@lingui/macro' import {useLingui} from '@lingui/react' +import {Image} from 'expo-image' +import * as imageSizes from 'lib/media/image-sizes' +import {Dimensions} from 'lib/media/types' +import {clamp} from 'lib/numbers' +import React from 'react' +import {Pressable, StyleProp, StyleSheet, View, ViewStyle} from 'react-native' const MIN_ASPECT_RATIO = 0.33 // 1/3 const MAX_ASPECT_RATIO = 10 // 10/1 diff --git a/src/view/com/util/images/Gallery.tsx b/src/view/com/util/images/Gallery.tsx index 7de3b093ae..b5bc394989 100644 --- a/src/view/com/util/images/Gallery.tsx +++ b/src/view/com/util/images/Gallery.tsx @@ -1,10 +1,10 @@ import {AppBskyEmbedImages} from '@atproto/api' -import React, {ComponentProps, FC} from 'react' -import {StyleSheet, Text, Pressable, View} from 'react-native' -import {Image} from 'expo-image' import {msg} from '@lingui/macro' import {useLingui} from '@lingui/react' +import {Image} from 'expo-image' import {isWeb} from 'platform/detection' +import React, {ComponentProps, FC} from 'react' +import {Pressable, StyleSheet, Text, View} from 'react-native' type EventFunction = (index: number) => void diff --git a/src/view/com/util/images/Image.tsx b/src/view/com/util/images/Image.tsx index e779fa3787..fbdcfebbf9 100644 --- a/src/view/com/util/images/Image.tsx +++ b/src/view/com/util/images/Image.tsx @@ -1,5 +1,5 @@ -import React from 'react' import {Image, ImageProps, ImageSource} from 'expo-image' +import React from 'react' interface HighPriorityImageProps extends ImageProps { source: ImageSource diff --git a/src/view/com/util/images/Image.web.tsx b/src/view/com/util/images/Image.web.tsx index ecd9d730ab..eeaf16b9a6 100644 --- a/src/view/com/util/images/Image.web.tsx +++ b/src/view/com/util/images/Image.web.tsx @@ -1,8 +1,8 @@ import { Image, - NativeSyntheticEvent, ImageLoadEventData, ImageSourcePropType, + NativeSyntheticEvent, } from 'react-native' export default Image export const HighPriorityImage = Image diff --git a/src/view/com/util/images/ImageHorzList.tsx b/src/view/com/util/images/ImageHorzList.tsx index e37f8af1b7..a93fa195ca 100644 --- a/src/view/com/util/images/ImageHorzList.tsx +++ b/src/view/com/util/images/ImageHorzList.tsx @@ -1,7 +1,7 @@ +import {AppBskyEmbedImages} from '@atproto/api' +import {Image} from 'expo-image' import React from 'react' import {StyleProp, StyleSheet, View, ViewStyle} from 'react-native' -import {Image} from 'expo-image' -import {AppBskyEmbedImages} from '@atproto/api' interface Props { images: AppBskyEmbedImages.ViewImage[] diff --git a/src/view/com/util/images/ImageLayoutGrid.tsx b/src/view/com/util/images/ImageLayoutGrid.tsx index ba6c04f505..fe2a409b20 100644 --- a/src/view/com/util/images/ImageLayoutGrid.tsx +++ b/src/view/com/util/images/ImageLayoutGrid.tsx @@ -1,8 +1,9 @@ +import {AppBskyEmbedImages} from '@atproto/api' +import {isWeb} from 'platform/detection' import React from 'react' import {StyleProp, StyleSheet, View, ViewStyle} from 'react-native' -import {AppBskyEmbedImages} from '@atproto/api' + import {GalleryItem} from './Gallery' -import {isWeb} from 'platform/detection' interface ImageLayoutGridProps { images: AppBskyEmbedImages.ViewImage[] diff --git a/src/view/com/util/layouts/LoggedOutLayout.tsx b/src/view/com/util/layouts/LoggedOutLayout.tsx index 9424a7154b..1032c1f14e 100644 --- a/src/view/com/util/layouts/LoggedOutLayout.tsx +++ b/src/view/com/util/layouts/LoggedOutLayout.tsx @@ -1,9 +1,10 @@ +import {useColorSchemeStyle} from 'lib/hooks/useColorSchemeStyle' +import {usePalette} from 'lib/hooks/usePalette' +import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' import React from 'react' import {StyleSheet, View} from 'react-native' + import {Text} from '../text/Text' -import {usePalette} from 'lib/hooks/usePalette' -import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {useColorSchemeStyle} from 'lib/hooks/useColorSchemeStyle' export const LoggedOutLayout = ({ leadin, diff --git a/src/view/com/util/layouts/TitleColumnLayout.tsx b/src/view/com/util/layouts/TitleColumnLayout.tsx index 49ad9fcdb3..3033d7f42e 100644 --- a/src/view/com/util/layouts/TitleColumnLayout.tsx +++ b/src/view/com/util/layouts/TitleColumnLayout.tsx @@ -1,7 +1,7 @@ +import {useColorSchemeStyle} from 'lib/hooks/useColorSchemeStyle' +import {usePalette} from 'lib/hooks/usePalette' import React from 'react' import {StyleProp, StyleSheet, View, ViewStyle} from 'react-native' -import {usePalette} from 'lib/hooks/usePalette' -import {useColorSchemeStyle} from 'lib/hooks/useColorSchemeStyle' interface Props { testID?: string diff --git a/src/view/com/util/layouts/withBreakpoints.tsx b/src/view/com/util/layouts/withBreakpoints.tsx index 5746aa660d..de649e55c3 100644 --- a/src/view/com/util/layouts/withBreakpoints.tsx +++ b/src/view/com/util/layouts/withBreakpoints.tsx @@ -1,6 +1,6 @@ -import React from 'react' -import {isNative} from 'platform/detection' import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' +import {isNative} from 'platform/detection' +import React from 'react' export const withBreakpoints =

( Mobile: React.ComponentType

, diff --git a/src/view/com/util/load-latest/LoadLatestBtn.tsx b/src/view/com/util/load-latest/LoadLatestBtn.tsx index f02e4a2bd7..4cc30432dc 100644 --- a/src/view/com/util/load-latest/LoadLatestBtn.tsx +++ b/src/view/com/util/load-latest/LoadLatestBtn.tsx @@ -1,13 +1,13 @@ -import React from 'react' -import {StyleSheet, TouchableOpacity, View} from 'react-native' import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' -import Animated from 'react-native-reanimated' -import {useMediaQuery} from 'react-responsive' +import {HITSLOP_20} from 'lib/constants' +import {useMinimalShellMode} from 'lib/hooks/useMinimalShellMode' import {usePalette} from 'lib/hooks/usePalette' import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' import {colors} from 'lib/styles' -import {HITSLOP_20} from 'lib/constants' -import {useMinimalShellMode} from 'lib/hooks/useMinimalShellMode' +import React from 'react' +import {StyleSheet, TouchableOpacity, View} from 'react-native' +import Animated from 'react-native-reanimated' +import {useMediaQuery} from 'react-responsive' const AnimatedTouchableOpacity = Animated.createAnimatedComponent(TouchableOpacity) import {isWeb} from 'platform/detection' diff --git a/src/view/com/util/moderation/ContentHider.tsx b/src/view/com/util/moderation/ContentHider.tsx index cd25452904..8d4978d229 100644 --- a/src/view/com/util/moderation/ContentHider.tsx +++ b/src/view/com/util/moderation/ContentHider.tsx @@ -1,15 +1,17 @@ -import React from 'react' -import {Pressable, StyleProp, StyleSheet, View, ViewStyle} from 'react-native' +import {ModerationUI, PostModeration} from '@atproto/api' import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' import {usePalette} from 'lib/hooks/usePalette' -import {ModerationUI, PostModeration} from '@atproto/api' -import {Text} from '../text/Text' import {ShieldExclamation} from 'lib/icons' import {describeModerationCause} from 'lib/moderation' -import {useLingui} from '@lingui/react' -import {msg, Trans} from '@lingui/macro' -import {useModalControls} from '#/state/modals' import {isPostMediaBlurred} from 'lib/moderation' +import React from 'react' +import {Pressable, StyleProp, StyleSheet, View, ViewStyle} from 'react-native' + +import {useModalControls} from '#/state/modals' + +import {Text} from '../text/Text' export function ContentHider({ testID, diff --git a/src/view/com/util/moderation/LabelInfo.tsx b/src/view/com/util/moderation/LabelInfo.tsx index 970338752c..55f8b2dabf 100644 --- a/src/view/com/util/moderation/LabelInfo.tsx +++ b/src/view/com/util/moderation/LabelInfo.tsx @@ -1,12 +1,14 @@ -import React from 'react' -import {Pressable, StyleProp, View, ViewStyle} from 'react-native' import {ComAtprotoLabelDefs} from '@atproto/api' -import {Text} from '../text/Text' -import {usePalette} from 'lib/hooks/usePalette' import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' +import {usePalette} from 'lib/hooks/usePalette' +import React from 'react' +import {Pressable, StyleProp, View, ViewStyle} from 'react-native' + import {useModalControls} from '#/state/modals' +import {Text} from '../text/Text' + export function LabelInfo({ details, labels, diff --git a/src/view/com/util/moderation/PostAlerts.tsx b/src/view/com/util/moderation/PostAlerts.tsx index bc5bf9b325..135a99486a 100644 --- a/src/view/com/util/moderation/PostAlerts.tsx +++ b/src/view/com/util/moderation/PostAlerts.tsx @@ -1,14 +1,16 @@ -import React from 'react' -import {Pressable, StyleProp, StyleSheet, ViewStyle} from 'react-native' import {ModerationUI} from '@atproto/api' -import {Text} from '../text/Text' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' import {usePalette} from 'lib/hooks/usePalette' import {ShieldExclamation} from 'lib/icons' import {describeModerationCause} from 'lib/moderation' -import {Trans, msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' +import React from 'react' +import {Pressable, StyleProp, StyleSheet, ViewStyle} from 'react-native' + import {useModalControls} from '#/state/modals' +import {Text} from '../text/Text' + export function PostAlerts({ moderation, style, diff --git a/src/view/com/util/moderation/PostHider.tsx b/src/view/com/util/moderation/PostHider.tsx index ede62e988c..02d309a855 100644 --- a/src/view/com/util/moderation/PostHider.tsx +++ b/src/view/com/util/moderation/PostHider.tsx @@ -1,17 +1,19 @@ -import React, {ComponentProps} from 'react' -import {StyleSheet, Pressable, View, ViewStyle, StyleProp} from 'react-native' import {ModerationUI} from '@atproto/api' import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' import {usePalette} from 'lib/hooks/usePalette' -import {Link} from '../Link' -import {Text} from '../text/Text' -import {addStyle} from 'lib/styles' -import {describeModerationCause} from 'lib/moderation' import {ShieldExclamation} from 'lib/icons' -import {useLingui} from '@lingui/react' -import {Trans, msg} from '@lingui/macro' +import {describeModerationCause} from 'lib/moderation' +import {addStyle} from 'lib/styles' +import React, {ComponentProps} from 'react' +import {Pressable, StyleProp, StyleSheet, View, ViewStyle} from 'react-native' + import {useModalControls} from '#/state/modals' +import {Link} from '../Link' +import {Text} from '../text/Text' + interface Props extends ComponentProps { iconSize: number iconStyles: StyleProp diff --git a/src/view/com/util/moderation/ProfileHeaderAlerts.tsx b/src/view/com/util/moderation/ProfileHeaderAlerts.tsx index 0f07b679ba..0d4660ebbc 100644 --- a/src/view/com/util/moderation/ProfileHeaderAlerts.tsx +++ b/src/view/com/util/moderation/ProfileHeaderAlerts.tsx @@ -1,18 +1,20 @@ -import React from 'react' -import {Pressable, StyleProp, StyleSheet, View, ViewStyle} from 'react-native' import {ProfileModeration} from '@atproto/api' -import {Text} from '../text/Text' +import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' import {usePalette} from 'lib/hooks/usePalette' import {ShieldExclamation} from 'lib/icons' import { describeModerationCause, getProfileModerationCauses, } from 'lib/moderation' -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' +import React from 'react' +import {Pressable, StyleProp, StyleSheet, View, ViewStyle} from 'react-native' + import {useModalControls} from '#/state/modals' +import {Text} from '../text/Text' + export function ProfileHeaderAlerts({ moderation, style, diff --git a/src/view/com/util/moderation/ScreenHider.tsx b/src/view/com/util/moderation/ScreenHider.tsx index 86f0cbf7bf..52e5e37a0f 100644 --- a/src/view/com/util/moderation/ScreenHider.tsx +++ b/src/view/com/util/moderation/ScreenHider.tsx @@ -1,27 +1,29 @@ -import React from 'react' -import { - TouchableWithoutFeedback, - StyleProp, - StyleSheet, - View, - ViewStyle, -} from 'react-native' +import {ModerationUI} from '@atproto/api' import { FontAwesomeIcon, FontAwesomeIconStyle, } from '@fortawesome/react-native-fontawesome' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' import {useNavigation} from '@react-navigation/native' -import {ModerationUI} from '@atproto/api' import {usePalette} from 'lib/hooks/usePalette' import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {NavigationProp} from 'lib/routes/types' -import {Text} from '../text/Text' -import {Button} from '../forms/Button' import {describeModerationCause} from 'lib/moderation' -import {Trans, msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {useModalControls} from '#/state/modals' +import {NavigationProp} from 'lib/routes/types' +import React from 'react' +import { + StyleProp, + StyleSheet, + TouchableWithoutFeedback, + View, + ViewStyle, +} from 'react-native' + import {s} from '#/lib/styles' +import {useModalControls} from '#/state/modals' + +import {Button} from '../forms/Button' +import {Text} from '../text/Text' import {CenteredView} from '../Views' export function ScreenHider({ diff --git a/src/view/com/util/post-ctrls/PostCtrls.tsx b/src/view/com/util/post-ctrls/PostCtrls.tsx index 1e26eeccee..d1340f6d2d 100644 --- a/src/view/com/util/post-ctrls/PostCtrls.tsx +++ b/src/view/com/util/post-ctrls/PostCtrls.tsx @@ -1,40 +1,42 @@ -import React, {memo, useCallback} from 'react' -import { - StyleProp, - StyleSheet, - TouchableOpacity, - View, - ViewStyle, -} from 'react-native' import { AppBskyFeedDefs, AppBskyFeedPost, AtUri, RichText as RichTextAPI, } from '@atproto/api' -import {Text} from '../text/Text' -import {PostDropdownBtn} from '../forms/PostDropdownBtn' -import {HeartIcon, HeartIconSolid, CommentBottomArrow} from 'lib/icons' -import {s} from 'lib/styles' +import {msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {HITSLOP_10, HITSLOP_20} from 'lib/constants' +import {Haptics} from 'lib/haptics' +import {CommentBottomArrow, HeartIcon, HeartIconSolid} from 'lib/icons' +import {makeProfileLink} from 'lib/routes/links' +import {shareUrl} from 'lib/sharing' import {pluralize} from 'lib/strings/helpers' +import {toShareUrl} from 'lib/strings/url-helpers' +import {s} from 'lib/styles' import {useTheme} from 'lib/ThemeContext' -import {RepostButton} from './RepostButton' -import {Haptics} from 'lib/haptics' -import {HITSLOP_10, HITSLOP_20} from 'lib/constants' +import React, {memo, useCallback} from 'react' +import { + StyleProp, + StyleSheet, + TouchableOpacity, + View, + ViewStyle, +} from 'react-native' + +import {ArrowOutOfBox_Stroke2_Corner0_Rounded as ArrowOutOfBox} from '#/components/icons/ArrowOutOfBox' +import {Shadow} from '#/state/cache/types' import {useModalControls} from '#/state/modals' import { usePostLikeMutationQueue, usePostRepostMutationQueue, } from '#/state/queries/post' -import {useComposerControls} from '#/state/shell/composer' -import {Shadow} from '#/state/cache/types' import {useRequireAuth} from '#/state/session' -import {msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {ArrowOutOfBox_Stroke2_Corner0_Rounded as ArrowOutOfBox} from '#/components/icons/ArrowOutOfBox' -import {toShareUrl} from 'lib/strings/url-helpers' -import {shareUrl} from 'lib/sharing' -import {makeProfileLink} from 'lib/routes/links' +import {useComposerControls} from '#/state/shell/composer' + +import {PostDropdownBtn} from '../forms/PostDropdownBtn' +import {Text} from '../text/Text' +import {RepostButton} from './RepostButton' let PostCtrls = ({ big, diff --git a/src/view/com/util/post-ctrls/RepostButton.tsx b/src/view/com/util/post-ctrls/RepostButton.tsx index cc3db50c8b..b0cf6a7b1a 100644 --- a/src/view/com/util/post-ctrls/RepostButton.tsx +++ b/src/view/com/util/post-ctrls/RepostButton.tsx @@ -1,15 +1,17 @@ -import React, {memo, useCallback} from 'react' -import {StyleProp, StyleSheet, TouchableOpacity, ViewStyle} from 'react-native' +import {msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {HITSLOP_10, HITSLOP_20} from 'lib/constants' import {RepostIcon} from 'lib/icons' -import {s, colors} from 'lib/styles' -import {useTheme} from 'lib/ThemeContext' -import {Text} from '../text/Text' import {pluralize} from 'lib/strings/helpers' -import {HITSLOP_10, HITSLOP_20} from 'lib/constants' +import {colors, s} from 'lib/styles' +import {useTheme} from 'lib/ThemeContext' +import React, {memo, useCallback} from 'react' +import {StyleProp, StyleSheet, TouchableOpacity, ViewStyle} from 'react-native' + import {useModalControls} from '#/state/modals' import {useRequireAuth} from '#/state/session' -import {msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' + +import {Text} from '../text/Text' interface Props { isReposted: boolean diff --git a/src/view/com/util/post-ctrls/RepostButton.web.tsx b/src/view/com/util/post-ctrls/RepostButton.web.tsx index bbe5869feb..391eeaf1fc 100644 --- a/src/view/com/util/post-ctrls/RepostButton.web.tsx +++ b/src/view/com/util/post-ctrls/RepostButton.web.tsx @@ -1,19 +1,20 @@ -import React from 'react' -import {StyleProp, StyleSheet, View, ViewStyle, Pressable} from 'react-native' +import {msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' import {RepostIcon} from 'lib/icons' import {colors} from 'lib/styles' import {useTheme} from 'lib/ThemeContext' -import {Text} from '../text/Text' +import React from 'react' +import {Pressable, StyleProp, StyleSheet, View, ViewStyle} from 'react-native' +import {useRequireAuth} from '#/state/session' +import {useSession} from '#/state/session' + +import {EventStopper} from '../EventStopper' import { - NativeDropdown, DropdownItem as NativeDropdownItem, + NativeDropdown, } from '../forms/NativeDropdown' -import {EventStopper} from '../EventStopper' -import {useLingui} from '@lingui/react' -import {msg} from '@lingui/macro' -import {useRequireAuth} from '#/state/session' -import {useSession} from '#/state/session' +import {Text} from '../text/Text' interface Props { isReposted: boolean diff --git a/src/view/com/util/post-embeds/ExternalGifEmbed.tsx b/src/view/com/util/post-embeds/ExternalGifEmbed.tsx index f06c8b794d..135f9b211a 100644 --- a/src/view/com/util/post-embeds/ExternalGifEmbed.tsx +++ b/src/view/com/util/post-embeds/ExternalGifEmbed.tsx @@ -1,6 +1,10 @@ +import {AppBskyEmbedExternal} from '@atproto/api' +import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' +import {msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {Image, ImageLoadEventData} from 'expo-image' import {EmbedPlayerParams, getGifDims} from 'lib/strings/embed-player' import React from 'react' -import {Image, ImageLoadEventData} from 'expo-image' import { ActivityIndicator, GestureResponderEvent, @@ -9,13 +13,10 @@ import { StyleSheet, View, } from 'react-native' -import {isIOS, isNative, isWeb} from '#/platform/detection' -import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' -import {useExternalEmbedsPrefs} from 'state/preferences' import {useModalControls} from 'state/modals' -import {useLingui} from '@lingui/react' -import {msg} from '@lingui/macro' -import {AppBskyEmbedExternal} from '@atproto/api' +import {useExternalEmbedsPrefs} from 'state/preferences' + +import {isIOS, isNative, isWeb} from '#/platform/detection' export function ExternalGifEmbed({ link, diff --git a/src/view/com/util/post-embeds/ExternalLinkEmbed.tsx b/src/view/com/util/post-embeds/ExternalLinkEmbed.tsx index aaa98a41f6..a29901baef 100644 --- a/src/view/com/util/post-embeds/ExternalLinkEmbed.tsx +++ b/src/view/com/util/post-embeds/ExternalLinkEmbed.tsx @@ -1,15 +1,16 @@ -import React from 'react' +import {AppBskyEmbedExternal} from '@atproto/api' import {Image} from 'expo-image' -import {Text} from '../text/Text' -import {StyleSheet, View} from 'react-native' import {usePalette} from 'lib/hooks/usePalette' import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {AppBskyEmbedExternal} from '@atproto/api' -import {toNiceDomain} from 'lib/strings/url-helpers' import {parseEmbedPlayerFromUrl} from 'lib/strings/embed-player' -import {ExternalPlayer} from 'view/com/util/post-embeds/ExternalPlayerEmbed' -import {ExternalGifEmbed} from 'view/com/util/post-embeds/ExternalGifEmbed' +import {toNiceDomain} from 'lib/strings/url-helpers' +import React from 'react' +import {StyleSheet, View} from 'react-native' import {useExternalEmbedsPrefs} from 'state/preferences' +import {ExternalGifEmbed} from 'view/com/util/post-embeds/ExternalGifEmbed' +import {ExternalPlayer} from 'view/com/util/post-embeds/ExternalPlayerEmbed' + +import {Text} from '../text/Text' export const ExternalLinkEmbed = ({ link, diff --git a/src/view/com/util/post-embeds/ExternalPlayerEmbed.tsx b/src/view/com/util/post-embeds/ExternalPlayerEmbed.tsx index cf2db5b333..1b9d408445 100644 --- a/src/view/com/util/post-embeds/ExternalPlayerEmbed.tsx +++ b/src/view/com/util/post-embeds/ExternalPlayerEmbed.tsx @@ -1,3 +1,12 @@ +import {AppBskyEmbedExternal} from '@atproto/api' +import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' +import {msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {useNavigation} from '@react-navigation/native' +import {Image} from 'expo-image' +import {NavigationProp} from 'lib/routes/types' +import {EmbedPlayerParams, getPlayerAspect} from 'lib/strings/embed-player' +import {isNative} from 'platform/detection' import React from 'react' import { ActivityIndicator, @@ -13,20 +22,12 @@ import Animated, { useAnimatedRef, useFrameCallback, } from 'react-native-reanimated' -import {Image} from 'expo-image' -import {WebView} from 'react-native-webview' import {useSafeAreaInsets} from 'react-native-safe-area-context' -import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' -import {msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {useNavigation} from '@react-navigation/native' -import {AppBskyEmbedExternal} from '@atproto/api' -import {EmbedPlayerParams, getPlayerAspect} from 'lib/strings/embed-player' -import {EventStopper} from '../EventStopper' -import {isNative} from 'platform/detection' -import {NavigationProp} from 'lib/routes/types' -import {useExternalEmbedsPrefs} from 'state/preferences' +import {WebView} from 'react-native-webview' import {useModalControls} from 'state/modals' +import {useExternalEmbedsPrefs} from 'state/preferences' + +import {EventStopper} from '../EventStopper' interface ShouldStartLoadRequest { url: string diff --git a/src/view/com/util/post-embeds/ListEmbed.tsx b/src/view/com/util/post-embeds/ListEmbed.tsx index fc5ad270fc..ad766d900f 100644 --- a/src/view/com/util/post-embeds/ListEmbed.tsx +++ b/src/view/com/util/post-embeds/ListEmbed.tsx @@ -1,9 +1,9 @@ +import {AppBskyGraphDefs} from '@atproto/api' +import {usePalette} from 'lib/hooks/usePalette' +import {s} from 'lib/styles' import React from 'react' import {StyleProp, StyleSheet, View, ViewStyle} from 'react-native' -import {usePalette} from 'lib/hooks/usePalette' import {ListCard} from 'view/com/lists/ListCard' -import {AppBskyGraphDefs} from '@atproto/api' -import {s} from 'lib/styles' export function ListEmbed({ item, diff --git a/src/view/com/util/post-embeds/QuoteEmbed.tsx b/src/view/com/util/post-embeds/QuoteEmbed.tsx index 35b0912698..b3b24192b7 100644 --- a/src/view/com/util/post-embeds/QuoteEmbed.tsx +++ b/src/view/com/util/post-embeds/QuoteEmbed.tsx @@ -1,27 +1,29 @@ -import React from 'react' -import {StyleProp, StyleSheet, View, ViewStyle} from 'react-native' import { - AppBskyEmbedRecord, - AppBskyFeedPost, + AppBskyEmbedExternal, AppBskyEmbedImages, + AppBskyEmbedRecord, AppBskyEmbedRecordWithMedia, + AppBskyFeedPost, ModerationUI, - AppBskyEmbedExternal, RichText as RichTextAPI, } from '@atproto/api' import {AtUri} from '@atproto/api' -import {PostMeta} from '../PostMeta' -import {Link} from '../Link' -import {Text} from '../text/Text' +import {Trans} from '@lingui/macro' import {usePalette} from 'lib/hooks/usePalette' -import {ComposerOptsQuote} from 'state/shell/composer' -import {PostEmbeds} from '.' -import {PostAlerts} from '../moderation/PostAlerts' -import {makeProfileLink} from 'lib/routes/links' import {InfoCircleIcon} from 'lib/icons' -import {Trans} from '@lingui/macro' -import {RichText} from '#/components/RichText' +import {makeProfileLink} from 'lib/routes/links' +import React from 'react' +import {StyleProp, StyleSheet, View, ViewStyle} from 'react-native' +import {ComposerOptsQuote} from 'state/shell/composer' + import {atoms as a} from '#/alf' +import {RichText} from '#/components/RichText' + +import {Link} from '../Link' +import {PostAlerts} from '../moderation/PostAlerts' +import {PostMeta} from '../PostMeta' +import {Text} from '../text/Text' +import {PostEmbeds} from '.' export function MaybeQuoteEmbed({ embed, diff --git a/src/view/com/util/post-embeds/index.tsx b/src/view/com/util/post-embeds/index.tsx index 7e235babb6..c2fabd2a03 100644 --- a/src/view/com/util/post-embeds/index.tsx +++ b/src/view/com/util/post-embeds/index.tsx @@ -1,16 +1,6 @@ -import React, {useCallback} from 'react' -import { - StyleSheet, - StyleProp, - View, - ViewStyle, - Text, - InteractionManager, -} from 'react-native' -import {Image} from 'expo-image' import { - AppBskyEmbedImages, AppBskyEmbedExternal, + AppBskyEmbedImages, AppBskyEmbedRecord, AppBskyEmbedRecordWithMedia, AppBskyFeedDefs, @@ -18,19 +8,31 @@ import { ModerationUI, PostModeration, } from '@atproto/api' -import {Link} from '../Link' -import {ImageLayoutGrid} from '../images/ImageLayoutGrid' -import {useLightboxControls, ImagesLightbox} from '#/state/lightbox' +import {Image} from 'expo-image' import {usePalette} from 'lib/hooks/usePalette' -import {ExternalLinkEmbed} from './ExternalLinkEmbed' -import {MaybeQuoteEmbed} from './QuoteEmbed' -import {AutoSizedImage} from '../images/AutoSizedImage' -import {ListEmbed} from './ListEmbed' import {isCauseALabelOnUri, isQuoteBlurred} from 'lib/moderation' +import React, {useCallback} from 'react' +import { + InteractionManager, + StyleProp, + StyleSheet, + Text, + View, + ViewStyle, +} from 'react-native' import {FeedSourceCard} from 'view/com/feeds/FeedSourceCard' -import {ContentHider} from '../moderation/ContentHider' -import {isNative} from '#/platform/detection' + import {shareUrl} from '#/lib/sharing' +import {isNative} from '#/platform/detection' +import {ImagesLightbox, useLightboxControls} from '#/state/lightbox' + +import {AutoSizedImage} from '../images/AutoSizedImage' +import {ImageLayoutGrid} from '../images/ImageLayoutGrid' +import {Link} from '../Link' +import {ContentHider} from '../moderation/ContentHider' +import {ExternalLinkEmbed} from './ExternalLinkEmbed' +import {ListEmbed} from './ListEmbed' +import {MaybeQuoteEmbed} from './QuoteEmbed' type Embed = | AppBskyEmbedRecord.View diff --git a/src/view/com/util/text/RichText.tsx b/src/view/com/util/text/RichText.tsx index f4ade30e55..5756db3245 100644 --- a/src/view/com/util/text/RichText.tsx +++ b/src/view/com/util/text/RichText.tsx @@ -1,16 +1,18 @@ -import React from 'react' -import {TextStyle, StyleProp} from 'react-native' -import {RichText as RichTextObj, AppBskyRichtextFacet} from '@atproto/api' -import {TextLink} from '../Link' -import {Text} from './Text' -import {lh} from 'lib/styles' -import {toShortUrl} from 'lib/strings/url-helpers' -import {useTheme, TypographyVariant} from 'lib/ThemeContext' +import {AppBskyRichtextFacet, RichText as RichTextObj} from '@atproto/api' import {usePalette} from 'lib/hooks/usePalette' import {makeTagLink} from 'lib/routes/links' +import {toShortUrl} from 'lib/strings/url-helpers' +import {lh} from 'lib/styles' +import {TypographyVariant, useTheme} from 'lib/ThemeContext' +import React from 'react' +import {StyleProp, TextStyle} from 'react-native' + import {TagMenu, useTagMenuControl} from '#/components/TagMenu' import {isNative} from '#/platform/detection' +import {TextLink} from '../Link' +import {Text} from './Text' + const WORD_WRAP = {wordWrap: 1} /** diff --git a/src/view/com/util/text/Text.tsx b/src/view/com/util/text/Text.tsx index ccb51bfca6..0dfa667fbc 100644 --- a/src/view/com/util/text/Text.tsx +++ b/src/view/com/util/text/Text.tsx @@ -1,8 +1,8 @@ +import {lh, s} from 'lib/styles' +import {TypographyVariant, useTheme} from 'lib/ThemeContext' +import {isIOS} from 'platform/detection' import React from 'react' import {Text as RNText, TextProps} from 'react-native' -import {s, lh} from 'lib/styles' -import {useTheme, TypographyVariant} from 'lib/ThemeContext' -import {isIOS} from 'platform/detection' import {UITextView} from 'react-native-ui-text-view' export type CustomTextProps = TextProps & { diff --git a/src/view/com/util/text/ThemedText.tsx b/src/view/com/util/text/ThemedText.tsx index 2844d273c2..27268472bf 100644 --- a/src/view/com/util/text/ThemedText.tsx +++ b/src/view/com/util/text/ThemedText.tsx @@ -1,7 +1,8 @@ -import React from 'react' -import {CustomTextProps, Text} from './Text' import {usePalette} from 'lib/hooks/usePalette' import {addStyle} from 'lib/styles' +import React from 'react' + +import {CustomTextProps, Text} from './Text' export type ThemedTextProps = CustomTextProps & { fg?: 'default' | 'light' | 'error' | 'inverted' | 'inverted-light' diff --git a/src/view/icons/Logo.tsx b/src/view/icons/Logo.tsx index 9212381a9e..d6d4c83215 100644 --- a/src/view/icons/Logo.tsx +++ b/src/view/icons/Logo.tsx @@ -1,12 +1,12 @@ import React from 'react' import {StyleSheet, TextProps} from 'react-native' import Svg, { - Path, Defs, LinearGradient, + Path, + PathProps, Stop, SvgProps, - PathProps, } from 'react-native-svg' import {colors} from '#/lib/styles' diff --git a/src/view/icons/Logotype.tsx b/src/view/icons/Logotype.tsx index 080c402fb3..d6c35f6d9e 100644 --- a/src/view/icons/Logotype.tsx +++ b/src/view/icons/Logotype.tsx @@ -1,5 +1,5 @@ import React from 'react' -import Svg, {Path, SvgProps, PathProps} from 'react-native-svg' +import Svg, {Path, PathProps, SvgProps} from 'react-native-svg' import {usePalette} from '#/lib/hooks/usePalette' diff --git a/src/view/icons/index.tsx b/src/view/icons/index.tsx index ede1e63355..570d1b53bc 100644 --- a/src/view/icons/index.tsx +++ b/src/view/icons/index.tsx @@ -1,63 +1,71 @@ import {library} from '@fortawesome/fontawesome-svg-core' - import {faAddressCard} from '@fortawesome/free-regular-svg-icons' +import {faBell as farBell} from '@fortawesome/free-regular-svg-icons/faBell' +import {faBookmark as farBookmark} from '@fortawesome/free-regular-svg-icons/faBookmark' +import {faCalendar as farCalendar} from '@fortawesome/free-regular-svg-icons/faCalendar' +import {faCircle} from '@fortawesome/free-regular-svg-icons/faCircle' +import {faCircleCheck as farCircleCheck} from '@fortawesome/free-regular-svg-icons/faCircleCheck' +import {faCirclePlay} from '@fortawesome/free-regular-svg-icons/faCirclePlay' +import {faCircleUser} from '@fortawesome/free-regular-svg-icons/faCircleUser' +import {faClone as farClone} from '@fortawesome/free-regular-svg-icons/faClone' +import {faComment} from '@fortawesome/free-regular-svg-icons/faComment' +import {faComments} from '@fortawesome/free-regular-svg-icons/faComments' +import {faCompass} from '@fortawesome/free-regular-svg-icons/faCompass' +import {faEyeSlash as farEyeSlash} from '@fortawesome/free-regular-svg-icons/faEyeSlash' +import {faFaceSmile} from '@fortawesome/free-regular-svg-icons/faFaceSmile' +import {faFloppyDisk} from '@fortawesome/free-regular-svg-icons/faFloppyDisk' +import {faHand as farHand} from '@fortawesome/free-regular-svg-icons/faHand' +import {faHeart} from '@fortawesome/free-regular-svg-icons/faHeart' +import {faImage as farImage} from '@fortawesome/free-regular-svg-icons/faImage' +import {faMessage} from '@fortawesome/free-regular-svg-icons/faMessage' +import {faPaste} from '@fortawesome/free-regular-svg-icons/faPaste' +import {faSquare} from '@fortawesome/free-regular-svg-icons/faSquare' +import {faSquareCheck} from '@fortawesome/free-regular-svg-icons/faSquareCheck' +import {faSquarePlus} from '@fortawesome/free-regular-svg-icons/faSquarePlus' +import {faTrashCan} from '@fortawesome/free-regular-svg-icons/faTrashCan' +import {faUser} from '@fortawesome/free-regular-svg-icons/faUser' +import {faFlask} from '@fortawesome/free-solid-svg-icons' import {faAngleDown} from '@fortawesome/free-solid-svg-icons/faAngleDown' import {faAngleLeft} from '@fortawesome/free-solid-svg-icons/faAngleLeft' import {faAngleRight} from '@fortawesome/free-solid-svg-icons/faAngleRight' import {faAngleUp} from '@fortawesome/free-solid-svg-icons/faAngleUp' +import {faArrowDown} from '@fortawesome/free-solid-svg-icons/faArrowDown' import {faArrowLeft} from '@fortawesome/free-solid-svg-icons/faArrowLeft' import {faArrowRight} from '@fortawesome/free-solid-svg-icons/faArrowRight' -import {faArrowUp} from '@fortawesome/free-solid-svg-icons/faArrowUp' -import {faArrowDown} from '@fortawesome/free-solid-svg-icons/faArrowDown' import {faArrowRightFromBracket} from '@fortawesome/free-solid-svg-icons/faArrowRightFromBracket' -import {faArrowUpFromBracket} from '@fortawesome/free-solid-svg-icons/faArrowUpFromBracket' -import {faArrowUpRightFromSquare} from '@fortawesome/free-solid-svg-icons/faArrowUpRightFromSquare' import {faArrowRotateLeft} from '@fortawesome/free-solid-svg-icons/faArrowRotateLeft' -import {faArrowTrendUp} from '@fortawesome/free-solid-svg-icons/faArrowTrendUp' import {faArrowsRotate} from '@fortawesome/free-solid-svg-icons/faArrowsRotate' +import {faArrowTrendUp} from '@fortawesome/free-solid-svg-icons/faArrowTrendUp' +import {faArrowUp} from '@fortawesome/free-solid-svg-icons/faArrowUp' +import {faArrowUpFromBracket} from '@fortawesome/free-solid-svg-icons/faArrowUpFromBracket' +import {faArrowUpRightFromSquare} from '@fortawesome/free-solid-svg-icons/faArrowUpRightFromSquare' import {faAt} from '@fortawesome/free-solid-svg-icons/faAt' -import {faBars} from '@fortawesome/free-solid-svg-icons/faBars' import {faBan} from '@fortawesome/free-solid-svg-icons/faBan' +import {faBars} from '@fortawesome/free-solid-svg-icons/faBars' import {faBell} from '@fortawesome/free-solid-svg-icons/faBell' -import {faBell as farBell} from '@fortawesome/free-regular-svg-icons/faBell' import {faBookmark} from '@fortawesome/free-solid-svg-icons/faBookmark' -import {faBookmark as farBookmark} from '@fortawesome/free-regular-svg-icons/faBookmark' -import {faCalendar as farCalendar} from '@fortawesome/free-regular-svg-icons/faCalendar' import {faCamera} from '@fortawesome/free-solid-svg-icons/faCamera' import {faCheck} from '@fortawesome/free-solid-svg-icons/faCheck' +import {faChevronDown} from '@fortawesome/free-solid-svg-icons/faChevronDown' import {faChevronRight} from '@fortawesome/free-solid-svg-icons/faChevronRight' -import {faCircle} from '@fortawesome/free-regular-svg-icons/faCircle' -import {faCircleCheck as farCircleCheck} from '@fortawesome/free-regular-svg-icons/faCircleCheck' import {faCircleCheck} from '@fortawesome/free-solid-svg-icons/faCircleCheck' import {faCircleDot} from '@fortawesome/free-solid-svg-icons/faCircleDot' import {faCircleExclamation} from '@fortawesome/free-solid-svg-icons/faCircleExclamation' -import {faCirclePlay} from '@fortawesome/free-regular-svg-icons/faCirclePlay' -import {faCircleUser} from '@fortawesome/free-regular-svg-icons/faCircleUser' import {faClone} from '@fortawesome/free-solid-svg-icons/faClone' -import {faClone as farClone} from '@fortawesome/free-regular-svg-icons/faClone' -import {faComment} from '@fortawesome/free-regular-svg-icons/faComment' import {faCommentSlash} from '@fortawesome/free-solid-svg-icons/faCommentSlash' -import {faComments} from '@fortawesome/free-regular-svg-icons/faComments' -import {faCompass} from '@fortawesome/free-regular-svg-icons/faCompass' import {faDownload} from '@fortawesome/free-solid-svg-icons/faDownload' import {faEllipsis} from '@fortawesome/free-solid-svg-icons/faEllipsis' import {faEnvelope} from '@fortawesome/free-solid-svg-icons/faEnvelope' import {faExclamation} from '@fortawesome/free-solid-svg-icons/faExclamation' import {faEye} from '@fortawesome/free-solid-svg-icons/faEye' -import {faEyeSlash as farEyeSlash} from '@fortawesome/free-regular-svg-icons/faEyeSlash' -import {faFaceSmile} from '@fortawesome/free-regular-svg-icons/faFaceSmile' +import {faFilter} from '@fortawesome/free-solid-svg-icons/faFilter' import {faFire} from '@fortawesome/free-solid-svg-icons/faFire' -import {faFlask} from '@fortawesome/free-solid-svg-icons' -import {faFloppyDisk} from '@fortawesome/free-regular-svg-icons/faFloppyDisk' import {faGear} from '@fortawesome/free-solid-svg-icons/faGear' import {faGlobe} from '@fortawesome/free-solid-svg-icons/faGlobe' import {faHand} from '@fortawesome/free-solid-svg-icons/faHand' -import {faHand as farHand} from '@fortawesome/free-regular-svg-icons/faHand' import {faHashtag} from '@fortawesome/free-solid-svg-icons/faHashtag' -import {faHeart} from '@fortawesome/free-regular-svg-icons/faHeart' import {faHeart as fasHeart} from '@fortawesome/free-solid-svg-icons/faHeart' import {faHouse} from '@fortawesome/free-solid-svg-icons/faHouse' -import {faImage as farImage} from '@fortawesome/free-regular-svg-icons/faImage' import {faImage} from '@fortawesome/free-solid-svg-icons/faImage' import {faInfo} from '@fortawesome/free-solid-svg-icons/faInfo' import {faLanguage} from '@fortawesome/free-solid-svg-icons/faLanguage' @@ -66,10 +74,8 @@ import {faList} from '@fortawesome/free-solid-svg-icons/faList' import {faListUl} from '@fortawesome/free-solid-svg-icons/faListUl' import {faLock} from '@fortawesome/free-solid-svg-icons/faLock' import {faMagnifyingGlass} from '@fortawesome/free-solid-svg-icons/faMagnifyingGlass' -import {faMessage} from '@fortawesome/free-regular-svg-icons/faMessage' import {faNoteSticky} from '@fortawesome/free-solid-svg-icons/faNoteSticky' import {faPause} from '@fortawesome/free-solid-svg-icons/faPause' -import {faPaste} from '@fortawesome/free-regular-svg-icons/faPaste' import {faPen} from '@fortawesome/free-solid-svg-icons/faPen' import {faPenNib} from '@fortawesome/free-solid-svg-icons/faPenNib' import {faPenToSquare} from '@fortawesome/free-solid-svg-icons/faPenToSquare' @@ -87,23 +93,16 @@ import {faShareFromSquare} from '@fortawesome/free-solid-svg-icons/faShareFromSq import {faShield} from '@fortawesome/free-solid-svg-icons/faShield' import {faSignal} from '@fortawesome/free-solid-svg-icons/faSignal' import {faSliders} from '@fortawesome/free-solid-svg-icons/faSliders' -import {faSquare} from '@fortawesome/free-regular-svg-icons/faSquare' -import {faSquareCheck} from '@fortawesome/free-regular-svg-icons/faSquareCheck' -import {faSquarePlus} from '@fortawesome/free-regular-svg-icons/faSquarePlus' import {faThumbtack} from '@fortawesome/free-solid-svg-icons/faThumbtack' import {faTicket} from '@fortawesome/free-solid-svg-icons/faTicket' -import {faTrashCan} from '@fortawesome/free-regular-svg-icons/faTrashCan' -import {faUser} from '@fortawesome/free-regular-svg-icons/faUser' -import {faUsers} from '@fortawesome/free-solid-svg-icons/faUsers' import {faUserCheck} from '@fortawesome/free-solid-svg-icons/faUserCheck' -import {faUserSlash} from '@fortawesome/free-solid-svg-icons/faUserSlash' import {faUserPlus} from '@fortawesome/free-solid-svg-icons/faUserPlus' -import {faUserXmark} from '@fortawesome/free-solid-svg-icons/faUserXmark' +import {faUsers} from '@fortawesome/free-solid-svg-icons/faUsers' +import {faUserSlash} from '@fortawesome/free-solid-svg-icons/faUserSlash' import {faUsersSlash} from '@fortawesome/free-solid-svg-icons/faUsersSlash' +import {faUserXmark} from '@fortawesome/free-solid-svg-icons/faUserXmark' import {faX} from '@fortawesome/free-solid-svg-icons/faX' import {faXmark} from '@fortawesome/free-solid-svg-icons/faXmark' -import {faChevronDown} from '@fortawesome/free-solid-svg-icons/faChevronDown' -import {faFilter} from '@fortawesome/free-solid-svg-icons/faFilter' library.add( faAddressCard, diff --git a/src/view/screens/AppPasswords.tsx b/src/view/screens/AppPasswords.tsx index dc439c3679..b28b992bb0 100644 --- a/src/view/screens/AppPasswords.tsx +++ b/src/view/screens/AppPasswords.tsx @@ -1,3 +1,12 @@ +import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {useFocusEffect} from '@react-navigation/native' +import {NativeStackScreenProps} from '@react-navigation/native-stack' +import {useAnalytics} from 'lib/analytics/analytics' +import {usePalette} from 'lib/hooks/usePalette' +import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' +import {CommonNavigatorParams} from 'lib/routes/types' import React from 'react' import { ActivityIndicator, @@ -5,30 +14,23 @@ import { TouchableOpacity, View, } from 'react-native' -import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' import {ScrollView} from 'react-native-gesture-handler' -import {Text} from '../com/util/text/Text' -import {Button} from '../com/util/forms/Button' -import * as Toast from '../com/util/Toast' -import {usePalette} from 'lib/hooks/usePalette' -import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {NativeStackScreenProps} from '@react-navigation/native-stack' -import {CommonNavigatorParams} from 'lib/routes/types' -import {useAnalytics} from 'lib/analytics/analytics' -import {useFocusEffect} from '@react-navigation/native' -import {ViewHeader} from '../com/util/ViewHeader' import {CenteredView} from 'view/com/util/Views' -import {Trans, msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {useSetMinimalShellMode} from '#/state/shell' + +import {cleanError} from '#/lib/strings/errors' import {useModalControls} from '#/state/modals' import {useLanguagePrefs} from '#/state/preferences' import { - useAppPasswordsQuery, useAppPasswordDeleteMutation, + useAppPasswordsQuery, } from '#/state/queries/app-passwords' +import {useSetMinimalShellMode} from '#/state/shell' + import {ErrorScreen} from '../com/util/error/ErrorScreen' -import {cleanError} from '#/lib/strings/errors' +import {Button} from '../com/util/forms/Button' +import {Text} from '../com/util/text/Text' +import * as Toast from '../com/util/Toast' +import {ViewHeader} from '../com/util/ViewHeader' type Props = NativeStackScreenProps export function AppPasswords({}: Props) { diff --git a/src/view/screens/CommunityGuidelines.tsx b/src/view/screens/CommunityGuidelines.tsx index f6c29a3b8d..e995b8795f 100644 --- a/src/view/screens/CommunityGuidelines.tsx +++ b/src/view/screens/CommunityGuidelines.tsx @@ -1,16 +1,18 @@ +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {useFocusEffect} from '@react-navigation/native' +import {usePalette} from 'lib/hooks/usePalette' +import {CommonNavigatorParams, NativeStackScreenProps} from 'lib/routes/types' +import {s} from 'lib/styles' import React from 'react' import {View} from 'react-native' -import {useFocusEffect} from '@react-navigation/native' -import {Text} from 'view/com/util/text/Text' import {TextLink} from 'view/com/util/Link' -import {NativeStackScreenProps, CommonNavigatorParams} from 'lib/routes/types' -import {ViewHeader} from '../com/util/ViewHeader' +import {Text} from 'view/com/util/text/Text' import {ScrollView} from 'view/com/util/Views' -import {usePalette} from 'lib/hooks/usePalette' -import {s} from 'lib/styles' + import {useSetMinimalShellMode} from '#/state/shell' -import {Trans, msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' + +import {ViewHeader} from '../com/util/ViewHeader' type Props = NativeStackScreenProps< CommonNavigatorParams, diff --git a/src/view/screens/CopyrightPolicy.tsx b/src/view/screens/CopyrightPolicy.tsx index 522a9e4dba..0288eaa4ea 100644 --- a/src/view/screens/CopyrightPolicy.tsx +++ b/src/view/screens/CopyrightPolicy.tsx @@ -1,16 +1,18 @@ +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {useFocusEffect} from '@react-navigation/native' +import {usePalette} from 'lib/hooks/usePalette' +import {CommonNavigatorParams, NativeStackScreenProps} from 'lib/routes/types' +import {s} from 'lib/styles' import React from 'react' import {View} from 'react-native' -import {useFocusEffect} from '@react-navigation/native' -import {Text} from 'view/com/util/text/Text' import {TextLink} from 'view/com/util/Link' -import {NativeStackScreenProps, CommonNavigatorParams} from 'lib/routes/types' -import {ViewHeader} from '../com/util/ViewHeader' +import {Text} from 'view/com/util/text/Text' import {ScrollView} from 'view/com/util/Views' -import {usePalette} from 'lib/hooks/usePalette' -import {s} from 'lib/styles' + import {useSetMinimalShellMode} from '#/state/shell' -import {Trans, msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' + +import {ViewHeader} from '../com/util/ViewHeader' type Props = NativeStackScreenProps export const CopyrightPolicyScreen = (_props: Props) => { diff --git a/src/view/screens/Debug.tsx b/src/view/screens/Debug.tsx index f26b1505a8..226e7a9f09 100644 --- a/src/view/screens/Debug.tsx +++ b/src/view/screens/Debug.tsx @@ -1,23 +1,24 @@ -import React from 'react' -import {ScrollView, View} from 'react-native' -import {NativeStackScreenProps, CommonNavigatorParams} from 'lib/routes/types' -import {ViewHeader} from '../com/util/ViewHeader' -import {ThemeProvider, PaletteColorName} from 'lib/ThemeContext' +import {msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' import {usePalette} from 'lib/hooks/usePalette' +import {CommonNavigatorParams, NativeStackScreenProps} from 'lib/routes/types' import {s} from 'lib/styles' +import {PaletteColorName, ThemeProvider} from 'lib/ThemeContext' +import React from 'react' +import {ScrollView, View} from 'react-native' import * as Toast from 'view/com/util/Toast' -import {Text} from '../com/util/text/Text' -import {ViewSelector} from '../com/util/ViewSelector' + import {EmptyState} from '../com/util/EmptyState' -import * as LoadingPlaceholder from '../com/util/LoadingPlaceholder' +import {ErrorMessage} from '../com/util/error/ErrorMessage' +import {ErrorScreen} from '../com/util/error/ErrorScreen' import {Button, ButtonType} from '../com/util/forms/Button' import {DropdownButton, DropdownItem} from '../com/util/forms/DropdownButton' -import {ToggleButton} from '../com/util/forms/ToggleButton' import {RadioGroup} from '../com/util/forms/RadioGroup' -import {ErrorScreen} from '../com/util/error/ErrorScreen' -import {ErrorMessage} from '../com/util/error/ErrorMessage' -import {msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' +import {ToggleButton} from '../com/util/forms/ToggleButton' +import * as LoadingPlaceholder from '../com/util/LoadingPlaceholder' +import {Text} from '../com/util/text/Text' +import {ViewHeader} from '../com/util/ViewHeader' +import {ViewSelector} from '../com/util/ViewSelector' const MAIN_VIEWS = ['Base', 'Controls', 'Error', 'Notifs'] diff --git a/src/view/screens/Feeds.tsx b/src/view/screens/Feeds.tsx index 2e3bf08db5..05377b8fb9 100644 --- a/src/view/screens/Feeds.tsx +++ b/src/view/screens/Feeds.tsx @@ -1,52 +1,53 @@ +import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' +import {FontAwesomeIconStyle} from '@fortawesome/react-native-fontawesome' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {useFocusEffect} from '@react-navigation/native' +import {HITSLOP_10} from 'lib/constants' +import {usePalette} from 'lib/hooks/usePalette' +import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' +import {CogIcon, ComposeIcon2, MagnifyingGlassIcon2} from 'lib/icons' +import {FeedsTabNavigatorParams, NativeStackScreenProps} from 'lib/routes/types' +import {cleanError} from 'lib/strings/errors' +import {s} from 'lib/styles' +import debounce from 'lodash.debounce' import React from 'react' import { ActivityIndicator, - StyleSheet, - View, type FlatList, Pressable, + StyleSheet, + View, } from 'react-native' -import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' -import {FontAwesomeIconStyle} from '@fortawesome/react-native-fontawesome' -import {ViewHeader} from 'view/com/util/ViewHeader' +import {FeedSourceCard} from 'view/com/feeds/FeedSourceCard' +import {ErrorMessage} from 'view/com/util/error/ErrorMessage' import {FAB} from 'view/com/util/fab/FAB' -import {Link} from 'view/com/util/Link' -import {NativeStackScreenProps, FeedsTabNavigatorParams} from 'lib/routes/types' -import {usePalette} from 'lib/hooks/usePalette' -import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {ComposeIcon2, CogIcon, MagnifyingGlassIcon2} from 'lib/icons' -import {s} from 'lib/styles' -import {atoms as a, useTheme} from '#/alf' import {SearchInput, SearchInputRef} from 'view/com/util/forms/SearchInput' -import {UserAvatar} from 'view/com/util/UserAvatar' +import {Link} from 'view/com/util/Link' +import {List} from 'view/com/util/List' import { - LoadingPlaceholder, FeedFeedLoadingPlaceholder, + LoadingPlaceholder, } from 'view/com/util/LoadingPlaceholder' -import {ErrorMessage} from 'view/com/util/error/ErrorMessage' -import debounce from 'lodash.debounce' import {Text} from 'view/com/util/text/Text' -import {List} from 'view/com/util/List' -import {useFocusEffect} from '@react-navigation/native' -import {FeedSourceCard} from 'view/com/feeds/FeedSourceCard' -import {Trans, msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {useSetMinimalShellMode} from '#/state/shell' -import {usePreferencesQuery} from '#/state/queries/preferences' +import {UserAvatar} from 'view/com/util/UserAvatar' +import {ViewHeader} from 'view/com/util/ViewHeader' + +import {atoms as a, useTheme} from '#/alf' +import {IconCircle} from '#/components/IconCircle' +import {ListMagnifyingGlass_Stroke2_Corner0_Rounded} from '#/components/icons/ListMagnifyingGlass' +import {ListSparkle_Stroke2_Corner0_Rounded} from '#/components/icons/ListSparkle' +import {isNative, isWeb} from '#/platform/detection' import { + getAvatarTypeFromUri, useFeedSourceInfoQuery, useGetPopularFeedsQuery, useSearchPopularFeedsMutation, - getAvatarTypeFromUri, } from '#/state/queries/feed' -import {cleanError} from 'lib/strings/errors' -import {useComposerControls} from '#/state/shell/composer' +import {usePreferencesQuery} from '#/state/queries/preferences' import {useSession} from '#/state/session' -import {isNative, isWeb} from '#/platform/detection' -import {HITSLOP_10} from 'lib/constants' -import {IconCircle} from '#/components/IconCircle' -import {ListSparkle_Stroke2_Corner0_Rounded} from '#/components/icons/ListSparkle' -import {ListMagnifyingGlass_Stroke2_Corner0_Rounded} from '#/components/icons/ListMagnifyingGlass' +import {useSetMinimalShellMode} from '#/state/shell' +import {useComposerControls} from '#/state/shell/composer' type Props = NativeStackScreenProps diff --git a/src/view/screens/Home.tsx b/src/view/screens/Home.tsx index 99ac8c44af..ad48d0aa1b 100644 --- a/src/view/screens/Home.tsx +++ b/src/view/screens/Home.tsx @@ -1,23 +1,25 @@ -import React from 'react' -import {View, ActivityIndicator, StyleSheet} from 'react-native' import {useFocusEffect} from '@react-navigation/native' -import {NativeStackScreenProps, HomeTabNavigatorParams} from 'lib/routes/types' -import {FeedDescriptor, FeedParams} from '#/state/queries/post-feed' +import {HomeTabNavigatorParams, NativeStackScreenProps} from 'lib/routes/types' +import React from 'react' +import {ActivityIndicator, StyleSheet, View} from 'react-native' +import {FeedPage} from 'view/com/feeds/FeedPage' +import {Pager, PagerRef, RenderTabBarFnProps} from 'view/com/pager/Pager' +import {CustomFeedEmptyState} from 'view/com/posts/CustomFeedEmptyState' import {FollowingEmptyState} from 'view/com/posts/FollowingEmptyState' import {FollowingEndOfFeed} from 'view/com/posts/FollowingEndOfFeed' -import {CustomFeedEmptyState} from 'view/com/posts/CustomFeedEmptyState' -import {HomeHeader} from '../com/home/HomeHeader' -import {Pager, RenderTabBarFnProps, PagerRef} from 'view/com/pager/Pager' -import {FeedPage} from 'view/com/feeds/FeedPage' -import {HomeLoggedOutCTA} from '../com/auth/HomeLoggedOutCTA' -import {useSetMinimalShellMode, useSetDrawerSwipeDisabled} from '#/state/shell' + +import {useSetTitle} from '#/lib/hooks/useSetTitle' +import {emitSoftReset} from '#/state/events' +import {FeedSourceInfo, usePinnedFeedsInfos} from '#/state/queries/feed' +import {FeedDescriptor, FeedParams} from '#/state/queries/post-feed' import {usePreferencesQuery} from '#/state/queries/preferences' -import {usePinnedFeedsInfos, FeedSourceInfo} from '#/state/queries/feed' import {UsePreferencesQueryResponse} from '#/state/queries/preferences/types' -import {emitSoftReset} from '#/state/events' import {useSession} from '#/state/session' +import {useSetDrawerSwipeDisabled, useSetMinimalShellMode} from '#/state/shell' import {useSelectedFeed, useSetSelectedFeed} from '#/state/shell/selected-feed' -import {useSetTitle} from '#/lib/hooks/useSetTitle' + +import {HomeLoggedOutCTA} from '../com/auth/HomeLoggedOutCTA' +import {HomeHeader} from '../com/home/HomeHeader' type Props = NativeStackScreenProps export function HomeScreen(props: Props) { diff --git a/src/view/screens/LanguageSettings.tsx b/src/view/screens/LanguageSettings.tsx index 819840a461..02251102aa 100644 --- a/src/view/screens/LanguageSettings.tsx +++ b/src/view/screens/LanguageSettings.tsx @@ -1,27 +1,29 @@ -import React from 'react' -import {StyleSheet, View} from 'react-native' -import {Text} from '../com/util/text/Text' -import {s} from 'lib/styles' -import {usePalette} from 'lib/hooks/usePalette' -import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {CommonNavigatorParams, NativeStackScreenProps} from 'lib/routes/types' -import {ViewHeader} from 'view/com/util/ViewHeader' -import {CenteredView} from 'view/com/util/Views' -import {Button} from 'view/com/util/forms/Button' import { FontAwesomeIcon, FontAwesomeIconStyle, } from '@fortawesome/react-native-fontawesome' -import {useAnalytics} from 'lib/analytics/analytics' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' import {useFocusEffect} from '@react-navigation/native' import {APP_LANGUAGES, LANGUAGES} from 'lib/../locale/languages' +import {useAnalytics} from 'lib/analytics/analytics' +import {usePalette} from 'lib/hooks/usePalette' +import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' +import {CommonNavigatorParams, NativeStackScreenProps} from 'lib/routes/types' +import {s} from 'lib/styles' +import React from 'react' +import {StyleSheet, View} from 'react-native' import RNPickerSelect, {PickerSelectProps} from 'react-native-picker-select' -import {useSetMinimalShellMode} from '#/state/shell' +import {Button} from 'view/com/util/forms/Button' +import {ViewHeader} from 'view/com/util/ViewHeader' +import {CenteredView} from 'view/com/util/Views' + +import {sanitizeAppLanguageSetting} from '#/locale/helpers' import {useModalControls} from '#/state/modals' import {useLanguagePrefs, useLanguagePrefsApi} from '#/state/preferences' -import {Trans, msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {sanitizeAppLanguageSetting} from '#/locale/helpers' +import {useSetMinimalShellMode} from '#/state/shell' + +import {Text} from '../com/util/text/Text' type Props = NativeStackScreenProps diff --git a/src/view/screens/Lists.tsx b/src/view/screens/Lists.tsx index bdd5dd9b78..d57e6a7145 100644 --- a/src/view/screens/Lists.tsx +++ b/src/view/screens/Lists.tsx @@ -1,20 +1,21 @@ -import React from 'react' -import {View} from 'react-native' -import {useFocusEffect, useNavigation} from '@react-navigation/native' -import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' import {AtUri} from '@atproto/api' -import {NativeStackScreenProps, CommonNavigatorParams} from 'lib/routes/types' -import {MyLists} from '#/view/com/lists/MyLists' -import {Text} from 'view/com/util/text/Text' -import {Button} from 'view/com/util/forms/Button' -import {NavigationProp} from 'lib/routes/types' +import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' +import {Trans} from '@lingui/macro' +import {useFocusEffect, useNavigation} from '@react-navigation/native' import {usePalette} from 'lib/hooks/usePalette' import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {SimpleViewHeader} from 'view/com/util/SimpleViewHeader' +import {CommonNavigatorParams, NativeStackScreenProps} from 'lib/routes/types' +import {NavigationProp} from 'lib/routes/types' import {s} from 'lib/styles' -import {useSetMinimalShellMode} from '#/state/shell' +import React from 'react' +import {View} from 'react-native' +import {Button} from 'view/com/util/forms/Button' +import {SimpleViewHeader} from 'view/com/util/SimpleViewHeader' +import {Text} from 'view/com/util/text/Text' + import {useModalControls} from '#/state/modals' -import {Trans} from '@lingui/macro' +import {useSetMinimalShellMode} from '#/state/shell' +import {MyLists} from '#/view/com/lists/MyLists' type Props = NativeStackScreenProps export function ListsScreen({}: Props) { diff --git a/src/view/screens/Log.tsx b/src/view/screens/Log.tsx index e727a1fb81..eabf66bf09 100644 --- a/src/view/screens/Log.tsx +++ b/src/view/screens/Log.tsx @@ -1,19 +1,21 @@ -import React from 'react' -import {StyleSheet, TouchableOpacity, View} from 'react-native' -import {useFocusEffect} from '@react-navigation/native' import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' -import {NativeStackScreenProps, CommonNavigatorParams} from 'lib/routes/types' -import {ScrollView} from '../com/util/Views' -import {s} from 'lib/styles' -import {ViewHeader} from '../com/util/ViewHeader' -import {Text} from '../com/util/text/Text' +import {msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {useFocusEffect} from '@react-navigation/native' import {usePalette} from 'lib/hooks/usePalette' -import {getEntries} from '#/logger/logDump' +import {CommonNavigatorParams, NativeStackScreenProps} from 'lib/routes/types' import {ago} from 'lib/strings/time' -import {useLingui} from '@lingui/react' -import {msg} from '@lingui/macro' +import {s} from 'lib/styles' +import React from 'react' +import {StyleSheet, TouchableOpacity, View} from 'react-native' + +import {getEntries} from '#/logger/logDump' import {useSetMinimalShellMode} from '#/state/shell' +import {Text} from '../com/util/text/Text' +import {ViewHeader} from '../com/util/ViewHeader' +import {ScrollView} from '../com/util/Views' + export function LogScreen({}: NativeStackScreenProps< CommonNavigatorParams, 'Log' diff --git a/src/view/screens/Moderation.tsx b/src/view/screens/Moderation.tsx index 928766c304..5b06ab845f 100644 --- a/src/view/screens/Moderation.tsx +++ b/src/view/screens/Moderation.tsx @@ -1,3 +1,16 @@ +import {ComAtprotoLabelDefs} from '@atproto/api' +import { + FontAwesomeIcon, + FontAwesomeIconStyle, +} from '@fortawesome/react-native-fontawesome' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {useFocusEffect} from '@react-navigation/native' +import {useAnalytics} from 'lib/analytics/analytics' +import {usePalette} from 'lib/hooks/usePalette' +import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' +import {CommonNavigatorParams, NativeStackScreenProps} from 'lib/routes/types' +import {s} from 'lib/styles' import React from 'react' import { ActivityIndicator, @@ -5,33 +18,22 @@ import { TouchableOpacity, View, } from 'react-native' -import {useFocusEffect} from '@react-navigation/native' -import { - FontAwesomeIcon, - FontAwesomeIconStyle, -} from '@fortawesome/react-native-fontawesome' -import {ComAtprotoLabelDefs} from '@atproto/api' -import {NativeStackScreenProps, CommonNavigatorParams} from 'lib/routes/types' -import {s} from 'lib/styles' -import {CenteredView} from '../com/util/Views' -import {ViewHeader} from '../com/util/ViewHeader' -import {Link, TextLink} from '../com/util/Link' -import {Text} from '../com/util/text/Text' -import {usePalette} from 'lib/hooks/usePalette' -import {useAnalytics} from 'lib/analytics/analytics' -import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {useSetMinimalShellMode} from '#/state/shell' + +import {useGlobalDialogsControlContext} from '#/components/dialogs/Context' import {useModalControls} from '#/state/modals' -import {Trans, msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {ToggleButton} from '../com/util/forms/ToggleButton' -import {useSession} from '#/state/session' import { useProfileQuery, useProfileUpdateMutation, } from '#/state/queries/profile' +import {useSession} from '#/state/session' +import {useSetMinimalShellMode} from '#/state/shell' + +import {ToggleButton} from '../com/util/forms/ToggleButton' +import {Link, TextLink} from '../com/util/Link' +import {Text} from '../com/util/text/Text' +import {ViewHeader} from '../com/util/ViewHeader' +import {CenteredView} from '../com/util/Views' import {ScrollView} from '../com/util/Views' -import {useGlobalDialogsControlContext} from '#/components/dialogs/Context' type Props = NativeStackScreenProps export function ModerationScreen({}: Props) { diff --git a/src/view/screens/ModerationBlockedAccounts.tsx b/src/view/screens/ModerationBlockedAccounts.tsx index 09d77987f9..9c25764f8a 100644 --- a/src/view/screens/ModerationBlockedAccounts.tsx +++ b/src/view/screens/ModerationBlockedAccounts.tsx @@ -1,3 +1,12 @@ +import {AppBskyActorDefs as ActorDefs} from '@atproto/api' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {useFocusEffect} from '@react-navigation/native' +import {NativeStackScreenProps} from '@react-navigation/native-stack' +import {useAnalytics} from 'lib/analytics/analytics' +import {usePalette} from 'lib/hooks/usePalette' +import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' +import {CommonNavigatorParams} from 'lib/routes/types' import React from 'react' import { ActivityIndicator, @@ -6,24 +15,17 @@ import { StyleSheet, View, } from 'react-native' -import {AppBskyActorDefs as ActorDefs} from '@atproto/api' -import {Text} from '../com/util/text/Text' -import {usePalette} from 'lib/hooks/usePalette' -import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {NativeStackScreenProps} from '@react-navigation/native-stack' -import {CommonNavigatorParams} from 'lib/routes/types' -import {useAnalytics} from 'lib/analytics/analytics' -import {useFocusEffect} from '@react-navigation/native' -import {ViewHeader} from '../com/util/ViewHeader' -import {CenteredView} from 'view/com/util/Views' -import {ErrorScreen} from '../com/util/error/ErrorScreen' import {ProfileCard} from 'view/com/profile/ProfileCard' +import {CenteredView} from 'view/com/util/Views' + +import {cleanError} from '#/lib/strings/errors' import {logger} from '#/logger' -import {useSetMinimalShellMode} from '#/state/shell' -import {Trans, msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' import {useMyBlockedAccountsQuery} from '#/state/queries/my-blocked-accounts' -import {cleanError} from '#/lib/strings/errors' +import {useSetMinimalShellMode} from '#/state/shell' + +import {ErrorScreen} from '../com/util/error/ErrorScreen' +import {Text} from '../com/util/text/Text' +import {ViewHeader} from '../com/util/ViewHeader' type Props = NativeStackScreenProps< CommonNavigatorParams, diff --git a/src/view/screens/ModerationModlists.tsx b/src/view/screens/ModerationModlists.tsx index b7d993acc7..6d9e413843 100644 --- a/src/view/screens/ModerationModlists.tsx +++ b/src/view/screens/ModerationModlists.tsx @@ -1,20 +1,21 @@ -import React from 'react' -import {View} from 'react-native' -import {useFocusEffect, useNavigation} from '@react-navigation/native' -import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' import {AtUri} from '@atproto/api' -import {NativeStackScreenProps, CommonNavigatorParams} from 'lib/routes/types' -import {MyLists} from '#/view/com/lists/MyLists' -import {Text} from 'view/com/util/text/Text' -import {Button} from 'view/com/util/forms/Button' -import {NavigationProp} from 'lib/routes/types' +import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' +import {Trans} from '@lingui/macro' +import {useFocusEffect, useNavigation} from '@react-navigation/native' import {usePalette} from 'lib/hooks/usePalette' import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {SimpleViewHeader} from 'view/com/util/SimpleViewHeader' +import {CommonNavigatorParams, NativeStackScreenProps} from 'lib/routes/types' +import {NavigationProp} from 'lib/routes/types' import {s} from 'lib/styles' -import {useSetMinimalShellMode} from '#/state/shell' +import React from 'react' +import {View} from 'react-native' +import {Button} from 'view/com/util/forms/Button' +import {SimpleViewHeader} from 'view/com/util/SimpleViewHeader' +import {Text} from 'view/com/util/text/Text' + import {useModalControls} from '#/state/modals' -import {Trans} from '@lingui/macro' +import {useSetMinimalShellMode} from '#/state/shell' +import {MyLists} from '#/view/com/lists/MyLists' type Props = NativeStackScreenProps export function ModerationModlistsScreen({}: Props) { diff --git a/src/view/screens/ModerationMutedAccounts.tsx b/src/view/screens/ModerationMutedAccounts.tsx index 1aff19dd3b..635c9f468d 100644 --- a/src/view/screens/ModerationMutedAccounts.tsx +++ b/src/view/screens/ModerationMutedAccounts.tsx @@ -1,3 +1,12 @@ +import {AppBskyActorDefs as ActorDefs} from '@atproto/api' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {useFocusEffect} from '@react-navigation/native' +import {NativeStackScreenProps} from '@react-navigation/native-stack' +import {useAnalytics} from 'lib/analytics/analytics' +import {usePalette} from 'lib/hooks/usePalette' +import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' +import {CommonNavigatorParams} from 'lib/routes/types' import React from 'react' import { ActivityIndicator, @@ -6,24 +15,17 @@ import { StyleSheet, View, } from 'react-native' -import {AppBskyActorDefs as ActorDefs} from '@atproto/api' -import {Text} from '../com/util/text/Text' -import {usePalette} from 'lib/hooks/usePalette' -import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {NativeStackScreenProps} from '@react-navigation/native-stack' -import {CommonNavigatorParams} from 'lib/routes/types' -import {useAnalytics} from 'lib/analytics/analytics' -import {useFocusEffect} from '@react-navigation/native' -import {ViewHeader} from '../com/util/ViewHeader' -import {CenteredView} from 'view/com/util/Views' -import {ErrorScreen} from '../com/util/error/ErrorScreen' import {ProfileCard} from 'view/com/profile/ProfileCard' +import {CenteredView} from 'view/com/util/Views' + +import {cleanError} from '#/lib/strings/errors' import {logger} from '#/logger' -import {useSetMinimalShellMode} from '#/state/shell' -import {Trans, msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' import {useMyMutedAccountsQuery} from '#/state/queries/my-muted-accounts' -import {cleanError} from '#/lib/strings/errors' +import {useSetMinimalShellMode} from '#/state/shell' + +import {ErrorScreen} from '../com/util/error/ErrorScreen' +import {Text} from '../com/util/text/Text' +import {ViewHeader} from '../com/util/ViewHeader' type Props = NativeStackScreenProps< CommonNavigatorParams, diff --git a/src/view/screens/NotFound.tsx b/src/view/screens/NotFound.tsx index dfa840abbc..d101a45b73 100644 --- a/src/view/screens/NotFound.tsx +++ b/src/view/screens/NotFound.tsx @@ -1,19 +1,21 @@ -import React from 'react' -import {StyleSheet, View} from 'react-native' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' import { - useNavigation, StackActions, useFocusEffect, + useNavigation, } from '@react-navigation/native' -import {ViewHeader} from '../com/util/ViewHeader' -import {Text} from '../com/util/text/Text' -import {Button} from 'view/com/util/forms/Button' -import {NavigationProp} from 'lib/routes/types' import {usePalette} from 'lib/hooks/usePalette' +import {NavigationProp} from 'lib/routes/types' import {s} from 'lib/styles' +import React from 'react' +import {StyleSheet, View} from 'react-native' +import {Button} from 'view/com/util/forms/Button' + import {useSetMinimalShellMode} from '#/state/shell' -import {Trans, msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' + +import {Text} from '../com/util/text/Text' +import {ViewHeader} from '../com/util/ViewHeader' export const NotFoundScreen = () => { const pal = usePalette('default') diff --git a/src/view/screens/Notifications.tsx b/src/view/screens/Notifications.tsx index 48c834a28f..030f73bd8a 100644 --- a/src/view/screens/Notifications.tsx +++ b/src/view/screens/Notifications.tsx @@ -1,38 +1,40 @@ -import React from 'react' -import {View} from 'react-native' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' import {useFocusEffect, useIsFocused} from '@react-navigation/native' import {useQueryClient} from '@tanstack/react-query' +import {useAnalytics} from 'lib/analytics/analytics' +import {usePalette} from 'lib/hooks/usePalette' +import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' +import {ComposeIcon2} from 'lib/icons' import { NativeStackScreenProps, NotificationsTabNavigatorParams, } from 'lib/routes/types' -import {ViewHeader} from '../com/util/ViewHeader' -import {Feed} from '../com/notifications/Feed' +import {colors, s} from 'lib/styles' +import React from 'react' +import {View} from 'react-native' import {TextLink} from 'view/com/util/Link' import {ListMethods} from 'view/com/util/List' import {LoadLatestBtn} from 'view/com/util/load-latest/LoadLatestBtn' -import {MainScrollProvider} from '../com/util/MainScrollProvider' -import {usePalette} from 'lib/hooks/usePalette' -import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {s, colors} from 'lib/styles' -import {useAnalytics} from 'lib/analytics/analytics' + +import {useNonReactiveCallback} from '#/lib/hooks/useNonReactiveCallback' import {logger} from '#/logger' -import {useSetMinimalShellMode} from '#/state/shell' -import {Trans, msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' +import {isNative} from '#/platform/detection' +import {emitSoftReset, listenSoftReset} from '#/state/events' +import {RQKEY as NOTIFS_RQKEY} from '#/state/queries/notifications/feed' import { useUnreadNotifications, useUnreadNotificationsApi, } from '#/state/queries/notifications/unread' -import {RQKEY as NOTIFS_RQKEY} from '#/state/queries/notifications/feed' -import {listenSoftReset, emitSoftReset} from '#/state/events' import {truncateAndInvalidate} from '#/state/queries/util' -import {useNonReactiveCallback} from '#/lib/hooks/useNonReactiveCallback' -import {isNative} from '#/platform/detection' -import {FAB} from '../com/util/fab/FAB' -import {ComposeIcon2} from 'lib/icons' +import {useSetMinimalShellMode} from '#/state/shell' import {useComposerControls} from '#/state/shell/composer' +import {Feed} from '../com/notifications/Feed' +import {FAB} from '../com/util/fab/FAB' +import {MainScrollProvider} from '../com/util/MainScrollProvider' +import {ViewHeader} from '../com/util/ViewHeader' + type Props = NativeStackScreenProps< NotificationsTabNavigatorParams, 'Notifications' diff --git a/src/view/screens/PostLikedBy.tsx b/src/view/screens/PostLikedBy.tsx index 604301544c..cfc1997f8d 100644 --- a/src/view/screens/PostLikedBy.tsx +++ b/src/view/screens/PostLikedBy.tsx @@ -1,13 +1,15 @@ -import React from 'react' -import {View} from 'react-native' +import {msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' import {useFocusEffect} from '@react-navigation/native' -import {NativeStackScreenProps, CommonNavigatorParams} from 'lib/routes/types' -import {ViewHeader} from '../com/util/ViewHeader' -import {PostLikedBy as PostLikedByComponent} from '../com/post-thread/PostLikedBy' +import {CommonNavigatorParams, NativeStackScreenProps} from 'lib/routes/types' import {makeRecordUri} from 'lib/strings/url-helpers' +import React from 'react' +import {View} from 'react-native' + import {useSetMinimalShellMode} from '#/state/shell' -import {msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' + +import {PostLikedBy as PostLikedByComponent} from '../com/post-thread/PostLikedBy' +import {ViewHeader} from '../com/util/ViewHeader' type Props = NativeStackScreenProps export const PostLikedByScreen = ({route}: Props) => { diff --git a/src/view/screens/PostRepostedBy.tsx b/src/view/screens/PostRepostedBy.tsx index 07017d6920..46beb7ed9f 100644 --- a/src/view/screens/PostRepostedBy.tsx +++ b/src/view/screens/PostRepostedBy.tsx @@ -1,13 +1,15 @@ -import React from 'react' -import {View} from 'react-native' +import {msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' import {useFocusEffect} from '@react-navigation/native' -import {NativeStackScreenProps, CommonNavigatorParams} from 'lib/routes/types' -import {ViewHeader} from '../com/util/ViewHeader' -import {PostRepostedBy as PostRepostedByComponent} from '../com/post-thread/PostRepostedBy' +import {CommonNavigatorParams, NativeStackScreenProps} from 'lib/routes/types' import {makeRecordUri} from 'lib/strings/url-helpers' +import React from 'react' +import {View} from 'react-native' + import {useSetMinimalShellMode} from '#/state/shell' -import {useLingui} from '@lingui/react' -import {msg} from '@lingui/macro' + +import {PostRepostedBy as PostRepostedByComponent} from '../com/post-thread/PostRepostedBy' +import {ViewHeader} from '../com/util/ViewHeader' type Props = NativeStackScreenProps export const PostRepostedByScreen = ({route}: Props) => { diff --git a/src/view/screens/PostThread.tsx b/src/view/screens/PostThread.tsx index aa09ab9ed7..5ae68db2e7 100644 --- a/src/view/screens/PostThread.tsx +++ b/src/view/screens/PostThread.tsx @@ -1,28 +1,30 @@ -import React from 'react' -import {StyleSheet, View} from 'react-native' -import Animated from 'react-native-reanimated' import {useFocusEffect} from '@react-navigation/native' import {useQueryClient} from '@tanstack/react-query' -import {NativeStackScreenProps, CommonNavigatorParams} from 'lib/routes/types' +import {useMinimalShellMode} from 'lib/hooks/useMinimalShellMode' +import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' +import {CommonNavigatorParams, NativeStackScreenProps} from 'lib/routes/types' import {makeRecordUri} from 'lib/strings/url-helpers' -import {PostThread as PostThreadComponent} from '../com/post-thread/PostThread' -import {ComposePrompt} from 'view/com/composer/Prompt' import {s} from 'lib/styles' +import {clamp} from 'lodash' +import React from 'react' +import {StyleSheet, View} from 'react-native' +import Animated from 'react-native-reanimated' import {useSafeAreaInsets} from 'react-native-safe-area-context' +import {ComposePrompt} from 'view/com/composer/Prompt' + +import {isWeb} from '#/platform/detection' import { RQKEY as POST_THREAD_RQKEY, ThreadNode, } from '#/state/queries/post-thread' -import {clamp} from 'lodash' -import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {useMinimalShellMode} from 'lib/hooks/useMinimalShellMode' -import {useSetMinimalShellMode} from '#/state/shell' import {useResolveUriQuery} from '#/state/queries/resolve-uri' +import {useSession} from '#/state/session' +import {useSetMinimalShellMode} from '#/state/shell' +import {useComposerControls} from '#/state/shell/composer' + +import {PostThread as PostThreadComponent} from '../com/post-thread/PostThread' import {ErrorMessage} from '../com/util/error/ErrorMessage' import {CenteredView} from '../com/util/Views' -import {useComposerControls} from '#/state/shell/composer' -import {useSession} from '#/state/session' -import {isWeb} from '#/platform/detection' type Props = NativeStackScreenProps export function PostThreadScreen({route}: Props) { diff --git a/src/view/screens/PreferencesExternalEmbeds.tsx b/src/view/screens/PreferencesExternalEmbeds.tsx index 1e8cedf7e2..668d7a7b1d 100644 --- a/src/view/screens/PreferencesExternalEmbeds.tsx +++ b/src/view/screens/PreferencesExternalEmbeds.tsx @@ -1,25 +1,27 @@ -import React from 'react' -import {StyleSheet, View} from 'react-native' +import {Trans} from '@lingui/macro' import {useFocusEffect} from '@react-navigation/native' -import {NativeStackScreenProps, CommonNavigatorParams} from 'lib/routes/types' -import {s} from 'lib/styles' -import {Text} from '../com/util/text/Text' -import {usePalette} from 'lib/hooks/usePalette' import {useAnalytics} from 'lib/analytics/analytics' +import {usePalette} from 'lib/hooks/usePalette' import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import { - EmbedPlayerSource, - externalEmbedLabels, -} from '#/lib/strings/embed-player' -import {useSetMinimalShellMode} from '#/state/shell' -import {Trans} from '@lingui/macro' -import {ScrollView} from '../com/util/Views' +import {CommonNavigatorParams, NativeStackScreenProps} from 'lib/routes/types' +import {s} from 'lib/styles' +import React from 'react' +import {StyleSheet, View} from 'react-native' import { useExternalEmbedsPrefs, useSetExternalEmbedPref, } from 'state/preferences' import {ToggleButton} from 'view/com/util/forms/ToggleButton' + +import { + EmbedPlayerSource, + externalEmbedLabels, +} from '#/lib/strings/embed-player' +import {useSetMinimalShellMode} from '#/state/shell' + import {SimpleViewHeader} from '../com/util/SimpleViewHeader' +import {Text} from '../com/util/text/Text' +import {ScrollView} from '../com/util/Views' type Props = NativeStackScreenProps< CommonNavigatorParams, diff --git a/src/view/screens/PreferencesFollowingFeed.tsx b/src/view/screens/PreferencesFollowingFeed.tsx index b4acbcd44c..4062bea011 100644 --- a/src/view/screens/PreferencesFollowingFeed.tsx +++ b/src/view/screens/PreferencesFollowingFeed.tsx @@ -1,24 +1,26 @@ -import React, {useState} from 'react' -import {ScrollView, StyleSheet, TouchableOpacity, View} from 'react-native' import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' import {Slider} from '@miblanchard/react-native-slider' -import {Text} from '../com/util/text/Text' -import {s, colors} from 'lib/styles' import {usePalette} from 'lib/hooks/usePalette' import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' +import {CommonNavigatorParams, NativeStackScreenProps} from 'lib/routes/types' +import {colors, s} from 'lib/styles' +import debounce from 'lodash.debounce' import {isWeb} from 'platform/detection' +import React, {useState} from 'react' +import {ScrollView, StyleSheet, TouchableOpacity, View} from 'react-native' import {ToggleButton} from 'view/com/util/forms/ToggleButton' -import {CommonNavigatorParams, NativeStackScreenProps} from 'lib/routes/types' import {ViewHeader} from 'view/com/util/ViewHeader' import {CenteredView} from 'view/com/util/Views' -import debounce from 'lodash.debounce' -import {Trans, msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' + import { usePreferencesQuery, useSetFeedViewPreferencesMutation, } from '#/state/queries/preferences' +import {Text} from '../com/util/text/Text' + function RepliesThresholdInput({ enabled, initialValue, diff --git a/src/view/screens/PreferencesThreads.tsx b/src/view/screens/PreferencesThreads.tsx index 321c672936..3e4abb7db7 100644 --- a/src/view/screens/PreferencesThreads.tsx +++ b/src/view/screens/PreferencesThreads.tsx @@ -1,3 +1,10 @@ +import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {usePalette} from 'lib/hooks/usePalette' +import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' +import {CommonNavigatorParams, NativeStackScreenProps} from 'lib/routes/types' +import {colors, s} from 'lib/styles' import React from 'react' import { ActivityIndicator, @@ -6,23 +13,18 @@ import { TouchableOpacity, View, } from 'react-native' -import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' -import {Text} from '../com/util/text/Text' -import {s, colors} from 'lib/styles' -import {usePalette} from 'lib/hooks/usePalette' -import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {ToggleButton} from 'view/com/util/forms/ToggleButton' import {RadioGroup} from 'view/com/util/forms/RadioGroup' -import {CommonNavigatorParams, NativeStackScreenProps} from 'lib/routes/types' +import {ToggleButton} from 'view/com/util/forms/ToggleButton' import {ViewHeader} from 'view/com/util/ViewHeader' import {CenteredView} from 'view/com/util/Views' -import {Trans, msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' + import { usePreferencesQuery, useSetThreadViewPreferencesMutation, } from '#/state/queries/preferences' +import {Text} from '../com/util/text/Text' + type Props = NativeStackScreenProps export function PreferencesThreads({navigation}: Props) { const pal = usePalette('default') diff --git a/src/view/screens/PrivacyPolicy.tsx b/src/view/screens/PrivacyPolicy.tsx index 776d83918c..ff92909c9b 100644 --- a/src/view/screens/PrivacyPolicy.tsx +++ b/src/view/screens/PrivacyPolicy.tsx @@ -1,16 +1,18 @@ +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {useFocusEffect} from '@react-navigation/native' +import {usePalette} from 'lib/hooks/usePalette' +import {CommonNavigatorParams, NativeStackScreenProps} from 'lib/routes/types' +import {s} from 'lib/styles' import React from 'react' import {View} from 'react-native' -import {useFocusEffect} from '@react-navigation/native' -import {Text} from 'view/com/util/text/Text' import {TextLink} from 'view/com/util/Link' -import {NativeStackScreenProps, CommonNavigatorParams} from 'lib/routes/types' -import {ViewHeader} from '../com/util/ViewHeader' +import {Text} from 'view/com/util/text/Text' import {ScrollView} from 'view/com/util/Views' -import {usePalette} from 'lib/hooks/usePalette' -import {s} from 'lib/styles' + import {useSetMinimalShellMode} from '#/state/shell' -import {Trans, msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' + +import {ViewHeader} from '../com/util/ViewHeader' type Props = NativeStackScreenProps export const PrivacyPolicyScreen = (_props: Props) => { diff --git a/src/view/screens/Profile.tsx b/src/view/screens/Profile.tsx index b30b4491bd..f2c0af855d 100644 --- a/src/view/screens/Profile.tsx +++ b/src/view/screens/Profile.tsx @@ -1,6 +1,3 @@ -import React, {useMemo} from 'react' -import {StyleSheet, View} from 'react-native' -import {useFocusEffect} from '@react-navigation/native' import { AppBskyActorDefs, moderateProfile, @@ -9,45 +6,50 @@ import { } from '@atproto/api' import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' -import {NativeStackScreenProps, CommonNavigatorParams} from 'lib/routes/types' -import {CenteredView} from '../com/util/Views' -import {ListRef} from '../com/util/List' -import {ScreenHider} from 'view/com/util/moderation/ScreenHider' -import {Feed} from 'view/com/posts/Feed' -import {ProfileLists} from '../com/lists/ProfileLists' -import {ProfileFeedgens} from '../com/feeds/ProfileFeedgens' -import {ProfileHeader, ProfileHeaderLoading} from '../com/profile/ProfileHeader' -import {PagerWithHeader} from 'view/com/pager/PagerWithHeader' -import {ErrorScreen} from '../com/util/error/ErrorScreen' -import {EmptyState} from '../com/util/EmptyState' -import {FAB} from '../com/util/fab/FAB' -import {s, colors} from 'lib/styles' +import {useFocusEffect} from '@react-navigation/native' +import {useQueryClient} from '@tanstack/react-query' import {useAnalytics} from 'lib/analytics/analytics' -import {ComposeIcon2} from 'lib/icons' +import {usePalette} from 'lib/hooks/usePalette' import {useSetTitle} from 'lib/hooks/useSetTitle' +import {ComposeIcon2} from 'lib/icons' +import {CommonNavigatorParams, NativeStackScreenProps} from 'lib/routes/types' import {combinedDisplayName} from 'lib/strings/display-names' +import {colors, s} from 'lib/styles' +import React, {useMemo} from 'react' +import {StyleSheet, View} from 'react-native' +import {PagerWithHeader} from 'view/com/pager/PagerWithHeader' +import {Feed} from 'view/com/posts/Feed' +import {ScreenHider} from 'view/com/util/moderation/ScreenHider' + +import {cleanError} from '#/lib/strings/errors' +import {isInvalidHandle} from '#/lib/strings/handles' +import {isNative} from '#/platform/detection' +import {useProfileShadow} from '#/state/cache/profile-shadow' +import {listenSoftReset} from '#/state/events' import { FeedDescriptor, resetProfilePostsQueries, } from '#/state/queries/post-feed' -import {useResolveDidQuery} from '#/state/queries/resolve-uri' -import {useProfileQuery} from '#/state/queries/profile' -import {useProfileShadow} from '#/state/cache/profile-shadow' -import {useSession, getAgent} from '#/state/session' +import {RQKEY as FEED_RQKEY} from '#/state/queries/post-feed' import {useModerationOpts} from '#/state/queries/preferences' +import {useProfileQuery} from '#/state/queries/profile' import {useProfileExtraInfoQuery} from '#/state/queries/profile-extra-info' -import {RQKEY as FEED_RQKEY} from '#/state/queries/post-feed' +import {useResolveDidQuery} from '#/state/queries/resolve-uri' +import {truncateAndInvalidate} from '#/state/queries/util' +import {getAgent, useSession} from '#/state/session' import {useSetDrawerSwipeDisabled, useSetMinimalShellMode} from '#/state/shell' -import {cleanError} from '#/lib/strings/errors' -import {LoadLatestBtn} from '../com/util/load-latest/LoadLatestBtn' -import {useQueryClient} from '@tanstack/react-query' import {useComposerControls} from '#/state/shell/composer' -import {listenSoftReset} from '#/state/events' -import {truncateAndInvalidate} from '#/state/queries/util' import {Text} from '#/view/com/util/text/Text' -import {usePalette} from 'lib/hooks/usePalette' -import {isNative} from '#/platform/detection' -import {isInvalidHandle} from '#/lib/strings/handles' + +import {ProfileFeedgens} from '../com/feeds/ProfileFeedgens' +import {ProfileLists} from '../com/lists/ProfileLists' +import {ProfileHeader, ProfileHeaderLoading} from '../com/profile/ProfileHeader' +import {EmptyState} from '../com/util/EmptyState' +import {ErrorScreen} from '../com/util/error/ErrorScreen' +import {FAB} from '../com/util/fab/FAB' +import {ListRef} from '../com/util/List' +import {LoadLatestBtn} from '../com/util/load-latest/LoadLatestBtn' +import {CenteredView} from '../com/util/Views' interface SectionRef { scrollToTop: () => void diff --git a/src/view/screens/ProfileFeed.tsx b/src/view/screens/ProfileFeed.tsx index b3a7328c17..87c8f82b75 100644 --- a/src/view/screens/ProfileFeed.tsx +++ b/src/view/screens/ProfileFeed.tsx @@ -1,70 +1,71 @@ -import React, {useMemo, useCallback} from 'react' -import {StyleSheet, View, Pressable} from 'react-native' -import {NativeStackScreenProps} from '@react-navigation/native-stack' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' import {useIsFocused, useNavigation} from '@react-navigation/native' +import {NativeStackScreenProps} from '@react-navigation/native-stack' import {useQueryClient} from '@tanstack/react-query' +import {useAnalytics} from 'lib/analytics/analytics' +import {Haptics} from 'lib/haptics' import {usePalette} from 'lib/hooks/usePalette' +import {useSetTitle} from 'lib/hooks/useSetTitle' +import {ComposeIcon2} from 'lib/icons' +import {makeCustomFeedLink} from 'lib/routes/links' import {CommonNavigatorParams} from 'lib/routes/types' +import {NavigationProp} from 'lib/routes/types' +import {shareUrl} from 'lib/sharing' +import {pluralize} from 'lib/strings/helpers' import {makeRecordUri} from 'lib/strings/url-helpers' +import {toShareUrl} from 'lib/strings/url-helpers' import {s} from 'lib/styles' -import {FeedDescriptor} from '#/state/queries/post-feed' +import React, {useCallback, useMemo} from 'react' +import {Pressable, StyleSheet, View} from 'react-native' import {PagerWithHeader} from 'view/com/pager/PagerWithHeader' -import {ProfileSubpageHeader} from 'view/com/profile/ProfileSubpageHeader' import {Feed} from 'view/com/posts/Feed' -import {InlineLink} from '#/components/Link' -import {ListRef} from 'view/com/util/List' +import {ProfileSubpageHeader} from 'view/com/profile/ProfileSubpageHeader' +import {EmptyState} from 'view/com/util/EmptyState' +import {FAB} from 'view/com/util/fab/FAB' import {Button} from 'view/com/util/forms/Button' -import {Text} from 'view/com/util/text/Text' -import {RichText} from '#/components/RichText' +import {ListRef} from 'view/com/util/List' import {LoadLatestBtn} from 'view/com/util/load-latest/LoadLatestBtn' -import {FAB} from 'view/com/util/fab/FAB' -import {EmptyState} from 'view/com/util/EmptyState' import {LoadingScreen} from 'view/com/util/LoadingScreen' +import {Text} from 'view/com/util/text/Text' import * as Toast from 'view/com/util/Toast' -import {useSetTitle} from 'lib/hooks/useSetTitle' -import {RQKEY as FEED_RQKEY} from '#/state/queries/post-feed' -import {shareUrl} from 'lib/sharing' -import {toShareUrl} from 'lib/strings/url-helpers' -import {Haptics} from 'lib/haptics' -import {useAnalytics} from 'lib/analytics/analytics' -import {makeCustomFeedLink} from 'lib/routes/links' -import {pluralize} from 'lib/strings/helpers' import {CenteredView} from 'view/com/util/Views' -import {NavigationProp} from 'lib/routes/types' -import {ComposeIcon2} from 'lib/icons' + +import {atoms as a, useTheme} from '#/alf' +import {Button as NewButton, ButtonText} from '#/components/Button' +import {ArrowOutOfBox_Stroke2_Corner0_Rounded as Share} from '#/components/icons/ArrowOutOfBox' +import {CircleInfo_Stroke2_Corner0_Rounded as CircleInfo} from '#/components/icons/CircleInfo' +import {DotGrid_Stroke2_Corner0_Rounded as Ellipsis} from '#/components/icons/DotGrid' +import { + Heart2_Filled_Stroke2_Corner0_Rounded as HeartFilled, + Heart2_Stroke2_Corner0_Rounded as HeartOutline, +} from '#/components/icons/Heart2' +import {PlusLarge_Stroke2_Corner0_Rounded as Plus} from '#/components/icons/Plus' +import {Trash_Stroke2_Corner0_Rounded as Trash} from '#/components/icons/Trash' +import {InlineLink} from '#/components/Link' +import * as Menu from '#/components/Menu' +import {RichText} from '#/components/RichText' +import {HITSLOP_20} from '#/lib/constants' import {logger} from '#/logger' -import {Trans, msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' +import {isNative} from '#/platform/detection' +import {listenSoftReset} from '#/state/events' import {useModalControls} from '#/state/modals' -import {useFeedSourceInfoQuery, FeedSourceFeedInfo} from '#/state/queries/feed' -import {useResolveUriQuery} from '#/state/queries/resolve-uri' +import {FeedSourceFeedInfo, useFeedSourceInfoQuery} from '#/state/queries/feed' +import {useLikeMutation, useUnlikeMutation} from '#/state/queries/like' +import {FeedDescriptor} from '#/state/queries/post-feed' +import {RQKEY as FEED_RQKEY} from '#/state/queries/post-feed' import { - UsePreferencesQueryResponse, + usePinFeedMutation, usePreferencesQuery, - useSaveFeedMutation, + UsePreferencesQueryResponse, useRemoveFeedMutation, - usePinFeedMutation, + useSaveFeedMutation, useUnpinFeedMutation, } from '#/state/queries/preferences' +import {useResolveUriQuery} from '#/state/queries/resolve-uri' +import {truncateAndInvalidate} from '#/state/queries/util' import {useSession} from '#/state/session' -import {useLikeMutation, useUnlikeMutation} from '#/state/queries/like' import {useComposerControls} from '#/state/shell/composer' -import {truncateAndInvalidate} from '#/state/queries/util' -import {isNative} from '#/platform/detection' -import {listenSoftReset} from '#/state/events' -import {atoms as a, useTheme} from '#/alf' -import * as Menu from '#/components/Menu' -import {HITSLOP_20} from '#/lib/constants' -import {DotGrid_Stroke2_Corner0_Rounded as Ellipsis} from '#/components/icons/DotGrid' -import {Trash_Stroke2_Corner0_Rounded as Trash} from '#/components/icons/Trash' -import {PlusLarge_Stroke2_Corner0_Rounded as Plus} from '#/components/icons/Plus' -import {CircleInfo_Stroke2_Corner0_Rounded as CircleInfo} from '#/components/icons/CircleInfo' -import {ArrowOutOfBox_Stroke2_Corner0_Rounded as Share} from '#/components/icons/ArrowOutOfBox' -import { - Heart2_Stroke2_Corner0_Rounded as HeartOutline, - Heart2_Filled_Stroke2_Corner0_Rounded as HeartFilled, -} from '#/components/icons/Heart2' -import {Button as NewButton, ButtonText} from '#/components/Button' const SECTION_TITLES = ['Posts'] diff --git a/src/view/screens/ProfileFeedLikedBy.tsx b/src/view/screens/ProfileFeedLikedBy.tsx index b1bcf48ba4..877378403d 100644 --- a/src/view/screens/ProfileFeedLikedBy.tsx +++ b/src/view/screens/ProfileFeedLikedBy.tsx @@ -1,13 +1,15 @@ -import React from 'react' -import {View} from 'react-native' +import {msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' import {useFocusEffect} from '@react-navigation/native' -import {NativeStackScreenProps, CommonNavigatorParams} from 'lib/routes/types' -import {ViewHeader} from '../com/util/ViewHeader' -import {PostLikedBy as PostLikedByComponent} from '../com/post-thread/PostLikedBy' +import {CommonNavigatorParams, NativeStackScreenProps} from 'lib/routes/types' import {makeRecordUri} from 'lib/strings/url-helpers' +import React from 'react' +import {View} from 'react-native' + import {useSetMinimalShellMode} from '#/state/shell' -import {useLingui} from '@lingui/react' -import {msg} from '@lingui/macro' + +import {PostLikedBy as PostLikedByComponent} from '../com/post-thread/PostLikedBy' +import {ViewHeader} from '../com/util/ViewHeader' type Props = NativeStackScreenProps export const ProfileFeedLikedByScreen = ({route}: Props) => { diff --git a/src/view/screens/ProfileFollowers.tsx b/src/view/screens/ProfileFollowers.tsx index 2cad08cb5d..7925837967 100644 --- a/src/view/screens/ProfileFollowers.tsx +++ b/src/view/screens/ProfileFollowers.tsx @@ -1,12 +1,14 @@ +import {msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {useFocusEffect} from '@react-navigation/native' +import {CommonNavigatorParams, NativeStackScreenProps} from 'lib/routes/types' import React from 'react' import {View} from 'react-native' -import {useFocusEffect} from '@react-navigation/native' -import {NativeStackScreenProps, CommonNavigatorParams} from 'lib/routes/types' -import {ViewHeader} from '../com/util/ViewHeader' -import {ProfileFollowers as ProfileFollowersComponent} from '../com/profile/ProfileFollowers' + import {useSetMinimalShellMode} from '#/state/shell' -import {useLingui} from '@lingui/react' -import {msg} from '@lingui/macro' + +import {ProfileFollowers as ProfileFollowersComponent} from '../com/profile/ProfileFollowers' +import {ViewHeader} from '../com/util/ViewHeader' type Props = NativeStackScreenProps export const ProfileFollowersScreen = ({route}: Props) => { diff --git a/src/view/screens/ProfileFollows.tsx b/src/view/screens/ProfileFollows.tsx index 80502b98bc..70fcfa9c6f 100644 --- a/src/view/screens/ProfileFollows.tsx +++ b/src/view/screens/ProfileFollows.tsx @@ -1,12 +1,14 @@ +import {msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {useFocusEffect} from '@react-navigation/native' +import {CommonNavigatorParams, NativeStackScreenProps} from 'lib/routes/types' import React from 'react' import {View} from 'react-native' -import {useFocusEffect} from '@react-navigation/native' -import {NativeStackScreenProps, CommonNavigatorParams} from 'lib/routes/types' -import {ViewHeader} from '../com/util/ViewHeader' -import {ProfileFollows as ProfileFollowsComponent} from '../com/profile/ProfileFollows' + import {useSetMinimalShellMode} from '#/state/shell' -import {useLingui} from '@lingui/react' -import {msg} from '@lingui/macro' + +import {ProfileFollows as ProfileFollowsComponent} from '../com/profile/ProfileFollows' +import {ViewHeader} from '../com/util/ViewHeader' type Props = NativeStackScreenProps export const ProfileFollowsScreen = ({route}: Props) => { diff --git a/src/view/screens/ProfileList.tsx b/src/view/screens/ProfileList.tsx index 9e98757efa..08644dccce 100644 --- a/src/view/screens/ProfileList.tsx +++ b/src/view/screens/ProfileList.tsx @@ -1,66 +1,67 @@ -import React, {useCallback, useMemo} from 'react' -import {Pressable, StyleSheet, View} from 'react-native' +import {AppBskyGraphDefs, AtUri, RichText as RichTextAPI} from '@atproto/api' +import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' import {useFocusEffect, useIsFocused} from '@react-navigation/native' -import {NativeStackScreenProps, CommonNavigatorParams} from 'lib/routes/types' import {useNavigation} from '@react-navigation/native' -import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' -import {AppBskyGraphDefs, AtUri, RichText as RichTextAPI} from '@atproto/api' import {useQueryClient} from '@tanstack/react-query' -import {PagerWithHeader} from 'view/com/pager/PagerWithHeader' -import {ProfileSubpageHeader} from 'view/com/profile/ProfileSubpageHeader' -import {Feed} from 'view/com/posts/Feed' -import {Text} from 'view/com/util/text/Text' -import {NativeDropdown, DropdownItem} from 'view/com/util/forms/NativeDropdown' -import {CenteredView} from 'view/com/util/Views' -import {EmptyState} from 'view/com/util/EmptyState' -import {LoadingScreen} from 'view/com/util/LoadingScreen' -import {RichText} from '#/components/RichText' -import {Button} from 'view/com/util/forms/Button' -import {TextLink} from 'view/com/util/Link' -import {ListRef} from 'view/com/util/List' -import * as Toast from 'view/com/util/Toast' -import {LoadLatestBtn} from 'view/com/util/load-latest/LoadLatestBtn' -import {FAB} from 'view/com/util/fab/FAB' import {Haptics} from 'lib/haptics' -import {FeedDescriptor} from '#/state/queries/post-feed' import {usePalette} from 'lib/hooks/usePalette' import {useSetTitle} from 'lib/hooks/useSetTitle' import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {RQKEY as FEED_RQKEY} from '#/state/queries/post-feed' +import {ComposeIcon2} from 'lib/icons' +import {makeListLink, makeProfileLink} from 'lib/routes/links' +import {CommonNavigatorParams, NativeStackScreenProps} from 'lib/routes/types' import {NavigationProp} from 'lib/routes/types' -import {toShareUrl} from 'lib/strings/url-helpers' import {shareUrl} from 'lib/sharing' -import {s} from 'lib/styles' import {sanitizeHandle} from 'lib/strings/handles' -import {makeProfileLink, makeListLink} from 'lib/routes/links' -import {ComposeIcon2} from 'lib/icons' -import {ListMembers} from '#/view/com/lists/ListMembers' -import {Trans, msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {useSetMinimalShellMode} from '#/state/shell' +import {toShareUrl} from 'lib/strings/url-helpers' +import {s} from 'lib/styles' +import React, {useCallback, useMemo} from 'react' +import {Pressable, StyleSheet, View} from 'react-native' +import {PagerWithHeader} from 'view/com/pager/PagerWithHeader' +import {Feed} from 'view/com/posts/Feed' +import {ProfileSubpageHeader} from 'view/com/profile/ProfileSubpageHeader' +import {EmptyState} from 'view/com/util/EmptyState' +import {FAB} from 'view/com/util/fab/FAB' +import {Button} from 'view/com/util/forms/Button' +import {DropdownItem, NativeDropdown} from 'view/com/util/forms/NativeDropdown' +import {TextLink} from 'view/com/util/Link' +import {ListRef} from 'view/com/util/List' +import {LoadLatestBtn} from 'view/com/util/load-latest/LoadLatestBtn' +import {LoadingScreen} from 'view/com/util/LoadingScreen' +import {Text} from 'view/com/util/text/Text' +import * as Toast from 'view/com/util/Toast' +import {CenteredView} from 'view/com/util/Views' + +import {atoms as a, useTheme} from '#/alf' +import {RichText} from '#/components/RichText' +import {useAnalytics} from '#/lib/analytics/analytics' +import {cleanError} from '#/lib/strings/errors' +import {logger} from '#/logger' +import {isNative, isWeb} from '#/platform/detection' +import {listenSoftReset} from '#/state/events' import {useModalControls} from '#/state/modals' -import {useResolveUriQuery} from '#/state/queries/resolve-uri' import { - useListQuery, - useListMuteMutation, useListBlockMutation, useListDeleteMutation, + useListMuteMutation, + useListQuery, } from '#/state/queries/list' -import {cleanError} from '#/lib/strings/errors' -import {useSession} from '#/state/session' -import {useComposerControls} from '#/state/shell/composer' -import {isNative, isWeb} from '#/platform/detection' -import {truncateAndInvalidate} from '#/state/queries/util' +import {FeedDescriptor} from '#/state/queries/post-feed' +import {RQKEY as FEED_RQKEY} from '#/state/queries/post-feed' import { - usePreferencesQuery, usePinFeedMutation, - useUnpinFeedMutation, + usePreferencesQuery, useSetSaveFeedsMutation, + useUnpinFeedMutation, } from '#/state/queries/preferences' -import {logger} from '#/logger' -import {useAnalytics} from '#/lib/analytics/analytics' -import {listenSoftReset} from '#/state/events' -import {atoms as a, useTheme} from '#/alf' +import {useResolveUriQuery} from '#/state/queries/resolve-uri' +import {truncateAndInvalidate} from '#/state/queries/util' +import {useSession} from '#/state/session' +import {useSetMinimalShellMode} from '#/state/shell' +import {useComposerControls} from '#/state/shell/composer' +import {ListMembers} from '#/view/com/lists/ListMembers' const SECTION_TITLES_CURATE = ['Posts', 'About'] const SECTION_TITLES_MOD = ['About'] diff --git a/src/view/screens/SavedFeeds.tsx b/src/view/screens/SavedFeeds.tsx index 251c706384..b58f9f4f15 100644 --- a/src/view/screens/SavedFeeds.tsx +++ b/src/view/screens/SavedFeeds.tsx @@ -1,31 +1,32 @@ -import React from 'react' -import {StyleSheet, View, ActivityIndicator, Pressable} from 'react-native' +import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' import {useFocusEffect} from '@react-navigation/native' import {NativeStackScreenProps} from '@react-navigation/native-stack' -import {track} from '#/lib/analytics/analytics' import {useAnalytics} from 'lib/analytics/analytics' +import {Haptics} from 'lib/haptics' import {usePalette} from 'lib/hooks/usePalette' -import {CommonNavigatorParams} from 'lib/routes/types' import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {ViewHeader} from 'view/com/util/ViewHeader' -import {ScrollView, CenteredView} from 'view/com/util/Views' -import {Text} from 'view/com/util/text/Text' -import {s, colors} from 'lib/styles' +import {CommonNavigatorParams} from 'lib/routes/types' +import {colors, s} from 'lib/styles' +import React from 'react' +import {ActivityIndicator, Pressable, StyleSheet, View} from 'react-native' import {FeedSourceCard} from 'view/com/feeds/FeedSourceCard' -import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' -import * as Toast from 'view/com/util/Toast' -import {Haptics} from 'lib/haptics' import {TextLink} from 'view/com/util/Link' +import {Text} from 'view/com/util/text/Text' +import * as Toast from 'view/com/util/Toast' +import {ViewHeader} from 'view/com/util/ViewHeader' +import {CenteredView, ScrollView} from 'view/com/util/Views' + +import {track} from '#/lib/analytics/analytics' import {logger} from '#/logger' -import {useSetMinimalShellMode} from '#/state/shell' -import {Trans, msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' import { - usePreferencesQuery, usePinFeedMutation, - useUnpinFeedMutation, + usePreferencesQuery, useSetSaveFeedsMutation, + useUnpinFeedMutation, } from '#/state/queries/preferences' +import {useSetMinimalShellMode} from '#/state/shell' const HITSLOP_TOP = { top: 20, diff --git a/src/view/screens/Search/Search.tsx b/src/view/screens/Search/Search.tsx index 42eec53d31..d9d11c8104 100644 --- a/src/view/screens/Search/Search.tsx +++ b/src/view/screens/Search/Search.tsx @@ -1,59 +1,59 @@ -import React from 'react' -import { - View, - StyleSheet, - ActivityIndicator, - TextInput, - Pressable, - Platform, -} from 'react-native' -import {ScrollView, CenteredView} from '#/view/com/util/Views' -import {List} from '#/view/com/util/List' import {AppBskyActorDefs, AppBskyFeedDefs, moderateProfile} from '@atproto/api' -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' import { FontAwesomeIcon, FontAwesomeIconStyle, } from '@fortawesome/react-native-fontawesome' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import AsyncStorage from '@react-native-async-storage/async-storage' import {useFocusEffect, useNavigation} from '@react-navigation/native' - -import {logger} from '#/logger' +import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' import { NativeStackScreenProps, SearchTabNavigatorParams, } from 'lib/routes/types' -import {Text} from '#/view/com/util/text/Text' +import {useTheme} from 'lib/ThemeContext' +import React from 'react' +import { + ActivityIndicator, + Platform, + Pressable, + StyleSheet, + TextInput, + View, +} from 'react-native' import {ProfileCardFeedLoadingPlaceholder} from 'view/com/util/LoadingPlaceholder' -import {ProfileCardWithFollowBtn} from '#/view/com/profile/ProfileCard' -import {Post} from '#/view/com/post/Post' -import {Pager} from '#/view/com/pager/Pager' -import {TabBar} from '#/view/com/pager/TabBar' + +import {useAnalytics} from '#/lib/analytics/analytics' import {HITSLOP_10} from '#/lib/constants' -import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' import {usePalette} from '#/lib/hooks/usePalette' -import {useTheme} from 'lib/ThemeContext' -import {useSession} from '#/state/session' -import {useGetSuggestedFollowersByActor} from '#/state/queries/suggested-follows' -import {useSearchPostsQuery} from '#/state/queries/search-posts' -import {useActorSearch} from '#/state/queries/actor-search' -import {useActorAutocompleteFn} from '#/state/queries/actor-autocomplete' -import {useSetDrawerOpen} from '#/state/shell' -import {useAnalytics} from '#/lib/analytics/analytics' import {MagnifyingGlassIcon} from '#/lib/icons' +import {NavigationProp} from '#/lib/routes/types' +import {augmentSearchQuery} from '#/lib/strings/helpers' +import {s} from '#/lib/styles' +import {logger} from '#/logger' +import {isNative, isWeb} from '#/platform/detection' +import {listenSoftReset} from '#/state/events' +import {useActorAutocompleteFn} from '#/state/queries/actor-autocomplete' +import {useActorSearch} from '#/state/queries/actor-search' import {useModerationOpts} from '#/state/queries/preferences' +import {useSearchPostsQuery} from '#/state/queries/search-posts' +import {useGetSuggestedFollowersByActor} from '#/state/queries/suggested-follows' +import {useSession} from '#/state/session' +import {useSetDrawerOpen} from '#/state/shell' +import {useSetDrawerSwipeDisabled, useSetMinimalShellMode} from '#/state/shell' +import {Pager} from '#/view/com/pager/Pager' +import {TabBar} from '#/view/com/pager/TabBar' +import {Post} from '#/view/com/post/Post' +import {ProfileCardWithFollowBtn} from '#/view/com/profile/ProfileCard' +import {List} from '#/view/com/util/List' +import {Text} from '#/view/com/util/text/Text' +import {CenteredView, ScrollView} from '#/view/com/util/Views' import { MATCH_HANDLE, SearchLinkCard, SearchProfileCard, } from '#/view/shell/desktop/Search' -import {useSetMinimalShellMode, useSetDrawerSwipeDisabled} from '#/state/shell' -import {isNative, isWeb} from '#/platform/detection' -import {listenSoftReset} from '#/state/events' -import {s} from '#/lib/styles' -import AsyncStorage from '@react-native-async-storage/async-storage' -import {augmentSearchQuery} from '#/lib/strings/helpers' -import {NavigationProp} from '#/lib/routes/types' function Loader() { const pal = usePalette('default') diff --git a/src/view/screens/Settings/ExportCarDialog.tsx b/src/view/screens/Settings/ExportCarDialog.tsx index dca51c0dca..e4747c6966 100644 --- a/src/view/screens/Settings/ExportCarDialog.tsx +++ b/src/view/screens/Settings/ExportCarDialog.tsx @@ -1,13 +1,13 @@ +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' import React from 'react' import {View} from 'react-native' -import {useLingui} from '@lingui/react' -import {Trans, msg} from '@lingui/macro' import {atoms as a, useBreakpoints, useTheme} from '#/alf' -import * as Dialog from '#/components/Dialog' -import {Text, P} from '#/components/Typography' import {Button, ButtonText} from '#/components/Button' +import * as Dialog from '#/components/Dialog' import {InlineLink, Link} from '#/components/Link' +import {P, Text} from '#/components/Typography' import {getAgent, useSession} from '#/state/session' export function ExportCarDialog({ diff --git a/src/view/screens/Settings/index.tsx b/src/view/screens/Settings/index.tsx index 00b507a997..f25fca15a0 100644 --- a/src/view/screens/Settings/index.tsx +++ b/src/view/screens/Settings/index.tsx @@ -1,72 +1,73 @@ +import { + FontAwesomeIcon, + FontAwesomeIconStyle, +} from '@fortawesome/react-native-fontawesome' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import Clipboard from '@react-native-clipboard/clipboard' +import {useFocusEffect, useNavigation} from '@react-navigation/native' +import {useQueryClient} from '@tanstack/react-query' +import {useAnalytics} from 'lib/analytics/analytics' +import * as AppInfo from 'lib/app-info' +import {STATUS_PAGE_URL} from 'lib/constants' +import {useAccountSwitcher} from 'lib/hooks/useAccountSwitcher' +import {useCustomPalette} from 'lib/hooks/useCustomPalette' +import {usePalette} from 'lib/hooks/usePalette' +import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' +import {HandIcon, HashtagIcon} from 'lib/icons' +import {makeProfileLink} from 'lib/routes/links' +import {CommonNavigatorParams, NativeStackScreenProps} from 'lib/routes/types' +import {NavigationProp} from 'lib/routes/types' +import {colors, s} from 'lib/styles' import React from 'react' import { ActivityIndicator, Linking, Platform, - StyleSheet, Pressable, + StyleSheet, TextStyle, TouchableOpacity, View, ViewStyle, } from 'react-native' -import {useFocusEffect, useNavigation} from '@react-navigation/native' -import { - FontAwesomeIcon, - FontAwesomeIconStyle, -} from '@fortawesome/react-native-fontawesome' -import {NativeStackScreenProps, CommonNavigatorParams} from 'lib/routes/types' -import * as AppInfo from 'lib/app-info' -import {usePalette} from 'lib/hooks/usePalette' -import {useCustomPalette} from 'lib/hooks/useCustomPalette' -import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {useAccountSwitcher} from 'lib/hooks/useAccountSwitcher' -import {useAnalytics} from 'lib/analytics/analytics' -import {NavigationProp} from 'lib/routes/types' -import {HandIcon, HashtagIcon} from 'lib/icons' -import Clipboard from '@react-native-clipboard/clipboard' -import {makeProfileLink} from 'lib/routes/links' -import {RQKEY as RQKEY_PROFILE} from '#/state/queries/profile' +import {AccountDropdownBtn} from 'view/com/util/AccountDropdownBtn' +import {SelectableBtn} from 'view/com/util/forms/SelectableBtn' +import {ToggleButton} from 'view/com/util/forms/ToggleButton' +import {Link, TextLink} from 'view/com/util/Link' +import {SimpleViewHeader} from 'view/com/util/SimpleViewHeader' +import {Text} from 'view/com/util/text/Text' +import * as Toast from 'view/com/util/Toast' +import {UserAvatar} from 'view/com/util/UserAvatar' +import {ScrollView} from 'view/com/util/Views' + +import {useDialogControl} from '#/components/Dialog' +import {isNative} from '#/platform/detection' import {useModalControls} from '#/state/modals' -import { - useSetMinimalShellMode, - useThemePrefs, - useSetThemePrefs, - useOnboardingDispatch, -} from '#/state/shell' +import {clearLegacyStorage} from '#/state/persisted/legacy' +// TODO import {useInviteCodesQuery} from '#/state/queries/invites' +import {clear as clearStorage} from '#/state/persisted/store' import { useRequireAltTextEnabled, useSetRequireAltTextEnabled, } from '#/state/preferences' -import {useSession, useSessionApi, SessionAccount} from '#/state/session' -import {useProfileQuery} from '#/state/queries/profile' -import {useClearPreferencesMutation} from '#/state/queries/preferences' -// TODO import {useInviteCodesQuery} from '#/state/queries/invites' -import {clear as clearStorage} from '#/state/persisted/store' -import {clearLegacyStorage} from '#/state/persisted/legacy' -import {STATUS_PAGE_URL} from 'lib/constants' -import {Trans, msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {useQueryClient} from '@tanstack/react-query' -import {useLoggedOutViewControls} from '#/state/shell/logged-out' -import {useCloseAllActiveElements} from '#/state/util' import { useInAppBrowser, useSetInAppBrowser, } from '#/state/preferences/in-app-browser' -import {isNative} from '#/platform/detection' -import {useDialogControl} from '#/components/Dialog' +import {useClearPreferencesMutation} from '#/state/queries/preferences' +import {RQKEY as RQKEY_PROFILE} from '#/state/queries/profile' +import {useProfileQuery} from '#/state/queries/profile' +import {SessionAccount, useSession, useSessionApi} from '#/state/session' +import { + useOnboardingDispatch, + useSetMinimalShellMode, + useSetThemePrefs, + useThemePrefs, +} from '#/state/shell' +import {useLoggedOutViewControls} from '#/state/shell/logged-out' +import {useCloseAllActiveElements} from '#/state/util' -import {s, colors} from 'lib/styles' -import {ScrollView} from 'view/com/util/Views' -import {Link, TextLink} from 'view/com/util/Link' -import {Text} from 'view/com/util/text/Text' -import * as Toast from 'view/com/util/Toast' -import {UserAvatar} from 'view/com/util/UserAvatar' -import {ToggleButton} from 'view/com/util/forms/ToggleButton' -import {SelectableBtn} from 'view/com/util/forms/SelectableBtn' -import {AccountDropdownBtn} from 'view/com/util/AccountDropdownBtn' -import {SimpleViewHeader} from 'view/com/util/SimpleViewHeader' import {ExportCarDialog} from './ExportCarDialog' function SettingsAccountCard({account}: {account: SessionAccount}) { diff --git a/src/view/screens/Storybook/Breakpoints.tsx b/src/view/screens/Storybook/Breakpoints.tsx index 1b846d517c..5dd8a89fc0 100644 --- a/src/view/screens/Storybook/Breakpoints.tsx +++ b/src/view/screens/Storybook/Breakpoints.tsx @@ -1,8 +1,8 @@ import React from 'react' import {View} from 'react-native' -import {atoms as a, useTheme, useBreakpoints} from '#/alf' -import {Text, H3} from '#/components/Typography' +import {atoms as a, useBreakpoints, useTheme} from '#/alf' +import {H3, Text} from '#/components/Typography' export function Breakpoints() { const t = useTheme() diff --git a/src/view/screens/Storybook/Buttons.tsx b/src/view/screens/Storybook/Buttons.tsx index 320db13ff8..8a037844e2 100644 --- a/src/view/screens/Storybook/Buttons.tsx +++ b/src/view/screens/Storybook/Buttons.tsx @@ -4,15 +4,15 @@ import {View} from 'react-native' import {atoms as a} from '#/alf' import { Button, - ButtonVariant, ButtonColor, ButtonIcon, ButtonText, + ButtonVariant, } from '#/components/Button' -import {H1} from '#/components/Typography' import {ArrowTopRight_Stroke2_Corner0_Rounded as ArrowTopRight} from '#/components/icons/ArrowTopRight' import {ChevronLeft_Stroke2_Corner0_Rounded as ChevronLeft} from '#/components/icons/Chevron' import {Globe_Stroke2_Corner0_Rounded as Globe} from '#/components/icons/Globe' +import {H1} from '#/components/Typography' export function Buttons() { return ( diff --git a/src/view/screens/Storybook/Dialogs.tsx b/src/view/screens/Storybook/Dialogs.tsx index 09be124db5..af51c808f4 100644 --- a/src/view/screens/Storybook/Dialogs.tsx +++ b/src/view/screens/Storybook/Dialogs.tsx @@ -3,9 +3,9 @@ import {View} from 'react-native' import {atoms as a} from '#/alf' import {Button} from '#/components/Button' -import {H3, P} from '#/components/Typography' import * as Dialog from '#/components/Dialog' import * as Prompt from '#/components/Prompt' +import {H3, P} from '#/components/Typography' import {useDialogStateControlContext} from '#/state/dialogs' export function Dialogs() { diff --git a/src/view/screens/Storybook/Forms.tsx b/src/view/screens/Storybook/Forms.tsx index 2d5495d706..0904f6113d 100644 --- a/src/view/screens/Storybook/Forms.tsx +++ b/src/view/screens/Storybook/Forms.tsx @@ -2,13 +2,13 @@ import React from 'react' import {View} from 'react-native' import {atoms as a} from '#/alf' -import {H1, H3} from '#/components/Typography' -import * as TextField from '#/components/forms/TextField' +import {Button} from '#/components/Button' import {DateField, Label} from '#/components/forms/DateField' +import * as TextField from '#/components/forms/TextField' import * as Toggle from '#/components/forms/Toggle' import * as ToggleButton from '#/components/forms/ToggleButton' -import {Button} from '#/components/Button' import {Globe_Stroke2_Corner0_Rounded as Globe} from '#/components/icons/Globe' +import {H1, H3} from '#/components/Typography' export function Forms() { const [toggleGroupAValues, setToggleGroupAValues] = React.useState(['a']) diff --git a/src/view/screens/Storybook/Icons.tsx b/src/view/screens/Storybook/Icons.tsx index 9d7dc0aa8a..f411a726b3 100644 --- a/src/view/screens/Storybook/Icons.tsx +++ b/src/view/screens/Storybook/Icons.tsx @@ -2,11 +2,11 @@ import React from 'react' import {View} from 'react-native' import {atoms as a, useTheme} from '#/alf' -import {H1} from '#/components/Typography' -import {Globe_Stroke2_Corner0_Rounded as Globe} from '#/components/icons/Globe' import {ArrowTopRight_Stroke2_Corner0_Rounded as ArrowTopRight} from '#/components/icons/ArrowTopRight' import {CalendarDays_Stroke2_Corner0_Rounded as CalendarDays} from '#/components/icons/CalendarDays' +import {Globe_Stroke2_Corner0_Rounded as Globe} from '#/components/icons/Globe' import {Loader} from '#/components/Loader' +import {H1} from '#/components/Typography' export function Icons() { const t = useTheme() diff --git a/src/view/screens/Storybook/Links.tsx b/src/view/screens/Storybook/Links.tsx index f9ecfba554..db65d6fed1 100644 --- a/src/view/screens/Storybook/Links.tsx +++ b/src/view/screens/Storybook/Links.tsx @@ -1,7 +1,7 @@ import React from 'react' import {View} from 'react-native' -import {useTheme, atoms as a} from '#/alf' +import {atoms as a, useTheme} from '#/alf' import {ButtonText} from '#/components/Button' import {InlineLink, Link} from '#/components/Link' import {H1, Text} from '#/components/Typography' diff --git a/src/view/screens/Storybook/Menus.tsx b/src/view/screens/Storybook/Menus.tsx index 2f2b147215..3e5c74d86e 100644 --- a/src/view/screens/Storybook/Menus.tsx +++ b/src/view/screens/Storybook/Menus.tsx @@ -2,9 +2,9 @@ import React from 'react' import {View} from 'react-native' import {atoms as a, useTheme} from '#/alf' -import {Text} from '#/components/Typography' -import * as Menu from '#/components/Menu' import {MagnifyingGlass2_Stroke2_Corner0_Rounded as Search} from '#/components/icons/MagnifyingGlass2' +import * as Menu from '#/components/Menu' +import {Text} from '#/components/Typography' // import {useDialogStateControlContext} from '#/state/dialogs' export function Menus() { diff --git a/src/view/screens/Storybook/Spacing.tsx b/src/view/screens/Storybook/Spacing.tsx index d7faf93a80..9b97e92adc 100644 --- a/src/view/screens/Storybook/Spacing.tsx +++ b/src/view/screens/Storybook/Spacing.tsx @@ -2,7 +2,7 @@ import React from 'react' import {View} from 'react-native' import {atoms as a, useTheme} from '#/alf' -import {Text, H1} from '#/components/Typography' +import {H1, Text} from '#/components/Typography' export function Spacing() { const t = useTheme() diff --git a/src/view/screens/Storybook/Theming.tsx b/src/view/screens/Storybook/Theming.tsx index 5b6763370d..122a57cf8c 100644 --- a/src/view/screens/Storybook/Theming.tsx +++ b/src/view/screens/Storybook/Theming.tsx @@ -3,6 +3,7 @@ import {View} from 'react-native' import {atoms as a, useTheme} from '#/alf' import {Text} from '#/components/Typography' + import {Palette} from './Palette' export function Theming() { diff --git a/src/view/screens/Storybook/Typography.tsx b/src/view/screens/Storybook/Typography.tsx index f0d67c5281..03f86fd467 100644 --- a/src/view/screens/Storybook/Typography.tsx +++ b/src/view/screens/Storybook/Typography.tsx @@ -2,8 +2,8 @@ import React from 'react' import {View} from 'react-native' import {atoms as a} from '#/alf' -import {Text} from '#/components/Typography' import {RichText} from '#/components/RichText' +import {Text} from '#/components/Typography' export function Typography() { return ( diff --git a/src/view/screens/Storybook/index.tsx b/src/view/screens/Storybook/index.tsx index e43d756de5..e1a31c76a2 100644 --- a/src/view/screens/Storybook/index.tsx +++ b/src/view/screens/Storybook/index.tsx @@ -1,22 +1,22 @@ import React from 'react' import {View} from 'react-native' -import {CenteredView, ScrollView} from '#/view/com/util/Views' -import {atoms as a, useTheme, ThemeProvider} from '#/alf' -import {useSetThemePrefs} from '#/state/shell' +import {atoms as a, ThemeProvider, useTheme} from '#/alf' import {Button} from '#/components/Button' +import {useSetThemePrefs} from '#/state/shell' +import {CenteredView, ScrollView} from '#/view/com/util/Views' -import {Theming} from './Theming' -import {Typography} from './Typography' -import {Spacing} from './Spacing' +import {Breakpoints} from './Breakpoints' import {Buttons} from './Buttons' -import {Links} from './Links' -import {Forms} from './Forms' import {Dialogs} from './Dialogs' -import {Breakpoints} from './Breakpoints' -import {Shadows} from './Shadows' +import {Forms} from './Forms' import {Icons} from './Icons' +import {Links} from './Links' import {Menus} from './Menus' +import {Shadows} from './Shadows' +import {Spacing} from './Spacing' +import {Theming} from './Theming' +import {Typography} from './Typography' export function Storybook() { const t = useTheme() diff --git a/src/view/screens/Support.tsx b/src/view/screens/Support.tsx index 9e7d36ec7a..083a70d07d 100644 --- a/src/view/screens/Support.tsx +++ b/src/view/screens/Support.tsx @@ -1,17 +1,19 @@ +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {useFocusEffect} from '@react-navigation/native' +import {HELP_DESK_URL} from 'lib/constants' +import {usePalette} from 'lib/hooks/usePalette' +import {CommonNavigatorParams, NativeStackScreenProps} from 'lib/routes/types' +import {s} from 'lib/styles' import React from 'react' import {View} from 'react-native' -import {useFocusEffect} from '@react-navigation/native' -import {NativeStackScreenProps, CommonNavigatorParams} from 'lib/routes/types' -import {ViewHeader} from '../com/util/ViewHeader' -import {Text} from 'view/com/util/text/Text' import {TextLink} from 'view/com/util/Link' +import {Text} from 'view/com/util/text/Text' import {CenteredView} from 'view/com/util/Views' -import {usePalette} from 'lib/hooks/usePalette' -import {s} from 'lib/styles' -import {HELP_DESK_URL} from 'lib/constants' + import {useSetMinimalShellMode} from '#/state/shell' -import {Trans, msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' + +import {ViewHeader} from '../com/util/ViewHeader' type Props = NativeStackScreenProps export const SupportScreen = (_props: Props) => { diff --git a/src/view/screens/TermsOfService.tsx b/src/view/screens/TermsOfService.tsx index 47aa9f2688..307cd330e3 100644 --- a/src/view/screens/TermsOfService.tsx +++ b/src/view/screens/TermsOfService.tsx @@ -1,16 +1,18 @@ +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {useFocusEffect} from '@react-navigation/native' +import {usePalette} from 'lib/hooks/usePalette' +import {CommonNavigatorParams, NativeStackScreenProps} from 'lib/routes/types' +import {s} from 'lib/styles' import React from 'react' import {View} from 'react-native' -import {useFocusEffect} from '@react-navigation/native' -import {Text} from 'view/com/util/text/Text' import {TextLink} from 'view/com/util/Link' -import {NativeStackScreenProps, CommonNavigatorParams} from 'lib/routes/types' -import {ViewHeader} from '../com/util/ViewHeader' +import {Text} from 'view/com/util/text/Text' import {ScrollView} from 'view/com/util/Views' -import {usePalette} from 'lib/hooks/usePalette' -import {s} from 'lib/styles' + import {useSetMinimalShellMode} from '#/state/shell' -import {Trans, msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' + +import {ViewHeader} from '../com/util/ViewHeader' type Props = NativeStackScreenProps export const TermsOfServiceScreen = (_props: Props) => { diff --git a/src/view/shell/Composer.tsx b/src/view/shell/Composer.tsx index 1937fcb6ea..5ab9407f02 100644 --- a/src/view/shell/Composer.tsx +++ b/src/view/shell/Composer.tsx @@ -1,10 +1,11 @@ -import React, {useEffect} from 'react' +import {useAnimatedValue} from 'lib/hooks/useAnimatedValue' +import {usePalette} from 'lib/hooks/usePalette' import {observer} from 'mobx-react-lite' +import React, {useEffect} from 'react' import {Animated, Easing, Platform, StyleSheet, View} from 'react-native' -import {ComposePost} from '../com/composer/Composer' import {useComposerState} from 'state/shell/composer' -import {useAnimatedValue} from 'lib/hooks/useAnimatedValue' -import {usePalette} from 'lib/hooks/usePalette' + +import {ComposePost} from '../com/composer/Composer' export const Composer = observer(function ComposerImpl({ winHeight, diff --git a/src/view/shell/Composer.web.tsx b/src/view/shell/Composer.web.tsx index 00233f66af..c0b71a1c8e 100644 --- a/src/view/shell/Composer.web.tsx +++ b/src/view/shell/Composer.web.tsx @@ -1,16 +1,18 @@ +import {usePalette} from 'lib/hooks/usePalette' +import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' import React from 'react' import {StyleSheet, View} from 'react-native' import Animated, {FadeIn, FadeInDown, FadeOut} from 'react-native-reanimated' -import {ComposePost} from '../com/composer/Composer' import {useComposerState} from 'state/shell/composer' -import {usePalette} from 'lib/hooks/usePalette' -import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {useWebBodyScrollLock} from '#/lib/hooks/useWebBodyScrollLock' import { EmojiPicker, EmojiPickerState, } from 'view/com/composer/text-input/web/EmojiPicker.web' +import {useWebBodyScrollLock} from '#/lib/hooks/useWebBodyScrollLock' + +import {ComposePost} from '../com/composer/Composer' + const BOTTOM_BAR_HEIGHT = 61 export function Composer({}: {winHeight: number}) { diff --git a/src/view/shell/Drawer.tsx b/src/view/shell/Drawer.tsx index 2a37d1fe96..6bc9700ee1 100644 --- a/src/view/shell/Drawer.tsx +++ b/src/view/shell/Drawer.tsx @@ -1,57 +1,58 @@ -import React, {ComponentProps} from 'react' -import { - Linking, - SafeAreaView, - ScrollView, - StyleProp, - StyleSheet, - TouchableOpacity, - View, - ViewStyle, -} from 'react-native' -import {useNavigation, StackActions} from '@react-navigation/native' import { FontAwesomeIcon, FontAwesomeIconStyle, } from '@fortawesome/react-native-fontawesome' -import {s, colors} from 'lib/styles' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {StackActions, useNavigation} from '@react-navigation/native' +import {useAnalytics} from 'lib/analytics/analytics' import {FEEDBACK_FORM_URL, HELP_DESK_URL} from 'lib/constants' +import {useNavigationTabState} from 'lib/hooks/useNavigationTabState' +import {usePalette} from 'lib/hooks/usePalette' import { - HomeIcon, - HomeIconSolid, BellIcon, BellIconSolid, - UserIcon, CogIcon, + HandIcon, + HashtagIcon, + HomeIcon, + HomeIconSolid, + ListIcon, MagnifyingGlassIcon2, MagnifyingGlassIcon2Solid, + UserIcon, UserIconSolid, - HashtagIcon, - ListIcon, - HandIcon, } from 'lib/icons' -import {UserAvatar} from 'view/com/util/UserAvatar' -import {Text} from 'view/com/util/text/Text' -import {useTheme} from 'lib/ThemeContext' -import {usePalette} from 'lib/hooks/usePalette' -import {useAnalytics} from 'lib/analytics/analytics' -import {pluralize} from 'lib/strings/helpers' import {getTabState, TabState} from 'lib/routes/helpers' import {NavigationProp} from 'lib/routes/types' -import {useNavigationTabState} from 'lib/hooks/useNavigationTabState' +import {pluralize} from 'lib/strings/helpers' +import {colors, s} from 'lib/styles' +import {useTheme} from 'lib/ThemeContext' import {isWeb} from 'platform/detection' +import React, {ComponentProps} from 'react' +import { + Linking, + SafeAreaView, + ScrollView, + StyleProp, + StyleSheet, + TouchableOpacity, + View, + ViewStyle, +} from 'react-native' import {formatCountShortOnly} from 'view/com/util/numeric/format' -import {Trans, msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {useSetDrawerOpen} from '#/state/shell' -import {useSession, SessionAccount} from '#/state/session' -import {useProfileQuery} from '#/state/queries/profile' -import {useUnreadNotifications} from '#/state/queries/notifications/unread' +import {Text} from 'view/com/util/text/Text' +import {UserAvatar} from 'view/com/util/UserAvatar' + +import {useTheme as useAlfTheme} from '#/alf' import {emitSoftReset} from '#/state/events' +import {useUnreadNotifications} from '#/state/queries/notifications/unread' +import {useProfileQuery} from '#/state/queries/profile' +import {SessionAccount, useSession} from '#/state/session' +import {useSetDrawerOpen} from '#/state/shell' import {NavSignupCard} from '#/view/shell/NavSignupCard' -import {TextLink} from '../com/util/Link' -import {useTheme as useAlfTheme} from '#/alf' +import {TextLink} from '../com/util/Link' let DrawerProfileCard = ({ account, diff --git a/src/view/shell/NavSignupCard.tsx b/src/view/shell/NavSignupCard.tsx index bae37e8380..63d5ea2b0c 100644 --- a/src/view/shell/NavSignupCard.tsx +++ b/src/view/shell/NavSignupCard.tsx @@ -1,14 +1,14 @@ -import React from 'react' -import {View} from 'react-native' import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' - -import {s} from 'lib/styles' import {usePalette} from 'lib/hooks/usePalette' -import {Text} from '#/view/com/util/text/Text' -import {Button} from '#/view/com/util/forms/Button' +import {s} from 'lib/styles' +import React from 'react' +import {View} from 'react-native' + import {useLoggedOutViewControls} from '#/state/shell/logged-out' import {useCloseAllActiveElements} from '#/state/util' +import {Button} from '#/view/com/util/forms/Button' +import {Text} from '#/view/com/util/text/Text' import {Logo} from '#/view/icons/Logo' let NavSignupCard = ({}: {}): React.ReactNode => { diff --git a/src/view/shell/bottom-bar/BottomBar.tsx b/src/view/shell/bottom-bar/BottomBar.tsx index 115faa2965..70503f4c40 100644 --- a/src/view/shell/bottom-bar/BottomBar.tsx +++ b/src/view/shell/bottom-bar/BottomBar.tsx @@ -1,42 +1,44 @@ -import React, {ComponentProps} from 'react' -import {GestureResponderEvent, TouchableOpacity, View} from 'react-native' -import Animated from 'react-native-reanimated' -import {StackActions} from '@react-navigation/native' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' import {BottomTabBarProps} from '@react-navigation/bottom-tabs' -import {useSafeAreaInsets} from 'react-native-safe-area-context' -import {Text} from 'view/com/util/text/Text' +import {StackActions} from '@react-navigation/native' import {useAnalytics} from 'lib/analytics/analytics' -import {clamp} from 'lib/numbers' +import {useDedupe} from 'lib/hooks/useDedupe' +import {useMinimalShellMode} from 'lib/hooks/useMinimalShellMode' +import {useNavigationTabState} from 'lib/hooks/useNavigationTabState' +import {usePalette} from 'lib/hooks/usePalette' import { + BellIcon, + BellIconSolid, + HashtagIcon, HomeIcon, HomeIconSolid, MagnifyingGlassIcon2, MagnifyingGlassIcon2Solid, - HashtagIcon, - BellIcon, - BellIconSolid, } from 'lib/icons' -import {usePalette} from 'lib/hooks/usePalette' +import {clamp} from 'lib/numbers' import {getTabState, TabState} from 'lib/routes/helpers' -import {styles} from './BottomBarStyles' -import {useMinimalShellMode} from 'lib/hooks/useMinimalShellMode' -import {useNavigationTabState} from 'lib/hooks/useNavigationTabState' +import {s} from 'lib/styles' +import React, {ComponentProps} from 'react' +import {GestureResponderEvent, TouchableOpacity, View} from 'react-native' +import Animated from 'react-native-reanimated' +import {useSafeAreaInsets} from 'react-native-safe-area-context' +import {Text} from 'view/com/util/text/Text' import {UserAvatar} from 'view/com/util/UserAvatar' -import {useLingui} from '@lingui/react' -import {msg, Trans} from '@lingui/macro' + +import {emitSoftReset} from '#/state/events' import {useModalControls} from '#/state/modals' -import {useShellLayout} from '#/state/shell/shell-layout' import {useUnreadNotifications} from '#/state/queries/notifications/unread' -import {emitSoftReset} from '#/state/events' -import {useSession} from '#/state/session' import {useProfileQuery} from '#/state/queries/profile' +import {useSession} from '#/state/session' import {useLoggedOutViewControls} from '#/state/shell/logged-out' +import {useShellLayout} from '#/state/shell/shell-layout' import {useCloseAllActiveElements} from '#/state/util' import {Button} from '#/view/com/util/forms/Button' -import {s} from 'lib/styles' import {Logo} from '#/view/icons/Logo' import {Logotype} from '#/view/icons/Logotype' -import {useDedupe} from 'lib/hooks/useDedupe' + +import {styles} from './BottomBarStyles' type TabOptions = 'Home' | 'Search' | 'Notifications' | 'MyProfile' | 'Feeds' diff --git a/src/view/shell/bottom-bar/BottomBarStyles.tsx b/src/view/shell/bottom-bar/BottomBarStyles.tsx index f226406f5d..1e8347161a 100644 --- a/src/view/shell/bottom-bar/BottomBarStyles.tsx +++ b/src/view/shell/bottom-bar/BottomBarStyles.tsx @@ -1,5 +1,5 @@ -import {StyleSheet} from 'react-native' import {colors} from 'lib/styles' +import {StyleSheet} from 'react-native' export const styles = StyleSheet.create({ bottomBar: { diff --git a/src/view/shell/bottom-bar/BottomBarWeb.tsx b/src/view/shell/bottom-bar/BottomBarWeb.tsx index b330c4b808..582c92b02e 100644 --- a/src/view/shell/bottom-bar/BottomBarWeb.tsx +++ b/src/view/shell/bottom-bar/BottomBarWeb.tsx @@ -1,38 +1,40 @@ -import React from 'react' -import {usePalette} from 'lib/hooks/usePalette' -import {useNavigationState} from '@react-navigation/native' -import Animated from 'react-native-reanimated' -import {useSafeAreaInsets} from 'react-native-safe-area-context' -import {View} from 'react-native' import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' -import {getCurrentRoute, isTab} from 'lib/routes/helpers' -import {styles} from './BottomBarStyles' -import {clamp} from 'lib/numbers' +import {useNavigationState} from '@react-navigation/native' +import {useMinimalShellMode} from 'lib/hooks/useMinimalShellMode' +import {usePalette} from 'lib/hooks/usePalette' import { BellIcon, BellIconSolid, + HashtagIcon, HomeIcon, HomeIconSolid, MagnifyingGlassIcon2, MagnifyingGlassIcon2Solid, - HashtagIcon, UserIcon, UserIconSolid, } from 'lib/icons' -import {Link} from 'view/com/util/Link' -import {useMinimalShellMode} from 'lib/hooks/useMinimalShellMode' +import {clamp} from 'lib/numbers' +import {getCurrentRoute, isTab} from 'lib/routes/helpers' import {makeProfileLink} from 'lib/routes/links' import {CommonNavigatorParams} from 'lib/routes/types' +import {s} from 'lib/styles' +import React from 'react' +import {View} from 'react-native' +import Animated from 'react-native-reanimated' +import {useSafeAreaInsets} from 'react-native-safe-area-context' +import {Link} from 'view/com/util/Link' + import {useSession} from '#/state/session' import {useLoggedOutViewControls} from '#/state/shell/logged-out' import {useCloseAllActiveElements} from '#/state/util' import {Button} from '#/view/com/util/forms/Button' import {Text} from '#/view/com/util/text/Text' -import {s} from 'lib/styles' import {Logo} from '#/view/icons/Logo' import {Logotype} from '#/view/icons/Logotype' +import {styles} from './BottomBarStyles' + export function BottomBarWeb() { const {_} = useLingui() const {hasSession, currentAccount} = useSession() diff --git a/src/view/shell/createNativeStackNavigatorWithAuth.tsx b/src/view/shell/createNativeStackNavigatorWithAuth.tsx index 938213c313..968e149f63 100644 --- a/src/view/shell/createNativeStackNavigatorWithAuth.tsx +++ b/src/view/shell/createNativeStackNavigatorWithAuth.tsx @@ -1,11 +1,6 @@ -import * as React from 'react' -import {View} from 'react-native' -import {PWI_ENABLED, NEW_ONBOARDING_ENABLED} from '#/lib/build-flags' - // Based on @react-navigation/native-stack/src/createNativeStackNavigator.ts // MIT License // Copyright (c) 2017 React Navigation Contributors - import { createNavigatorFactory, EventArg, @@ -21,24 +16,28 @@ import type { NativeStackNavigationEventMap, NativeStackNavigationOptions, } from '@react-navigation/native-stack' -import type {NativeStackNavigatorProps} from '@react-navigation/native-stack/src/types' import {NativeStackView} from '@react-navigation/native-stack' +import type {NativeStackNavigatorProps} from '@react-navigation/native-stack/src/types' +import {isWeb} from 'platform/detection' +import * as React from 'react' +import {View} from 'react-native' -import {BottomBarWeb} from './bottom-bar/BottomBarWeb' -import {DesktopLeftNav} from './desktop/LeftNav' -import {DesktopRightNav} from './desktop/RightNav' +import {NEW_ONBOARDING_ENABLED, PWI_ENABLED} from '#/lib/build-flags' import {useWebMediaQueries} from '#/lib/hooks/useWebMediaQueries' +import {Deactivated} from '#/screens/Deactivated' +import {Onboarding as NewOnboarding} from '#/screens/Onboarding' +import {useSession} from '#/state/session' import {useOnboardingState} from '#/state/shell' import { useLoggedOutView, useLoggedOutViewControls, } from '#/state/shell/logged-out' -import {useSession} from '#/state/session' -import {isWeb} from 'platform/detection' -import {Deactivated} from '#/screens/Deactivated' + import {LoggedOut} from '../com/auth/LoggedOut' import {Onboarding} from '../com/auth/Onboarding' -import {Onboarding as NewOnboarding} from '#/screens/Onboarding' +import {BottomBarWeb} from './bottom-bar/BottomBarWeb' +import {DesktopLeftNav} from './desktop/LeftNav' +import {DesktopRightNav} from './desktop/RightNav' type NativeStackNavigationOptionsWithAuth = NativeStackNavigationOptions & { requireAuth?: boolean diff --git a/src/view/shell/desktop/Feeds.tsx b/src/view/shell/desktop/Feeds.tsx index f447490b36..22e1f9e67d 100644 --- a/src/view/shell/desktop/Feeds.tsx +++ b/src/view/shell/desktop/Feeds.tsx @@ -1,16 +1,17 @@ -import React from 'react' -import {View, StyleSheet} from 'react-native' -import {useNavigationState, useNavigation} from '@react-navigation/native' +import {msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {useNavigation, useNavigationState} from '@react-navigation/native' import {usePalette} from 'lib/hooks/usePalette' -import {TextLink} from 'view/com/util/Link' import {getCurrentRoute} from 'lib/routes/helpers' -import {useLingui} from '@lingui/react' -import {msg} from '@lingui/macro' -import {usePinnedFeedsInfos} from '#/state/queries/feed' -import {useSelectedFeed, useSetSelectedFeed} from '#/state/shell/selected-feed' -import {FeedDescriptor} from '#/state/queries/post-feed' import {NavigationProp} from 'lib/routes/types' +import React from 'react' +import {StyleSheet, View} from 'react-native' +import {TextLink} from 'view/com/util/Link' + import {emitSoftReset} from '#/state/events' +import {usePinnedFeedsInfos} from '#/state/queries/feed' +import {FeedDescriptor} from '#/state/queries/post-feed' +import {useSelectedFeed, useSetSelectedFeed} from '#/state/shell/selected-feed' export function DesktopFeeds() { const pal = usePalette('default') diff --git a/src/view/shell/desktop/LeftNav.tsx b/src/view/shell/desktop/LeftNav.tsx index c56ba941ed..f3340b7a73 100644 --- a/src/view/shell/desktop/LeftNav.tsx +++ b/src/view/shell/desktop/LeftNav.tsx @@ -1,52 +1,54 @@ -import React from 'react' -import {StyleSheet, TouchableOpacity, View} from 'react-native' -import {PressableWithHover} from 'view/com/util/PressableWithHover' +import { + FontAwesomeIcon, + FontAwesomeIconStyle, +} from '@fortawesome/react-native-fontawesome' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' import { useLinkProps, useNavigation, useNavigationState, } from '@react-navigation/native' -import { - FontAwesomeIcon, - FontAwesomeIconStyle, -} from '@fortawesome/react-native-fontawesome' -import {Text} from 'view/com/util/text/Text' -import {UserAvatar} from 'view/com/util/UserAvatar' -import {Link} from 'view/com/util/Link' -import {LoadingPlaceholder} from 'view/com/util/LoadingPlaceholder' import {usePalette} from 'lib/hooks/usePalette' import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {s, colors} from 'lib/styles' import { - HomeIcon, - HomeIconSolid, - MagnifyingGlassIcon2, - MagnifyingGlassIcon2Solid, BellIcon, BellIconSolid, - UserIcon, - UserIconSolid, CogIcon, CogIconSolid, ComposeIcon2, - ListIcon, - HashtagIcon, HandIcon, + HashtagIcon, + HomeIcon, + HomeIconSolid, + ListIcon, + MagnifyingGlassIcon2, + MagnifyingGlassIcon2Solid, + UserIcon, + UserIconSolid, } from 'lib/icons' -import {getCurrentRoute, isTab, isStateAtTabRoot} from 'lib/routes/helpers' -import {NavigationProp, CommonNavigatorParams} from 'lib/routes/types' -import {router} from '../../../routes' +import {getCurrentRoute, isStateAtTabRoot, isTab} from 'lib/routes/helpers' import {makeProfileLink} from 'lib/routes/links' -import {useLingui} from '@lingui/react' -import {Trans, msg} from '@lingui/macro' +import {CommonNavigatorParams, NavigationProp} from 'lib/routes/types' +import {colors, s} from 'lib/styles' +import React from 'react' +import {StyleSheet, TouchableOpacity, View} from 'react-native' +import {Link} from 'view/com/util/Link' +import {LoadingPlaceholder} from 'view/com/util/LoadingPlaceholder' +import {PressableWithHover} from 'view/com/util/PressableWithHover' +import {Text} from 'view/com/util/text/Text' +import {UserAvatar} from 'view/com/util/UserAvatar' + +import {isInvalidHandle} from '#/lib/strings/handles' +import {emitSoftReset} from '#/state/events' +import {useFetchHandle} from '#/state/queries/handle' +import {useUnreadNotifications} from '#/state/queries/notifications/unread' import {useProfileQuery} from '#/state/queries/profile' import {useSession} from '#/state/session' -import {useUnreadNotifications} from '#/state/queries/notifications/unread' import {useComposerControls} from '#/state/shell/composer' -import {useFetchHandle} from '#/state/queries/handle' -import {emitSoftReset} from '#/state/events' import {NavSignupCard} from '#/view/shell/NavSignupCard' -import {isInvalidHandle} from '#/lib/strings/handles' + +import {router} from '../../../routes' function ProfileCard() { const {currentAccount} = useSession() diff --git a/src/view/shell/desktop/RightNav.tsx b/src/view/shell/desktop/RightNav.tsx index c1f4987248..bfbb19f108 100644 --- a/src/view/shell/desktop/RightNav.tsx +++ b/src/view/shell/desktop/RightNav.tsx @@ -1,17 +1,19 @@ +import {msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {FEEDBACK_FORM_URL, HELP_DESK_URL} from 'lib/constants' +import {usePalette} from 'lib/hooks/usePalette' +import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' +import {s} from 'lib/styles' import React from 'react' import {StyleSheet, View} from 'react-native' -import {usePalette} from 'lib/hooks/usePalette' -import {DesktopSearch} from './Search' -import {DesktopFeeds} from './Feeds' -import {Text} from 'view/com/util/text/Text' import {TextLink} from 'view/com/util/Link' -import {FEEDBACK_FORM_URL, HELP_DESK_URL} from 'lib/constants' -import {s} from 'lib/styles' -import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {useLingui} from '@lingui/react' -import {msg} from '@lingui/macro' +import {Text} from 'view/com/util/text/Text' + import {useSession} from '#/state/session' +import {DesktopFeeds} from './Feeds' +import {DesktopSearch} from './Search' + export function DesktopRightNav({routeName}: {routeName: string}) { const pal = usePalette('default') const {_} = useLingui() diff --git a/src/view/shell/desktop/Search.tsx b/src/view/shell/desktop/Search.tsx index 4a94837338..043b9ff3c9 100644 --- a/src/view/shell/desktop/Search.tsx +++ b/src/view/shell/desktop/Search.tsx @@ -1,33 +1,33 @@ -import React from 'react' -import { - ViewStyle, - TextInput, - View, - StyleSheet, - TouchableOpacity, - ActivityIndicator, -} from 'react-native' -import {useNavigation, StackActions} from '@react-navigation/native' import { AppBskyActorDefs, moderateProfile, ProfileModeration, } from '@atproto/api' -import {Trans, msg} from '@lingui/macro' +import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' - -import {s} from '#/lib/styles' -import {sanitizeDisplayName} from '#/lib/strings/display-names' -import {sanitizeHandle} from '#/lib/strings/handles' -import {makeProfileLink} from '#/lib/routes/links' -import {Link} from '#/view/com/util/Link' +import {StackActions, useNavigation} from '@react-navigation/native' import {usePalette} from 'lib/hooks/usePalette' import {MagnifyingGlassIcon2} from 'lib/icons' import {NavigationProp} from 'lib/routes/types' +import React from 'react' +import { + ActivityIndicator, + StyleSheet, + TextInput, + TouchableOpacity, + View, + ViewStyle, +} from 'react-native' import {Text} from 'view/com/util/text/Text' -import {UserAvatar} from '#/view/com/util/UserAvatar' + +import {makeProfileLink} from '#/lib/routes/links' +import {sanitizeDisplayName} from '#/lib/strings/display-names' +import {sanitizeHandle} from '#/lib/strings/handles' +import {s} from '#/lib/styles' import {useActorAutocompleteFn} from '#/state/queries/actor-autocomplete' import {useModerationOpts} from '#/state/queries/preferences' +import {Link} from '#/view/com/util/Link' +import {UserAvatar} from '#/view/com/util/UserAvatar' export const MATCH_HANDLE = /@?([a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*(?:\.[a-zA-Z]{2,}))/ diff --git a/src/view/shell/index.tsx b/src/view/shell/index.tsx index 76a7f8fb3a..b207543785 100644 --- a/src/view/shell/index.tsx +++ b/src/view/shell/index.tsx @@ -1,37 +1,39 @@ -import React from 'react' +import {useNavigationState} from '@react-navigation/native' import {StatusBar} from 'expo-status-bar' +import {usePalette} from 'lib/hooks/usePalette' +import * as notifications from 'lib/notifications/notifications' +import {isStateAtTabRoot} from 'lib/routes/helpers' +import {useTheme} from 'lib/ThemeContext' +import {isAndroid} from 'platform/detection' +import React from 'react' import { + BackHandler, DimensionValue, StyleSheet, useWindowDimensions, View, - BackHandler, } from 'react-native' -import {useSafeAreaInsets} from 'react-native-safe-area-context' import {Drawer} from 'react-native-drawer-layout' -import {useNavigationState} from '@react-navigation/native' -import {ModalsContainer} from 'view/com/modals/Modal' +import Animated from 'react-native-reanimated' +import {useSafeAreaInsets} from 'react-native-safe-area-context' +import {useDialogStateContext} from 'state/dialogs' import {Lightbox} from 'view/com/lightbox/Lightbox' +import {ModalsContainer} from 'view/com/modals/Modal' import {ErrorBoundary} from 'view/com/util/ErrorBoundary' -import {DrawerContent} from './Drawer' -import {Composer} from './Composer' -import {useTheme} from 'lib/ThemeContext' -import {usePalette} from 'lib/hooks/usePalette' -import {RoutesContainer, TabsNavigator} from '../../Navigation' -import {isStateAtTabRoot} from 'lib/routes/helpers' + +import {MutedWordsDialog} from '#/components/dialogs/MutedWords' +import {Outlet as PortalOutlet} from '#/components/Portal' +import {useSession} from '#/state/session' import { useIsDrawerOpen, - useSetDrawerOpen, useIsDrawerSwipeDisabled, + useSetDrawerOpen, } from '#/state/shell' -import {isAndroid} from 'platform/detection' -import {useSession} from '#/state/session' import {useCloseAnyActiveElement} from '#/state/util' -import * as notifications from 'lib/notifications/notifications' -import {Outlet as PortalOutlet} from '#/components/Portal' -import {MutedWordsDialog} from '#/components/dialogs/MutedWords' -import {useDialogStateContext} from 'state/dialogs' -import Animated from 'react-native-reanimated' + +import {RoutesContainer, TabsNavigator} from '../../Navigation' +import {Composer} from './Composer' +import {DrawerContent} from './Drawer' function ShellInner() { const isDrawerOpen = useIsDrawerOpen() diff --git a/src/view/shell/index.web.tsx b/src/view/shell/index.web.tsx index 71dccb8c48..d5ac5b970b 100644 --- a/src/view/shell/index.web.tsx +++ b/src/view/shell/index.web.tsx @@ -1,22 +1,24 @@ +import {t} from '@lingui/macro' +import {useNavigation} from '@react-navigation/native' +import {useColorSchemeStyle} from 'lib/hooks/useColorSchemeStyle' +import {NavigationProp} from 'lib/routes/types' +import {colors, s} from 'lib/styles' import React, {useEffect} from 'react' -import {View, StyleSheet, TouchableOpacity} from 'react-native' -import {ErrorBoundary} from '../com/util/ErrorBoundary' +import {StyleSheet, TouchableOpacity, View} from 'react-native' + +import {MutedWordsDialog} from '#/components/dialogs/MutedWords' +import {Outlet as PortalOutlet} from '#/components/Portal' +import {useWebBodyScrollLock} from '#/lib/hooks/useWebBodyScrollLock' +import {useIsDrawerOpen, useSetDrawerOpen} from '#/state/shell' +import {useCloseAllActiveElements} from '#/state/util' + +import {useWebMediaQueries} from '../../lib/hooks/useWebMediaQueries' +import {FlatNavigator, RoutesContainer} from '../../Navigation' import {Lightbox} from '../com/lightbox/Lightbox' import {ModalsContainer} from '../com/modals/Modal' +import {ErrorBoundary} from '../com/util/ErrorBoundary' import {Composer} from './Composer.web' -import {useColorSchemeStyle} from 'lib/hooks/useColorSchemeStyle' -import {s, colors} from 'lib/styles' -import {RoutesContainer, FlatNavigator} from '../../Navigation' import {DrawerContent} from './Drawer' -import {useWebMediaQueries} from '../../lib/hooks/useWebMediaQueries' -import {useNavigation} from '@react-navigation/native' -import {NavigationProp} from 'lib/routes/types' -import {t} from '@lingui/macro' -import {useIsDrawerOpen, useSetDrawerOpen} from '#/state/shell' -import {useCloseAllActiveElements} from '#/state/util' -import {useWebBodyScrollLock} from '#/lib/hooks/useWebBodyScrollLock' -import {Outlet as PortalOutlet} from '#/components/Portal' -import {MutedWordsDialog} from '#/components/dialogs/MutedWords' function ShellInner() { const isDrawerOpen = useIsDrawerOpen() From 125ef1c75610c7add79f6a917bfa058f9265d5d4 Mon Sep 17 00:00:00 2001 From: Samuel Newman Date: Wed, 13 Mar 2024 01:55:14 +0000 Subject: [PATCH 004/222] Revert "run linter" This reverts commit 1512b5cf68e9e92801a894392569b444fd6af1d1. --- src/App.native.tsx | 64 +++++----- src/App.web.tsx | 42 +++---- src/Navigation.tsx | 113 +++++++++--------- src/Splash.tsx | 14 +-- src/alf/atoms.ts | 2 +- src/alf/index.tsx | 7 +- src/alf/themes.ts | 2 +- src/alf/tokens.ts | 4 +- src/alf/types.ts | 2 +- src/alf/util/useColorModeTheme.ts | 8 +- src/components/Button.tsx | 14 +-- src/components/Dialog/context.ts | 2 +- src/components/Dialog/index.tsx | 23 ++-- src/components/Dialog/index.web.tsx | 19 +-- src/components/Dialog/types.ts | 2 +- src/components/Divider.tsx | 3 +- src/components/IconCircle.tsx | 8 +- src/components/Link.tsx | 18 +-- src/components/Lists.tsx | 13 +- src/components/Loader.tsx | 4 +- src/components/Menu/index.tsx | 19 +-- src/components/Menu/index.web.tsx | 17 +-- src/components/Menu/types.ts | 6 +- src/components/Prompt.tsx | 9 +- src/components/RichText.tsx | 14 +-- src/components/TagMenu/index.tsx | 20 ++-- src/components/TagMenu/index.web.tsx | 16 +-- src/components/Typography.tsx | 4 +- src/components/dialogs/MutedWords.tsx | 39 +++--- .../forms/DateField/index.android.tsx | 17 +-- src/components/forms/DateField/index.tsx | 8 +- src/components/forms/DateField/index.web.tsx | 6 +- src/components/forms/TextField.tsx | 12 +- src/components/forms/Toggle.tsx | 6 +- src/components/forms/ToggleButton.tsx | 7 +- src/components/icons/TEMPLATE.tsx | 2 +- src/components/icons/common.ts | 2 +- src/lib/ThemeContext.tsx | 6 +- .../__tests__/moderatePost_wrapped.test.ts | 2 +- src/lib/analytics/analytics.tsx | 9 +- src/lib/analytics/analytics.web.tsx | 7 +- src/lib/api/api-polyfill.ts | 2 +- src/lib/api/feed-manip.ts | 7 +- src/lib/api/feed/author.ts | 4 +- src/lib/api/feed/custom.ts | 6 +- src/lib/api/feed/following.ts | 4 +- src/lib/api/feed/home.ts | 8 +- src/lib/api/feed/likes.ts | 4 +- src/lib/api/feed/list.ts | 4 +- src/lib/api/feed/merge.ts | 14 +-- src/lib/api/index.ts | 8 +- src/lib/app-info.ts | 2 +- src/lib/embeds.ts | 2 +- src/lib/hooks/useAccountSwitcher.ts | 8 +- .../useAnimatedScrollHandler_FIXED.web.ts | 2 +- src/lib/hooks/useCustomPalette.ts | 4 +- src/lib/hooks/useDraggableScrollView.ts | 6 +- src/lib/hooks/useIntentHandler.ts | 4 +- src/lib/hooks/useIsKeyboardVisible.ts | 4 +- src/lib/hooks/useMinimalShellMode.tsx | 1 - src/lib/hooks/useNavigationDeduped.ts | 6 +- src/lib/hooks/useOTAUpdate.ts | 3 +- src/lib/hooks/usePalette.ts | 3 +- src/lib/hooks/usePermissions.ts | 2 +- src/lib/hooks/useSetTitle.ts | 4 +- src/lib/hooks/useTabFocusEffect.ts | 2 +- src/lib/hooks/useToggleMutationQueue.ts | 2 +- src/lib/hooks/useWebBodyScrollLock.ts | 1 - src/lib/hooks/useWebMediaQueries.tsx | 2 +- src/lib/hooks/useWebScrollRestoration.ts | 2 +- src/lib/icons.tsx | 2 +- src/lib/link-meta/bsky.ts | 10 +- src/lib/link-meta/link-meta.ts | 5 +- src/lib/media/image-sizes.ts | 2 +- src/lib/media/manip.ts | 11 +- src/lib/media/manip.web.ts | 5 +- src/lib/media/picker.e2e.tsx | 5 +- src/lib/media/picker.shared.ts | 3 +- src/lib/media/picker.tsx | 3 +- src/lib/media/picker.web.tsx | 3 +- src/lib/moderatePost_wrapped.ts | 8 +- src/lib/moderation.ts | 2 +- src/lib/notifications/notifications.ts | 10 +- src/lib/react-query.ts | 3 +- src/lib/routes/helpers.ts | 3 +- src/lib/routes/router.ts | 2 +- src/lib/sentry.ts | 2 +- src/lib/sharing.ts | 5 +- src/lib/statsig/statsig.tsx | 3 +- src/lib/statsig/statsig.web.tsx | 3 +- src/lib/strings/display-names.ts | 1 - src/lib/strings/embed-player.ts | 2 +- src/lib/strings/rich-text-helpers.ts | 1 - src/lib/strings/rich-text-manip.ts | 1 - src/lib/strings/url-helpers.ts | 2 +- src/lib/styles.ts | 3 +- src/lib/themes.ts | 7 +- src/locale/__tests__/helpers.test.ts | 2 +- src/locale/helpers.ts | 3 +- src/locale/i18n.ts | 17 +-- src/locale/i18n.web.ts | 4 +- src/locale/i18nProvider.tsx | 5 +- src/logger/__tests__/logger.test.ts | 2 +- src/logger/index.ts | 2 +- src/platform/detection.ts | 2 +- src/platform/urls.tsx | 1 - src/screens/Deactivated.tsx | 18 +-- src/screens/Hashtag.tsx | 31 +++-- src/screens/Onboarding/Layout.tsx | 26 ++-- .../Onboarding/StepAlgoFeeds/FeedCard.tsx | 15 +-- .../Onboarding/StepAlgoFeeds/index.tsx | 19 +-- src/screens/Onboarding/StepFinished.tsx | 25 ++-- src/screens/Onboarding/StepFollowingFeed.tsx | 25 ++-- .../StepInterests/InterestButton.tsx | 5 +- .../Onboarding/StepInterests/index.tsx | 29 ++--- .../AdultContentEnabledPref.tsx | 14 +-- .../StepModeration/ModerationOption.tsx | 14 +-- .../Onboarding/StepModeration/index.tsx | 19 +-- .../SuggestedAccountCard.tsx | 10 +- .../StepSuggestedAccounts/index.tsx | 25 ++-- src/screens/Onboarding/StepTopicalFeeds.tsx | 19 +-- src/screens/Onboarding/index.tsx | 15 +-- src/screens/Onboarding/util.ts | 1 - src/state/cache/post-shadow.ts | 10 +- src/state/cache/profile-shadow.ts | 12 +- src/state/dialogs/index.tsx | 1 - src/state/invites.tsx | 1 - src/state/lightbox.tsx | 3 +- src/state/modals/index.tsx | 7 +- src/state/models/media/gallery.ts | 7 +- src/state/models/media/image.e2e.ts | 8 +- src/state/models/media/image.ts | 13 +- src/state/muted-threads.tsx | 3 +- src/state/persisted/__tests__/index.test.ts | 6 +- src/state/persisted/__tests__/migrate.test.ts | 8 +- src/state/persisted/__tests__/schema.test.ts | 2 +- src/state/persisted/index.ts | 7 +- src/state/persisted/legacy.ts | 2 +- src/state/persisted/schema.ts | 1 - src/state/persisted/store.ts | 2 +- src/state/preferences/alt-text-required.tsx | 1 - .../preferences/external-embeds-prefs.tsx | 3 +- src/state/preferences/feed-tuners.tsx | 4 +- src/state/preferences/hidden-posts.tsx | 1 - src/state/preferences/in-app-browser.tsx | 14 +-- src/state/preferences/index.tsx | 5 +- src/state/preferences/languages.tsx | 3 +- src/state/queries/actor-autocomplete.ts | 11 +- src/state/queries/actor-search.ts | 2 +- src/state/queries/app-passwords.ts | 3 +- src/state/queries/feed.ts | 24 ++-- src/state/queries/handle.ts | 4 +- src/state/queries/invites.ts | 4 +- src/state/queries/list-members.ts | 4 +- src/state/queries/list-memberships.ts | 4 +- src/state/queries/list.ts | 16 ++- src/state/queries/my-blocked-accounts.ts | 2 +- src/state/queries/my-follows.ts | 4 +- src/state/queries/my-lists.ts | 4 +- src/state/queries/my-muted-accounts.ts | 2 +- src/state/queries/notifications/feed.ts | 18 ++- src/state/queries/notifications/types.ts | 2 +- src/state/queries/notifications/unread.tsx | 20 ++-- src/state/queries/notifications/util.ts | 18 ++- src/state/queries/post-feed.ts | 32 +++-- src/state/queries/post-liked-by.ts | 2 +- src/state/queries/post-reposted-by.ts | 2 +- src/state/queries/post-thread.ts | 11 +- src/state/queries/post.ts | 11 +- src/state/queries/preferences/const.ts | 4 +- src/state/queries/preferences/index.ts | 32 ++--- src/state/queries/preferences/moderation.ts | 4 +- src/state/queries/preferences/types.ts | 4 +- src/state/queries/profile-extra-info.ts | 2 +- src/state/queries/profile-feedgens.ts | 2 +- src/state/queries/profile-followers.ts | 2 +- src/state/queries/profile-follows.ts | 4 +- src/state/queries/profile-lists.ts | 3 +- src/state/queries/profile.ts | 26 ++-- src/state/queries/resolve-uri.ts | 7 +- src/state/queries/search-posts.ts | 5 +- src/state/queries/suggested-feeds.ts | 4 +- src/state/queries/suggested-follows.ts | 12 +- src/state/queries/util.ts | 2 +- src/state/session/index.tsx | 11 +- src/state/shell/color-mode.tsx | 1 - src/state/shell/composer.tsx | 3 +- src/state/shell/index.tsx | 13 +- src/state/shell/onboarding.tsx | 3 +- src/state/shell/reminders.ts | 6 +- src/state/shell/selected-feed.tsx | 3 +- src/state/util.ts | 4 +- src/view/com/auth/HomeLoggedOutCTA.tsx | 14 +-- src/view/com/auth/LoggedOut.tsx | 27 ++--- src/view/com/auth/Onboarding.tsx | 14 +-- src/view/com/auth/SplashScreen.tsx | 28 ++--- src/view/com/auth/SplashScreen.web.tsx | 28 ++--- src/view/com/auth/create/CaptchaWebView.tsx | 2 +- src/view/com/auth/create/CreateAccount.tsx | 25 ++-- src/view/com/auth/create/Policies.tsx | 11 +- src/view/com/auth/create/Step1.tsx | 35 +++--- src/view/com/auth/create/Step2.tsx | 24 ++-- src/view/com/auth/create/Step3.tsx | 20 ++-- src/view/com/auth/create/StepHeader.tsx | 5 +- src/view/com/auth/create/state.ts | 19 ++- src/view/com/auth/login/ChooseAccountForm.tsx | 20 ++-- .../com/auth/login/ForgotPasswordForm.tsx | 39 +++--- src/view/com/auth/login/Login.tsx | 22 ++-- src/view/com/auth/login/LoginForm.tsx | 39 +++--- .../com/auth/login/PasswordUpdatedForm.tsx | 11 +- .../com/auth/login/SetNewPasswordForm.tsx | 28 ++--- src/view/com/auth/login/styles.ts | 3 +- .../com/auth/onboarding/RecommendedFeeds.tsx | 22 ++-- .../auth/onboarding/RecommendedFeedsItem.tsx | 29 +++-- .../auth/onboarding/RecommendedFollows.tsx | 26 ++-- .../onboarding/RecommendedFollowsItem.tsx | 21 ++-- src/view/com/auth/onboarding/Welcome.tsx | 2 - .../com/auth/onboarding/WelcomeDesktop.tsx | 12 +- .../com/auth/onboarding/WelcomeMobile.tsx | 10 +- src/view/com/auth/server-input/index.tsx | 14 +-- src/view/com/auth/util/HelpTip.tsx | 6 +- src/view/com/auth/util/TextInput.tsx | 6 +- src/view/com/composer/Composer.tsx | 88 +++++++------- src/view/com/composer/ComposerReplyTo.tsx | 16 +-- src/view/com/composer/ExternalEmbed.tsx | 13 +- src/view/com/composer/Prompt.tsx | 16 ++- .../composer/char-progress/CharProgress.tsx | 9 +- src/view/com/composer/labels/LabelsBtn.tsx | 15 ++- src/view/com/composer/photos/Gallery.tsx | 23 ++-- .../com/composer/photos/OpenCameraBtn.tsx | 19 ++- .../com/composer/photos/SelectPhotoBtn.tsx | 14 +-- .../select-language/SelectLangBtn.tsx | 22 ++-- .../select-language/SuggestedLanguage.tsx | 24 ++-- .../com/composer/text-input/TextInput.tsx | 35 +++--- .../com/composer/text-input/TextInput.web.tsx | 32 +++-- .../text-input/mobile/Autocomplete.tsx | 12 +- .../composer/text-input/web/Autocomplete.tsx | 20 ++-- .../text-input/web/EmojiPicker.web.tsx | 3 +- .../composer/text-input/web/LinkDecorator.ts | 5 +- .../composer/text-input/web/TagDecorator.ts | 4 +- .../com/composer/threadgate/ThreadgateBtn.tsx | 13 +- src/view/com/composer/useExternalLinkFetch.ts | 17 ++- src/view/com/feeds/FeedPage.tsx | 34 +++--- src/view/com/feeds/FeedSourceCard.tsx | 32 +++-- src/view/com/feeds/ProfileFeedgens.tsx | 28 ++--- src/view/com/home/HomeHeader.tsx | 12 +- src/view/com/home/HomeHeaderLayout.web.tsx | 22 ++-- src/view/com/home/HomeHeaderLayoutMobile.tsx | 23 ++-- .../components/ImageDefaultHeader.tsx | 6 +- .../ImageItem/ImageItem.android.tsx | 14 +-- .../components/ImageItem/ImageItem.ios.tsx | 9 +- .../components/ImageItem/ImageItem.tsx | 1 - .../components/ImageItem/ImageLoading.tsx | 1 + .../ImageViewing/hooks/useImageDimensions.ts | 1 - src/view/com/lightbox/ImageViewing/index.tsx | 13 +- src/view/com/lightbox/Lightbox.tsx | 28 ++--- src/view/com/lightbox/Lightbox.web.tsx | 30 +++-- src/view/com/lists/ListCard.tsx | 22 ++-- src/view/com/lists/ListMembers.tsx | 28 ++--- src/view/com/lists/MyLists.tsx | 20 ++-- src/view/com/lists/ProfileLists.tsx | 26 ++-- src/view/com/modals/AddAppPasswords.tsx | 24 ++-- src/view/com/modals/AltImage.tsx | 34 +++--- src/view/com/modals/AppealLabel.tsx | 20 ++-- src/view/com/modals/BirthDateSettings.tsx | 26 ++-- src/view/com/modals/ChangeEmail.tsx | 26 ++-- src/view/com/modals/ChangeHandle.tsx | 42 ++++--- src/view/com/modals/ChangePassword.tsx | 34 +++--- src/view/com/modals/Confirm.tsx | 18 ++- .../com/modals/ContentFilteringSettings.tsx | 36 +++--- src/view/com/modals/CreateOrEditList.tsx | 48 ++++---- src/view/com/modals/DeleteAccount.tsx | 32 +++-- src/view/com/modals/EditImage.tsx | 34 +++--- src/view/com/modals/EditProfile.tsx | 42 ++++--- src/view/com/modals/EmbedConsent.tsx | 16 ++- src/view/com/modals/InAppBrowserConsent.tsx | 16 +-- src/view/com/modals/InviteCodes.tsx | 42 ++++--- src/view/com/modals/LinkWarning.tsx | 20 ++-- src/view/com/modals/ListAddRemoveUsers.tsx | 40 +++---- src/view/com/modals/Modal.tsx | 49 ++++---- src/view/com/modals/Modal.web.tsx | 47 ++++---- src/view/com/modals/ModerationDetails.tsx | 20 ++-- src/view/com/modals/Repost.tsx | 16 ++- src/view/com/modals/SelfLabel.tsx | 18 ++- src/view/com/modals/SwitchAccount.tsx | 30 +++-- src/view/com/modals/Threadgate.tsx | 20 ++-- src/view/com/modals/UserAddRemoveLists.tsx | 32 +++-- src/view/com/modals/VerifyEmail.tsx | 32 +++-- .../com/modals/crop-image/CropImage.web.tsx | 21 ++-- .../lang-settings/ConfirmLanguagesButton.tsx | 12 +- .../ContentLanguagesSettings.tsx | 18 ++- .../modals/lang-settings/LanguageToggle.tsx | 5 +- .../lang-settings/PostLanguagesSettings.tsx | 18 ++- .../com/modals/report/InputIssueDetails.tsx | 15 ++- src/view/com/modals/report/Modal.tsx | 24 ++-- src/view/com/modals/report/ReasonOptions.tsx | 8 +- .../com/modals/report/SendReportButton.tsx | 9 +- src/view/com/notifications/Feed.tsx | 26 ++-- src/view/com/notifications/FeedItem.tsx | 52 ++++---- src/view/com/pager/Pager.tsx | 4 +- src/view/com/pager/Pager.web.tsx | 2 +- src/view/com/pager/PagerWithHeader.tsx | 16 ++- src/view/com/pager/PagerWithHeader.web.tsx | 4 +- src/view/com/pager/TabBar.tsx | 12 +- src/view/com/post-thread/PostLikedBy.tsx | 18 ++- src/view/com/post-thread/PostRepostedBy.tsx | 18 ++- src/view/com/post-thread/PostThread.tsx | 60 +++++----- .../com/post-thread/PostThreadFollowBtn.tsx | 20 ++-- src/view/com/post-thread/PostThreadItem.tsx | 68 +++++------ src/view/com/post/Post.tsx | 40 +++---- src/view/com/posts/CustomFeedEmptyState.tsx | 15 ++- src/view/com/posts/DiscoverFallbackHeader.tsx | 8 +- src/view/com/posts/Feed.tsx | 36 +++--- src/view/com/posts/FeedErrorMessage.tsx | 24 ++-- src/view/com/posts/FeedItem.tsx | 46 ++++--- src/view/com/posts/FeedSlice.tsx | 12 +- src/view/com/posts/FollowingEmptyState.tsx | 15 ++- src/view/com/posts/FollowingEndOfFeed.tsx | 15 ++- src/view/com/profile/FollowButton.tsx | 12 +- src/view/com/profile/ProfileCard.tsx | 28 ++--- src/view/com/profile/ProfileFollowers.tsx | 18 ++- src/view/com/profile/ProfileFollows.tsx | 18 ++- src/view/com/profile/ProfileHeader.tsx | 76 ++++++------ .../profile/ProfileHeaderSuggestedFollows.tsx | 27 ++--- src/view/com/profile/ProfileMenu.tsx | 31 +++-- src/view/com/profile/ProfileSubpageHeader.tsx | 28 ++--- src/view/com/testing/TestCtrls.e2e.tsx | 8 +- src/view/com/threadgate/WhoCanReply.tsx | 17 ++- src/view/com/util/AccountDropdownBtn.tsx | 16 ++- src/view/com/util/BlurView.android.tsx | 2 +- src/view/com/util/BlurView.web.tsx | 2 +- .../com/util/BottomSheetCustomBackdrop.tsx | 4 +- src/view/com/util/EmptyState.tsx | 9 +- src/view/com/util/EmptyStateWithButton.tsx | 11 +- src/view/com/util/ErrorBoundary.tsx | 6 +- src/view/com/util/FeedInfoText.tsx | 8 +- src/view/com/util/Html.tsx | 13 +- src/view/com/util/Link.tsx | 46 ++++--- src/view/com/util/List.tsx | 8 +- src/view/com/util/List.web.tsx | 11 +- src/view/com/util/LoadMoreRetryBtn.tsx | 7 +- src/view/com/util/LoadingPlaceholder.tsx | 20 ++-- src/view/com/util/LoadingScreen.tsx | 3 +- src/view/com/util/MainScrollProvider.tsx | 11 +- src/view/com/util/PostMeta.tsx | 22 ++-- src/view/com/util/PressableWithHover.tsx | 8 +- src/view/com/util/Selector.tsx | 9 +- src/view/com/util/SimpleViewHeader.tsx | 18 ++- src/view/com/util/TimeElapsed.tsx | 3 +- src/view/com/util/Toast.tsx | 14 +-- src/view/com/util/Toast.web.tsx | 4 +- src/view/com/util/UserAvatar.tsx | 35 +++--- src/view/com/util/UserBanner.tsx | 25 ++-- src/view/com/util/UserInfoText.tsx | 18 ++- src/view/com/util/UserPreviewLink.tsx | 8 +- src/view/com/util/ViewHeader.tsx | 20 ++-- src/view/com/util/ViewSelector.tsx | 17 ++- src/view/com/util/Views.web.tsx | 6 +- .../com/util/anim/TriggerableAnimated.tsx | 2 +- src/view/com/util/error/ErrorMessage.tsx | 19 ++- src/view/com/util/error/ErrorScreen.tsx | 17 ++- src/view/com/util/fab/FAB.web.tsx | 3 +- src/view/com/util/fab/FABInner.tsx | 11 +- src/view/com/util/forms/Button.tsx | 17 ++- src/view/com/util/forms/DateInput.tsx | 15 ++- src/view/com/util/forms/DateInput.web.tsx | 4 +- src/view/com/util/forms/DropdownButton.tsx | 19 ++- src/view/com/util/forms/NativeDropdown.tsx | 14 +-- .../com/util/forms/NativeDropdown.web.tsx | 10 +- src/view/com/util/forms/PostDropdownBtn.tsx | 59 +++++---- src/view/com/util/forms/RadioButton.tsx | 5 +- src/view/com/util/forms/RadioGroup.tsx | 5 +- src/view/com/util/forms/SearchInput.tsx | 20 ++-- src/view/com/util/forms/SelectableBtn.tsx | 7 +- src/view/com/util/forms/ToggleButton.tsx | 9 +- src/view/com/util/images/AutoSizedImage.tsx | 12 +- src/view/com/util/images/Gallery.tsx | 6 +- src/view/com/util/images/Image.tsx | 2 +- src/view/com/util/images/Image.web.tsx | 2 +- src/view/com/util/images/ImageHorzList.tsx | 4 +- src/view/com/util/images/ImageLayoutGrid.tsx | 5 +- src/view/com/util/layouts/LoggedOutLayout.tsx | 7 +- .../com/util/layouts/TitleColumnLayout.tsx | 4 +- src/view/com/util/layouts/withBreakpoints.tsx | 4 +- .../com/util/load-latest/LoadLatestBtn.tsx | 12 +- src/view/com/util/moderation/ContentHider.tsx | 16 ++- src/view/com/util/moderation/LabelInfo.tsx | 10 +- src/view/com/util/moderation/PostAlerts.tsx | 12 +- src/view/com/util/moderation/PostHider.tsx | 18 ++- .../util/moderation/ProfileHeaderAlerts.tsx | 14 +-- src/view/com/util/moderation/ScreenHider.tsx | 32 +++-- src/view/com/util/post-ctrls/PostCtrls.tsx | 48 ++++---- src/view/com/util/post-ctrls/RepostButton.tsx | 18 ++- .../com/util/post-ctrls/RepostButton.web.tsx | 19 ++- .../com/util/post-embeds/ExternalGifEmbed.tsx | 15 ++- .../util/post-embeds/ExternalLinkEmbed.tsx | 15 ++- .../util/post-embeds/ExternalPlayerEmbed.tsx | 25 ++-- src/view/com/util/post-embeds/ListEmbed.tsx | 6 +- src/view/com/util/post-embeds/QuoteEmbed.tsx | 30 +++-- src/view/com/util/post-embeds/index.tsx | 42 ++++--- src/view/com/util/text/RichText.tsx | 18 ++- src/view/com/util/text/Text.tsx | 6 +- src/view/com/util/text/ThemedText.tsx | 5 +- src/view/icons/Logo.tsx | 4 +- src/view/icons/Logotype.tsx | 2 +- src/view/icons/index.tsx | 73 +++++------ src/view/screens/AppPasswords.tsx | 34 +++--- src/view/screens/CommunityGuidelines.tsx | 18 ++- src/view/screens/CopyrightPolicy.tsx | 18 ++- src/view/screens/Debug.tsx | 27 ++--- src/view/screens/Feeds.tsx | 63 +++++----- src/view/screens/Home.tsx | 28 ++--- src/view/screens/LanguageSettings.tsx | 32 +++-- src/view/screens/Lists.tsx | 25 ++-- src/view/screens/Log.tsx | 24 ++-- src/view/screens/Moderation.tsx | 44 ++++--- .../screens/ModerationBlockedAccounts.tsx | 32 +++-- src/view/screens/ModerationModlists.tsx | 25 ++-- src/view/screens/ModerationMutedAccounts.tsx | 32 +++-- src/view/screens/NotFound.tsx | 20 ++-- src/view/screens/Notifications.tsx | 38 +++--- src/view/screens/PostLikedBy.tsx | 16 ++- src/view/screens/PostRepostedBy.tsx | 16 ++- src/view/screens/PostThread.tsx | 28 ++--- .../screens/PreferencesExternalEmbeds.tsx | 28 ++--- src/view/screens/PreferencesFollowingFeed.tsx | 18 ++- src/view/screens/PreferencesThreads.tsx | 20 ++-- src/view/screens/PrivacyPolicy.tsx | 18 ++- src/view/screens/Profile.tsx | 62 +++++----- src/view/screens/ProfileFeed.tsx | 91 +++++++------- src/view/screens/ProfileFeedLikedBy.tsx | 16 ++- src/view/screens/ProfileFollowers.tsx | 14 +-- src/view/screens/ProfileFollows.tsx | 14 +-- src/view/screens/ProfileList.tsx | 89 +++++++------- src/view/screens/SavedFeeds.tsx | 33 +++-- src/view/screens/Search/Search.tsx | 72 +++++------ src/view/screens/Settings/ExportCarDialog.tsx | 8 +- src/view/screens/Settings/index.tsx | 97 ++++++++------- src/view/screens/Storybook/Breakpoints.tsx | 4 +- src/view/screens/Storybook/Buttons.tsx | 4 +- src/view/screens/Storybook/Dialogs.tsx | 2 +- src/view/screens/Storybook/Forms.tsx | 6 +- src/view/screens/Storybook/Icons.tsx | 4 +- src/view/screens/Storybook/Links.tsx | 2 +- src/view/screens/Storybook/Menus.tsx | 4 +- src/view/screens/Storybook/Spacing.tsx | 2 +- src/view/screens/Storybook/Theming.tsx | 1 - src/view/screens/Storybook/Typography.tsx | 2 +- src/view/screens/Storybook/index.tsx | 20 ++-- src/view/screens/Support.tsx | 20 ++-- src/view/screens/TermsOfService.tsx | 18 ++- src/view/shell/Composer.tsx | 9 +- src/view/shell/Composer.web.tsx | 10 +- src/view/shell/Drawer.tsx | 69 ++++++----- src/view/shell/NavSignupCard.tsx | 12 +- src/view/shell/bottom-bar/BottomBar.tsx | 44 ++++--- src/view/shell/bottom-bar/BottomBarStyles.tsx | 2 +- src/view/shell/bottom-bar/BottomBarWeb.tsx | 28 ++--- .../createNativeStackNavigatorWithAuth.tsx | 25 ++-- src/view/shell/desktop/Feeds.tsx | 19 ++- src/view/shell/desktop/LeftNav.tsx | 60 +++++----- src/view/shell/desktop/RightNav.tsx | 20 ++-- src/view/shell/desktop/Search.tsx | 36 +++--- src/view/shell/index.tsx | 40 +++---- src/view/shell/index.web.tsx | 30 +++-- 465 files changed, 3478 insertions(+), 3900 deletions(-) diff --git a/src/App.native.tsx b/src/App.native.tsx index fb97c0ea95..eff8ab0997 100644 --- a/src/App.native.tsx +++ b/src/App.native.tsx @@ -1,54 +1,54 @@ import 'react-native-url-polyfill/auto' import 'lib/sentry' // must be near top -import 'view/icons' -import {msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {QueryClientProvider} from '@tanstack/react-query' +import React, {useState, useEffect} from 'react' +import {RootSiblingParent} from 'react-native-root-siblings' import * as SplashScreen from 'expo-splash-screen' -import {StatusBar} from 'expo-status-bar' -import {useIntentHandler} from 'lib/hooks/useIntentHandler' -import * as notifications from 'lib/notifications/notifications' -import {queryClient} from 'lib/react-query' -import {s} from 'lib/styles' -import {ThemeProvider} from 'lib/ThemeContext' -import {isAndroid} from 'platform/detection' -import React, {useEffect, useState} from 'react' import {GestureHandlerRootView} from 'react-native-gesture-handler' -import {RootSiblingParent} from 'react-native-root-siblings' +import {QueryClientProvider} from '@tanstack/react-query' import { - initialWindowMetrics, SafeAreaProvider, + initialWindowMetrics, } from 'react-native-safe-area-context' + +import 'view/icons' + +import {ThemeProvider as Alf} from '#/alf' +import {useColorModeTheme} from '#/alf/util/useColorModeTheme' +import {init as initPersistedState} from '#/state/persisted' +import {listenSessionDropped} from './state/events' +import {ThemeProvider} from 'lib/ThemeContext' +import {s} from 'lib/styles' +import {Shell} from 'view/shell' +import * as notifications from 'lib/notifications/notifications' +import * as Toast from 'view/com/util/Toast' +import {queryClient} from 'lib/react-query' +import {TestCtrls} from 'view/com/testing/TestCtrls' +import {Provider as ShellStateProvider} from 'state/shell' +import {Provider as ModalStateProvider} from 'state/modals' import {Provider as DialogStateProvider} from 'state/dialogs' -import {Provider as InvitesStateProvider} from 'state/invites' import {Provider as LightboxStateProvider} from 'state/lightbox' -import {Provider as ModalStateProvider} from 'state/modals' import {Provider as MutedThreadsProvider} from 'state/muted-threads' +import {Provider as InvitesStateProvider} from 'state/invites' import {Provider as PrefsStateProvider} from 'state/preferences' -import {Provider as UnreadNotifsProvider} from 'state/queries/notifications/unread' +import {Provider as LoggedOutViewProvider} from 'state/shell/logged-out' +import {Provider as SelectedFeedProvider} from 'state/shell/selected-feed' +import I18nProvider from './locale/i18nProvider' import { Provider as SessionProvider, useSession, useSessionApi, } from 'state/session' -import {Provider as ShellStateProvider} from 'state/shell' -import {Provider as LoggedOutViewProvider} from 'state/shell/logged-out' -import {Provider as SelectedFeedProvider} from 'state/shell/selected-feed' -import {TestCtrls} from 'view/com/testing/TestCtrls' -import * as Toast from 'view/com/util/Toast' -import {Shell} from 'view/shell' - -import {ThemeProvider as Alf} from '#/alf' -import {useColorModeTheme} from '#/alf/util/useColorModeTheme' +import {Provider as UnreadNotifsProvider} from 'state/queries/notifications/unread' +import * as persisted from '#/state/persisted' +import {Splash} from '#/Splash' import {Provider as PortalProvider} from '#/components/Portal' import {Provider as StatsigProvider} from '#/lib/statsig/statsig' -import {Splash} from '#/Splash' -import {init as initPersistedState} from '#/state/persisted' -import * as persisted from '#/state/persisted' - -import I18nProvider from './locale/i18nProvider' -import {listenSessionDropped} from './state/events' +import {msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {useIntentHandler} from 'lib/hooks/useIntentHandler' +import {StatusBar} from 'expo-status-bar' +import {isAndroid} from 'platform/detection' SplashScreen.preventAutoHideAsync() diff --git a/src/App.web.tsx b/src/App.web.tsx index b53c61b778..eb2e425930 100644 --- a/src/App.web.tsx +++ b/src/App.web.tsx @@ -1,39 +1,39 @@ import 'lib/sentry' // must be near top -import 'view/icons' +import React, {useState, useEffect} from 'react' import {QueryClientProvider} from '@tanstack/react-query' -import {useIntentHandler} from 'lib/hooks/useIntentHandler' -import {queryClient} from 'lib/react-query' -import {ThemeProvider} from 'lib/ThemeContext' -import React, {useEffect, useState} from 'react' -import {RootSiblingParent} from 'react-native-root-siblings' import {SafeAreaProvider} from 'react-native-safe-area-context' +import {RootSiblingParent} from 'react-native-root-siblings' + +import 'view/icons' + +import {ThemeProvider as Alf} from '#/alf' +import {useColorModeTheme} from '#/alf/util/useColorModeTheme' +import {init as initPersistedState} from '#/state/persisted' +import {Shell} from 'view/shell/index' +import {ToastContainer} from 'view/com/util/Toast.web' +import {ThemeProvider} from 'lib/ThemeContext' +import {queryClient} from 'lib/react-query' +import {Provider as ShellStateProvider} from 'state/shell' +import {Provider as ModalStateProvider} from 'state/modals' import {Provider as DialogStateProvider} from 'state/dialogs' -import {Provider as InvitesStateProvider} from 'state/invites' import {Provider as LightboxStateProvider} from 'state/lightbox' -import {Provider as ModalStateProvider} from 'state/modals' import {Provider as MutedThreadsProvider} from 'state/muted-threads' +import {Provider as InvitesStateProvider} from 'state/invites' import {Provider as PrefsStateProvider} from 'state/preferences' -import {Provider as UnreadNotifsProvider} from 'state/queries/notifications/unread' +import {Provider as LoggedOutViewProvider} from 'state/shell/logged-out' +import {Provider as SelectedFeedProvider} from 'state/shell/selected-feed' +import I18nProvider from './locale/i18nProvider' import { Provider as SessionProvider, useSession, useSessionApi, } from 'state/session' -import {Provider as ShellStateProvider} from 'state/shell' -import {Provider as LoggedOutViewProvider} from 'state/shell/logged-out' -import {Provider as SelectedFeedProvider} from 'state/shell/selected-feed' -import {ToastContainer} from 'view/com/util/Toast.web' -import {Shell} from 'view/shell/index' - -import {ThemeProvider as Alf} from '#/alf' -import {useColorModeTheme} from '#/alf/util/useColorModeTheme' +import {Provider as UnreadNotifsProvider} from 'state/queries/notifications/unread' +import * as persisted from '#/state/persisted' import {Provider as PortalProvider} from '#/components/Portal' import {Provider as StatsigProvider} from '#/lib/statsig/statsig' -import {init as initPersistedState} from '#/state/persisted' -import * as persisted from '#/state/persisted' - -import I18nProvider from './locale/i18nProvider' +import {useIntentHandler} from 'lib/hooks/useIntentHandler' function InnerApp() { const {isInitialLoad, currentAccount} = useSession() diff --git a/src/Navigation.tsx b/src/Navigation.tsx index 4eb90a1d54..8a9f69b5de 100644 --- a/src/Navigation.tsx +++ b/src/Navigation.tsx @@ -1,85 +1,84 @@ -import {i18n, MessageDescriptor} from '@lingui/core' -import {msg} from '@lingui/macro' -import { - BottomTabBarProps, - createBottomTabNavigator, -} from '@react-navigation/bottom-tabs' +import * as React from 'react' import { - CommonActions, - createNavigationContainerRef, - DarkTheme, - DefaultTheme, NavigationContainer, + createNavigationContainerRef, + CommonActions, StackActions, + DefaultTheme, + DarkTheme, } from '@react-navigation/native' -import {timeout} from 'lib/async/timeout' -import {useColorSchemeStyle} from 'lib/hooks/useColorSchemeStyle' -import {usePalette} from 'lib/hooks/usePalette' -import {buildStateObject} from 'lib/routes/helpers' import { - AllNavigatorParams, - BottomTabNavigatorParams, + BottomTabBarProps, + createBottomTabNavigator, +} from '@react-navigation/bottom-tabs' +import { + HomeTabNavigatorParams, + SearchTabNavigatorParams, FeedsTabNavigatorParams, + NotificationsTabNavigatorParams, FlatNavigatorParams, - HomeTabNavigatorParams, + AllNavigatorParams, MyProfileTabNavigatorParams, - NotificationsTabNavigatorParams, - SearchTabNavigatorParams, + BottomTabNavigatorParams, } from 'lib/routes/types' -import {RouteParams, State} from 'lib/routes/types' -import {bskyTitle} from 'lib/strings/headings' +import {BottomBar} from './view/shell/bottom-bar/BottomBar' +import {buildStateObject} from 'lib/routes/helpers' +import {State, RouteParams} from 'lib/routes/types' import {isAndroid, isNative} from 'platform/detection' -import * as React from 'react' -import {JSX} from 'react/jsx-runtime' -import {AppPasswords} from 'view/screens/AppPasswords' -import {ModerationBlockedAccounts} from 'view/screens/ModerationBlockedAccounts' -import {ModerationMutedAccounts} from 'view/screens/ModerationMutedAccounts' -import {PreferencesFollowingFeed} from 'view/screens/PreferencesFollowingFeed' -import {PreferencesThreads} from 'view/screens/PreferencesThreads' -import {SavedFeeds} from 'view/screens/SavedFeeds' - -import HashtagScreen from '#/screens/Hashtag' -import {PreferencesExternalEmbeds} from '#/view/screens/PreferencesExternalEmbeds' - -import {init as initAnalytics} from './lib/analytics/analytics' -import {useWebScrollRestoration} from './lib/hooks/useWebScrollRestoration' -import {logEvent} from './lib/statsig/statsig' +import {useColorSchemeStyle} from 'lib/hooks/useColorSchemeStyle' import {router} from './routes' -import {useModalControls} from './state/modals' +import {usePalette} from 'lib/hooks/usePalette' +import {bskyTitle} from 'lib/strings/headings' +import {JSX} from 'react/jsx-runtime' +import {timeout} from 'lib/async/timeout' import {useUnreadNotifications} from './state/queries/notifications/unread' import {useSession} from './state/session' +import {useModalControls} from './state/modals' import { - setEmailConfirmationRequested, shouldRequestEmailConfirmation, + setEmailConfirmationRequested, } from './state/shell/reminders' -import {CommunityGuidelinesScreen} from './view/screens/CommunityGuidelines' -import {CopyrightPolicyScreen} from './view/screens/CopyrightPolicy' -import {FeedsScreen} from './view/screens/Feeds' +import {init as initAnalytics} from './lib/analytics/analytics' +import {useWebScrollRestoration} from './lib/hooks/useWebScrollRestoration' + import {HomeScreen} from './view/screens/Home' -import {LanguageSettingsScreen} from './view/screens/LanguageSettings' +import {SearchScreen} from './view/screens/Search' +import {FeedsScreen} from './view/screens/Feeds' +import {NotificationsScreen} from './view/screens/Notifications' import {ListsScreen} from './view/screens/Lists' -import {LogScreen} from './view/screens/Log' import {ModerationScreen} from './view/screens/Moderation' import {ModerationModlistsScreen} from './view/screens/ModerationModlists' import {NotFoundScreen} from './view/screens/NotFound' -import {NotificationsScreen} from './view/screens/Notifications' -import {PostLikedByScreen} from './view/screens/PostLikedBy' -import {PostRepostedByScreen} from './view/screens/PostRepostedBy' -import {PostThreadScreen} from './view/screens/PostThread' -import {PrivacyPolicyScreen} from './view/screens/PrivacyPolicy' +import {SettingsScreen} from './view/screens/Settings' +import {LanguageSettingsScreen} from './view/screens/LanguageSettings' import {ProfileScreen} from './view/screens/Profile' -import {ProfileFeedScreen} from './view/screens/ProfileFeed' -import {ProfileFeedLikedByScreen} from './view/screens/ProfileFeedLikedBy' import {ProfileFollowersScreen} from './view/screens/ProfileFollowers' import {ProfileFollowsScreen} from './view/screens/ProfileFollows' +import {ProfileFeedScreen} from './view/screens/ProfileFeed' +import {ProfileFeedLikedByScreen} from './view/screens/ProfileFeedLikedBy' import {ProfileListScreen} from './view/screens/ProfileList' -import {SearchScreen} from './view/screens/Search' -import {SettingsScreen} from './view/screens/Settings' +import {PostThreadScreen} from './view/screens/PostThread' +import {PostLikedByScreen} from './view/screens/PostLikedBy' +import {PostRepostedByScreen} from './view/screens/PostRepostedBy' import {Storybook} from './view/screens/Storybook' +import {LogScreen} from './view/screens/Log' import {SupportScreen} from './view/screens/Support' +import {PrivacyPolicyScreen} from './view/screens/PrivacyPolicy' import {TermsOfServiceScreen} from './view/screens/TermsOfService' -import {BottomBar} from './view/shell/bottom-bar/BottomBar' +import {CommunityGuidelinesScreen} from './view/screens/CommunityGuidelines' +import {CopyrightPolicyScreen} from './view/screens/CopyrightPolicy' +import {AppPasswords} from 'view/screens/AppPasswords' +import {ModerationMutedAccounts} from 'view/screens/ModerationMutedAccounts' +import {ModerationBlockedAccounts} from 'view/screens/ModerationBlockedAccounts' +import {SavedFeeds} from 'view/screens/SavedFeeds' +import {PreferencesFollowingFeed} from 'view/screens/PreferencesFollowingFeed' +import {PreferencesThreads} from 'view/screens/PreferencesThreads' +import {PreferencesExternalEmbeds} from '#/view/screens/PreferencesExternalEmbeds' import {createNativeStackNavigatorWithAuth} from './view/shell/createNativeStackNavigatorWithAuth' +import {msg} from '@lingui/macro' +import {i18n, MessageDescriptor} from '@lingui/core' +import HashtagScreen from '#/screens/Hashtag' +import {logEvent} from './lib/statsig/statsig' const navigationRef = createNavigationContainerRef() @@ -671,11 +670,11 @@ function logModuleInitTime() { } export { - FlatNavigator, - handleLink, navigate, - reset, resetToTab, - RoutesContainer, + reset, + handleLink, TabsNavigator, + FlatNavigator, + RoutesContainer, } diff --git a/src/Splash.tsx b/src/Splash.tsx index e9c945d1b7..42a21c0839 100644 --- a/src/Splash.tsx +++ b/src/Splash.tsx @@ -1,22 +1,22 @@ -import MaskedView from '@react-native-masked-view/masked-view' -import {Image} from 'expo-image' -import * as SplashScreen from 'expo-splash-screen' import React, {useCallback, useEffect} from 'react' import { - AccessibilityInfo, - Image as RNImage, + View, StyleSheet, + Image as RNImage, + AccessibilityInfo, useColorScheme, - View, } from 'react-native' +import * as SplashScreen from 'expo-splash-screen' +import {Image} from 'expo-image' import Animated, { - Easing, interpolate, runOnJS, useAnimatedStyle, useSharedValue, withTiming, + Easing, } from 'react-native-reanimated' +import MaskedView from '@react-native-masked-view/masked-view' import {useSafeAreaInsets} from 'react-native-safe-area-context' import Svg, {Path, SvgProps} from 'react-native-svg' diff --git a/src/alf/atoms.ts b/src/alf/atoms.ts index 8db70dc556..fff3a4d8bd 100644 --- a/src/alf/atoms.ts +++ b/src/alf/atoms.ts @@ -1,5 +1,5 @@ +import {web, native} from '#/alf/util/platform' import * as tokens from '#/alf/tokens' -import {native, web} from '#/alf/util/platform' export const atoms = { /* diff --git a/src/alf/index.tsx b/src/alf/index.tsx index ae117747d7..27738e91de 100644 --- a/src/alf/index.tsx +++ b/src/alf/index.tsx @@ -1,13 +1,12 @@ import React from 'react' import {Dimensions} from 'react-native' - import * as themes from '#/alf/themes' -export {atoms} from '#/alf/atoms' -export * as tokens from '#/alf/tokens' export * from '#/alf/types' -export * from '#/alf/util/flatten' +export * as tokens from '#/alf/tokens' +export {atoms} from '#/alf/atoms' export * from '#/alf/util/platform' +export * from '#/alf/util/flatten' type BreakpointName = keyof typeof breakpoints diff --git a/src/alf/themes.ts b/src/alf/themes.ts index 0cb1cae248..0c95a459ed 100644 --- a/src/alf/themes.ts +++ b/src/alf/themes.ts @@ -1,6 +1,6 @@ -import {atoms} from '#/alf/atoms' import * as tokens from '#/alf/tokens' import type {Mutable} from '#/alf/types' +import {atoms} from '#/alf/atoms' import {BLUE_HUE, GREEN_HUE, RED_HUE} from '#/alf/util/colorGeneration' export type ThemeName = 'light' | 'dim' | 'dark' diff --git a/src/alf/tokens.ts b/src/alf/tokens.ts index 6062e954ca..b1468f461d 100644 --- a/src/alf/tokens.ts +++ b/src/alf/tokens.ts @@ -1,8 +1,8 @@ import { BLUE_HUE, - generateScale, - GREEN_HUE, RED_HUE, + GREEN_HUE, + generateScale, } from '#/alf/util/colorGeneration' export const scale = generateScale(6, 100) diff --git a/src/alf/types.ts b/src/alf/types.ts index f4f1a5c440..dd8d816d2b 100644 --- a/src/alf/types.ts +++ b/src/alf/types.ts @@ -1,4 +1,4 @@ -import {StyleProp, TextStyle, ViewStyle} from 'react-native' +import {StyleProp, ViewStyle, TextStyle} from 'react-native' type LiteralToCommon = T extends number ? number diff --git a/src/alf/util/useColorModeTheme.ts b/src/alf/util/useColorModeTheme.ts index ba947a5712..4f8921bf9b 100644 --- a/src/alf/util/useColorModeTheme.ts +++ b/src/alf/util/useColorModeTheme.ts @@ -1,10 +1,10 @@ -import * as SystemUI from 'expo-system-ui' -import {isWeb} from 'platform/detection' import React from 'react' import {ColorSchemeName, useColorScheme} from 'react-native' -import {useThemePrefs} from 'state/shell' -import {dark, dim, light, ThemeName} from '#/alf/themes' +import {useThemePrefs} from 'state/shell' +import {isWeb} from 'platform/detection' +import {ThemeName, light, dark, dim} from '#/alf/themes' +import * as SystemUI from 'expo-system-ui' export function useColorModeTheme(): ThemeName { const colorScheme = useColorScheme() diff --git a/src/components/Button.tsx b/src/components/Button.tsx index cbf9210f51..d3bf73cc3e 100644 --- a/src/components/Button.tsx +++ b/src/components/Button.tsx @@ -1,19 +1,19 @@ import React from 'react' import { - AccessibilityProps, Pressable, - PressableProps, - StyleProp, - StyleSheet, Text, + PressableProps, TextProps, - TextStyle, - View, ViewStyle, + AccessibilityProps, + View, + TextStyle, + StyleSheet, + StyleProp, } from 'react-native' import LinearGradient from 'react-native-linear-gradient' -import {android, atoms as a, flatten, tokens, useTheme} from '#/alf' +import {useTheme, atoms as a, tokens, android, flatten} from '#/alf' import {Props as SVGIconProps} from '#/components/icons/common' export type ButtonVariant = 'solid' | 'outline' | 'ghost' | 'gradient' diff --git a/src/components/Dialog/context.ts b/src/components/Dialog/context.ts index 06d238b508..859f8edd77 100644 --- a/src/components/Dialog/context.ts +++ b/src/components/Dialog/context.ts @@ -1,11 +1,11 @@ import React from 'react' +import {useDialogStateContext} from '#/state/dialogs' import { DialogContextProps, DialogControlRefProps, DialogOuterProps, } from '#/components/Dialog/types' -import {useDialogStateContext} from '#/state/dialogs' export const Context = React.createContext({ close: () => {}, diff --git a/src/components/Dialog/index.tsx b/src/components/Dialog/index.tsx index fdd43675ea..f0e7b7e82b 100644 --- a/src/components/Dialog/index.tsx +++ b/src/components/Dialog/index.tsx @@ -1,3 +1,5 @@ +import React, {useImperativeHandle} from 'react' +import {View, Dimensions, Keyboard, Pressable} from 'react-native' import BottomSheet, { BottomSheetBackdropProps, BottomSheetScrollView, @@ -6,24 +8,23 @@ import BottomSheet, { useBottomSheet, WINDOW_HEIGHT, } from '@gorhom/bottom-sheet' -import React, {useImperativeHandle} from 'react' -import {Dimensions, Keyboard, Pressable, View} from 'react-native' -import Animated, {useAnimatedStyle} from 'react-native-reanimated' import {useSafeAreaInsets} from 'react-native-safe-area-context' +import Animated, {useAnimatedStyle} from 'react-native-reanimated' + +import {useTheme, atoms as a, flatten} from '#/alf' +import {Portal} from '#/components/Portal' +import {createInput} from '#/components/forms/TextField' +import {logger} from '#/logger' +import {useDialogStateControlContext} from '#/state/dialogs' -import {atoms as a, flatten, useTheme} from '#/alf' -import {Context} from '#/components/Dialog/context' import { + DialogOuterProps, DialogControlProps, DialogInnerProps, - DialogOuterProps, } from '#/components/Dialog/types' -import {createInput} from '#/components/forms/TextField' -import {Portal} from '#/components/Portal' -import {logger} from '#/logger' -import {useDialogStateControlContext} from '#/state/dialogs' +import {Context} from '#/components/Dialog/context' -export {useDialogContext, useDialogControl} from '#/components/Dialog/context' +export {useDialogControl, useDialogContext} from '#/components/Dialog/context' export * from '#/components/Dialog/types' // @ts-ignore export const Input = createInput(BottomSheetTextInput) diff --git a/src/components/Dialog/index.web.tsx b/src/components/Dialog/index.web.tsx index 997bf77c1a..3a7f73342d 100644 --- a/src/components/Dialog/index.web.tsx +++ b/src/components/Dialog/index.web.tsx @@ -1,19 +1,20 @@ +import React, {useImperativeHandle} from 'react' +import {View, TouchableWithoutFeedback} from 'react-native' +import {FocusScope} from '@tamagui/focus-scope' +import Animated, {FadeInDown, FadeIn} from 'react-native-reanimated' import {msg} from '@lingui/macro' import {useLingui} from '@lingui/react' -import {FocusScope} from '@tamagui/focus-scope' -import React, {useImperativeHandle} from 'react' -import {TouchableWithoutFeedback, View} from 'react-native' -import Animated, {FadeIn, FadeInDown} from 'react-native-reanimated' -import {atoms as a, flatten, useBreakpoints, useTheme, web} from '#/alf' -import {Button, ButtonIcon} from '#/components/Button' +import {useTheme, atoms as a, useBreakpoints, web, flatten} from '#/alf' +import {Portal} from '#/components/Portal' + +import {DialogOuterProps, DialogInnerProps} from '#/components/Dialog/types' import {Context} from '#/components/Dialog/context' -import {DialogInnerProps, DialogOuterProps} from '#/components/Dialog/types' +import {Button, ButtonIcon} from '#/components/Button' import {TimesLarge_Stroke2_Corner0_Rounded as X} from '#/components/icons/Times' -import {Portal} from '#/components/Portal' import {useDialogStateControlContext} from '#/state/dialogs' -export {useDialogContext, useDialogControl} from '#/components/Dialog/context' +export {useDialogControl, useDialogContext} from '#/components/Dialog/context' export * from '#/components/Dialog/types' export {Input} from '#/components/forms/TextField' diff --git a/src/components/Dialog/types.ts b/src/components/Dialog/types.ts index d847631744..4fc60ec394 100644 --- a/src/components/Dialog/types.ts +++ b/src/components/Dialog/types.ts @@ -1,6 +1,6 @@ -import {BottomSheetProps} from '@gorhom/bottom-sheet' import React from 'react' import type {AccessibilityProps} from 'react-native' +import {BottomSheetProps} from '@gorhom/bottom-sheet' import {ViewStyleProp} from '#/alf' diff --git a/src/components/Divider.tsx b/src/components/Divider.tsx index ff0bbb0451..24e2789e50 100644 --- a/src/components/Divider.tsx +++ b/src/components/Divider.tsx @@ -1,7 +1,6 @@ import React from 'react' import {View} from 'react-native' - -import {atoms as a, flatten, useTheme, ViewStyleProp} from '#/alf' +import {atoms as a, useTheme, ViewStyleProp, flatten} from '#/alf' export function Divider({style}: ViewStyleProp) { const t = useTheme() diff --git a/src/components/IconCircle.tsx b/src/components/IconCircle.tsx index b8b52615a8..aa779e37f3 100644 --- a/src/components/IconCircle.tsx +++ b/src/components/IconCircle.tsx @@ -2,14 +2,14 @@ import React from 'react' import {View} from 'react-native' import { - atoms as a, - flatten, - TextStyleProp, useTheme, + atoms as a, ViewStyleProp, + TextStyleProp, + flatten, } from '#/alf' -import {Props} from '#/components/icons/common' import {Growth_Stroke2_Corner0_Rounded as Growth} from '#/components/icons/Growth' +import {Props} from '#/components/icons/common' export function IconCircle({ icon: Icon, diff --git a/src/components/Link.tsx b/src/components/Link.tsx index 74e75e99c0..00e6a56f42 100644 --- a/src/components/Link.tsx +++ b/src/components/Link.tsx @@ -1,23 +1,23 @@ -import {sanitizeUrl} from '@braintree/sanitize-url' -import {StackActions, useLinkProps} from '@react-navigation/native' -import {useNavigationDeduped} from 'lib/hooks/useNavigationDeduped' import React from 'react' import {GestureResponderEvent} from 'react-native' -import {useOpenLink} from 'state/preferences/in-app-browser' +import {useLinkProps, StackActions} from '@react-navigation/native' +import {sanitizeUrl} from '@braintree/sanitize-url' -import {atoms as a, flatten, TextStyleProp, useTheme, web} from '#/alf' -import {Button, ButtonProps} from '#/components/Button' import {useInteractionState} from '#/components/hooks/useInteractionState' -import {Text, TextProps} from '#/components/Typography' +import {isWeb} from '#/platform/detection' +import {useTheme, web, flatten, TextStyleProp, atoms as a} from '#/alf' +import {Button, ButtonProps} from '#/components/Button' import {AllNavigatorParams} from '#/lib/routes/types' import { convertBskyAppUrlIfNeeded, isExternalUrl, linkRequiresWarning, } from '#/lib/strings/url-helpers' -import {isWeb} from '#/platform/detection' -import {router} from '#/routes' import {useModalControls} from '#/state/modals' +import {router} from '#/routes' +import {Text, TextProps} from '#/components/Typography' +import {useOpenLink} from 'state/preferences/in-app-browser' +import {useNavigationDeduped} from 'lib/hooks/useNavigationDeduped' /** * Only available within a `Link`, since that inherits from `Button`. diff --git a/src/components/Lists.tsx b/src/components/Lists.tsx index 38bcf8577b..bb0d247971 100644 --- a/src/components/Lists.tsx +++ b/src/components/Lists.tsx @@ -1,16 +1,15 @@ -import {Trans} from '@lingui/macro' -import {StackActions} from '@react-navigation/native' -import {useNavigationDeduped} from 'lib/hooks/useNavigationDeduped' -import {cleanError} from 'lib/strings/errors' import React from 'react' +import {atoms as a, useBreakpoints, useTheme} from '#/alf' import {View} from 'react-native' import {CenteredView} from 'view/com/util/Views' - -import {atoms as a, useBreakpoints, useTheme} from '#/alf' -import {Button} from '#/components/Button' import {Loader} from '#/components/Loader' +import {Trans} from '@lingui/macro' +import {cleanError} from 'lib/strings/errors' +import {Button} from '#/components/Button' import {Text} from '#/components/Typography' +import {StackActions} from '@react-navigation/native' import {router} from '#/routes' +import {useNavigationDeduped} from 'lib/hooks/useNavigationDeduped' export function ListFooter({ isFetching, diff --git a/src/components/Loader.tsx b/src/components/Loader.tsx index e0b3be6373..b9f399f953 100644 --- a/src/components/Loader.tsx +++ b/src/components/Loader.tsx @@ -1,13 +1,13 @@ import React from 'react' import Animated, { Easing, - useAnimatedStyle, useSharedValue, + useAnimatedStyle, withRepeat, withTiming, } from 'react-native-reanimated' -import {atoms as a, flatten, useTheme} from '#/alf' +import {atoms as a, useTheme, flatten} from '#/alf' import {Props, useCommonSVGProps} from '#/components/icons/common' import {Loader_Stroke2_Corner0_Rounded as Icon} from '#/components/icons/Loader' diff --git a/src/components/Menu/index.tsx b/src/components/Menu/index.tsx index 7dd95502e7..9be9dd86bf 100644 --- a/src/components/Menu/index.tsx +++ b/src/components/Menu/index.tsx @@ -1,24 +1,25 @@ -import {msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {isNative} from 'platform/detection' import React from 'react' +import {View, Pressable, ViewStyle, StyleProp} from 'react-native' import flattenReactChildren from 'react-keyed-flatten-children' -import {Pressable, StyleProp, View, ViewStyle} from 'react-native' import {atoms as a, useTheme} from '#/alf' -import {Button, ButtonText} from '#/components/Button' import * as Dialog from '#/components/Dialog' import {useInteractionState} from '#/components/hooks/useInteractionState' +import {Text} from '#/components/Typography' + import {Context} from '#/components/Menu/context' import { ContextType, - GroupProps, - ItemIconProps, + TriggerProps, ItemProps, + GroupProps, ItemTextProps, - TriggerProps, + ItemIconProps, } from '#/components/Menu/types' -import {Text} from '#/components/Typography' +import {Button, ButtonText} from '#/components/Button' +import {msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {isNative} from 'platform/detection' export {useDialogControl as useMenuControl} from '#/components/Dialog' diff --git a/src/components/Menu/index.web.tsx b/src/components/Menu/index.web.tsx index 314769934b..2004ee7c6b 100644 --- a/src/components/Menu/index.web.tsx +++ b/src/components/Menu/index.web.tsx @@ -1,23 +1,24 @@ /* eslint-disable react/prop-types */ -import * as DropdownMenu from '@radix-ui/react-dropdown-menu' import React from 'react' -import {Pressable, StyleProp, View, ViewStyle} from 'react-native' +import {View, Pressable, ViewStyle, StyleProp} from 'react-native' +import * as DropdownMenu from '@radix-ui/react-dropdown-menu' -import {atoms as a, flatten, useTheme, web} from '#/alf' import * as Dialog from '#/components/Dialog' import {useInteractionState} from '#/components/hooks/useInteractionState' -import {Context} from '#/components/Menu/context' +import {atoms as a, useTheme, flatten, web} from '#/alf' +import {Text} from '#/components/Typography' + import { ContextType, - GroupProps, - ItemIconProps, + TriggerProps, ItemProps, + GroupProps, ItemTextProps, + ItemIconProps, RadixPassThroughTriggerProps, - TriggerProps, } from '#/components/Menu/types' -import {Text} from '#/components/Typography' +import {Context} from '#/components/Menu/context' export function useMenuControl(): Dialog.DialogControlProps { const id = React.useId() diff --git a/src/components/Menu/types.ts b/src/components/Menu/types.ts index 729a004d8d..7d04a33441 100644 --- a/src/components/Menu/types.ts +++ b/src/components/Menu/types.ts @@ -1,13 +1,13 @@ import React from 'react' import { - AccessibilityProps, GestureResponderEvent, PressableProps, + AccessibilityProps, } from 'react-native' -import {TextStyleProp, ViewStyleProp} from '#/alf' -import * as Dialog from '#/components/Dialog' import {Props as SVGIconProps} from '#/components/icons/common' +import * as Dialog from '#/components/Dialog' +import {TextStyleProp, ViewStyleProp} from '#/alf' export type ContextType = { control: Dialog.DialogOuterProps['control'] diff --git a/src/components/Prompt.tsx b/src/components/Prompt.tsx index 84a0c47f1b..3b245c440f 100644 --- a/src/components/Prompt.tsx +++ b/src/components/Prompt.tsx @@ -1,12 +1,13 @@ +import React from 'react' +import {View, PressableProps} from 'react-native' import {msg} from '@lingui/macro' import {useLingui} from '@lingui/react' -import React from 'react' -import {PressableProps, View} from 'react-native' -import {atoms as a, useBreakpoints, useTheme} from '#/alf' +import {useTheme, atoms as a, useBreakpoints} from '#/alf' +import {Text} from '#/components/Typography' import {Button} from '#/components/Button' + import * as Dialog from '#/components/Dialog' -import {Text} from '#/components/Typography' export {useDialogControl as usePromptControl} from '#/components/Dialog' diff --git a/src/components/RichText.tsx b/src/components/RichText.tsx index d40b4d21ca..1a14415cf8 100644 --- a/src/components/RichText.tsx +++ b/src/components/RichText.tsx @@ -1,15 +1,15 @@ -import {AppBskyRichtextFacet, RichText as RichTextAPI} from '@atproto/api' -import {msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {toShortUrl} from 'lib/strings/url-helpers' import React from 'react' +import {RichText as RichTextAPI, AppBskyRichtextFacet} from '@atproto/api' +import {useLingui} from '@lingui/react' +import {msg} from '@lingui/macro' -import {atoms as a, flatten, native, TextStyleProp, useTheme, web} from '#/alf' -import {useInteractionState} from '#/components/hooks/useInteractionState' +import {atoms as a, TextStyleProp, flatten, useTheme, web, native} from '#/alf' import {InlineLink} from '#/components/Link' -import {TagMenu, useTagMenuControl} from '#/components/TagMenu' import {Text, TextProps} from '#/components/Typography' +import {toShortUrl} from 'lib/strings/url-helpers' +import {TagMenu, useTagMenuControl} from '#/components/TagMenu' import {isNative} from '#/platform/detection' +import {useInteractionState} from '#/components/hooks/useInteractionState' const WORD_WRAP = {wordWrap: 1} diff --git a/src/components/TagMenu/index.tsx b/src/components/TagMenu/index.tsx index 0c1e48b6ed..849a3f42d1 100644 --- a/src/components/TagMenu/index.tsx +++ b/src/components/TagMenu/index.tsx @@ -1,27 +1,27 @@ -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {useNavigation} from '@react-navigation/native' import React from 'react' import {View} from 'react-native' +import {useNavigation} from '@react-navigation/native' +import {useLingui} from '@lingui/react' +import {msg, Trans} from '@lingui/macro' import {atoms as a, native, useTheme} from '#/alf' -import {Button, ButtonText} from '#/components/Button' import * as Dialog from '#/components/Dialog' -import {Divider} from '#/components/Divider' +import {Text} from '#/components/Typography' +import {Button, ButtonText} from '#/components/Button' import {MagnifyingGlass2_Stroke2_Corner0_Rounded as Search} from '#/components/icons/MagnifyingGlass2' -import {Mute_Stroke2_Corner0_Rounded as Mute} from '#/components/icons/Mute' import {Person_Stroke2_Corner0_Rounded as Person} from '#/components/icons/Person' +import {Mute_Stroke2_Corner0_Rounded as Mute} from '#/components/icons/Mute' +import {Divider} from '#/components/Divider' import {Link} from '#/components/Link' -import {Loader} from '#/components/Loader' -import {Text} from '#/components/Typography' import {makeSearchLink} from '#/lib/routes/links' import {NavigationProp} from '#/lib/routes/types' -import {isInvalidHandle} from '#/lib/strings/handles' import { usePreferencesQuery, - useRemoveMutedWordMutation, useUpsertMutedWordsMutation, + useRemoveMutedWordMutation, } from '#/state/queries/preferences' +import {Loader} from '#/components/Loader' +import {isInvalidHandle} from '#/lib/strings/handles' export function useTagMenuControl() { return Dialog.useDialogControl() diff --git a/src/components/TagMenu/index.web.tsx b/src/components/TagMenu/index.web.tsx index b8a44d6c09..8245bd0191 100644 --- a/src/components/TagMenu/index.web.tsx +++ b/src/components/TagMenu/index.web.tsx @@ -1,20 +1,20 @@ +import React from 'react' import {msg} from '@lingui/macro' import {useLingui} from '@lingui/react' import {useNavigation} from '@react-navigation/native' -import React from 'react' -import {web} from '#/alf' -import * as Dialog from '#/components/Dialog' -import {NavigationProp} from '#/lib/routes/types' import {isInvalidHandle} from '#/lib/strings/handles' -import {enforceLen} from '#/lib/strings/helpers' +import {EventStopper} from '#/view/com/util/EventStopper' +import {NativeDropdown} from '#/view/com/util/forms/NativeDropdown' +import {NavigationProp} from '#/lib/routes/types' import { usePreferencesQuery, - useRemoveMutedWordMutation, useUpsertMutedWordsMutation, + useRemoveMutedWordMutation, } from '#/state/queries/preferences' -import {EventStopper} from '#/view/com/util/EventStopper' -import {NativeDropdown} from '#/view/com/util/forms/NativeDropdown' +import {enforceLen} from '#/lib/strings/helpers' +import {web} from '#/alf' +import * as Dialog from '#/components/Dialog' export function useTagMenuControl(): Dialog.DialogControlProps { return { diff --git a/src/components/Typography.tsx b/src/components/Typography.tsx index e7db94e5ce..5268e7f468 100644 --- a/src/components/Typography.tsx +++ b/src/components/Typography.tsx @@ -1,8 +1,8 @@ import React from 'react' -import {Text as RNText, TextProps as RNTextProps, TextStyle} from 'react-native' +import {Text as RNText, TextStyle, TextProps as RNTextProps} from 'react-native' import {UITextView} from 'react-native-ui-text-view' -import {atoms, flatten, useTheme, web} from '#/alf' +import {useTheme, atoms, web, flatten} from '#/alf' import {isIOS, isNative} from '#/platform/detection' export type TextProps = RNTextProps & { diff --git a/src/components/dialogs/MutedWords.tsx b/src/components/dialogs/MutedWords.tsx index 4dedbdf855..5f23a78838 100644 --- a/src/components/dialogs/MutedWords.tsx +++ b/src/components/dialogs/MutedWords.tsx @@ -1,36 +1,37 @@ -import {AppBskyActorDefs, sanitizeMutedWordValue} from '@atproto/api' -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' import React from 'react' import {Keyboard, View} from 'react-native' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {AppBskyActorDefs, sanitizeMutedWordValue} from '@atproto/api' +import { + usePreferencesQuery, + useUpsertMutedWordsMutation, + useRemoveMutedWordMutation, +} from '#/state/queries/preferences' +import {isNative} from '#/platform/detection' import { atoms as a, - native, - useBreakpoints, useTheme, + useBreakpoints, ViewStyleProp, web, + native, } from '#/alf' +import {Text} from '#/components/Typography' import {Button, ButtonIcon, ButtonText} from '#/components/Button' -import * as Dialog from '#/components/Dialog' -import {useGlobalDialogsControlContext} from '#/components/dialogs/Context' -import {Divider} from '#/components/Divider' -import * as Toggle from '#/components/forms/Toggle' -import {Hashtag_Stroke2_Corner0_Rounded as Hashtag} from '#/components/icons/Hashtag' -import {PageText_Stroke2_Corner0_Rounded as PageText} from '#/components/icons/PageText' import {PlusLarge_Stroke2_Corner0_Rounded as Plus} from '#/components/icons/Plus' import {TimesLarge_Stroke2_Corner0_Rounded as X} from '#/components/icons/Times' +import {Hashtag_Stroke2_Corner0_Rounded as Hashtag} from '#/components/icons/Hashtag' +import {PageText_Stroke2_Corner0_Rounded as PageText} from '#/components/icons/PageText' +import {Divider} from '#/components/Divider' import {Loader} from '#/components/Loader' -import * as Prompt from '#/components/Prompt' -import {Text} from '#/components/Typography' import {logger} from '#/logger' -import {isNative} from '#/platform/detection' -import { - usePreferencesQuery, - useRemoveMutedWordMutation, - useUpsertMutedWordsMutation, -} from '#/state/queries/preferences' +import * as Dialog from '#/components/Dialog' +import * as Toggle from '#/components/forms/Toggle' +import * as Prompt from '#/components/Prompt' + +import {useGlobalDialogsControlContext} from '#/components/dialogs/Context' export function MutedWordsDialog() { const {mutedWordsDialogControl: control} = useGlobalDialogsControlContext() diff --git a/src/components/forms/DateField/index.android.tsx b/src/components/forms/DateField/index.android.tsx index 2a93ba8830..451810a5ea 100644 --- a/src/components/forms/DateField/index.android.tsx +++ b/src/components/forms/DateField/index.android.tsx @@ -1,18 +1,19 @@ -import {isAndroid} from 'platform/detection' import React from 'react' -import {Pressable, View} from 'react-native' -import DatePicker from 'react-native-date-picker' +import {View, Pressable} from 'react-native' + +import {useTheme, atoms} from '#/alf' +import {Text} from '#/components/Typography' +import {useInteractionState} from '#/components/hooks/useInteractionState' +import * as TextField from '#/components/forms/TextField' +import {CalendarDays_Stroke2_Corner0_Rounded as CalendarDays} from '#/components/icons/CalendarDays' -import {atoms, useTheme} from '#/alf' import {DateFieldProps} from '#/components/forms/DateField/types' import { localizeDate, toSimpleDateString, } from '#/components/forms/DateField/utils' -import * as TextField from '#/components/forms/TextField' -import {useInteractionState} from '#/components/hooks/useInteractionState' -import {CalendarDays_Stroke2_Corner0_Rounded as CalendarDays} from '#/components/icons/CalendarDays' -import {Text} from '#/components/Typography' +import DatePicker from 'react-native-date-picker' +import {isAndroid} from 'platform/detection' export * as utils from '#/components/forms/DateField/utils' export const Label = TextField.Label diff --git a/src/components/forms/DateField/index.tsx b/src/components/forms/DateField/index.tsx index 9bd1c7b813..49e47a01e3 100644 --- a/src/components/forms/DateField/index.tsx +++ b/src/components/forms/DateField/index.tsx @@ -1,11 +1,11 @@ import React from 'react' import {View} from 'react-native' -import DatePicker from 'react-native-date-picker' -import {atoms, useTheme} from '#/alf' -import {DateFieldProps} from '#/components/forms/DateField/types' -import {toSimpleDateString} from '#/components/forms/DateField/utils' +import {useTheme, atoms} from '#/alf' import * as TextField from '#/components/forms/TextField' +import {toSimpleDateString} from '#/components/forms/DateField/utils' +import {DateFieldProps} from '#/components/forms/DateField/types' +import DatePicker from 'react-native-date-picker' export * as utils from '#/components/forms/DateField/utils' export const Label = TextField.Label diff --git a/src/components/forms/DateField/index.web.tsx b/src/components/forms/DateField/index.web.tsx index 1c89cbae93..32f38a5d16 100644 --- a/src/components/forms/DateField/index.web.tsx +++ b/src/components/forms/DateField/index.web.tsx @@ -1,11 +1,11 @@ import React from 'react' -import {StyleSheet, TextInput, TextInputProps} from 'react-native' +import {TextInput, TextInputProps, StyleSheet} from 'react-native' // @ts-ignore import {unstable_createElement} from 'react-native-web' -import {DateFieldProps} from '#/components/forms/DateField/types' -import {toSimpleDateString} from '#/components/forms/DateField/utils' import * as TextField from '#/components/forms/TextField' +import {toSimpleDateString} from '#/components/forms/DateField/utils' +import {DateFieldProps} from '#/components/forms/DateField/types' export * as utils from '#/components/forms/DateField/utils' export const Label = TextField.Label diff --git a/src/components/forms/TextField.tsx b/src/components/forms/TextField.tsx index 648be035bc..b37f4bfae9 100644 --- a/src/components/forms/TextField.tsx +++ b/src/components/forms/TextField.tsx @@ -1,19 +1,19 @@ -import {HITSLOP_20} from 'lib/constants' import React from 'react' import { - AccessibilityProps, - StyleSheet, + View, TextInput, TextInputProps, TextStyle, - View, ViewStyle, + StyleSheet, + AccessibilityProps, } from 'react-native' -import {android, atoms as a, useTheme, web} from '#/alf' +import {HITSLOP_20} from 'lib/constants' +import {useTheme, atoms as a, web, android} from '#/alf' +import {Text} from '#/components/Typography' import {useInteractionState} from '#/components/hooks/useInteractionState' import {Props as SVGIconProps} from '#/components/icons/common' -import {Text} from '#/components/Typography' const Context = React.createContext<{ inputRef: React.RefObject | null diff --git a/src/components/forms/Toggle.tsx b/src/components/forms/Toggle.tsx index 3846b8812e..a83f92a2a6 100644 --- a/src/components/forms/Toggle.tsx +++ b/src/components/forms/Toggle.tsx @@ -1,11 +1,11 @@ -import {HITSLOP_10} from 'lib/constants' import React from 'react' import {Pressable, View, ViewStyle} from 'react-native' -import {atoms as a, flatten, native, useTheme, ViewStyleProp, web} from '#/alf' +import {HITSLOP_10} from 'lib/constants' +import {useTheme, atoms as a, web, native, flatten, ViewStyleProp} from '#/alf' +import {Text} from '#/components/Typography' import {useInteractionState} from '#/components/hooks/useInteractionState' import {CheckThick_Stroke2_Corner0_Rounded as Checkmark} from '#/components/icons/Check' -import {Text} from '#/components/Typography' export type ItemState = { name: string diff --git a/src/components/forms/ToggleButton.tsx b/src/components/forms/ToggleButton.tsx index 718f238dac..7e1bd70b99 100644 --- a/src/components/forms/ToggleButton.tsx +++ b/src/components/forms/ToggleButton.tsx @@ -1,10 +1,11 @@ import React from 'react' -import {AccessibilityProps, TextStyle, View, ViewStyle} from 'react-native' +import {View, AccessibilityProps, TextStyle, ViewStyle} from 'react-native' -import {atoms as a, native, useTheme} from '#/alf' -import * as Toggle from '#/components/forms/Toggle' +import {atoms as a, useTheme, native} from '#/alf' import {Text} from '#/components/Typography' +import * as Toggle from '#/components/forms/Toggle' + export type ItemProps = Omit & AccessibilityProps & React.PropsWithChildren<{testID?: string}> diff --git a/src/components/icons/TEMPLATE.tsx b/src/components/icons/TEMPLATE.tsx index f49c4280bb..9fc1470375 100644 --- a/src/components/icons/TEMPLATE.tsx +++ b/src/components/icons/TEMPLATE.tsx @@ -1,7 +1,7 @@ import React from 'react' import Svg, {Path} from 'react-native-svg' -import {Props, useCommonSVGProps} from '#/components/icons/common' +import {useCommonSVGProps, Props} from '#/components/icons/common' export const IconTemplate_Stroke2_Corner0_Rounded = React.forwardRef( function LogoImpl(props: Props, ref) { diff --git a/src/components/icons/common.ts b/src/components/icons/common.ts index 669c157f51..9e9f15c4dd 100644 --- a/src/components/icons/common.ts +++ b/src/components/icons/common.ts @@ -1,5 +1,5 @@ import {StyleSheet, TextProps} from 'react-native' -import type {PathProps, SvgProps} from 'react-native-svg' +import type {SvgProps, PathProps} from 'react-native-svg' import {tokens} from '#/alf' diff --git a/src/lib/ThemeContext.tsx b/src/lib/ThemeContext.tsx index a042521619..63e2beeb11 100644 --- a/src/lib/ThemeContext.tsx +++ b/src/lib/ThemeContext.tsx @@ -1,9 +1,7 @@ -import React, {createContext, ReactNode, useContext} from 'react' +import React, {ReactNode, createContext, useContext} from 'react' import {TextStyle, ViewStyle} from 'react-native' - -import {ThemeName} from '#/alf/themes' - import {darkTheme, defaultTheme, dimTheme} from './themes' +import {ThemeName} from '#/alf/themes' export type ColorScheme = 'light' | 'dark' diff --git a/src/lib/__tests__/moderatePost_wrapped.test.ts b/src/lib/__tests__/moderatePost_wrapped.test.ts index d876106600..45566281af 100644 --- a/src/lib/__tests__/moderatePost_wrapped.test.ts +++ b/src/lib/__tests__/moderatePost_wrapped.test.ts @@ -1,5 +1,5 @@ +import {describe, it, expect} from '@jest/globals' import {RichText} from '@atproto/api' -import {describe, expect, it} from '@jest/globals' import {hasMutedWord} from '../moderatePost_wrapped' diff --git a/src/lib/analytics/analytics.tsx b/src/lib/analytics/analytics.tsx index c27a4fb702..a0cc7cd6e8 100644 --- a/src/lib/analytics/analytics.tsx +++ b/src/lib/analytics/analytics.tsx @@ -1,14 +1,13 @@ +import React from 'react' +import {AppState, AppStateStatus} from 'react-native' import AsyncStorage from '@react-native-async-storage/async-storage' import {createClient, SegmentClient} from '@segment/analytics-react-native' import {sha256} from 'js-sha256' -import React from 'react' -import {AppState, AppStateStatus} from 'react-native' import {Native} from 'sentry-expo' -import {logger} from '#/logger' -import {SessionAccount, useSession} from '#/state/session' - +import {useSession, SessionAccount} from '#/state/session' import {ScreenPropertiesMap, TrackPropertiesMap} from './types' +import {logger} from '#/logger' type AppInfo = { build?: string | undefined diff --git a/src/lib/analytics/analytics.web.tsx b/src/lib/analytics/analytics.web.tsx index 21975bc572..72b28f9c0f 100644 --- a/src/lib/analytics/analytics.web.tsx +++ b/src/lib/analytics/analytics.web.tsx @@ -1,12 +1,11 @@ +import React from 'react' import {createClient} from '@segment/analytics-react' import {sha256} from 'js-sha256' -import React from 'react' import {Browser} from 'sentry-expo' -import {logger} from '#/logger' -import {SessionAccount, useSession} from '#/state/session' - import {ScreenPropertiesMap, TrackPropertiesMap} from './types' +import {useSession, SessionAccount} from '#/state/session' +import {logger} from '#/logger' type SegmentClient = ReturnType diff --git a/src/lib/api/api-polyfill.ts b/src/lib/api/api-polyfill.ts index a0245839a5..ea1d975985 100644 --- a/src/lib/api/api-polyfill.ts +++ b/src/lib/api/api-polyfill.ts @@ -1,4 +1,4 @@ -import {BskyAgent, jsonToLex, stringifyLex} from '@atproto/api' +import {BskyAgent, stringifyLex, jsonToLex} from '@atproto/api' import RNFS from 'react-native-fs' const GET_TIMEOUT = 15e3 // 15s diff --git a/src/lib/api/feed-manip.ts b/src/lib/api/feed-manip.ts index 26eea80a1b..227062592b 100644 --- a/src/lib/api/feed-manip.ts +++ b/src/lib/api/feed-manip.ts @@ -1,12 +1,11 @@ import { - AppBskyEmbedRecord, - AppBskyEmbedRecordWithMedia, AppBskyFeedDefs, AppBskyFeedPost, + AppBskyEmbedRecordWithMedia, + AppBskyEmbedRecord, } from '@atproto/api' - -import {isPostInLanguage} from '../../locale/helpers' import {ReasonFeedSource} from './feed/types' +import {isPostInLanguage} from '../../locale/helpers' type FeedViewPost = AppBskyFeedDefs.FeedViewPost export type FeedTunerFn = ( diff --git a/src/lib/api/feed/author.ts b/src/lib/api/feed/author.ts index 60bb23603b..57db061b33 100644 --- a/src/lib/api/feed/author.ts +++ b/src/lib/api/feed/author.ts @@ -2,10 +2,8 @@ import { AppBskyFeedDefs, AppBskyFeedGetAuthorFeed as GetAuthorFeed, } from '@atproto/api' - -import {getAgent} from '#/state/session' - import {FeedAPI, FeedAPIResponse} from './types' +import {getAgent} from '#/state/session' export class AuthorFeedAPI implements FeedAPI { constructor(public params: GetAuthorFeed.QueryParams) {} diff --git a/src/lib/api/feed/custom.ts b/src/lib/api/feed/custom.ts index cb7e7e66aa..41c5367e57 100644 --- a/src/lib/api/feed/custom.ts +++ b/src/lib/api/feed/custom.ts @@ -2,11 +2,9 @@ import { AppBskyFeedDefs, AppBskyFeedGetFeed as GetCustomFeed, } from '@atproto/api' - -import {getContentLanguages} from '#/state/preferences/languages' -import {getAgent} from '#/state/session' - import {FeedAPI, FeedAPIResponse} from './types' +import {getAgent} from '#/state/session' +import {getContentLanguages} from '#/state/preferences/languages' export class CustomFeedAPI implements FeedAPI { constructor(public params: GetCustomFeed.QueryParams) {} diff --git a/src/lib/api/feed/following.ts b/src/lib/api/feed/following.ts index 95f0a70903..24389b5edc 100644 --- a/src/lib/api/feed/following.ts +++ b/src/lib/api/feed/following.ts @@ -1,8 +1,6 @@ import {AppBskyFeedDefs} from '@atproto/api' - -import {getAgent} from '#/state/session' - import {FeedAPI, FeedAPIResponse} from './types' +import {getAgent} from '#/state/session' export class FollowingFeedAPI implements FeedAPI { constructor() {} diff --git a/src/lib/api/feed/home.ts b/src/lib/api/feed/home.ts index f12dab7b69..436a66d076 100644 --- a/src/lib/api/feed/home.ts +++ b/src/lib/api/feed/home.ts @@ -1,10 +1,8 @@ import {AppBskyFeedDefs} from '@atproto/api' - -import {PROD_DEFAULT_FEED} from '#/lib/constants' - -import {CustomFeedAPI} from './custom' -import {FollowingFeedAPI} from './following' import {FeedAPI, FeedAPIResponse} from './types' +import {FollowingFeedAPI} from './following' +import {CustomFeedAPI} from './custom' +import {PROD_DEFAULT_FEED} from '#/lib/constants' // HACK // the feed API does not include any facilities for passing down diff --git a/src/lib/api/feed/likes.ts b/src/lib/api/feed/likes.ts index 95697e5d76..2b0afdf11e 100644 --- a/src/lib/api/feed/likes.ts +++ b/src/lib/api/feed/likes.ts @@ -2,10 +2,8 @@ import { AppBskyFeedDefs, AppBskyFeedGetActorLikes as GetActorLikes, } from '@atproto/api' - -import {getAgent} from '#/state/session' - import {FeedAPI, FeedAPIResponse} from './types' +import {getAgent} from '#/state/session' export class LikesFeedAPI implements FeedAPI { constructor(public params: GetActorLikes.QueryParams) {} diff --git a/src/lib/api/feed/list.ts b/src/lib/api/feed/list.ts index 1b0b259cf3..19f2ff177c 100644 --- a/src/lib/api/feed/list.ts +++ b/src/lib/api/feed/list.ts @@ -2,10 +2,8 @@ import { AppBskyFeedDefs, AppBskyFeedGetListFeed as GetListFeed, } from '@atproto/api' - -import {getAgent} from '#/state/session' - import {FeedAPI, FeedAPIResponse} from './types' +import {getAgent} from '#/state/session' export class ListFeedAPI implements FeedAPI { constructor(public params: GetListFeed.QueryParams) {} diff --git a/src/lib/api/feed/merge.ts b/src/lib/api/feed/merge.ts index 49210afed0..28bf143cbb 100644 --- a/src/lib/api/feed/merge.ts +++ b/src/lib/api/feed/merge.ts @@ -1,16 +1,14 @@ import {AppBskyFeedDefs, AppBskyFeedGetTimeline} from '@atproto/api' -import {bundleAsync} from 'lib/async/bundle' +import shuffle from 'lodash.shuffle' import {timeout} from 'lib/async/timeout' +import {bundleAsync} from 'lib/async/bundle' import {feedUriToHref} from 'lib/strings/url-helpers' -import shuffle from 'lodash.shuffle' - -import {getContentLanguages} from '#/state/preferences/languages' -import {FeedParams} from '#/state/queries/post-feed' -import {getAgent} from '#/state/session' - import {FeedTuner} from '../feed-manip' -import {FeedTunerFn} from '../feed-manip' import {FeedAPI, FeedAPIResponse, ReasonFeedSource} from './types' +import {FeedParams} from '#/state/queries/post-feed' +import {FeedTunerFn} from '../feed-manip' +import {getAgent} from '#/state/session' +import {getContentLanguages} from '#/state/preferences/languages' const REQUEST_WAIT_MS = 500 // 500ms const POST_AGE_CUTOFF = 60e3 * 60 * 24 // 24hours diff --git a/src/lib/api/index.ts b/src/lib/api/index.ts index 178554d735..5fb7fe50e6 100644 --- a/src/lib/api/index.ts +++ b/src/lib/api/index.ts @@ -1,6 +1,6 @@ import { - AppBskyEmbedExternal, AppBskyEmbedImages, + AppBskyEmbedExternal, AppBskyEmbedRecord, AppBskyEmbedRecordWithMedia, AppBskyFeedThreadgate, @@ -12,15 +12,13 @@ import { } from '@atproto/api' import {AtUri} from '@atproto/api' import {isNetworkError} from 'lib/strings/errors' -import {shortenLinks} from 'lib/strings/rich-text-manip' +import {LinkMeta} from '../link-meta/link-meta' import {isWeb} from 'platform/detection' import {ImageModel} from 'state/models/media/image' - +import {shortenLinks} from 'lib/strings/rich-text-manip' import {logger} from '#/logger' import {ThreadgateSetting} from '#/state/queries/threadgate' -import {LinkMeta} from '../link-meta/link-meta' - export interface ExternalEmbedDraft { uri: string isLoading: boolean diff --git a/src/lib/app-info.ts b/src/lib/app-info.ts index f6b4932c37..3f026d3fe6 100644 --- a/src/lib/app-info.ts +++ b/src/lib/app-info.ts @@ -1,5 +1,5 @@ -import * as Updates from 'expo-updates' import VersionNumber from 'react-native-version-number' +import * as Updates from 'expo-updates' export const updateChannel = Updates.channel export const appVersion = `${VersionNumber.appVersion} (${VersionNumber.buildVersion})` diff --git a/src/lib/embeds.ts b/src/lib/embeds.ts index 2904f1cc36..a758987b20 100644 --- a/src/lib/embeds.ts +++ b/src/lib/embeds.ts @@ -1,7 +1,7 @@ import { + AppBskyFeedDefs, AppBskyEmbedRecord, AppBskyEmbedRecordWithMedia, - AppBskyFeedDefs, } from '@atproto/api' export function isEmbedByEmbedder( diff --git a/src/lib/hooks/useAccountSwitcher.ts b/src/lib/hooks/useAccountSwitcher.ts index 478ce538a5..74b5674d5a 100644 --- a/src/lib/hooks/useAccountSwitcher.ts +++ b/src/lib/hooks/useAccountSwitcher.ts @@ -1,11 +1,11 @@ import {useCallback} from 'react' -import {useAnalytics} from '#/lib/analytics/analytics' import {isWeb} from '#/platform/detection' -import {SessionAccount, useSessionApi} from '#/state/session' -import {useLoggedOutViewControls} from '#/state/shell/logged-out' -import {useCloseAllActiveElements} from '#/state/util' +import {useAnalytics} from '#/lib/analytics/analytics' +import {useSessionApi, SessionAccount} from '#/state/session' import * as Toast from '#/view/com/util/Toast' +import {useCloseAllActiveElements} from '#/state/util' +import {useLoggedOutViewControls} from '#/state/shell/logged-out' export function useAccountSwitcher() { const {track} = useAnalytics() diff --git a/src/lib/hooks/useAnimatedScrollHandler_FIXED.web.ts b/src/lib/hooks/useAnimatedScrollHandler_FIXED.web.ts index 7f8a99506a..98e05a8ce6 100644 --- a/src/lib/hooks/useAnimatedScrollHandler_FIXED.web.ts +++ b/src/lib/hooks/useAnimatedScrollHandler_FIXED.web.ts @@ -1,4 +1,4 @@ -import {useEffect, useRef} from 'react' +import {useRef, useEffect} from 'react' import {useAnimatedScrollHandler as useAnimatedScrollHandler_BUGGY} from 'react-native-reanimated' export const useAnimatedScrollHandler: typeof useAnimatedScrollHandler_BUGGY = ( diff --git a/src/lib/hooks/useCustomPalette.ts b/src/lib/hooks/useCustomPalette.ts index a069c7ce88..4f8f5c8368 100644 --- a/src/lib/hooks/useCustomPalette.ts +++ b/src/lib/hooks/useCustomPalette.ts @@ -1,6 +1,6 @@ -import {choose} from 'lib/functions' -import {useTheme} from 'lib/ThemeContext' import React from 'react' +import {useTheme} from 'lib/ThemeContext' +import {choose} from 'lib/functions' export function useCustomPalette({light, dark}: {light: T; dark: T}) { const theme = useTheme() diff --git a/src/lib/hooks/useDraggableScrollView.ts b/src/lib/hooks/useDraggableScrollView.ts index ea48ac1dcd..b0f7465d79 100644 --- a/src/lib/hooks/useDraggableScrollView.ts +++ b/src/lib/hooks/useDraggableScrollView.ts @@ -1,7 +1,7 @@ -import {mergeRefs} from 'lib/merge-refs' -import {ForwardedRef, useEffect, useMemo, useRef} from 'react' +import {useEffect, useRef, useMemo, ForwardedRef} from 'react' +import {Platform, findNodeHandle} from 'react-native' import type {ScrollView} from 'react-native' -import {findNodeHandle, Platform} from 'react-native' +import {mergeRefs} from 'lib/merge-refs' type Props = { cursor?: string diff --git a/src/lib/hooks/useIntentHandler.ts b/src/lib/hooks/useIntentHandler.ts index 34f645d7ff..8741530b50 100644 --- a/src/lib/hooks/useIntentHandler.ts +++ b/src/lib/hooks/useIntentHandler.ts @@ -1,8 +1,8 @@ +import React from 'react' import * as Linking from 'expo-linking' import {isNative} from 'platform/detection' -import React from 'react' -import {useSession} from 'state/session' import {useComposerControls} from 'state/shell' +import {useSession} from 'state/session' import {useCloseAllActiveElements} from 'state/util' type IntentType = 'compose' diff --git a/src/lib/hooks/useIsKeyboardVisible.ts b/src/lib/hooks/useIsKeyboardVisible.ts index 391090f2d1..38fc80bde1 100644 --- a/src/lib/hooks/useIsKeyboardVisible.ts +++ b/src/lib/hooks/useIsKeyboardVisible.ts @@ -1,6 +1,6 @@ -import {isIOS} from 'platform/detection' -import {useEffect, useState} from 'react' +import {useState, useEffect} from 'react' import {Keyboard} from 'react-native' +import {isIOS} from 'platform/detection' export function useIsKeyboardVisible({ iosUseWillEvents, diff --git a/src/lib/hooks/useMinimalShellMode.tsx b/src/lib/hooks/useMinimalShellMode.tsx index 071d876831..e81fc434fe 100644 --- a/src/lib/hooks/useMinimalShellMode.tsx +++ b/src/lib/hooks/useMinimalShellMode.tsx @@ -1,5 +1,4 @@ import {interpolate, useAnimatedStyle} from 'react-native-reanimated' - import {useMinimalShellMode as useMinimalShellModeState} from '#/state/shell/minimal-mode' import {useShellLayout} from '#/state/shell/shell-layout' diff --git a/src/lib/hooks/useNavigationDeduped.ts b/src/lib/hooks/useNavigationDeduped.ts index 99efad6105..d913f7f3d0 100644 --- a/src/lib/hooks/useNavigationDeduped.ts +++ b/src/lib/hooks/useNavigationDeduped.ts @@ -1,9 +1,9 @@ +import React from 'react' import {useNavigation} from '@react-navigation/core' -import {NavigationState} from '@react-navigation/native' +import {AllNavigatorParams, NavigationProp} from 'lib/routes/types' import type {NavigationAction} from '@react-navigation/routers' +import {NavigationState} from '@react-navigation/native' import {useDedupe} from 'lib/hooks/useDedupe' -import {AllNavigatorParams, NavigationProp} from 'lib/routes/types' -import React from 'react' export type DebouncedNavigationProp = Pick< NavigationProp, diff --git a/src/lib/hooks/useOTAUpdate.ts b/src/lib/hooks/useOTAUpdate.ts index 9bfc998a6a..53eab300e7 100644 --- a/src/lib/hooks/useOTAUpdate.ts +++ b/src/lib/hooks/useOTAUpdate.ts @@ -1,10 +1,9 @@ -import {t} from '@lingui/macro' import * as Updates from 'expo-updates' import {useCallback, useEffect} from 'react' import {AppState} from 'react-native' - import {logger} from '#/logger' import {useModalControls} from '#/state/modals' +import {t} from '@lingui/macro' export function useOTAUpdate() { const {openModal} = useModalControls() diff --git a/src/lib/hooks/usePalette.ts b/src/lib/hooks/usePalette.ts index 2530642f60..eeb43d0b1f 100644 --- a/src/lib/hooks/usePalette.ts +++ b/src/lib/hooks/usePalette.ts @@ -1,7 +1,6 @@ import {useMemo} from 'react' import {TextStyle, ViewStyle} from 'react-native' - -import {PaletteColor, PaletteColorName, useTheme} from '../ThemeContext' +import {useTheme, PaletteColorName, PaletteColor} from '../ThemeContext' export interface UsePaletteValue { colors: PaletteColor diff --git a/src/lib/hooks/usePermissions.ts b/src/lib/hooks/usePermissions.ts index 28693ea71d..138f3eacab 100644 --- a/src/lib/hooks/usePermissions.ts +++ b/src/lib/hooks/usePermissions.ts @@ -1,7 +1,7 @@ import {Camera} from 'expo-camera' import * as MediaLibrary from 'expo-media-library' -import {isWeb} from 'platform/detection' import {Linking} from 'react-native' +import {isWeb} from 'platform/detection' import {Alert} from 'view/com/util/Alert' const openPermissionAlert = (perm: string) => { diff --git a/src/lib/hooks/useSetTitle.ts b/src/lib/hooks/useSetTitle.ts index d88830a89c..129023f717 100644 --- a/src/lib/hooks/useSetTitle.ts +++ b/src/lib/hooks/useSetTitle.ts @@ -1,8 +1,8 @@ +import {useEffect} from 'react' import {useNavigation} from '@react-navigation/native' + import {NavigationProp} from 'lib/routes/types' import {bskyTitle} from 'lib/strings/headings' -import {useEffect} from 'react' - import {useUnreadNotifications} from '#/state/queries/notifications/unread' export function useSetTitle(title?: string) { diff --git a/src/lib/hooks/useTabFocusEffect.ts b/src/lib/hooks/useTabFocusEffect.ts index 5f53350457..e446084c5a 100644 --- a/src/lib/hooks/useTabFocusEffect.ts +++ b/src/lib/hooks/useTabFocusEffect.ts @@ -1,6 +1,6 @@ +import {useEffect, useState} from 'react' import {useNavigation} from '@react-navigation/native' import {getTabState, TabState} from 'lib/routes/helpers' -import {useEffect, useState} from 'react' export function useTabFocusEffect( tabName: string, diff --git a/src/lib/hooks/useToggleMutationQueue.ts b/src/lib/hooks/useToggleMutationQueue.ts index c4b86d3253..28ae861424 100644 --- a/src/lib/hooks/useToggleMutationQueue.ts +++ b/src/lib/hooks/useToggleMutationQueue.ts @@ -1,4 +1,4 @@ -import {useCallback, useEffect, useRef, useState} from 'react' +import {useState, useRef, useEffect, useCallback} from 'react' type Task = { isOn: boolean diff --git a/src/lib/hooks/useWebBodyScrollLock.ts b/src/lib/hooks/useWebBodyScrollLock.ts index 790ddce630..585f193f1f 100644 --- a/src/lib/hooks/useWebBodyScrollLock.ts +++ b/src/lib/hooks/useWebBodyScrollLock.ts @@ -1,5 +1,4 @@ import {useEffect} from 'react' - import {isWeb} from '#/platform/detection' let refCount = 0 diff --git a/src/lib/hooks/useWebMediaQueries.tsx b/src/lib/hooks/useWebMediaQueries.tsx index 45b7b6c589..71a96a89b1 100644 --- a/src/lib/hooks/useWebMediaQueries.tsx +++ b/src/lib/hooks/useWebMediaQueries.tsx @@ -1,5 +1,5 @@ -import {isNative} from 'platform/detection' import {useMediaQuery} from 'react-responsive' +import {isNative} from 'platform/detection' export function useWebMediaQueries() { const isDesktop = useMediaQuery({minWidth: 1300}) diff --git a/src/lib/hooks/useWebScrollRestoration.ts b/src/lib/hooks/useWebScrollRestoration.ts index 5a44024940..f68fbf0f2f 100644 --- a/src/lib/hooks/useWebScrollRestoration.ts +++ b/src/lib/hooks/useWebScrollRestoration.ts @@ -1,5 +1,5 @@ +import {useMemo, useState, useEffect} from 'react' import {EventArg, useNavigation} from '@react-navigation/core' -import {useEffect, useMemo, useState} from 'react' if ('scrollRestoration' in history) { // Tell the brower not to mess with the scroll. diff --git a/src/lib/icons.tsx b/src/lib/icons.tsx index eb8214019b..7ae88806f7 100644 --- a/src/lib/icons.tsx +++ b/src/lib/icons.tsx @@ -1,6 +1,6 @@ import React from 'react' import {StyleProp, TextStyle, ViewStyle} from 'react-native' -import Svg, {Ellipse, Line, Path, Rect} from 'react-native-svg' +import Svg, {Path, Rect, Line, Ellipse} from 'react-native-svg' export function GridIcon({ style, diff --git a/src/lib/link-meta/bsky.ts b/src/lib/link-meta/bsky.ts index 1c8b28d9b9..c1fbb34b3c 100644 --- a/src/lib/link-meta/bsky.ts +++ b/src/lib/link-meta/bsky.ts @@ -1,13 +1,11 @@ import {AppBskyFeedPost, BskyAgent} from '@atproto/api' import * as apilib from 'lib/api/index' -import {ComposerOptsQuote} from 'state/shell/composer' - -import {useFetchDid} from '#/state/queries/handle' -import {useGetPost} from '#/state/queries/post' - +import {LikelyType, LinkMeta} from './link-meta' // import {match as matchRoute} from 'view/routes' import {convertBskyAppUrlIfNeeded, makeRecordUri} from '../strings/url-helpers' -import {LikelyType, LinkMeta} from './link-meta' +import {ComposerOptsQuote} from 'state/shell/composer' +import {useGetPost} from '#/state/queries/post' +import {useFetchDid} from '#/state/queries/handle' // TODO // import {Home} from 'view/screens/Home' diff --git a/src/lib/link-meta/link-meta.ts b/src/lib/link-meta/link-meta.ts index 0f5230479e..fa951432e8 100644 --- a/src/lib/link-meta/link-meta.ts +++ b/src/lib/link-meta/link-meta.ts @@ -1,9 +1,8 @@ import {BskyAgent} from '@atproto/api' -import {LINK_META_PROXY} from 'lib/constants' -import {getGiphyMetaUri} from 'lib/strings/embed-player' - import {isBskyAppUrl} from '../strings/url-helpers' import {extractBskyMeta} from './bsky' +import {LINK_META_PROXY} from 'lib/constants' +import {getGiphyMetaUri} from 'lib/strings/embed-player' export enum LikelyType { HTML, diff --git a/src/lib/media/image-sizes.ts b/src/lib/media/image-sizes.ts index cab032313d..4ea95ea237 100644 --- a/src/lib/media/image-sizes.ts +++ b/src/lib/media/image-sizes.ts @@ -1,5 +1,5 @@ -import type {Dimensions} from 'lib/media/types' import {Image} from 'react-native' +import type {Dimensions} from 'lib/media/types' const sizes: Map = new Map() const activeRequests: Map> = new Map() diff --git a/src/lib/media/manip.ts b/src/lib/media/manip.ts index 20cca745b9..a681627e67 100644 --- a/src/lib/media/manip.ts +++ b/src/lib/media/manip.ts @@ -1,14 +1,13 @@ +import RNFetchBlob from 'rn-fetch-blob' import ImageResizer from '@bam.tech/react-native-image-resizer' -import * as MediaLibrary from 'expo-media-library' -import * as Sharing from 'expo-sharing' -import {isAndroid, isIOS} from 'platform/detection' import {Image as RNImage, Share as RNShare} from 'react-native' -import * as RNFS from 'react-native-fs' import {Image} from 'react-native-image-crop-picker' +import * as RNFS from 'react-native-fs' import uuid from 'react-native-uuid' -import RNFetchBlob from 'rn-fetch-blob' - +import * as Sharing from 'expo-sharing' +import * as MediaLibrary from 'expo-media-library' import {Dimensions} from './types' +import {isAndroid, isIOS} from 'platform/detection' export async function compressIfNeeded( img: Image, diff --git a/src/lib/media/manip.web.ts b/src/lib/media/manip.web.ts index 8b63f9e5fe..522aa2e51b 100644 --- a/src/lib/media/manip.web.ts +++ b/src/lib/media/manip.web.ts @@ -1,7 +1,6 @@ -import {Image as RNImage} from 'react-native-image-crop-picker' - import {Dimensions} from './types' -import {blobToDataUri, getDataUriSize} from './util' +import {Image as RNImage} from 'react-native-image-crop-picker' +import {getDataUriSize, blobToDataUri} from './util' export async function compressIfNeeded( img: RNImage, diff --git a/src/lib/media/picker.e2e.tsx b/src/lib/media/picker.e2e.tsx index 08ee91b74f..d7b6080417 100644 --- a/src/lib/media/picker.e2e.tsx +++ b/src/lib/media/picker.e2e.tsx @@ -1,8 +1,7 @@ -import RNFS from 'react-native-fs' import {Image as RNImage} from 'react-native-image-crop-picker' - -import {compressIfNeeded} from './manip' +import RNFS from 'react-native-fs' import {CropperOptions} from './types' +import {compressIfNeeded} from './manip' let _imageCounter = 0 async function getFile() { diff --git a/src/lib/media/picker.shared.ts b/src/lib/media/picker.shared.ts index d00c2b8a61..8bade34e25 100644 --- a/src/lib/media/picker.shared.ts +++ b/src/lib/media/picker.shared.ts @@ -3,9 +3,8 @@ import { launchImageLibraryAsync, MediaTypeOptions, } from 'expo-image-picker' -import * as Toast from 'view/com/util/Toast' - import {getDataUriSize} from './util' +import * as Toast from 'view/com/util/Toast' export async function openPicker(opts?: ImagePickerOptions) { const response = await launchImageLibraryAsync({ diff --git a/src/lib/media/picker.tsx b/src/lib/media/picker.tsx index 37e01e67f9..bf531c9814 100644 --- a/src/lib/media/picker.tsx +++ b/src/lib/media/picker.tsx @@ -1,9 +1,8 @@ import { - Image as RNImage, openCamera as openCameraFn, openCropper as openCropperFn, + Image as RNImage, } from 'react-native-image-crop-picker' - import {CameraOpts, CropperOptions} from './types' export {openPicker} from './picker.shared' diff --git a/src/lib/media/picker.web.tsx b/src/lib/media/picker.web.tsx index 7e2562e297..995a0c95f9 100644 --- a/src/lib/media/picker.web.tsx +++ b/src/lib/media/picker.web.tsx @@ -1,8 +1,7 @@ /// -import {Image as RNImage} from 'react-native-image-crop-picker' - import {CameraOpts, CropperOptions} from './types' +import {Image as RNImage} from 'react-native-image-crop-picker' export {openPicker} from './picker.shared' import {unstable__openModal} from '#/state/modals' diff --git a/src/lib/moderatePost_wrapped.ts b/src/lib/moderatePost_wrapped.ts index 566e46a050..9f6fa9c076 100644 --- a/src/lib/moderatePost_wrapped.ts +++ b/src/lib/moderatePost_wrapped.ts @@ -1,12 +1,12 @@ import { - AppBskyActorDefs, - AppBskyEmbedExternal, - AppBskyEmbedImages, AppBskyEmbedRecord, AppBskyEmbedRecordWithMedia, + moderatePost, + AppBskyActorDefs, AppBskyFeedPost, AppBskyRichtextFacet, - moderatePost, + AppBskyEmbedImages, + AppBskyEmbedExternal, } from '@atproto/api' type ModeratePost = typeof moderatePost diff --git a/src/lib/moderation.ts b/src/lib/moderation.ts index 3f8a032194..b6ebb47a02 100644 --- a/src/lib/moderation.ts +++ b/src/lib/moderation.ts @@ -1,4 +1,4 @@ -import {ModerationCause, PostModeration, ProfileModeration} from '@atproto/api' +import {ModerationCause, ProfileModeration, PostModeration} from '@atproto/api' export interface ModerationCauseDescription { name: string diff --git a/src/lib/notifications/notifications.ts b/src/lib/notifications/notifications.ts index 146bd98538..62d0bfc4b1 100644 --- a/src/lib/notifications/notifications.ts +++ b/src/lib/notifications/notifications.ts @@ -1,14 +1,12 @@ -import {QueryClient} from '@tanstack/react-query' import * as Notifications from 'expo-notifications' -import {track} from 'lib/analytics/analytics' +import {QueryClient} from '@tanstack/react-query' +import {resetToTab} from '../../Navigation' import {devicePlatform, isIOS} from 'platform/detection' - +import {track} from 'lib/analytics/analytics' import {logger} from '#/logger' import {RQKEY as RQKEY_NOTIFS} from '#/state/queries/notifications/feed' import {truncateAndInvalidate} from '#/state/queries/util' -import {getAgent, SessionAccount} from '#/state/session' - -import {resetToTab} from '../../Navigation' +import {SessionAccount, getAgent} from '#/state/session' const SERVICE_DID = (serviceUrl?: string) => serviceUrl?.includes('staging') diff --git a/src/lib/react-query.ts b/src/lib/react-query.ts index 94a09c9419..7fe3fe7a47 100644 --- a/src/lib/react-query.ts +++ b/src/lib/react-query.ts @@ -1,6 +1,5 @@ -import {focusManager, QueryClient} from '@tanstack/react-query' import {AppState, AppStateStatus} from 'react-native' - +import {QueryClient, focusManager} from '@tanstack/react-query' import {isNative} from '#/platform/detection' focusManager.setEventListener(onFocus => { diff --git a/src/lib/routes/helpers.ts b/src/lib/routes/helpers.ts index 03302da1ac..0da8850433 100644 --- a/src/lib/routes/helpers.ts +++ b/src/lib/routes/helpers.ts @@ -1,6 +1,5 @@ import {NavigationProp} from '@react-navigation/native' - -import {RouteParams, State} from './types' +import {State, RouteParams} from './types' export function getRootNavigation( nav: NavigationProp, diff --git a/src/lib/routes/router.ts b/src/lib/routes/router.ts index 45f9c85fdb..8c8be37397 100644 --- a/src/lib/routes/router.ts +++ b/src/lib/routes/router.ts @@ -1,4 +1,4 @@ -import {Route, RouteParams} from './types' +import {RouteParams, Route} from './types' export class Router { routes: [string, Route][] = [] diff --git a/src/lib/sentry.ts b/src/lib/sentry.ts index 1120c389f1..d0a5fe0fd5 100644 --- a/src/lib/sentry.ts +++ b/src/lib/sentry.ts @@ -3,9 +3,9 @@ * avoid future conflicts and/or circular deps */ -import * as info from 'expo-updates' import {Platform} from 'react-native' import app from 'react-native-version-number' +import * as info from 'expo-updates' import {init} from 'sentry-expo' /** diff --git a/src/lib/sharing.ts b/src/lib/sharing.ts index 6c45e46cf8..9f402f8737 100644 --- a/src/lib/sharing.ts +++ b/src/lib/sharing.ts @@ -1,9 +1,8 @@ +import {isIOS, isAndroid} from 'platform/detection' // import * as Sharing from 'expo-sharing' import Clipboard from '@react-native-clipboard/clipboard' -import {isAndroid, isIOS} from 'platform/detection' -import {Share} from 'react-native' - import * as Toast from '../view/com/util/Toast' +import {Share} from 'react-native' /** * This function shares a URL using the native Share API if available, or copies it to the clipboard diff --git a/src/lib/statsig/statsig.tsx b/src/lib/statsig/statsig.tsx index c9e497af0c..6d9ebeb099 100644 --- a/src/lib/statsig/statsig.tsx +++ b/src/lib/statsig/statsig.tsx @@ -1,12 +1,11 @@ -import {sha256} from 'js-sha256' import React from 'react' import { Statsig, StatsigProvider, useGate as useStatsigGate, } from 'statsig-react-native-expo' - import {useSession} from '../../state/session' +import {sha256} from 'js-sha256' const statsigOptions = { environment: { diff --git a/src/lib/statsig/statsig.web.tsx b/src/lib/statsig/statsig.web.tsx index c9cc56b6df..d1c9120194 100644 --- a/src/lib/statsig/statsig.web.tsx +++ b/src/lib/statsig/statsig.web.tsx @@ -1,12 +1,11 @@ -import {sha256} from 'js-sha256' import React from 'react' import { Statsig, StatsigProvider, useGate as useStatsigGate, } from 'statsig-react' - import {useSession} from '../../state/session' +import {sha256} from 'js-sha256' const statsigOptions = { environment: { diff --git a/src/lib/strings/display-names.ts b/src/lib/strings/display-names.ts index e5eb4cfe59..75383dd4fd 100644 --- a/src/lib/strings/display-names.ts +++ b/src/lib/strings/display-names.ts @@ -1,5 +1,4 @@ import {ModerationUI} from '@atproto/api' - import {describeModerationCause} from '../moderation' // \u2705 = ✅ diff --git a/src/lib/strings/embed-player.ts b/src/lib/strings/embed-player.ts index 2ef6efdf12..1cf3b12937 100644 --- a/src/lib/strings/embed-player.ts +++ b/src/lib/strings/embed-player.ts @@ -1,5 +1,5 @@ -import {isWeb} from 'platform/detection' import {Dimensions} from 'react-native' +import {isWeb} from 'platform/detection' const {height: SCREEN_HEIGHT} = Dimensions.get('window') export const embedPlayerSources = [ diff --git a/src/lib/strings/rich-text-helpers.ts b/src/lib/strings/rich-text-helpers.ts index 54f0733d0c..662004599b 100644 --- a/src/lib/strings/rich-text-helpers.ts +++ b/src/lib/strings/rich-text-helpers.ts @@ -1,5 +1,4 @@ import {AppBskyRichtextFacet, RichText} from '@atproto/api' - import {linkRequiresWarning} from './url-helpers' export function richTextToString(rt: RichText, loose: boolean): string { diff --git a/src/lib/strings/rich-text-manip.ts b/src/lib/strings/rich-text-manip.ts index 508e0772e0..d9cd8c0714 100644 --- a/src/lib/strings/rich-text-manip.ts +++ b/src/lib/strings/rich-text-manip.ts @@ -1,5 +1,4 @@ import {RichText, UnicodeString} from '@atproto/api' - import {toShortUrl} from './url-helpers' export function shortenLinks(rt: RichText): RichText { diff --git a/src/lib/strings/url-helpers.ts b/src/lib/strings/url-helpers.ts index 60d5f3cbb3..820311e4ee 100644 --- a/src/lib/strings/url-helpers.ts +++ b/src/lib/strings/url-helpers.ts @@ -1,7 +1,7 @@ import {AtUri} from '@atproto/api' import {BSKY_SERVICE} from 'lib/constants' -import psl from 'psl' import TLDs from 'tlds' +import psl from 'psl' export const BSKY_APP_HOST = 'https://bsky.app' diff --git a/src/lib/styles.ts b/src/lib/styles.ts index 50755f53df..263127440f 100644 --- a/src/lib/styles.ts +++ b/src/lib/styles.ts @@ -1,7 +1,6 @@ -import {isWeb} from 'platform/detection' import {Dimensions, StyleProp, StyleSheet, TextStyle} from 'react-native' - import {Theme, TypographyVariant} from './ThemeContext' +import {isWeb} from 'platform/detection' // 1 is lightest, 2 is light, 3 is mid, 4 is dark, 5 is darkest export const colors = { diff --git a/src/lib/themes.ts b/src/lib/themes.ts index 4fb1184009..bd75aabea6 100644 --- a/src/lib/themes.ts +++ b/src/lib/themes.ts @@ -1,9 +1,8 @@ import {Platform} from 'react-native' - -import {darkPalette, dimPalette, lightPalette} from '#/alf/themes' - -import {colors} from './styles' import type {Theme} from './ThemeContext' +import {colors} from './styles' + +import {darkPalette, lightPalette, dimPalette} from '#/alf/themes' export const defaultTheme: Theme = { colorScheme: 'light', diff --git a/src/locale/__tests__/helpers.test.ts b/src/locale/__tests__/helpers.test.ts index 0cc0b7816e..5e924c9fe8 100644 --- a/src/locale/__tests__/helpers.test.ts +++ b/src/locale/__tests__/helpers.test.ts @@ -1,4 +1,4 @@ -import {expect, test} from '@jest/globals' +import {test, expect} from '@jest/globals' import {sanitizeAppLanguageSetting} from '#/locale/helpers' import {AppLanguage} from '#/locale/languages' diff --git a/src/locale/helpers.ts b/src/locale/helpers.ts index 54b05cb687..c73242e707 100644 --- a/src/locale/helpers.ts +++ b/src/locale/helpers.ts @@ -1,8 +1,7 @@ import {AppBskyFeedDefs, AppBskyFeedPost} from '@atproto/api' -import * as bcp47Match from 'bcp-47-match' import lande from 'lande' import {hasProp} from 'lib/type-guards' - +import * as bcp47Match from 'bcp-47-match' import { AppLanguage, LANGUAGES_MAP_CODE2, diff --git a/src/locale/i18n.ts b/src/locale/i18n.ts index 310f17a10c..e8addb0b4f 100644 --- a/src/locale/i18n.ts +++ b/src/locale/i18n.ts @@ -1,22 +1,23 @@ -import {i18n} from '@lingui/core' import {useEffect} from 'react' +import {i18n} from '@lingui/core' -import {sanitizeAppLanguageSetting} from '#/locale/helpers' -import {AppLanguage} from '#/locale/languages' -import {messages as messagesCa} from '#/locale/locales/ca/messages' -import {messages as messagesDe} from '#/locale/locales/de/messages' +import {useLanguagePrefs} from '#/state/preferences' import {messages as messagesEn} from '#/locale/locales/en/messages' +import {messages as messagesDe} from '#/locale/locales/de/messages' +import {messages as messagesId} from '#/locale/locales/id/messages' import {messages as messagesEs} from '#/locale/locales/es/messages' import {messages as messagesFr} from '#/locale/locales/fr/messages' import {messages as messagesHi} from '#/locale/locales/hi/messages' -import {messages as messagesId} from '#/locale/locales/id/messages' -import {messages as messagesIt} from '#/locale/locales/it/messages' import {messages as messagesJa} from '#/locale/locales/ja/messages' import {messages as messagesKo} from '#/locale/locales/ko/messages' import {messages as messagesPt_BR} from '#/locale/locales/pt-BR/messages' import {messages as messagesUk} from '#/locale/locales/uk/messages' +import {messages as messagesCa} from '#/locale/locales/ca/messages' import {messages as messagesZh_CN} from '#/locale/locales/zh-CN/messages' -import {useLanguagePrefs} from '#/state/preferences' +import {messages as messagesIt} from '#/locale/locales/it/messages' + +import {sanitizeAppLanguageSetting} from '#/locale/helpers' +import {AppLanguage} from '#/locale/languages' /** * We do a dynamic import of just the catalog that we need diff --git a/src/locale/i18n.web.ts b/src/locale/i18n.web.ts index ce0c640fe7..d8e51723ff 100644 --- a/src/locale/i18n.web.ts +++ b/src/locale/i18n.web.ts @@ -1,9 +1,9 @@ -import {i18n} from '@lingui/core' import {useEffect} from 'react' +import {i18n} from '@lingui/core' +import {useLanguagePrefs} from '#/state/preferences' import {sanitizeAppLanguageSetting} from '#/locale/helpers' import {AppLanguage} from '#/locale/languages' -import {useLanguagePrefs} from '#/state/preferences' /** * We do a dynamic import of just the catalog that we need diff --git a/src/locale/i18nProvider.tsx b/src/locale/i18nProvider.tsx index 645c0fc6a7..3766f5b716 100644 --- a/src/locale/i18nProvider.tsx +++ b/src/locale/i18nProvider.tsx @@ -1,7 +1,6 @@ -import {i18n} from '@lingui/core' -import {I18nProvider as DefaultI18nProvider} from '@lingui/react' import React from 'react' - +import {I18nProvider as DefaultI18nProvider} from '@lingui/react' +import {i18n} from '@lingui/core' import {useLocaleLanguage} from './i18n' export default function I18nProvider({children}: {children: React.ReactNode}) { diff --git a/src/logger/__tests__/logger.test.ts b/src/logger/__tests__/logger.test.ts index 5c3f7d8248..12d60abaac 100644 --- a/src/logger/__tests__/logger.test.ts +++ b/src/logger/__tests__/logger.test.ts @@ -1,5 +1,5 @@ -import {beforeAll, describe, expect, jest, test} from '@jest/globals' import {nanoid} from 'nanoid/non-secure' +import {jest, describe, expect, test, beforeAll} from '@jest/globals' import {Native as Sentry} from 'sentry-expo' import {Logger, LogLevel, sentryTransport} from '#/logger' diff --git a/src/logger/index.ts b/src/logger/index.ts index c9e323db6d..d6d8d9fc1d 100644 --- a/src/logger/index.ts +++ b/src/logger/index.ts @@ -1,10 +1,10 @@ import format from 'date-fns/format' import {nanoid} from 'nanoid/non-secure' +import {Sentry} from '#/logger/sentry' import * as env from '#/env' import {DebugContext} from '#/logger/debugContext' import {add} from '#/logger/logDump' -import {Sentry} from '#/logger/sentry' export enum LogLevel { Debug = 'debug', diff --git a/src/platform/detection.ts b/src/platform/detection.ts index 891377568f..150fc1fe33 100644 --- a/src/platform/detection.ts +++ b/src/platform/detection.ts @@ -1,6 +1,6 @@ +import {Platform} from 'react-native' import {getLocales} from 'expo-localization' import {dedupArray} from 'lib/functions' -import {Platform} from 'react-native' export const isIOS = Platform.OS === 'ios' export const isAndroid = Platform.OS === 'android' diff --git a/src/platform/urls.tsx b/src/platform/urls.tsx index 514bde43e2..fd844d9331 100644 --- a/src/platform/urls.tsx +++ b/src/platform/urls.tsx @@ -1,5 +1,4 @@ import {Linking} from 'react-native' - import {isNative, isWeb} from './detection' export async function getInitialURL(): Promise { diff --git a/src/screens/Deactivated.tsx b/src/screens/Deactivated.tsx index 44b6bfb86b..f4c2014750 100644 --- a/src/screens/Deactivated.tsx +++ b/src/screens/Deactivated.tsx @@ -1,19 +1,19 @@ -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' import React from 'react' import {View} from 'react-native' import {useSafeAreaInsets} from 'react-native-safe-area-context' +import {useLingui} from '@lingui/react' +import {msg, Trans} from '@lingui/macro' +import {useOnboardingDispatch} from '#/state/shell' +import {getAgent, isSessionDeactivated, useSessionApi} from '#/state/session' +import {logger} from '#/logger' +import {pluralize} from '#/lib/strings/helpers' -import {atoms as a, useBreakpoints, useTheme} from '#/alf' +import {atoms as a, useTheme, useBreakpoints} from '#/alf' import {Button, ButtonIcon, ButtonText} from '#/components/Button' -import {Loader} from '#/components/Loader' -import {P, Text} from '#/components/Typography' -import {pluralize} from '#/lib/strings/helpers' -import {logger} from '#/logger' +import {Text, P} from '#/components/Typography' import {isWeb} from '#/platform/detection' -import {getAgent, isSessionDeactivated, useSessionApi} from '#/state/session' -import {useOnboardingDispatch} from '#/state/shell' import {ScrollView} from '#/view/com/util/Views' +import {Loader} from '#/components/Loader' import {Logo} from '#/view/icons/Logo' const COL_WIDTH = 400 diff --git a/src/screens/Hashtag.tsx b/src/screens/Hashtag.tsx index d890fe1da4..776cc585e3 100644 --- a/src/screens/Hashtag.tsx +++ b/src/screens/Hashtag.tsx @@ -1,29 +1,28 @@ -import {PostView} from '@atproto/api/dist/client/types/app/bsky/feed/defs' -import {msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' +import React from 'react' +import {ListRenderItemInfo, Pressable} from 'react-native' import {useFocusEffect} from '@react-navigation/native' +import {useSetMinimalShellMode} from 'state/shell' +import {ViewHeader} from 'view/com/util/ViewHeader' import {NativeStackScreenProps} from '@react-navigation/native-stack' -import {HITSLOP_10} from 'lib/constants' -import {useInitialNumToRender} from 'lib/hooks/useInitialNumToRender' import {CommonNavigatorParams} from 'lib/routes/types' -import {shareUrl} from 'lib/sharing' -import {sanitizeHandle} from 'lib/strings/handles' -import {enforceLen} from 'lib/strings/helpers' -import {isNative} from 'platform/detection' -import React from 'react' -import {ListRenderItemInfo, Pressable} from 'react-native' import {useSearchPostsQuery} from 'state/queries/search-posts' -import {useSetMinimalShellMode} from 'state/shell' import {Post} from 'view/com/post/Post' -import {List} from 'view/com/util/List' -import {ViewHeader} from 'view/com/util/ViewHeader' - -import {ArrowOutOfBox_Stroke2_Corner0_Rounded} from '#/components/icons/ArrowOutOfBox' +import {PostView} from '@atproto/api/dist/client/types/app/bsky/feed/defs' +import {enforceLen} from 'lib/strings/helpers' import { ListFooter, ListHeaderDesktop, ListMaybePlaceholder, } from '#/components/Lists' +import {List} from 'view/com/util/List' +import {msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {sanitizeHandle} from 'lib/strings/handles' +import {ArrowOutOfBox_Stroke2_Corner0_Rounded} from '#/components/icons/ArrowOutOfBox' +import {shareUrl} from 'lib/sharing' +import {HITSLOP_10} from 'lib/constants' +import {isNative} from 'platform/detection' +import {useInitialNumToRender} from 'lib/hooks/useInitialNumToRender' const renderItem = ({item}: ListRenderItemInfo) => { return diff --git a/src/screens/Onboarding/Layout.tsx b/src/screens/Onboarding/Layout.tsx index e9c834c45f..6337cee09d 100644 --- a/src/screens/Onboarding/Layout.tsx +++ b/src/screens/Onboarding/Layout.tsx @@ -1,27 +1,29 @@ -import {msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' import React from 'react' import {View} from 'react-native' import {useSafeAreaInsets} from 'react-native-safe-area-context' +import {useLingui} from '@lingui/react' +import {msg} from '@lingui/macro' + +import {IS_DEV} from '#/env' +import {isWeb} from '#/platform/detection' +import {useOnboardingDispatch} from '#/state/shell' import { + useTheme, atoms as a, - flatten, - native, - TextStyleProp, useBreakpoints, - useTheme, web, + native, + flatten, + TextStyleProp, } from '#/alf' -import {Button, ButtonIcon} from '#/components/Button' +import {P, leading, Text} from '#/components/Typography' import {ChevronLeft_Stroke2_Corner0_Rounded as ChevronLeft} from '#/components/icons/Chevron' +import {Button, ButtonIcon} from '#/components/Button' +import {ScrollView} from '#/view/com/util/Views' import {createPortalGroup} from '#/components/Portal' -import {leading, P, Text} from '#/components/Typography' -import {IS_DEV} from '#/env' -import {isWeb} from '#/platform/detection' + import {Context} from '#/screens/Onboarding/state' -import {useOnboardingDispatch} from '#/state/shell' -import {ScrollView} from '#/view/com/util/Views' const COL_WIDTH = 500 diff --git a/src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx b/src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx index 7ed193ed3d..1123f26755 100644 --- a/src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx +++ b/src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx @@ -1,17 +1,18 @@ -import {msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {Image} from 'expo-image' import React from 'react' import {View} from 'react-native' import LinearGradient from 'react-native-linear-gradient' +import {Image} from 'expo-image' +import {useLingui} from '@lingui/react' +import {msg} from '@lingui/macro' -import {atoms as a, useTheme} from '#/alf' +import {useTheme, atoms as a} from '#/alf' import * as Toggle from '#/components/forms/Toggle' -import {Check_Stroke2_Corner0_Rounded as Check} from '#/components/icons/Check' -import {RichText} from '#/components/RichText' +import {useFeedSourceInfoQuery, FeedSourceInfo} from '#/state/queries/feed' import {Text} from '#/components/Typography' +import {RichText} from '#/components/RichText' + +import {Check_Stroke2_Corner0_Rounded as Check} from '#/components/icons/Check' import {FeedConfig} from '#/screens/Onboarding/StepAlgoFeeds' -import {FeedSourceInfo, useFeedSourceInfoQuery} from '#/state/queries/feed' function PrimaryFeedCardInner({ feed, diff --git a/src/screens/Onboarding/StepAlgoFeeds/index.tsx b/src/screens/Onboarding/StepAlgoFeeds/index.tsx index 50436e7681..1a4e4c493b 100644 --- a/src/screens/Onboarding/StepAlgoFeeds/index.tsx +++ b/src/screens/Onboarding/StepAlgoFeeds/index.tsx @@ -1,25 +1,26 @@ -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' import React from 'react' import {View} from 'react-native' +import {useLingui} from '@lingui/react' +import {msg, Trans} from '@lingui/macro' +import {IS_PROD} from '#/env' import {atoms as a, tokens, useTheme} from '#/alf' +import {ChevronRight_Stroke2_Corner0_Rounded as ChevronRight} from '#/components/icons/Chevron' import {Button, ButtonIcon, ButtonText} from '#/components/Button' import * as Toggle from '#/components/forms/Toggle' -import {IconCircle} from '#/components/IconCircle' -import {ChevronRight_Stroke2_Corner0_Rounded as ChevronRight} from '#/components/icons/Chevron' -import {ListSparkle_Stroke2_Corner0_Rounded as ListSparkle} from '#/components/icons/ListSparkle' -import {Loader} from '#/components/Loader' import {Text} from '#/components/Typography' -import {IS_PROD} from '#/env' +import {Loader} from '#/components/Loader' +import {ListSparkle_Stroke2_Corner0_Rounded as ListSparkle} from '#/components/icons/ListSparkle' import {useAnalytics} from '#/lib/analytics/analytics' + +import {Context} from '#/screens/Onboarding/state' import { + Title, Description, OnboardingControls, - Title, } from '#/screens/Onboarding/Layout' -import {Context} from '#/screens/Onboarding/state' import {FeedCard} from '#/screens/Onboarding/StepAlgoFeeds/FeedCard' +import {IconCircle} from '#/components/IconCircle' export type FeedConfig = { default: boolean diff --git a/src/screens/Onboarding/StepFinished.tsx b/src/screens/Onboarding/StepFinished.tsx index f23b1ac7b4..944dcb96d2 100644 --- a/src/screens/Onboarding/StepFinished.tsx +++ b/src/screens/Onboarding/StepFinished.tsx @@ -1,32 +1,33 @@ -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' import React from 'react' import {View} from 'react-native' +import {useLingui} from '@lingui/react' +import {msg, Trans} from '@lingui/macro' +import {logger} from '#/logger' import {atoms as a, useTheme} from '#/alf' -import {Button, ButtonIcon, ButtonText} from '#/components/Button' -import {IconCircle} from '#/components/IconCircle' +import {Button, ButtonText, ButtonIcon} from '#/components/Button' +import {News2_Stroke2_Corner0_Rounded as News} from '#/components/icons/News2' import {Check_Stroke2_Corner0_Rounded as Check} from '#/components/icons/Check' import {Growth_Stroke2_Corner0_Rounded as Growth} from '#/components/icons/Growth' -import {News2_Stroke2_Corner0_Rounded as News} from '#/components/icons/News2' import {Trending2_Stroke2_Corner2_Rounded as Trending} from '#/components/icons/Trending2' -import {Loader} from '#/components/Loader' import {Text} from '#/components/Typography' +import {useOnboardingDispatch} from '#/state/shell' +import {Loader} from '#/components/Loader' +import {useSetSaveFeedsMutation} from '#/state/queries/preferences' +import {getAgent} from '#/state/session' import {useAnalytics} from '#/lib/analytics/analytics' -import {logger} from '#/logger' + +import {Context} from '#/screens/Onboarding/state' import { + Title, Description, OnboardingControls, - Title, } from '#/screens/Onboarding/Layout' -import {Context} from '#/screens/Onboarding/state' +import {IconCircle} from '#/components/IconCircle' import { bulkWriteFollows, sortPrimaryAlgorithmFeeds, } from '#/screens/Onboarding/util' -import {useSetSaveFeedsMutation} from '#/state/queries/preferences' -import {getAgent} from '#/state/session' -import {useOnboardingDispatch} from '#/state/shell' export function StepFinished() { const {_} = useLingui() diff --git a/src/screens/Onboarding/StepFollowingFeed.tsx b/src/screens/Onboarding/StepFollowingFeed.tsx index 5b8c49264d..898afad134 100644 --- a/src/screens/Onboarding/StepFollowingFeed.tsx +++ b/src/screens/Onboarding/StepFollowingFeed.tsx @@ -1,27 +1,28 @@ -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' import React from 'react' import {View} from 'react-native' -import { - usePreferencesQuery, - useSetFeedViewPreferencesMutation, -} from 'state/queries/preferences' +import {useLingui} from '@lingui/react' +import {msg, Trans} from '@lingui/macro' import {atoms as a} from '#/alf' -import {Button, ButtonIcon, ButtonText} from '#/components/Button' -import {Divider} from '#/components/Divider' -import * as Toggle from '#/components/forms/Toggle' -import {IconCircle} from '#/components/IconCircle' import {ChevronRight_Stroke2_Corner0_Rounded as ChevronRight} from '#/components/icons/Chevron' import {FilterTimeline_Stroke2_Corner0_Rounded as FilterTimeline} from '#/components/icons/FilterTimeline' +import {Button, ButtonIcon, ButtonText} from '#/components/Button' import {Text} from '#/components/Typography' +import {Divider} from '#/components/Divider' +import * as Toggle from '#/components/forms/Toggle' import {useAnalytics} from '#/lib/analytics/analytics' + +import {Context} from '#/screens/Onboarding/state' import { + Title, Description, OnboardingControls, - Title, } from '#/screens/Onboarding/Layout' -import {Context} from '#/screens/Onboarding/state' +import { + usePreferencesQuery, + useSetFeedViewPreferencesMutation, +} from 'state/queries/preferences' +import {IconCircle} from '#/components/IconCircle' export function StepFollowingFeed() { const {_} = useLingui() diff --git a/src/screens/Onboarding/StepInterests/InterestButton.tsx b/src/screens/Onboarding/StepInterests/InterestButton.tsx index 94685f3e18..cc692dafd8 100644 --- a/src/screens/Onboarding/StepInterests/InterestButton.tsx +++ b/src/screens/Onboarding/StepInterests/InterestButton.tsx @@ -1,10 +1,11 @@ import React from 'react' -import {TextStyle, View, ViewStyle} from 'react-native' +import {View, ViewStyle, TextStyle} from 'react-native' -import {atoms as a, native, useTheme} from '#/alf' +import {useTheme, atoms as a, native} from '#/alf' import * as Toggle from '#/components/forms/Toggle' import {Text} from '#/components/Typography' import {capitalize} from '#/lib/strings/capitalize' + import {Context} from '#/screens/Onboarding/state' export function InterestButton({interest}: {interest: string}) { diff --git a/src/screens/Onboarding/StepInterests/index.tsx b/src/screens/Onboarding/StepInterests/index.tsx index 1b4ba30ff9..ea23b74f09 100644 --- a/src/screens/Onboarding/StepInterests/index.tsx +++ b/src/screens/Onboarding/StepInterests/index.tsx @@ -1,31 +1,32 @@ -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {useQuery} from '@tanstack/react-query' import React from 'react' import {View} from 'react-native' +import {useLingui} from '@lingui/react' +import {msg, Trans} from '@lingui/macro' +import {useQuery} from '@tanstack/react-query' +import {logger} from '#/logger' import {atoms as a, useBreakpoints, useTheme} from '#/alf' -import {Button, ButtonIcon, ButtonText} from '#/components/Button' -import * as Toggle from '#/components/forms/Toggle' -import {IconCircle} from '#/components/IconCircle' -import {ArrowRotateCounterClockwise_Stroke2_Corner0_Rounded as ArrowRotateCounterClockwise} from '#/components/icons/ArrowRotateCounterClockwise' import {ChevronRight_Stroke2_Corner0_Rounded as ChevronRight} from '#/components/icons/Chevron' -import {EmojiSad_Stroke2_Corner0_Rounded as EmojiSad} from '#/components/icons/Emoji' import {Hashtag_Stroke2_Corner0_Rounded as Hashtag} from '#/components/icons/Hashtag' +import {EmojiSad_Stroke2_Corner0_Rounded as EmojiSad} from '#/components/icons/Emoji' +import {ArrowRotateCounterClockwise_Stroke2_Corner0_Rounded as ArrowRotateCounterClockwise} from '#/components/icons/ArrowRotateCounterClockwise' +import {Button, ButtonIcon, ButtonText} from '#/components/Button' import {Loader} from '#/components/Loader' -import {Text} from '#/components/Typography' +import * as Toggle from '#/components/forms/Toggle' +import {getAgent} from '#/state/session' import {useAnalytics} from '#/lib/analytics/analytics' +import {Text} from '#/components/Typography' +import {useOnboardingDispatch} from '#/state/shell' import {capitalize} from '#/lib/strings/capitalize' -import {logger} from '#/logger' + +import {Context, ApiResponseMap} from '#/screens/Onboarding/state' import { + Title, Description, OnboardingControls, - Title, } from '#/screens/Onboarding/Layout' -import {ApiResponseMap, Context} from '#/screens/Onboarding/state' import {InterestButton} from '#/screens/Onboarding/StepInterests/InterestButton' -import {getAgent} from '#/state/session' -import {useOnboardingDispatch} from '#/state/shell' +import {IconCircle} from '#/components/IconCircle' export function StepInterests() { const {_} = useLingui() diff --git a/src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx b/src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx index e97c251948..360025c02f 100644 --- a/src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx +++ b/src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx @@ -1,18 +1,18 @@ -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {UseMutateFunction} from '@tanstack/react-query' import React from 'react' import {View} from 'react-native' +import {useLingui} from '@lingui/react' +import {msg, Trans} from '@lingui/macro' +import {UseMutateFunction} from '@tanstack/react-query' +import * as Toast from '#/view/com/util/Toast' import {atoms as a, useTheme} from '#/alf' +import {usePreferencesQuery} from '#/state/queries/preferences' +import {logger} from '#/logger' +import {Text} from '#/components/Typography' import * as Toggle from '#/components/forms/Toggle' import {CircleInfo_Stroke2_Corner0_Rounded as CircleInfo} from '#/components/icons/CircleInfo' import * as Prompt from '#/components/Prompt' -import {Text} from '#/components/Typography' -import {logger} from '#/logger' import {isIOS} from '#/platform/detection' -import {usePreferencesQuery} from '#/state/queries/preferences' -import * as Toast from '#/view/com/util/Toast' function Card({children}: React.PropsWithChildren<{}>) { const t = useTheme() diff --git a/src/screens/Onboarding/StepModeration/ModerationOption.tsx b/src/screens/Onboarding/StepModeration/ModerationOption.tsx index 0ca317afc6..c61b520bab 100644 --- a/src/screens/Onboarding/StepModeration/ModerationOption.tsx +++ b/src/screens/Onboarding/StepModeration/ModerationOption.tsx @@ -1,19 +1,19 @@ -import {LabelPreference} from '@atproto/api' -import {msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' import React from 'react' import {View} from 'react-native' -import Animated, {Easing, FadeIn, Layout} from 'react-native-reanimated' +import {LabelPreference} from '@atproto/api' +import {useLingui} from '@lingui/react' +import {msg} from '@lingui/macro' +import Animated, {Easing, Layout, FadeIn} from 'react-native-reanimated' -import {atoms as a, useTheme} from '#/alf' -import * as ToggleButton from '#/components/forms/ToggleButton' -import {Text} from '#/components/Typography' import { CONFIGURABLE_LABEL_GROUPS, ConfigurableLabelGroup, usePreferencesQuery, usePreferencesSetContentLabelMutation, } from '#/state/queries/preferences' +import {atoms as a, useTheme} from '#/alf' +import {Text} from '#/components/Typography' +import * as ToggleButton from '#/components/forms/ToggleButton' export function ModerationOption({ labelGroup, diff --git a/src/screens/Onboarding/StepModeration/index.tsx b/src/screens/Onboarding/StepModeration/index.tsx index d74eed03b0..543a5b1598 100644 --- a/src/screens/Onboarding/StepModeration/index.tsx +++ b/src/screens/Onboarding/StepModeration/index.tsx @@ -1,31 +1,32 @@ -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' import React from 'react' import {View} from 'react-native' +import {useLingui} from '@lingui/react' +import {msg, Trans} from '@lingui/macro' import Animated, {Easing, Layout} from 'react-native-reanimated' + +import {atoms as a} from '#/alf' import { configurableAdultLabelGroups, configurableOtherLabelGroups, usePreferencesSetAdultContentMutation, } from 'state/queries/preferences' - -import {atoms as a} from '#/alf' -import {Button, ButtonIcon, ButtonText} from '#/components/Button' import {Divider} from '#/components/Divider' -import {IconCircle} from '#/components/IconCircle' +import {Button, ButtonIcon, ButtonText} from '#/components/Button' import {ChevronRight_Stroke2_Corner0_Rounded as ChevronRight} from '#/components/icons/Chevron' import {EyeSlash_Stroke2_Corner0_Rounded as EyeSlash} from '#/components/icons/EyeSlash' +import {usePreferencesQuery} from '#/state/queries/preferences' import {Loader} from '#/components/Loader' import {useAnalytics} from '#/lib/analytics/analytics' + import { Description, OnboardingControls, Title, } from '#/screens/Onboarding/Layout' -import {Context} from '#/screens/Onboarding/state' -import {AdultContentEnabledPref} from '#/screens/Onboarding/StepModeration/AdultContentEnabledPref' import {ModerationOption} from '#/screens/Onboarding/StepModeration/ModerationOption' -import {usePreferencesQuery} from '#/state/queries/preferences' +import {AdultContentEnabledPref} from '#/screens/Onboarding/StepModeration/AdultContentEnabledPref' +import {Context} from '#/screens/Onboarding/state' +import {IconCircle} from '#/components/IconCircle' function AnimatedDivider() { return ( diff --git a/src/screens/Onboarding/StepSuggestedAccounts/SuggestedAccountCard.tsx b/src/screens/Onboarding/StepSuggestedAccounts/SuggestedAccountCard.tsx index 4f5595a29d..0670058920 100644 --- a/src/screens/Onboarding/StepSuggestedAccounts/SuggestedAccountCard.tsx +++ b/src/screens/Onboarding/StepSuggestedAccounts/SuggestedAccountCard.tsx @@ -1,14 +1,14 @@ -import {AppBskyActorDefs, moderateProfile} from '@atproto/api' import React from 'react' import {View, ViewStyle} from 'react-native' +import {AppBskyActorDefs, moderateProfile} from '@atproto/api' -import {atoms as a, flatten, useTheme} from '#/alf' +import {useTheme, atoms as a, flatten} from '#/alf' +import {Text} from '#/components/Typography' import {useItemContext} from '#/components/forms/Toggle' import {Check_Stroke2_Corner0_Rounded as Check} from '#/components/icons/Check' -import {RichText} from '#/components/RichText' -import {Text} from '#/components/Typography' -import {useModerationOpts} from '#/state/queries/preferences' import {UserAvatar} from '#/view/com/util/UserAvatar' +import {useModerationOpts} from '#/state/queries/preferences' +import {RichText} from '#/components/RichText' export function SuggestedAccountCard({ profile, diff --git a/src/screens/Onboarding/StepSuggestedAccounts/index.tsx b/src/screens/Onboarding/StepSuggestedAccounts/index.tsx index eb051ac85d..14faddc10f 100644 --- a/src/screens/Onboarding/StepSuggestedAccounts/index.tsx +++ b/src/screens/Onboarding/StepSuggestedAccounts/index.tsx @@ -1,32 +1,33 @@ -import {AppBskyActorDefs} from '@atproto/api' -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' import React from 'react' import {View} from 'react-native' +import {AppBskyActorDefs} from '@atproto/api' +import {useLingui} from '@lingui/react' +import {msg, Trans} from '@lingui/macro' import {atoms as a, useBreakpoints} from '#/alf' -import {Button, ButtonIcon, ButtonText} from '#/components/Button' -import * as Toggle from '#/components/forms/Toggle' -import {IconCircle} from '#/components/IconCircle' -import {At_Stroke2_Corner0_Rounded as At} from '#/components/icons/At' import {PlusLarge_Stroke2_Corner0_Rounded as Plus} from '#/components/icons/Plus' -import {Loader} from '#/components/Loader' +import {At_Stroke2_Corner0_Rounded as At} from '#/components/icons/At' +import {Button, ButtonIcon, ButtonText} from '#/components/Button' import {Text} from '#/components/Typography' +import {useProfilesQuery} from '#/state/queries/profile' +import {Loader} from '#/components/Loader' +import * as Toggle from '#/components/forms/Toggle' +import {useModerationOpts} from '#/state/queries/preferences' import {useAnalytics} from '#/lib/analytics/analytics' import {capitalize} from '#/lib/strings/capitalize' + +import {Context} from '#/screens/Onboarding/state' import { + Title, Description, OnboardingControls, - Title, } from '#/screens/Onboarding/Layout' -import {Context} from '#/screens/Onboarding/state' import { SuggestedAccountCard, SuggestedAccountCardPlaceholder, } from '#/screens/Onboarding/StepSuggestedAccounts/SuggestedAccountCard' import {aggregateInterestItems} from '#/screens/Onboarding/util' -import {useModerationOpts} from '#/state/queries/preferences' -import {useProfilesQuery} from '#/state/queries/profile' +import {IconCircle} from '#/components/IconCircle' export function Inner({ profiles, diff --git a/src/screens/Onboarding/StepTopicalFeeds.tsx b/src/screens/Onboarding/StepTopicalFeeds.tsx index 88906b581e..636565e340 100644 --- a/src/screens/Onboarding/StepTopicalFeeds.tsx +++ b/src/screens/Onboarding/StepTopicalFeeds.tsx @@ -1,27 +1,28 @@ -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {IS_PROD_SERVICE} from 'lib/constants' import React from 'react' import {View} from 'react-native' -import {useSession} from 'state/session' +import {useLingui} from '@lingui/react' +import {msg, Trans} from '@lingui/macro' import {atoms as a} from '#/alf' -import {Button, ButtonIcon, ButtonText} from '#/components/Button' -import * as Toggle from '#/components/forms/Toggle' -import {IconCircle} from '#/components/IconCircle' import {ChevronRight_Stroke2_Corner0_Rounded as ChevronRight} from '#/components/icons/Chevron' import {ListMagnifyingGlass_Stroke2_Corner0_Rounded as ListMagnifyingGlass} from '#/components/icons/ListMagnifyingGlass' +import {Button, ButtonIcon, ButtonText} from '#/components/Button' +import * as Toggle from '#/components/forms/Toggle' import {Loader} from '#/components/Loader' import {useAnalytics} from '#/lib/analytics/analytics' import {capitalize} from '#/lib/strings/capitalize' + +import {Context} from '#/screens/Onboarding/state' import { + Title, Description, OnboardingControls, - Title, } from '#/screens/Onboarding/Layout' -import {Context} from '#/screens/Onboarding/state' import {FeedCard} from '#/screens/Onboarding/StepAlgoFeeds/FeedCard' import {aggregateInterestItems} from '#/screens/Onboarding/util' +import {IconCircle} from '#/components/IconCircle' +import {IS_PROD_SERVICE} from 'lib/constants' +import {useSession} from 'state/session' export function StepTopicalFeeds() { const {_} = useLingui() diff --git a/src/screens/Onboarding/index.tsx b/src/screens/Onboarding/index.tsx index d171869b87..9e5029e87a 100644 --- a/src/screens/Onboarding/index.tsx +++ b/src/screens/Onboarding/index.tsx @@ -1,17 +1,18 @@ -import {msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' import React from 'react' +import {useLingui} from '@lingui/react' +import {msg} from '@lingui/macro' import {Portal} from '#/components/Portal' -import {Layout, OnboardingControls} from '#/screens/Onboarding/Layout' + import {Context, initialState, reducer} from '#/screens/Onboarding/state' -import {StepAlgoFeeds} from '#/screens/Onboarding/StepAlgoFeeds' -import {StepFinished} from '#/screens/Onboarding/StepFinished' -import {StepFollowingFeed} from '#/screens/Onboarding/StepFollowingFeed' +import {Layout, OnboardingControls} from '#/screens/Onboarding/Layout' import {StepInterests} from '#/screens/Onboarding/StepInterests' -import {StepModeration} from '#/screens/Onboarding/StepModeration' import {StepSuggestedAccounts} from '#/screens/Onboarding/StepSuggestedAccounts' +import {StepFollowingFeed} from '#/screens/Onboarding/StepFollowingFeed' +import {StepAlgoFeeds} from '#/screens/Onboarding/StepAlgoFeeds' import {StepTopicalFeeds} from '#/screens/Onboarding/StepTopicalFeeds' +import {StepFinished} from '#/screens/Onboarding/StepFinished' +import {StepModeration} from '#/screens/Onboarding/StepModeration' export function Onboarding() { const {_} = useLingui() diff --git a/src/screens/Onboarding/util.ts b/src/screens/Onboarding/util.ts index ac2c50abdf..1a0b8d21bc 100644 --- a/src/screens/Onboarding/util.ts +++ b/src/screens/Onboarding/util.ts @@ -2,7 +2,6 @@ import {AppBskyGraphFollow, AppBskyGraphGetFollows} from '@atproto/api' import {until} from '#/lib/async/until' import {getAgent} from '#/state/session' - import {PRIMARY_FEEDS} from './StepAlgoFeeds' function shuffle(array: any) { diff --git a/src/state/cache/post-shadow.ts b/src/state/cache/post-shadow.ts index f9d8b19958..7cf72fae43 100644 --- a/src/state/cache/post-shadow.ts +++ b/src/state/cache/post-shadow.ts @@ -1,15 +1,13 @@ -import {AppBskyFeedDefs} from '@atproto/api' +import {useEffect, useState, useMemo} from 'react' import EventEmitter from 'eventemitter3' -import {queryClient} from 'lib/react-query' -import {useEffect, useMemo, useState} from 'react' - +import {AppBskyFeedDefs} from '@atproto/api' import {batchedUpdates} from '#/lib/batchedUpdates' - +import {Shadow, castAsShadow} from './types' import {findAllPostsInQueryData as findAllPostsInNotifsQueryData} from '../queries/notifications/feed' import {findAllPostsInQueryData as findAllPostsInFeedQueryData} from '../queries/post-feed' import {findAllPostsInQueryData as findAllPostsInThreadQueryData} from '../queries/post-thread' import {findAllPostsInQueryData as findAllPostsInSearchQueryData} from '../queries/search-posts' -import {castAsShadow, Shadow} from './types' +import {queryClient} from 'lib/react-query' export type {Shadow} from './types' export interface PostShadow { diff --git a/src/state/cache/profile-shadow.ts b/src/state/cache/profile-shadow.ts index f688a7b4f7..34fe5995d3 100644 --- a/src/state/cache/profile-shadow.ts +++ b/src/state/cache/profile-shadow.ts @@ -1,11 +1,7 @@ -import {AppBskyActorDefs} from '@atproto/api' +import {useEffect, useState, useMemo} from 'react' import EventEmitter from 'eventemitter3' -import {queryClient} from 'lib/react-query' -import {useEffect, useMemo, useState} from 'react' - +import {AppBskyActorDefs} from '@atproto/api' import {batchedUpdates} from '#/lib/batchedUpdates' - -import {findAllProfilesInQueryData as findAllProfilesInActorSearchQueryData} from '../queries/actor-search' import {findAllProfilesInQueryData as findAllProfilesInListMembersQueryData} from '../queries/list-members' import {findAllProfilesInQueryData as findAllProfilesInMyBlockedAccountsQueryData} from '../queries/my-blocked-accounts' import {findAllProfilesInQueryData as findAllProfilesInMyMutedAccountsQueryData} from '../queries/my-muted-accounts' @@ -15,7 +11,9 @@ import {findAllProfilesInQueryData as findAllProfilesInProfileQueryData} from '. import {findAllProfilesInQueryData as findAllProfilesInProfileFollowersQueryData} from '../queries/profile-followers' import {findAllProfilesInQueryData as findAllProfilesInProfileFollowsQueryData} from '../queries/profile-follows' import {findAllProfilesInQueryData as findAllProfilesInSuggestedFollowsQueryData} from '../queries/suggested-follows' -import {castAsShadow, Shadow} from './types' +import {findAllProfilesInQueryData as findAllProfilesInActorSearchQueryData} from '../queries/actor-search' +import {Shadow, castAsShadow} from './types' +import {queryClient} from 'lib/react-query' export type {Shadow} from './types' export interface ProfileShadow { diff --git a/src/state/dialogs/index.tsx b/src/state/dialogs/index.tsx index 279e02a49c..951105a509 100644 --- a/src/state/dialogs/index.tsx +++ b/src/state/dialogs/index.tsx @@ -1,6 +1,5 @@ import React from 'react' import {SharedValue, useSharedValue} from 'react-native-reanimated' - import {DialogControlRefProps} from '#/components/Dialog' import {Provider as GlobalDialogsProvider} from '#/components/dialogs/Context' diff --git a/src/state/invites.tsx b/src/state/invites.tsx index 9dbbefe2ff..6a0d1b5900 100644 --- a/src/state/invites.tsx +++ b/src/state/invites.tsx @@ -1,5 +1,4 @@ import React from 'react' - import * as persisted from '#/state/persisted' type StateContext = persisted.Schema['invites'] diff --git a/src/state/lightbox.tsx b/src/state/lightbox.tsx index 4a4f2807dc..e3bddaee02 100644 --- a/src/state/lightbox.tsx +++ b/src/state/lightbox.tsx @@ -1,6 +1,5 @@ -import {AppBskyActorDefs} from '@atproto/api' import React from 'react' - +import {AppBskyActorDefs} from '@atproto/api' import {useNonReactiveCallback} from '#/lib/hooks/useNonReactiveCallback' interface Lightbox { diff --git a/src/state/modals/index.tsx b/src/state/modals/index.tsx index b9af874933..691add0050 100644 --- a/src/state/modals/index.tsx +++ b/src/state/modals/index.tsx @@ -1,13 +1,12 @@ -import {AppBskyActorDefs, AppBskyGraphDefs, ModerationUI} from '@atproto/api' import React from 'react' +import {AppBskyActorDefs, AppBskyGraphDefs, ModerationUI} from '@atproto/api' import {StyleProp, ViewStyle} from 'react-native' import {Image as RNImage} from 'react-native-image-crop-picker' +import {ImageModel} from '#/state/models/media/image' +import {GalleryModel} from '#/state/models/media/gallery' import {useNonReactiveCallback} from '#/lib/hooks/useNonReactiveCallback' import {EmbedPlayerSource} from '#/lib/strings/embed-player' -import {GalleryModel} from '#/state/models/media/gallery' -import {ImageModel} from '#/state/models/media/image' - import {ThreadgateSetting} from '../queries/threadgate' export interface ConfirmModal { diff --git a/src/state/models/media/gallery.ts b/src/state/models/media/gallery.ts index 52fb623b01..9c8c13010d 100644 --- a/src/state/models/media/gallery.ts +++ b/src/state/models/media/gallery.ts @@ -1,9 +1,8 @@ -import {getImageDim} from 'lib/media/manip' -import {openPicker} from 'lib/media/picker' import {makeAutoObservable, runInAction} from 'mobx' -import {Image as RNImage} from 'react-native-image-crop-picker' - import {ImageModel} from './image' +import {Image as RNImage} from 'react-native-image-crop-picker' +import {openPicker} from 'lib/media/picker' +import {getImageDim} from 'lib/media/manip' interface InitialImageUri { uri: string diff --git a/src/state/models/media/image.e2e.ts b/src/state/models/media/image.e2e.ts index d2c65bdf73..ccabd50475 100644 --- a/src/state/models/media/image.e2e.ts +++ b/src/state/models/media/image.e2e.ts @@ -1,9 +1,9 @@ -import {ActionCrop} from 'expo-image-manipulator' -import {POST_IMG_MAX} from 'lib/constants' -import {Dimensions} from 'lib/media/types' +import {Image as RNImage} from 'react-native-image-crop-picker' import {makeAutoObservable} from 'mobx' +import {POST_IMG_MAX} from 'lib/constants' +import {ActionCrop} from 'expo-image-manipulator' import {Position} from 'react-avatar-editor' -import {Image as RNImage} from 'react-native-image-crop-picker' +import {Dimensions} from 'lib/media/types' export interface ImageManipulationAttributes { aspectRatio?: '4:3' | '1:1' | '3:4' | 'None' diff --git a/src/state/models/media/image.ts b/src/state/models/media/image.ts index 31f2bba66d..5c547c148f 100644 --- a/src/state/models/media/image.ts +++ b/src/state/models/media/image.ts @@ -1,14 +1,13 @@ -import * as ImageManipulator from 'expo-image-manipulator' -import {ActionCrop, FlipType, SaveFormat} from 'expo-image-manipulator' +import {Image as RNImage} from 'react-native-image-crop-picker' +import {makeAutoObservable, runInAction} from 'mobx' import {POST_IMG_MAX} from 'lib/constants' +import * as ImageManipulator from 'expo-image-manipulator' +import {getDataUriSize} from 'lib/media/util' import {openCropper} from 'lib/media/picker' +import {ActionCrop, FlipType, SaveFormat} from 'expo-image-manipulator' +import {Position} from 'react-avatar-editor' import {Dimensions} from 'lib/media/types' -import {getDataUriSize} from 'lib/media/util' -import {makeAutoObservable, runInAction} from 'mobx' import {isIOS} from 'platform/detection' -import {Position} from 'react-avatar-editor' -import {Image as RNImage} from 'react-native-image-crop-picker' - import {logger} from '#/logger' export interface ImageManipulationAttributes { diff --git a/src/state/muted-threads.tsx b/src/state/muted-threads.tsx index eeb33e9483..84a717eb79 100644 --- a/src/state/muted-threads.tsx +++ b/src/state/muted-threads.tsx @@ -1,7 +1,6 @@ import React from 'react' - -import {track} from '#/lib/analytics/analytics' import * as persisted from '#/state/persisted' +import {track} from '#/lib/analytics/analytics' type StateContext = persisted.Schema['mutedThreads'] type ToggleContext = (uri: string) => boolean diff --git a/src/state/persisted/__tests__/index.test.ts b/src/state/persisted/__tests__/index.test.ts index 6832d274af..90c5e0e4ec 100644 --- a/src/state/persisted/__tests__/index.test.ts +++ b/src/state/persisted/__tests__/index.test.ts @@ -1,10 +1,10 @@ -import {afterEach, expect, jest, test} from '@jest/globals' +import {jest, expect, test, afterEach} from '@jest/globals' import AsyncStorage from '@react-native-async-storage/async-storage' -import * as persisted from '#/state/persisted' -import {migrate} from '#/state/persisted/legacy' import {defaults} from '#/state/persisted/schema' +import {migrate} from '#/state/persisted/legacy' import * as store from '#/state/persisted/store' +import * as persisted from '#/state/persisted' const write = jest.mocked(store.write) const read = jest.mocked(store.read) diff --git a/src/state/persisted/__tests__/migrate.test.ts b/src/state/persisted/__tests__/migrate.test.ts index 61250bd884..97767e2732 100644 --- a/src/state/persisted/__tests__/migrate.test.ts +++ b/src/state/persisted/__tests__/migrate.test.ts @@ -1,11 +1,11 @@ -import {afterEach, expect, jest, test} from '@jest/globals' +import {jest, expect, test, afterEach} from '@jest/globals' import AsyncStorage from '@react-native-async-storage/async-storage' -import {logger} from '#/logger' -import * as fixtures from '#/state/persisted/__tests__/fixtures' -import {migrate, transform} from '#/state/persisted/legacy' import {defaults, schema} from '#/state/persisted/schema' +import {transform, migrate} from '#/state/persisted/legacy' import * as store from '#/state/persisted/store' +import {logger} from '#/logger' +import * as fixtures from '#/state/persisted/__tests__/fixtures' const write = jest.mocked(store.write) const read = jest.mocked(store.read) diff --git a/src/state/persisted/__tests__/schema.test.ts b/src/state/persisted/__tests__/schema.test.ts index 8bea28ec01..c78a2c27cb 100644 --- a/src/state/persisted/__tests__/schema.test.ts +++ b/src/state/persisted/__tests__/schema.test.ts @@ -1,8 +1,8 @@ import {expect, test} from '@jest/globals' -import * as fixtures from '#/state/persisted/__tests__/fixtures' import {transform} from '#/state/persisted/legacy' import {defaults, schema} from '#/state/persisted/schema' +import * as fixtures from '#/state/persisted/__tests__/fixtures' test('defaults', () => { expect(() => schema.parse(defaults)).not.toThrow() diff --git a/src/state/persisted/index.ts b/src/state/persisted/index.ts index 4e0aafd822..f57172d2fe 100644 --- a/src/state/persisted/index.ts +++ b/src/state/persisted/index.ts @@ -1,12 +1,11 @@ import EventEmitter from 'eventemitter3' - -import BroadcastChannel from '#/lib/broadcast' import {logger} from '#/logger' -import {migrate} from '#/state/persisted/legacy' import {defaults, Schema} from '#/state/persisted/schema' +import {migrate} from '#/state/persisted/legacy' import * as store from '#/state/persisted/store' +import BroadcastChannel from '#/lib/broadcast' -export type {PersistedAccount, Schema} from '#/state/persisted/schema' +export type {Schema, PersistedAccount} from '#/state/persisted/schema' export {defaults} from '#/state/persisted/schema' const broadcast = new BroadcastChannel('BSKY_BROADCAST_CHANNEL') diff --git a/src/state/persisted/legacy.ts b/src/state/persisted/legacy.ts index 9918ac4629..fd94a96a24 100644 --- a/src/state/persisted/legacy.ts +++ b/src/state/persisted/legacy.ts @@ -2,7 +2,7 @@ import AsyncStorage from '@react-native-async-storage/async-storage' import {logger} from '#/logger' import {defaults, Schema, schema} from '#/state/persisted/schema' -import {read, write} from '#/state/persisted/store' +import {write, read} from '#/state/persisted/store' /** * The shape of the serialized data from our legacy Mobx store. diff --git a/src/state/persisted/schema.ts b/src/state/persisted/schema.ts index 14328748eb..0aefaa4744 100644 --- a/src/state/persisted/schema.ts +++ b/src/state/persisted/schema.ts @@ -1,5 +1,4 @@ import {z} from 'zod' - import {deviceLocales} from '#/platform/detection' const externalEmbedOptions = ['show', 'hide'] as const diff --git a/src/state/persisted/store.ts b/src/state/persisted/store.ts index 0971b5d717..bb7fbed890 100644 --- a/src/state/persisted/store.ts +++ b/src/state/persisted/store.ts @@ -1,7 +1,7 @@ import AsyncStorage from '@react-native-async-storage/async-storage' -import {logger} from '#/logger' import {Schema, schema} from '#/state/persisted/schema' +import {logger} from '#/logger' const BSKY_STORAGE = 'BSKY_STORAGE' diff --git a/src/state/preferences/alt-text-required.tsx b/src/state/preferences/alt-text-required.tsx index 642e790fbc..81de9e0060 100644 --- a/src/state/preferences/alt-text-required.tsx +++ b/src/state/preferences/alt-text-required.tsx @@ -1,5 +1,4 @@ import React from 'react' - import * as persisted from '#/state/persisted' type StateContext = persisted.Schema['requireAltTextEnabled'] diff --git a/src/state/preferences/external-embeds-prefs.tsx b/src/state/preferences/external-embeds-prefs.tsx index 1c6429adca..0f6385fe8e 100644 --- a/src/state/preferences/external-embeds-prefs.tsx +++ b/src/state/preferences/external-embeds-prefs.tsx @@ -1,7 +1,6 @@ -import {EmbedPlayerSource} from 'lib/strings/embed-player' import React from 'react' - import * as persisted from '#/state/persisted' +import {EmbedPlayerSource} from 'lib/strings/embed-player' type StateContext = persisted.Schema['externalEmbeds'] type SetContext = (source: EmbedPlayerSource, value: 'show' | 'hide') => void diff --git a/src/state/preferences/feed-tuners.tsx b/src/state/preferences/feed-tuners.tsx index 48131707f0..c4954d20a8 100644 --- a/src/state/preferences/feed-tuners.tsx +++ b/src/state/preferences/feed-tuners.tsx @@ -1,11 +1,9 @@ import {useMemo} from 'react' - import {FeedTuner} from '#/lib/api/feed-manip' - import {FeedDescriptor} from '../queries/post-feed' +import {useLanguagePrefs} from './languages' import {usePreferencesQuery} from '../queries/preferences' import {useSession} from '../session' -import {useLanguagePrefs} from './languages' export function useFeedTuners(feedDesc: FeedDescriptor) { const langPrefs = useLanguagePrefs() diff --git a/src/state/preferences/hidden-posts.tsx b/src/state/preferences/hidden-posts.tsx index 2c6a373e15..11119ce758 100644 --- a/src/state/preferences/hidden-posts.tsx +++ b/src/state/preferences/hidden-posts.tsx @@ -1,5 +1,4 @@ import React from 'react' - import * as persisted from '#/state/persisted' type SetStateCb = ( diff --git a/src/state/preferences/in-app-browser.tsx b/src/state/preferences/in-app-browser.tsx index c0eb541bb3..2398f1f812 100644 --- a/src/state/preferences/in-app-browser.tsx +++ b/src/state/preferences/in-app-browser.tsx @@ -1,17 +1,15 @@ +import React from 'react' +import * as persisted from '#/state/persisted' +import {Linking} from 'react-native' import * as WebBrowser from 'expo-web-browser' +import {isNative} from '#/platform/detection' +import {useModalControls} from '../modals' import {usePalette} from 'lib/hooks/usePalette' import { - createBskyAppAbsoluteUrl, isBskyRSSUrl, isRelativeUrl, + createBskyAppAbsoluteUrl, } from 'lib/strings/url-helpers' -import React from 'react' -import {Linking} from 'react-native' - -import {isNative} from '#/platform/detection' -import * as persisted from '#/state/persisted' - -import {useModalControls} from '../modals' type StateContext = persisted.Schema['useInAppBrowser'] type SetContext = (v: persisted.Schema['useInAppBrowser']) => void diff --git a/src/state/preferences/index.tsx b/src/state/preferences/index.tsx index 6c045326d9..a442b763ad 100644 --- a/src/state/preferences/index.tsx +++ b/src/state/preferences/index.tsx @@ -1,11 +1,11 @@ import React from 'react' - +import {Provider as LanguagesProvider} from './languages' import {Provider as AltTextRequiredProvider} from '../preferences/alt-text-required' import {Provider as HiddenPostsProvider} from '../preferences/hidden-posts' import {Provider as ExternalEmbedsProvider} from './external-embeds-prefs' import {Provider as InAppBrowserProvider} from './in-app-browser' -import {Provider as LanguagesProvider} from './languages' +export {useLanguagePrefs, useLanguagePrefsApi} from './languages' export { useRequireAltTextEnabled, useSetRequireAltTextEnabled, @@ -15,7 +15,6 @@ export { useSetExternalEmbedPref, } from './external-embeds-prefs' export * from './hidden-posts' -export {useLanguagePrefs, useLanguagePrefsApi} from './languages' export function Provider({children}: React.PropsWithChildren<{}>) { return ( diff --git a/src/state/preferences/languages.tsx b/src/state/preferences/languages.tsx index 2905a465e6..df774c05e2 100644 --- a/src/state/preferences/languages.tsx +++ b/src/state/preferences/languages.tsx @@ -1,7 +1,6 @@ import React from 'react' - -import {AppLanguage} from '#/locale/languages' import * as persisted from '#/state/persisted' +import {AppLanguage} from '#/locale/languages' type SetStateCb = ( s: persisted.Schema['languagePrefs'], diff --git a/src/state/queries/actor-autocomplete.ts b/src/state/queries/actor-autocomplete.ts index 9fffe3bd73..3159ad7aaf 100644 --- a/src/state/queries/actor-autocomplete.ts +++ b/src/state/queries/actor-autocomplete.ts @@ -1,18 +1,17 @@ -import {AppBskyActorDefs, moderateProfile, ModerationOpts} from '@atproto/api' -import {useQuery, useQueryClient} from '@tanstack/react-query' import React from 'react' +import {AppBskyActorDefs, ModerationOpts, moderateProfile} from '@atproto/api' +import {useQuery, useQueryClient} from '@tanstack/react-query' -import {isInvalidHandle} from '#/lib/strings/handles' import {logger} from '#/logger' -import {STALE} from '#/state/queries' -import {useMyFollowsQuery} from '#/state/queries/my-follows' import {getAgent} from '#/state/session' - +import {useMyFollowsQuery} from '#/state/queries/my-follows' +import {STALE} from '#/state/queries' import { DEFAULT_LOGGED_OUT_PREFERENCES, getModerationOpts, useModerationOpts, } from './preferences' +import {isInvalidHandle} from '#/lib/strings/handles' const DEFAULT_MOD_OPTS = getModerationOpts({ userDid: '', diff --git a/src/state/queries/actor-search.ts b/src/state/queries/actor-search.ts index 9f85ad613d..f72511548c 100644 --- a/src/state/queries/actor-search.ts +++ b/src/state/queries/actor-search.ts @@ -1,8 +1,8 @@ import {AppBskyActorDefs} from '@atproto/api' import {QueryClient, useQuery} from '@tanstack/react-query' -import {STALE} from '#/state/queries' import {getAgent} from '#/state/session' +import {STALE} from '#/state/queries' export const RQKEY = (prefix: string) => ['actor-search', prefix] diff --git a/src/state/queries/app-passwords.ts b/src/state/queries/app-passwords.ts index 91c01c1f3c..014244f01c 100644 --- a/src/state/queries/app-passwords.ts +++ b/src/state/queries/app-passwords.ts @@ -1,8 +1,7 @@ import {ComAtprotoServerCreateAppPassword} from '@atproto/api' -import {useMutation, useQuery, useQueryClient} from '@tanstack/react-query' +import {useQuery, useQueryClient, useMutation} from '@tanstack/react-query' import {STALE} from '#/state/queries' - import {getAgent} from '../session' export const RQKEY = () => ['app-passwords'] diff --git a/src/state/queries/feed.ts b/src/state/queries/feed.ts index 53ce885a55..1fa92c291f 100644 --- a/src/state/queries/feed.ts +++ b/src/state/queries/feed.ts @@ -1,24 +1,24 @@ import { - AppBskyFeedDefs, - AppBskyGraphDefs, - AppBskyUnspeccedGetPopularFeedGenerators, - AtUri, - RichText, -} from '@atproto/api' -import { + useQuery, + useInfiniteQuery, InfiniteData, QueryKey, - useInfiniteQuery, useMutation, - useQuery, } from '@tanstack/react-query' +import { + AtUri, + RichText, + AppBskyFeedDefs, + AppBskyGraphDefs, + AppBskyUnspeccedGetPopularFeedGenerators, +} from '@atproto/api' +import {router} from '#/routes' import {sanitizeDisplayName} from '#/lib/strings/display-names' import {sanitizeHandle} from '#/lib/strings/handles' -import {router} from '#/routes' -import {STALE} from '#/state/queries' -import {usePreferencesQuery} from '#/state/queries/preferences' import {getAgent} from '#/state/session' +import {usePreferencesQuery} from '#/state/queries/preferences' +import {STALE} from '#/state/queries' export type FeedSourceFeedInfo = { type: 'feed' diff --git a/src/state/queries/handle.ts b/src/state/queries/handle.ts index 77d757d830..d7c4116999 100644 --- a/src/state/queries/handle.ts +++ b/src/state/queries/handle.ts @@ -1,8 +1,8 @@ -import {useMutation, useQueryClient} from '@tanstack/react-query' import React from 'react' +import {useQueryClient, useMutation} from '@tanstack/react-query' -import {STALE} from '#/state/queries' import {getAgent} from '#/state/session' +import {STALE} from '#/state/queries' const fetchHandleQueryKey = (handleOrDid: string) => ['handle', handleOrDid] const fetchDidQueryKey = (handleOrDid: string) => ['did', handleOrDid] diff --git a/src/state/queries/invites.ts b/src/state/queries/invites.ts index 9ea49ebcae..9ae9c707f4 100644 --- a/src/state/queries/invites.ts +++ b/src/state/queries/invites.ts @@ -1,9 +1,9 @@ import {ComAtprotoServerDefs} from '@atproto/api' import {useQuery} from '@tanstack/react-query' -import {cleanError} from '#/lib/strings/errors' -import {STALE} from '#/state/queries' import {getAgent} from '#/state/session' +import {STALE} from '#/state/queries' +import {cleanError} from '#/lib/strings/errors' function isInviteAvailable(invite: ComAtprotoServerDefs.InviteCode): boolean { return invite.available - invite.uses.length > 0 && !invite.disabled diff --git a/src/state/queries/list-members.ts b/src/state/queries/list-members.ts index 8bce0e4185..d84089c90d 100644 --- a/src/state/queries/list-members.ts +++ b/src/state/queries/list-members.ts @@ -1,13 +1,13 @@ import {AppBskyActorDefs, AppBskyGraphGetList} from '@atproto/api' import { + useInfiniteQuery, InfiniteData, QueryClient, QueryKey, - useInfiniteQuery, } from '@tanstack/react-query' -import {STALE} from '#/state/queries' import {getAgent} from '#/state/session' +import {STALE} from '#/state/queries' const PAGE_SIZE = 30 type RQPageParam = string | undefined diff --git a/src/state/queries/list-memberships.ts b/src/state/queries/list-memberships.ts index 9df50c403f..6cae3fa2e8 100644 --- a/src/state/queries/list-memberships.ts +++ b/src/state/queries/list-memberships.ts @@ -17,9 +17,9 @@ import {AtUri} from '@atproto/api' import {useMutation, useQuery, useQueryClient} from '@tanstack/react-query' -import {STALE} from '#/state/queries' +import {useSession, getAgent} from '#/state/session' import {RQKEY as LIST_MEMBERS_RQKEY} from '#/state/queries/list-members' -import {getAgent, useSession} from '#/state/session' +import {STALE} from '#/state/queries' // sanity limit is SANITY_PAGE_LIMIT*PAGE_SIZE total records const SANITY_PAGE_LIMIT = 1000 diff --git a/src/state/queries/list.ts b/src/state/queries/list.ts index 1bdf96e17b..845658a279 100644 --- a/src/state/queries/list.ts +++ b/src/state/queries/list.ts @@ -1,22 +1,20 @@ import { - AppBskyGraphDefs, + AtUri, AppBskyGraphGetList, AppBskyGraphList, - AtUri, + AppBskyGraphDefs, Facet, } from '@atproto/api' -import {useMutation, useQuery, useQueryClient} from '@tanstack/react-query' -import chunk from 'lodash.chunk' import {Image as RNImage} from 'react-native-image-crop-picker' - +import {useQuery, useMutation, useQueryClient} from '@tanstack/react-query' +import chunk from 'lodash.chunk' +import {useSession, getAgent} from '../session' +import {invalidate as invalidateMyLists} from './my-lists' +import {RQKEY as PROFILE_LISTS_RQKEY} from './profile-lists' import {uploadBlob} from '#/lib/api' import {until} from '#/lib/async/until' import {STALE} from '#/state/queries' -import {getAgent, useSession} from '../session' -import {invalidate as invalidateMyLists} from './my-lists' -import {RQKEY as PROFILE_LISTS_RQKEY} from './profile-lists' - export const RQKEY = (uri: string) => ['list', uri] export function useListQuery(uri?: string) { diff --git a/src/state/queries/my-blocked-accounts.ts b/src/state/queries/my-blocked-accounts.ts index 6e981f1e24..badaaec34d 100644 --- a/src/state/queries/my-blocked-accounts.ts +++ b/src/state/queries/my-blocked-accounts.ts @@ -1,9 +1,9 @@ import {AppBskyActorDefs, AppBskyGraphGetBlocks} from '@atproto/api' import { + useInfiniteQuery, InfiniteData, QueryClient, QueryKey, - useInfiniteQuery, } from '@tanstack/react-query' import {getAgent} from '#/state/session' diff --git a/src/state/queries/my-follows.ts b/src/state/queries/my-follows.ts index e66b642e2f..f95c3f5a7c 100644 --- a/src/state/queries/my-follows.ts +++ b/src/state/queries/my-follows.ts @@ -1,10 +1,8 @@ import {AppBskyActorDefs} from '@atproto/api' import {useQuery} from '@tanstack/react-query' - +import {useSession, getAgent} from '../session' import {STALE} from '#/state/queries' -import {getAgent, useSession} from '../session' - // sanity limit is SANITY_PAGE_LIMIT*PAGE_SIZE total records const SANITY_PAGE_LIMIT = 1000 const PAGE_SIZE = 100 diff --git a/src/state/queries/my-lists.ts b/src/state/queries/my-lists.ts index 5cf3dfca03..d53e130327 100644 --- a/src/state/queries/my-lists.ts +++ b/src/state/queries/my-lists.ts @@ -1,9 +1,9 @@ import {AppBskyGraphDefs} from '@atproto/api' -import {QueryClient, useQuery} from '@tanstack/react-query' +import {useQuery, QueryClient} from '@tanstack/react-query' import {accumulate} from '#/lib/async/accumulate' +import {useSession, getAgent} from '#/state/session' import {STALE} from '#/state/queries' -import {getAgent, useSession} from '#/state/session' export type MyListsFilter = | 'all' diff --git a/src/state/queries/my-muted-accounts.ts b/src/state/queries/my-muted-accounts.ts index a397887d85..8929e04d3e 100644 --- a/src/state/queries/my-muted-accounts.ts +++ b/src/state/queries/my-muted-accounts.ts @@ -1,9 +1,9 @@ import {AppBskyActorDefs, AppBskyGraphGetMutes} from '@atproto/api' import { + useInfiniteQuery, InfiniteData, QueryClient, QueryKey, - useInfiniteQuery, } from '@tanstack/react-query' import {getAgent} from '#/state/session' diff --git a/src/state/queries/notifications/feed.ts b/src/state/queries/notifications/feed.ts index dbc23fcbdd..405d054d44 100644 --- a/src/state/queries/notifications/feed.ts +++ b/src/state/queries/notifications/feed.ts @@ -16,26 +16,24 @@ * 3. Don't call this query's `refetch()` if you're trying to sync latest; call `checkUnread()` instead. */ +import {useEffect, useRef} from 'react' import {AppBskyFeedDefs} from '@atproto/api' import { + useInfiniteQuery, InfiniteData, - QueryClient, QueryKey, - useInfiniteQuery, useQueryClient, + QueryClient, } from '@tanstack/react-query' -import {useEffect, useRef} from 'react' - -import {useMutedThreads} from '#/state/muted-threads' - -import {STALE} from '..' import {useModerationOpts} from '../preferences' -import {embedViewRecordToPostView, getEmbeddedPost} from '../util' -import {FeedPage} from './types' import {useUnreadNotificationsApi} from './unread' import {fetchPage} from './util' +import {FeedPage} from './types' +import {useMutedThreads} from '#/state/muted-threads' +import {STALE} from '..' +import {embedViewRecordToPostView, getEmbeddedPost} from '../util' -export type {FeedNotification, FeedPage, NotificationType} from './types' +export type {NotificationType, FeedNotification, FeedPage} from './types' const PAGE_SIZE = 30 diff --git a/src/state/queries/notifications/types.ts b/src/state/queries/notifications/types.ts index db1cf878f2..812236cf06 100644 --- a/src/state/queries/notifications/types.ts +++ b/src/state/queries/notifications/types.ts @@ -1,6 +1,6 @@ import { - AppBskyFeedDefs, AppBskyNotificationListNotifications, + AppBskyFeedDefs, } from '@atproto/api' export type NotificationType = diff --git a/src/state/queries/notifications/unread.tsx b/src/state/queries/notifications/unread.tsx index 2f55872eb9..e7a0631ecf 100644 --- a/src/state/queries/notifications/unread.tsx +++ b/src/state/queries/notifications/unread.tsx @@ -2,22 +2,20 @@ * A kind of companion API to ./feed.ts. See that file for more info. */ -import {useQueryClient} from '@tanstack/react-query' -import * as Notifications from 'expo-notifications' import React from 'react' -import {AppState} from 'react-native' - +import * as Notifications from 'expo-notifications' +import {useQueryClient} from '@tanstack/react-query' import BroadcastChannel from '#/lib/broadcast' -import {logger} from '#/logger' +import {useSession, getAgent} from '#/state/session' +import {useModerationOpts} from '../preferences' +import {fetchPage} from './util' +import {CachedFeedPage, FeedPage} from './types' import {isNative} from '#/platform/detection' import {useMutedThreads} from '#/state/muted-threads' -import {getAgent, useSession} from '#/state/session' - -import {useModerationOpts} from '../preferences' -import {truncateAndInvalidate} from '../util' import {RQKEY as RQKEY_NOTIFS} from './feed' -import {CachedFeedPage, FeedPage} from './types' -import {fetchPage} from './util' +import {logger} from '#/logger' +import {truncateAndInvalidate} from '../util' +import {AppState} from 'react-native' const UPDATE_INTERVAL = 30 * 1e3 // 30sec diff --git a/src/state/queries/notifications/util.ts b/src/state/queries/notifications/util.ts index f019c89660..626d3e9118 100644 --- a/src/state/queries/notifications/util.ts +++ b/src/state/queries/notifications/util.ts @@ -1,21 +1,19 @@ import { - AppBskyEmbedRecord, + AppBskyNotificationListNotifications, + ModerationOpts, + moderateProfile, AppBskyFeedDefs, - AppBskyFeedLike, AppBskyFeedPost, AppBskyFeedRepost, - AppBskyNotificationListNotifications, - moderateProfile, - ModerationOpts, + AppBskyFeedLike, + AppBskyEmbedRecord, } from '@atproto/api' -import {QueryClient} from '@tanstack/react-query' -import chunk from 'lodash.chunk' - import {moderatePost_wrapped as moderatePost} from '#/lib/moderatePost_wrapped' - +import chunk from 'lodash.chunk' +import {QueryClient} from '@tanstack/react-query' import {getAgent} from '../../session' import {precacheProfile} from '../profile' -import {FeedNotification, FeedPage, NotificationType} from './types' +import {NotificationType, FeedNotification, FeedPage} from './types' const GROUPABLE_REASONS = ['like', 'repost', 'follow'] const MS_1HR = 1e3 * 60 * 60 diff --git a/src/state/queries/post-feed.ts b/src/state/queries/post-feed.ts index db6debc5ad..c295ffcb03 100644 --- a/src/state/queries/post-feed.ts +++ b/src/state/queries/post-feed.ts @@ -1,3 +1,5 @@ +import React, {useCallback, useEffect, useRef} from 'react' +import {AppState} from 'react-native' import { AppBskyFeedDefs, AppBskyFeedPost, @@ -5,38 +7,34 @@ import { PostModeration, } from '@atproto/api' import { + useInfiniteQuery, InfiniteData, - QueryClient, QueryKey, - useInfiniteQuery, + QueryClient, useQueryClient, } from '@tanstack/react-query' -import {AuthorFeedAPI} from 'lib/api/feed/author' -import {CustomFeedAPI} from 'lib/api/feed/custom' +import {moderatePost_wrapped as moderatePost} from '#/lib/moderatePost_wrapped' +import {useFeedTuners} from '../preferences/feed-tuners' +import {FeedTuner, FeedTunerFn, NoopFeedTuner} from 'lib/api/feed-manip' +import {FeedAPI, ReasonFeedSource} from 'lib/api/feed/types' import {FollowingFeedAPI} from 'lib/api/feed/following' +import {AuthorFeedAPI} from 'lib/api/feed/author' import {LikesFeedAPI} from 'lib/api/feed/likes' +import {CustomFeedAPI} from 'lib/api/feed/custom' import {ListFeedAPI} from 'lib/api/feed/list' import {MergeFeedAPI} from 'lib/api/feed/merge' -import {FeedAPI, ReasonFeedSource} from 'lib/api/feed/types' -import {FeedTuner, FeedTunerFn, NoopFeedTuner} from 'lib/api/feed-manip' -import {BSKY_FEED_OWNER_DIDS} from 'lib/constants' -import {queryClient} from 'lib/react-query' -import React, {useCallback, useEffect, useRef} from 'react' -import {AppState} from 'react-native' - import {HomeFeedAPI} from '#/lib/api/feed/home' -import {moderatePost_wrapped as moderatePost} from '#/lib/moderatePost_wrapped' import {logger} from '#/logger' import {STALE} from '#/state/queries' +import {precacheFeedPostProfiles} from './profile' +import {getAgent} from '#/state/session' import {DEFAULT_LOGGED_OUT_PREFERENCES} from '#/state/queries/preferences/const' import {getModerationOpts} from '#/state/queries/preferences/moderation' -import {getAgent} from '#/state/session' import {KnownError} from '#/view/com/posts/FeedErrorMessage' - -import {useFeedTuners} from '../preferences/feed-tuners' -import {useModerationOpts} from './preferences' -import {precacheFeedPostProfiles} from './profile' import {embedViewRecordToPostView, getEmbeddedPost} from './util' +import {useModerationOpts} from './preferences' +import {queryClient} from 'lib/react-query' +import {BSKY_FEED_OWNER_DIDS} from 'lib/constants' type ActorDid = string type AuthorFilter = diff --git a/src/state/queries/post-liked-by.ts b/src/state/queries/post-liked-by.ts index b48b0e92e0..2cde07f280 100644 --- a/src/state/queries/post-liked-by.ts +++ b/src/state/queries/post-liked-by.ts @@ -1,9 +1,9 @@ import {AppBskyActorDefs, AppBskyFeedGetLikes} from '@atproto/api' import { + useInfiniteQuery, InfiniteData, QueryClient, QueryKey, - useInfiniteQuery, } from '@tanstack/react-query' import {getAgent} from '#/state/session' diff --git a/src/state/queries/post-reposted-by.ts b/src/state/queries/post-reposted-by.ts index c33d1b2bb7..db5fa65140 100644 --- a/src/state/queries/post-reposted-by.ts +++ b/src/state/queries/post-reposted-by.ts @@ -1,9 +1,9 @@ import {AppBskyActorDefs, AppBskyFeedGetRepostedBy} from '@atproto/api' import { + useInfiniteQuery, InfiniteData, QueryClient, QueryKey, - useInfiniteQuery, } from '@tanstack/react-query' import {getAgent} from '#/state/session' diff --git a/src/state/queries/post-thread.ts b/src/state/queries/post-thread.ts index e46b770da2..26d40599c6 100644 --- a/src/state/queries/post-thread.ts +++ b/src/state/queries/post-thread.ts @@ -1,16 +1,15 @@ import { - AppBskyEmbedRecord, AppBskyFeedDefs, - AppBskyFeedGetPostThread, AppBskyFeedPost, + AppBskyFeedGetPostThread, + AppBskyEmbedRecord, } from '@atproto/api' -import {QueryClient, useQuery, useQueryClient} from '@tanstack/react-query' +import {useQuery, useQueryClient, QueryClient} from '@tanstack/react-query' -import {UsePreferencesQueryResponse} from '#/state/queries/preferences/types' import {getAgent} from '#/state/session' - -import {findAllPostsInQueryData as findAllPostsInNotifsQueryData} from './notifications/feed' +import {UsePreferencesQueryResponse} from '#/state/queries/preferences/types' import {findAllPostsInQueryData as findAllPostsInFeedQueryData} from './post-feed' +import {findAllPostsInQueryData as findAllPostsInNotifsQueryData} from './notifications/feed' import {precacheThreadPostProfiles} from './profile' import {getEmbeddedPost} from './util' diff --git a/src/state/queries/post.ts b/src/state/queries/post.ts index 1179eb22b7..eb59f7da40 100644 --- a/src/state/queries/post.ts +++ b/src/state/queries/post.ts @@ -1,12 +1,11 @@ -import {AppBskyFeedDefs, AtUri} from '@atproto/api' -import {useMutation, useQuery, useQueryClient} from '@tanstack/react-query' import {useCallback} from 'react' - -import {track} from '#/lib/analytics/analytics' -import {useToggleMutationQueue} from '#/lib/hooks/useToggleMutationQueue' -import {updatePostShadow} from '#/state/cache/post-shadow' +import {AppBskyFeedDefs, AtUri} from '@atproto/api' +import {useQuery, useMutation, useQueryClient} from '@tanstack/react-query' import {Shadow} from '#/state/cache/types' import {getAgent} from '#/state/session' +import {updatePostShadow} from '#/state/cache/post-shadow' +import {track} from '#/lib/analytics/analytics' +import {useToggleMutationQueue} from '#/lib/hooks/useToggleMutationQueue' export const RQKEY = (postUri: string) => ['post', postUri] diff --git a/src/state/queries/preferences/const.ts b/src/state/queries/preferences/const.ts index 97e54a8ce8..53c9e482af 100644 --- a/src/state/queries/preferences/const.ts +++ b/src/state/queries/preferences/const.ts @@ -1,8 +1,8 @@ -import {DEFAULT_LOGGED_OUT_LABEL_PREFERENCES} from '#/state/queries/preferences/moderation' import { - ThreadViewPreferences, UsePreferencesQueryResponse, + ThreadViewPreferences, } from '#/state/queries/preferences/types' +import {DEFAULT_LOGGED_OUT_LABEL_PREFERENCES} from '#/state/queries/preferences/moderation' export const DEFAULT_HOME_FEED_PREFS: UsePreferencesQueryResponse['feedViewPrefs'] = { diff --git a/src/state/queries/preferences/index.ts b/src/state/queries/preferences/index.ts index 88b315f959..37ef10ae0c 100644 --- a/src/state/queries/preferences/index.ts +++ b/src/state/queries/preferences/index.ts @@ -1,33 +1,33 @@ +import {useMemo} from 'react' +import {useQuery, useMutation, useQueryClient} from '@tanstack/react-query' import { - AppBskyActorDefs, - BskyFeedViewPreference, LabelPreference, + BskyFeedViewPreference, + AppBskyActorDefs, } from '@atproto/api' -import {useMutation, useQuery, useQueryClient} from '@tanstack/react-query' -import {useMemo} from 'react' import {track} from '#/lib/analytics/analytics' import {getAge} from '#/lib/strings/time' -import {useHiddenPosts} from '#/state/preferences/hidden-posts' -import {STALE} from '#/state/queries' -import { - DEFAULT_HOME_FEED_PREFS, - DEFAULT_LOGGED_OUT_PREFERENCES, - DEFAULT_THREAD_VIEW_PREFS, -} from '#/state/queries/preferences/const' +import {useSession, getAgent} from '#/state/session' import {DEFAULT_LABEL_PREFERENCES} from '#/state/queries/preferences/moderation' -import {getModerationOpts} from '#/state/queries/preferences/moderation' import { ConfigurableLabelGroup, - ThreadViewPreferences, UsePreferencesQueryResponse, + ThreadViewPreferences, } from '#/state/queries/preferences/types' import {temp__migrateLabelPref} from '#/state/queries/preferences/util' -import {getAgent, useSession} from '#/state/session' +import { + DEFAULT_HOME_FEED_PREFS, + DEFAULT_THREAD_VIEW_PREFS, + DEFAULT_LOGGED_OUT_PREFERENCES, +} from '#/state/queries/preferences/const' +import {getModerationOpts} from '#/state/queries/preferences/moderation' +import {STALE} from '#/state/queries' +import {useHiddenPosts} from '#/state/preferences/hidden-posts' -export * from '#/state/queries/preferences/const' -export * from '#/state/queries/preferences/moderation' export * from '#/state/queries/preferences/types' +export * from '#/state/queries/preferences/moderation' +export * from '#/state/queries/preferences/const' export const preferencesQueryKey = ['getPreferences'] diff --git a/src/state/queries/preferences/moderation.ts b/src/state/queries/preferences/moderation.ts index bf5139be5a..cdae529374 100644 --- a/src/state/queries/preferences/moderation.ts +++ b/src/state/queries/preferences/moderation.ts @@ -1,12 +1,12 @@ import { - ComAtprotoLabelDefs, LabelPreference, + ComAtprotoLabelDefs, ModerationOpts, } from '@atproto/api' import { - ConfigurableLabelGroup, LabelGroup, + ConfigurableLabelGroup, UsePreferencesQueryResponse, } from '#/state/queries/preferences/types' diff --git a/src/state/queries/preferences/types.ts b/src/state/queries/preferences/types.ts index 3c65c31e0d..45c9eed7de 100644 --- a/src/state/queries/preferences/types.ts +++ b/src/state/queries/preferences/types.ts @@ -1,8 +1,8 @@ import { - BskyFeedViewPreference, BskyPreferences, - BskyThreadViewPreference, LabelPreference, + BskyThreadViewPreference, + BskyFeedViewPreference, } from '@atproto/api' export const configurableAdultLabelGroups = [ diff --git a/src/state/queries/profile-extra-info.ts b/src/state/queries/profile-extra-info.ts index e5bdff58af..8fc32c33eb 100644 --- a/src/state/queries/profile-extra-info.ts +++ b/src/state/queries/profile-extra-info.ts @@ -1,7 +1,7 @@ import {useQuery} from '@tanstack/react-query' -import {STALE} from '#/state/queries' import {getAgent} from '#/state/session' +import {STALE} from '#/state/queries' // TODO refactor invalidate on mutate? export const RQKEY = (did: string) => ['profile-extra-info', did] diff --git a/src/state/queries/profile-feedgens.ts b/src/state/queries/profile-feedgens.ts index 5b01259ec4..7d33eb9c80 100644 --- a/src/state/queries/profile-feedgens.ts +++ b/src/state/queries/profile-feedgens.ts @@ -1,5 +1,5 @@ import {AppBskyFeedGetActorFeeds} from '@atproto/api' -import {InfiniteData, QueryKey, useInfiniteQuery} from '@tanstack/react-query' +import {useInfiniteQuery, InfiniteData, QueryKey} from '@tanstack/react-query' import {getAgent} from '#/state/session' diff --git a/src/state/queries/profile-followers.ts b/src/state/queries/profile-followers.ts index 28cc82d7ab..fdefc82536 100644 --- a/src/state/queries/profile-followers.ts +++ b/src/state/queries/profile-followers.ts @@ -1,9 +1,9 @@ import {AppBskyActorDefs, AppBskyGraphGetFollowers} from '@atproto/api' import { + useInfiniteQuery, InfiniteData, QueryClient, QueryKey, - useInfiniteQuery, } from '@tanstack/react-query' import {getAgent} from '#/state/session' diff --git a/src/state/queries/profile-follows.ts b/src/state/queries/profile-follows.ts index 697074d07f..428c8aebd1 100644 --- a/src/state/queries/profile-follows.ts +++ b/src/state/queries/profile-follows.ts @@ -1,13 +1,13 @@ import {AppBskyActorDefs, AppBskyGraphGetFollows} from '@atproto/api' import { + useInfiniteQuery, InfiniteData, QueryClient, QueryKey, - useInfiniteQuery, } from '@tanstack/react-query' -import {STALE} from '#/state/queries' import {getAgent} from '#/state/session' +import {STALE} from '#/state/queries' const PAGE_SIZE = 30 type RQPageParam = string | undefined diff --git a/src/state/queries/profile-lists.ts b/src/state/queries/profile-lists.ts index d20f8a0310..505d33b9fa 100644 --- a/src/state/queries/profile-lists.ts +++ b/src/state/queries/profile-lists.ts @@ -1,6 +1,5 @@ import {AppBskyGraphGetLists} from '@atproto/api' -import {InfiniteData, QueryKey, useInfiniteQuery} from '@tanstack/react-query' - +import {useInfiniteQuery, InfiniteData, QueryKey} from '@tanstack/react-query' import {getAgent} from '#/state/session' const PAGE_SIZE = 30 diff --git a/src/state/queries/profile.ts b/src/state/queries/profile.ts index 5c4c071c62..e81ea0f3f0 100644 --- a/src/state/queries/profile.ts +++ b/src/state/queries/profile.ts @@ -1,33 +1,31 @@ +import {useCallback} from 'react' import { + AtUri, AppBskyActorDefs, - AppBskyActorGetProfile, AppBskyActorProfile, + AppBskyActorGetProfile, + AppBskyFeedDefs, AppBskyEmbedRecord, AppBskyEmbedRecordWithMedia, - AppBskyFeedDefs, - AtUri, } from '@atproto/api' import { - QueryClient, - useMutation, useQuery, useQueryClient, + useMutation, + QueryClient, } from '@tanstack/react-query' -import {useCallback} from 'react' import {Image as RNImage} from 'react-native-image-crop-picker' - -import {track} from '#/lib/analytics/analytics' +import {useSession, getAgent} from '../session' +import {updateProfileShadow} from '../cache/profile-shadow' import {uploadBlob} from '#/lib/api' import {until} from '#/lib/async/until' -import {useToggleMutationQueue} from '#/lib/hooks/useToggleMutationQueue' import {Shadow} from '#/state/cache/types' -import {STALE} from '#/state/queries' import {resetProfilePostsQueries} from '#/state/queries/post-feed' - -import {updateProfileShadow} from '../cache/profile-shadow' -import {getAgent, useSession} from '../session' -import {RQKEY as RQKEY_MY_BLOCKED} from './my-blocked-accounts' +import {useToggleMutationQueue} from '#/lib/hooks/useToggleMutationQueue' import {RQKEY as RQKEY_MY_MUTED} from './my-muted-accounts' +import {RQKEY as RQKEY_MY_BLOCKED} from './my-blocked-accounts' +import {STALE} from '#/state/queries' +import {track} from '#/lib/analytics/analytics' import {ThreadNode} from './post-thread' export const RQKEY = (did: string) => ['profile', did] diff --git a/src/state/queries/resolve-uri.ts b/src/state/queries/resolve-uri.ts index dd6769baa3..95fc867ddf 100644 --- a/src/state/queries/resolve-uri.ts +++ b/src/state/queries/resolve-uri.ts @@ -1,10 +1,9 @@ -import {AppBskyActorDefs, AtUri} from '@atproto/api' import {useQuery, useQueryClient, UseQueryResult} from '@tanstack/react-query' - -import {STALE} from '#/state/queries' -import {getAgent} from '#/state/session' +import {AtUri, AppBskyActorDefs} from '@atproto/api' import {profileBasicQueryKey as RQKEY_PROFILE_BASIC} from './profile' +import {getAgent} from '#/state/session' +import {STALE} from '#/state/queries' export const RQKEY = (didOrHandle: string) => ['resolved-did', didOrHandle] diff --git a/src/state/queries/search-posts.ts b/src/state/queries/search-posts.ts index 58dba59683..e0b317ca9d 100644 --- a/src/state/queries/search-posts.ts +++ b/src/state/queries/search-posts.ts @@ -1,13 +1,12 @@ import {AppBskyFeedDefs, AppBskyFeedSearchPosts} from '@atproto/api' import { + useInfiniteQuery, InfiniteData, - QueryClient, QueryKey, - useInfiniteQuery, + QueryClient, } from '@tanstack/react-query' import {getAgent} from '#/state/session' - import {embedViewRecordToPostView, getEmbeddedPost} from './util' const searchPostsQueryKey = ({query}: {query: string}) => [ diff --git a/src/state/queries/suggested-feeds.ts b/src/state/queries/suggested-feeds.ts index f8f40384db..7e6b534ad5 100644 --- a/src/state/queries/suggested-feeds.ts +++ b/src/state/queries/suggested-feeds.ts @@ -1,8 +1,8 @@ +import {useInfiniteQuery, InfiniteData, QueryKey} from '@tanstack/react-query' import {AppBskyFeedGetSuggestedFeeds} from '@atproto/api' -import {InfiniteData, QueryKey, useInfiniteQuery} from '@tanstack/react-query' -import {STALE} from '#/state/queries' import {getAgent} from '#/state/session' +import {STALE} from '#/state/queries' export const suggestedFeedsQueryKey = ['suggestedFeeds'] diff --git a/src/state/queries/suggested-follows.ts b/src/state/queries/suggested-follows.ts index ba9de82d19..932226b75c 100644 --- a/src/state/queries/suggested-follows.ts +++ b/src/state/queries/suggested-follows.ts @@ -1,3 +1,4 @@ +import React from 'react' import { AppBskyActorDefs, AppBskyActorGetSuggestions, @@ -5,18 +6,17 @@ import { moderateProfile, } from '@atproto/api' import { + useInfiniteQuery, + useQueryClient, + useQuery, InfiniteData, QueryClient, QueryKey, - useInfiniteQuery, - useQuery, - useQueryClient, } from '@tanstack/react-query' -import React from 'react' -import {STALE} from '#/state/queries' +import {useSession, getAgent} from '#/state/session' import {useModerationOpts} from '#/state/queries/preferences' -import {getAgent, useSession} from '#/state/session' +import {STALE} from '#/state/queries' const suggestedFollowsQueryKey = ['suggested-follows'] const suggestedFollowsByActorQueryKey = (did: string) => [ diff --git a/src/state/queries/util.ts b/src/state/queries/util.ts index 24f28ca529..54752b332a 100644 --- a/src/state/queries/util.ts +++ b/src/state/queries/util.ts @@ -1,10 +1,10 @@ +import {QueryClient, QueryKey, InfiniteData} from '@tanstack/react-query' import { AppBskyEmbedRecord, AppBskyEmbedRecordWithMedia, AppBskyFeedDefs, AppBskyFeedPost, } from '@atproto/api' -import {InfiniteData, QueryClient, QueryKey} from '@tanstack/react-query' export function truncateAndInvalidate( queryClient: QueryClient, diff --git a/src/state/session/index.tsx b/src/state/session/index.tsx index 9918e2e75b..46628318c5 100644 --- a/src/state/session/index.tsx +++ b/src/state/session/index.tsx @@ -1,18 +1,17 @@ -import {AtpPersistSessionHandler, BskyAgent} from '@atproto/api' +import React from 'react' +import {BskyAgent, AtpPersistSessionHandler} from '@atproto/api' import {useQueryClient} from '@tanstack/react-query' import {jwtDecode} from 'jwt-decode' -import React from 'react' -import {track} from '#/lib/analytics/analytics' import {networkRetry} from '#/lib/async/retry' -import {hasProp} from '#/lib/type-guards' import {logger} from '#/logger' import * as persisted from '#/state/persisted' import {PUBLIC_BSKY_AGENT} from '#/state/queries' +import {emitSessionDropped} from '../events' import {useLoggedOutViewControls} from '#/state/shell/logged-out' import {useCloseAllActiveElements} from '#/state/util' - -import {emitSessionDropped} from '../events' +import {track} from '#/lib/analytics/analytics' +import {hasProp} from '#/lib/type-guards' let __globalAgent: BskyAgent = PUBLIC_BSKY_AGENT diff --git a/src/state/shell/color-mode.tsx b/src/state/shell/color-mode.tsx index f16e2be533..f3339d2406 100644 --- a/src/state/shell/color-mode.tsx +++ b/src/state/shell/color-mode.tsx @@ -1,5 +1,4 @@ import React from 'react' - import * as persisted from '#/state/persisted' type StateContext = { diff --git a/src/state/shell/composer.tsx b/src/state/shell/composer.tsx index 1fb08baa28..c9dbfbeac4 100644 --- a/src/state/shell/composer.tsx +++ b/src/state/shell/composer.tsx @@ -1,10 +1,9 @@ +import React from 'react' import { AppBskyEmbedRecord, AppBskyRichtextFacet, PostModeration, } from '@atproto/api' -import React from 'react' - import {useNonReactiveCallback} from '#/lib/hooks/useNonReactiveCallback' export interface ComposerOptsPostRef { diff --git a/src/state/shell/index.tsx b/src/state/shell/index.tsx index 7e41967f53..07909c0001 100644 --- a/src/state/shell/index.tsx +++ b/src/state/shell/index.tsx @@ -1,23 +1,22 @@ import React from 'react' - -import {Provider as ColorModeProvider} from './color-mode' -import {Provider as ComposerProvider} from './composer' +import {Provider as ShellLayoutProvder} from './shell-layout' import {Provider as DrawerOpenProvider} from './drawer-open' import {Provider as DrawerSwipableProvider} from './drawer-swipe-disabled' import {Provider as MinimalModeProvider} from './minimal-mode' +import {Provider as ColorModeProvider} from './color-mode' import {Provider as OnboardingProvider} from './onboarding' -import {Provider as ShellLayoutProvder} from './shell-layout' +import {Provider as ComposerProvider} from './composer' import {Provider as TickEveryMinuteProvider} from './tick-every-minute' -export {useSetThemePrefs, useThemePrefs} from './color-mode' -export {useComposerControls, useComposerState} from './composer' export {useIsDrawerOpen, useSetDrawerOpen} from './drawer-open' export { useIsDrawerSwipeDisabled, useSetDrawerSwipeDisabled, } from './drawer-swipe-disabled' export {useMinimalShellMode, useSetMinimalShellMode} from './minimal-mode' -export {useOnboardingDispatch, useOnboardingState} from './onboarding' +export {useThemePrefs, useSetThemePrefs} from './color-mode' +export {useOnboardingState, useOnboardingDispatch} from './onboarding' +export {useComposerState, useComposerControls} from './composer' export {useTickEveryMinute} from './tick-every-minute' export function Provider({children}: React.PropsWithChildren<{}>) { diff --git a/src/state/shell/onboarding.tsx b/src/state/shell/onboarding.tsx index cd26e42c0f..6a18b461f9 100644 --- a/src/state/shell/onboarding.tsx +++ b/src/state/shell/onboarding.tsx @@ -1,7 +1,6 @@ import React from 'react' - -import {track} from '#/lib/analytics/analytics' import * as persisted from '#/state/persisted' +import {track} from '#/lib/analytics/analytics' export const OnboardingScreenSteps = { Welcome: 'Welcome', diff --git a/src/state/shell/reminders.ts b/src/state/shell/reminders.ts index 6f68b9b795..ee924eb001 100644 --- a/src/state/shell/reminders.ts +++ b/src/state/shell/reminders.ts @@ -1,9 +1,7 @@ -import {toHashCode} from 'lib/strings/helpers' - import * as persisted from '#/state/persisted' - -import {SessionAccount} from '../session' +import {toHashCode} from 'lib/strings/helpers' import {isOnboardingActive} from './onboarding' +import {SessionAccount} from '../session' export function shouldRequestEmailConfirmation(account: SessionAccount) { if (!account) { diff --git a/src/state/shell/selected-feed.tsx b/src/state/shell/selected-feed.tsx index 8a6e82636f..a05d8661b4 100644 --- a/src/state/shell/selected-feed.tsx +++ b/src/state/shell/selected-feed.tsx @@ -1,7 +1,6 @@ import React from 'react' - -import {isWeb} from '#/platform/detection' import * as persisted from '#/state/persisted' +import {isWeb} from '#/platform/detection' type StateContext = string type SetContext = (v: string) => void diff --git a/src/state/util.ts b/src/state/util.ts index af6d9026b4..f65d14a84c 100644 --- a/src/state/util.ts +++ b/src/state/util.ts @@ -1,11 +1,9 @@ import {useCallback} from 'react' - -import {useDialogStateControlContext} from '#/state/dialogs' - import {useLightboxControls} from './lightbox' import {useModalControls} from './modals' import {useComposerControls} from './shell/composer' import {useSetDrawerOpen} from './shell/drawer-open' +import {useDialogStateControlContext} from '#/state/dialogs' /** * returns true if something was closed diff --git a/src/view/com/auth/HomeLoggedOutCTA.tsx b/src/view/com/auth/HomeLoggedOutCTA.tsx index f2a3c5170b..f796d8baee 100644 --- a/src/view/com/auth/HomeLoggedOutCTA.tsx +++ b/src/view/com/auth/HomeLoggedOutCTA.tsx @@ -1,16 +1,14 @@ -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' import React from 'react' import {StyleSheet, TouchableOpacity, View} from 'react-native' - +import {useLingui} from '@lingui/react' +import {Trans, msg} from '@lingui/macro' +import {ScrollView} from '../util/Views' +import {Text} from '../util/text/Text' import {usePalette} from '#/lib/hooks/usePalette' -import {useWebMediaQueries} from '#/lib/hooks/useWebMediaQueries' import {colors, s} from '#/lib/styles' -import {useLoggedOutViewControls} from '#/state/shell/logged-out' - import {TextLink} from '../util/Link' -import {Text} from '../util/text/Text' -import {ScrollView} from '../util/Views' +import {useWebMediaQueries} from '#/lib/hooks/useWebMediaQueries' +import {useLoggedOutViewControls} from '#/state/shell/logged-out' export function HomeLoggedOutCTA() { const pal = usePalette('default') diff --git a/src/view/com/auth/LoggedOut.tsx b/src/view/com/auth/LoggedOut.tsx index b2df062dd9..603abbab2d 100644 --- a/src/view/com/auth/LoggedOut.tsx +++ b/src/view/com/auth/LoggedOut.tsx @@ -1,28 +1,27 @@ +import React from 'react' +import {View, Pressable} from 'react-native' import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' -import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' +import {Trans, msg} from '@lingui/macro' import {useNavigation} from '@react-navigation/native' -import {useAnalytics} from 'lib/analytics/analytics' -import {usePalette} from 'lib/hooks/usePalette' -import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {NavigationProp} from 'lib/routes/types' -import {s} from 'lib/styles' + import {isIOS, isNative} from 'platform/detection' -import React from 'react' -import {Pressable, View} from 'react-native' -import {CreateAccount} from 'view/com/auth/create/CreateAccount' import {Login} from 'view/com/auth/login/Login' +import {CreateAccount} from 'view/com/auth/create/CreateAccount' import {ErrorBoundary} from 'view/com/util/ErrorBoundary' - -import {useSession} from '#/state/session' +import {s} from 'lib/styles' +import {usePalette} from 'lib/hooks/usePalette' +import {useAnalytics} from 'lib/analytics/analytics' +import {SplashScreen} from './SplashScreen' +import {useSetMinimalShellMode} from '#/state/shell/minimal-mode' +import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' import { useLoggedOutView, useLoggedOutViewControls, } from '#/state/shell/logged-out' -import {useSetMinimalShellMode} from '#/state/shell/minimal-mode' +import {useSession} from '#/state/session' import {Text} from '#/view/com/util/text/Text' - -import {SplashScreen} from './SplashScreen' +import {NavigationProp} from 'lib/routes/types' enum ScreenState { S_LoginOrCreateAccount, diff --git a/src/view/com/auth/Onboarding.tsx b/src/view/com/auth/Onboarding.tsx index e102b1ccf8..bdb7f27c81 100644 --- a/src/view/com/auth/Onboarding.tsx +++ b/src/view/com/auth/Onboarding.tsx @@ -1,15 +1,13 @@ -import {usePalette} from 'lib/hooks/usePalette' -import {s} from 'lib/styles' import React from 'react' -import {Platform, SafeAreaView} from 'react-native' +import {SafeAreaView, Platform} from 'react-native' import {ErrorBoundary} from 'view/com/util/ErrorBoundary' - -import {useOnboardingDispatch, useOnboardingState} from '#/state/shell' -import {useSetMinimalShellMode} from '#/state/shell/minimal-mode' - +import {s} from 'lib/styles' +import {usePalette} from 'lib/hooks/usePalette' +import {Welcome} from './onboarding/Welcome' import {RecommendedFeeds} from './onboarding/RecommendedFeeds' import {RecommendedFollows} from './onboarding/RecommendedFollows' -import {Welcome} from './onboarding/Welcome' +import {useSetMinimalShellMode} from '#/state/shell/minimal-mode' +import {useOnboardingState, useOnboardingDispatch} from '#/state/shell' export function Onboarding() { const pal = usePalette('default') diff --git a/src/view/com/auth/SplashScreen.tsx b/src/view/com/auth/SplashScreen.tsx index 2b54cb1b63..134ae11f10 100644 --- a/src/view/com/auth/SplashScreen.tsx +++ b/src/view/com/auth/SplashScreen.tsx @@ -1,25 +1,23 @@ +import React from 'react' +import {StyleSheet, TouchableOpacity, View} from 'react-native' +import {useSafeAreaInsets} from 'react-native-safe-area-context' +import {Text} from 'view/com/util/text/Text' +import {ErrorBoundary} from 'view/com/util/ErrorBoundary' +import {s, colors} from 'lib/styles' +import {usePalette} from 'lib/hooks/usePalette' +import {CenteredView} from '../util/Views' +import {Trans, msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {Logo} from '#/view/icons/Logo' +import {Logotype} from '#/view/icons/Logotype' import { FontAwesomeIcon, FontAwesomeIconStyle, } from '@fortawesome/react-native-fontawesome' -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {usePalette} from 'lib/hooks/usePalette' -import {colors, s} from 'lib/styles' -import React from 'react' -import {StyleSheet, TouchableOpacity, View} from 'react-native' import RNPickerSelect, {PickerSelectProps} from 'react-native-picker-select' -import {useSafeAreaInsets} from 'react-native-safe-area-context' -import {ErrorBoundary} from 'view/com/util/ErrorBoundary' -import {Text} from 'view/com/util/text/Text' - import {sanitizeAppLanguageSetting} from '#/locale/helpers' -import {APP_LANGUAGES} from '#/locale/languages' import {useLanguagePrefs, useLanguagePrefsApi} from '#/state/preferences' -import {Logo} from '#/view/icons/Logo' -import {Logotype} from '#/view/icons/Logotype' - -import {CenteredView} from '../util/Views' +import {APP_LANGUAGES} from '#/locale/languages' export const SplashScreen = ({ onPressSignin, diff --git a/src/view/com/auth/SplashScreen.web.tsx b/src/view/com/auth/SplashScreen.web.tsx index 2bf4a12950..f1921c7ffb 100644 --- a/src/view/com/auth/SplashScreen.web.tsx +++ b/src/view/com/auth/SplashScreen.web.tsx @@ -1,23 +1,21 @@ +import React from 'react' +import {StyleSheet, TouchableOpacity, View, Pressable} from 'react-native' import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' +import {Text} from 'view/com/util/text/Text' +import {TextLink} from '../util/Link' +import {ErrorBoundary} from 'view/com/util/ErrorBoundary' +import {s, colors} from 'lib/styles' import {usePalette} from 'lib/hooks/usePalette' -import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {colors, s} from 'lib/styles' +import {CenteredView} from '../util/Views' import {isWeb} from 'platform/detection' -import React from 'react' -import {Pressable, StyleSheet, TouchableOpacity, View} from 'react-native' -import {ErrorBoundary} from 'view/com/util/ErrorBoundary' -import {Text} from 'view/com/util/text/Text' - -import {sanitizeAppLanguageSetting} from '#/locale/helpers' -import {APP_LANGUAGES} from '#/locale/languages' -import {useLanguagePrefs, useLanguagePrefsApi} from '#/state/preferences' +import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' +import {Trans, msg} from '@lingui/macro' import {Logo} from '#/view/icons/Logo' import {Logotype} from '#/view/icons/Logotype' - -import {TextLink} from '../util/Link' -import {CenteredView} from '../util/Views' +import {useLingui} from '@lingui/react' +import {sanitizeAppLanguageSetting} from '#/locale/helpers' +import {useLanguagePrefs, useLanguagePrefsApi} from '#/state/preferences' +import {APP_LANGUAGES} from '#/locale/languages' export const SplashScreen = ({ onDismiss, diff --git a/src/view/com/auth/create/CaptchaWebView.tsx b/src/view/com/auth/create/CaptchaWebView.tsx index 9bfc9218e3..b0de8b4a4b 100644 --- a/src/view/com/auth/create/CaptchaWebView.tsx +++ b/src/view/com/auth/create/CaptchaWebView.tsx @@ -1,7 +1,7 @@ import React from 'react' -import {StyleSheet} from 'react-native' import {WebView, WebViewNavigation} from 'react-native-webview' import {ShouldStartLoadRequest} from 'react-native-webview/lib/WebViewTypes' +import {StyleSheet} from 'react-native' import {CreateAccountState} from 'view/com/auth/create/state' const ALLOWED_HOSTS = [ diff --git a/src/view/com/auth/create/CreateAccount.tsx b/src/view/com/auth/create/CreateAccount.tsx index be7e4c4327..d193802fe0 100644 --- a/src/view/com/auth/create/CreateAccount.tsx +++ b/src/view/com/auth/create/CreateAccount.tsx @@ -1,9 +1,3 @@ -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {useAnalytics} from 'lib/analytics/analytics' -import {usePalette} from 'lib/hooks/usePalette' -import {createFullHandle, validateHandle} from 'lib/strings/handles' -import {s} from 'lib/styles' import React from 'react' import { ActivityIndicator, @@ -12,19 +6,24 @@ import { TouchableOpacity, View, } from 'react-native' -import {getAgent} from 'state/session' +import {useAnalytics} from 'lib/analytics/analytics' +import {Text} from '../../util/text/Text' import {LoggedOutLayout} from 'view/com/util/layouts/LoggedOutLayout' - -import {FEEDBACK_FORM_URL, HITSLOP_10} from '#/lib/constants' -import {useWebMediaQueries} from '#/lib/hooks/useWebMediaQueries' +import {s} from 'lib/styles' +import {usePalette} from 'lib/hooks/usePalette' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {useCreateAccount, useSubmitCreateAccount} from './state' import {useServiceQuery} from '#/state/queries/service' +import {FEEDBACK_FORM_URL, HITSLOP_10} from '#/lib/constants' -import {TextLink} from '../../util/Link' -import {Text} from '../../util/text/Text' -import {useCreateAccount, useSubmitCreateAccount} from './state' import {Step1} from './Step1' import {Step2} from './Step2' import {Step3} from './Step3' +import {useWebMediaQueries} from '#/lib/hooks/useWebMediaQueries' +import {TextLink} from '../../util/Link' +import {getAgent} from 'state/session' +import {createFullHandle, validateHandle} from 'lib/strings/handles' export function CreateAccount({onPressBack}: {onPressBack: () => void}) { const {screen} = useAnalytics() diff --git a/src/view/com/auth/create/Policies.tsx b/src/view/com/auth/create/Policies.tsx index fea4566b8d..2c7d60818e 100644 --- a/src/view/com/auth/create/Policies.tsx +++ b/src/view/com/auth/create/Policies.tsx @@ -1,15 +1,14 @@ -import {ComAtprotoServerDescribeServer} from '@atproto/api' +import React from 'react' +import {StyleSheet, View} from 'react-native' import { FontAwesomeIcon, FontAwesomeIconStyle, } from '@fortawesome/react-native-fontawesome' -import {usePalette} from 'lib/hooks/usePalette' -import {colors, s} from 'lib/styles' -import React from 'react' -import {StyleSheet, View} from 'react-native' - +import {ComAtprotoServerDescribeServer} from '@atproto/api' import {TextLink} from '../../util/Link' import {Text} from '../../util/text/Text' +import {s, colors} from 'lib/styles' +import {usePalette} from 'lib/hooks/usePalette' type ServiceDescription = ComAtprotoServerDescribeServer.OutputSchema diff --git a/src/view/com/auth/create/Step1.tsx b/src/view/com/auth/create/Step1.tsx index 9dcc74f7dd..1f6852f8cc 100644 --- a/src/view/com/auth/create/Step1.tsx +++ b/src/view/com/auth/create/Step1.tsx @@ -1,12 +1,3 @@ -import { - FontAwesomeIcon, - FontAwesomeIconStyle, -} from '@fortawesome/react-native-fontawesome' -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {usePalette} from 'lib/hooks/usePalette' -import {s} from 'lib/styles' -import {isWeb} from 'platform/detection' import React from 'react' import { ActivityIndicator, @@ -15,19 +6,27 @@ import { TouchableOpacity, View, } from 'react-native' -import {ErrorMessage} from 'view/com/util/error/ErrorMessage' -import {DateInput} from 'view/com/util/forms/DateInput' +import {CreateAccountState, CreateAccountDispatch, is18} from './state' import {Text} from 'view/com/util/text/Text' - -import {useDialogControl} from '#/components/Dialog' -import {toNiceDomain} from '#/lib/strings/url-helpers' +import {DateInput} from 'view/com/util/forms/DateInput' +import {StepHeader} from './StepHeader' +import {s} from 'lib/styles' +import {usePalette} from 'lib/hooks/usePalette' +import {TextInput} from '../util/TextInput' +import {Policies} from './Policies' +import {ErrorMessage} from 'view/com/util/error/ErrorMessage' +import {isWeb} from 'platform/detection' +import {Trans, msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' import {logger} from '#/logger' +import { + FontAwesomeIcon, + FontAwesomeIconStyle, +} from '@fortawesome/react-native-fontawesome' +import {useDialogControl} from '#/components/Dialog' import {ServerInputDialog} from '../server-input' -import {TextInput} from '../util/TextInput' -import {Policies} from './Policies' -import {CreateAccountDispatch, CreateAccountState, is18} from './state' -import {StepHeader} from './StepHeader' +import {toNiceDomain} from '#/lib/strings/url-helpers' function sanitizeDate(date: Date): Date { if (!date || date.toString() === 'Invalid Date') { diff --git a/src/view/com/auth/create/Step2.tsx b/src/view/com/auth/create/Step2.tsx index 08eb34fb3b..5c262977f1 100644 --- a/src/view/com/auth/create/Step2.tsx +++ b/src/view/com/auth/create/Step2.tsx @@ -1,24 +1,22 @@ -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {useFocusEffect} from '@react-navigation/native' -import {usePalette} from 'lib/hooks/usePalette' +import React from 'react' +import {View} from 'react-native' +import {CreateAccountState, CreateAccountDispatch} from './state' +import {Text} from 'view/com/util/text/Text' +import {StepHeader} from './StepHeader' +import {s} from 'lib/styles' +import {TextInput} from '../util/TextInput' import { createFullHandle, IsValidHandle, validateHandle, } from 'lib/strings/handles' -import {s} from 'lib/styles' -import React from 'react' -import {View} from 'react-native' -import {Text} from 'view/com/util/text/Text' - +import {usePalette} from 'lib/hooks/usePalette' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' import {atoms as a, useTheme} from '#/alf' import {Check_Stroke2_Corner0_Rounded as Check} from '#/components/icons/Check' import {TimesLarge_Stroke2_Corner0_Rounded as Times} from '#/components/icons/Times' - -import {TextInput} from '../util/TextInput' -import {CreateAccountDispatch, CreateAccountState} from './state' -import {StepHeader} from './StepHeader' +import {useFocusEffect} from '@react-navigation/native' /** STEP 3: Your user handle * @field User handle diff --git a/src/view/com/auth/create/Step3.tsx b/src/view/com/auth/create/Step3.tsx index b572871716..53fdfdde81 100644 --- a/src/view/com/auth/create/Step3.tsx +++ b/src/view/com/auth/create/Step3.tsx @@ -1,20 +1,20 @@ -import {msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {createFullHandle} from 'lib/strings/handles' -import {useTheme} from 'lib/ThemeContext' -import {nanoid} from 'nanoid/non-secure' -import {isWeb} from 'platform/detection' import React from 'react' import {ActivityIndicator, StyleSheet, View} from 'react-native' -import {CaptchaWebView} from 'view/com/auth/create/CaptchaWebView' -import {ErrorMessage} from 'view/com/util/error/ErrorMessage' - import { - CreateAccountDispatch, CreateAccountState, + CreateAccountDispatch, useSubmitCreateAccount, } from './state' import {StepHeader} from './StepHeader' +import {ErrorMessage} from 'view/com/util/error/ErrorMessage' +import {isWeb} from 'platform/detection' +import {msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' + +import {nanoid} from 'nanoid/non-secure' +import {CaptchaWebView} from 'view/com/auth/create/CaptchaWebView' +import {useTheme} from 'lib/ThemeContext' +import {createFullHandle} from 'lib/strings/handles' const CAPTCHA_PATH = '/gate/signup' diff --git a/src/view/com/auth/create/StepHeader.tsx b/src/view/com/auth/create/StepHeader.tsx index 90946e37b4..a98b392d8d 100644 --- a/src/view/com/auth/create/StepHeader.tsx +++ b/src/view/com/auth/create/StepHeader.tsx @@ -1,9 +1,8 @@ -import {Trans} from '@lingui/macro' -import {usePalette} from 'lib/hooks/usePalette' import React from 'react' import {StyleSheet, View} from 'react-native' import {Text} from 'view/com/util/text/Text' - +import {usePalette} from 'lib/hooks/usePalette' +import {Trans} from '@lingui/macro' import {CreateAccountState} from './state' export function StepHeader({ diff --git a/src/view/com/auth/create/state.ts b/src/view/com/auth/create/state.ts index 7ff5fceb65..7a727ec0b2 100644 --- a/src/view/com/auth/create/state.ts +++ b/src/view/com/auth/create/state.ts @@ -1,25 +1,24 @@ +import {useCallback, useReducer} from 'react' import { - ComAtprotoServerCreateAccount, ComAtprotoServerDescribeServer, + ComAtprotoServerCreateAccount, } from '@atproto/api' -import {msg} from '@lingui/macro' import {I18nContext, useLingui} from '@lingui/react' +import {msg} from '@lingui/macro' import * as EmailValidator from 'email-validator' import {getAge} from 'lib/strings/time' -import {useCallback, useReducer} from 'react' +import {logger} from '#/logger' +import {createFullHandle, validateHandle} from '#/lib/strings/handles' +import {cleanError} from '#/lib/strings/errors' +import {useOnboardingDispatch} from '#/state/shell/onboarding' +import {useSessionApi} from '#/state/session' +import {DEFAULT_SERVICE, IS_PROD_SERVICE} from '#/lib/constants' import { DEFAULT_PROD_FEEDS, usePreferencesSetBirthDateMutation, useSetSaveFeedsMutation, } from 'state/queries/preferences' -import {DEFAULT_SERVICE, IS_PROD_SERVICE} from '#/lib/constants' -import {cleanError} from '#/lib/strings/errors' -import {createFullHandle, validateHandle} from '#/lib/strings/handles' -import {logger} from '#/logger' -import {useSessionApi} from '#/state/session' -import {useOnboardingDispatch} from '#/state/shell/onboarding' - export type ServiceDescription = ComAtprotoServerDescribeServer.OutputSchema const DEFAULT_DATE = new Date(Date.now() - 60e3 * 60 * 24 * 365 * 20) // default to 20 years ago diff --git a/src/view/com/auth/login/ChooseAccountForm.tsx b/src/view/com/auth/login/ChooseAccountForm.tsx index 440b066ee2..32cd8315d3 100644 --- a/src/view/com/auth/login/ChooseAccountForm.tsx +++ b/src/view/com/auth/login/ChooseAccountForm.tsx @@ -1,24 +1,22 @@ +import React from 'react' +import {ScrollView, TouchableOpacity, View} from 'react-native' import { FontAwesomeIcon, FontAwesomeIconStyle, } from '@fortawesome/react-native-fontawesome' -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' import {useAnalytics} from 'lib/analytics/analytics' +import {Text} from '../../util/text/Text' +import {UserAvatar} from '../../util/UserAvatar' +import {s, colors} from 'lib/styles' import {usePalette} from 'lib/hooks/usePalette' -import {colors, s} from 'lib/styles' -import React from 'react' -import {ScrollView, TouchableOpacity, View} from 'react-native' - +import {Trans, msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {styles} from './styles' +import {useSession, useSessionApi, SessionAccount} from '#/state/session' import {useProfileQuery} from '#/state/queries/profile' -import {SessionAccount, useSession, useSessionApi} from '#/state/session' import {useLoggedOutViewControls} from '#/state/shell/logged-out' import * as Toast from '#/view/com/util/Toast' -import {Text} from '../../util/text/Text' -import {UserAvatar} from '../../util/UserAvatar' -import {styles} from './styles' - function AccountItem({ account, onSelect, diff --git a/src/view/com/auth/login/ForgotPasswordForm.tsx b/src/view/com/auth/login/ForgotPasswordForm.tsx index 74dd1d85a1..322da2b8fd 100644 --- a/src/view/com/auth/login/ForgotPasswordForm.tsx +++ b/src/view/com/auth/login/ForgotPasswordForm.tsx @@ -1,34 +1,33 @@ -import {ComAtprotoServerDescribeServer} from '@atproto/api' -import {BskyAgent} from '@atproto/api' +import React, {useState, useEffect} from 'react' +import { + ActivityIndicator, + Keyboard, + TextInput, + TouchableOpacity, + View, +} from 'react-native' import { FontAwesomeIcon, FontAwesomeIconStyle, } from '@fortawesome/react-native-fontawesome' -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' +import {ComAtprotoServerDescribeServer} from '@atproto/api' import * as EmailValidator from 'email-validator' +import {BskyAgent} from '@atproto/api' import {useAnalytics} from 'lib/analytics/analytics' -import {usePalette} from 'lib/hooks/usePalette' -import {isNetworkError} from 'lib/strings/errors' -import {cleanError} from 'lib/strings/errors' -import {toNiceDomain} from 'lib/strings/url-helpers' +import {Text} from '../../util/text/Text' import {s} from 'lib/styles' +import {toNiceDomain} from 'lib/strings/url-helpers' +import {isNetworkError} from 'lib/strings/errors' +import {usePalette} from 'lib/hooks/usePalette' import {useTheme} from 'lib/ThemeContext' -import React, {useEffect, useState} from 'react' -import { - ActivityIndicator, - Keyboard, - TextInput, - TouchableOpacity, - View, -} from 'react-native' - -import {useDialogControl} from '#/components/Dialog' +import {cleanError} from 'lib/strings/errors' import {logger} from '#/logger' +import {Trans, msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {styles} from './styles' +import {useDialogControl} from '#/components/Dialog' -import {Text} from '../../util/text/Text' import {ServerInputDialog} from '../server-input' -import {styles} from './styles' type ServiceDescription = ComAtprotoServerDescribeServer.OutputSchema diff --git a/src/view/com/auth/login/Login.tsx b/src/view/com/auth/login/Login.tsx index f634342a28..bc931ac04c 100644 --- a/src/view/com/auth/login/Login.tsx +++ b/src/view/com/auth/login/Login.tsx @@ -1,22 +1,20 @@ -import {msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {useAnalytics} from 'lib/analytics/analytics' -import {usePalette} from 'lib/hooks/usePalette' -import React, {useEffect, useState} from 'react' +import React, {useState, useEffect} from 'react' import {KeyboardAvoidingView} from 'react-native' +import {useAnalytics} from 'lib/analytics/analytics' import {LoggedOutLayout} from 'view/com/util/layouts/LoggedOutLayout' - import {DEFAULT_SERVICE} from '#/lib/constants' +import {usePalette} from 'lib/hooks/usePalette' import {logger} from '#/logger' -import {useServiceQuery} from '#/state/queries/service' -import {SessionAccount, useSession} from '#/state/session' -import {useLoggedOutView} from '#/state/shell/logged-out' - import {ChooseAccountForm} from './ChooseAccountForm' -import {ForgotPasswordForm} from './ForgotPasswordForm' import {LoginForm} from './LoginForm' -import {PasswordUpdatedForm} from './PasswordUpdatedForm' +import {ForgotPasswordForm} from './ForgotPasswordForm' import {SetNewPasswordForm} from './SetNewPasswordForm' +import {PasswordUpdatedForm} from './PasswordUpdatedForm' +import {useLingui} from '@lingui/react' +import {msg} from '@lingui/macro' +import {useSession, SessionAccount} from '#/state/session' +import {useServiceQuery} from '#/state/queries/service' +import {useLoggedOutView} from '#/state/shell/logged-out' enum Forms { Login, diff --git a/src/view/com/auth/login/LoginForm.tsx b/src/view/com/auth/login/LoginForm.tsx index acff2fc8bd..fdba9f203f 100644 --- a/src/view/com/auth/login/LoginForm.tsx +++ b/src/view/com/auth/login/LoginForm.tsx @@ -1,34 +1,33 @@ -import {ComAtprotoServerDescribeServer} from '@atproto/api' +import React, {useState, useRef} from 'react' +import { + ActivityIndicator, + Keyboard, + TextInput, + TouchableOpacity, + View, +} from 'react-native' import { FontAwesomeIcon, FontAwesomeIconStyle, } from '@fortawesome/react-native-fontawesome' -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' +import {ComAtprotoServerDescribeServer} from '@atproto/api' import {useAnalytics} from 'lib/analytics/analytics' -import {usePalette} from 'lib/hooks/usePalette' -import {isNetworkError} from 'lib/strings/errors' -import {cleanError} from 'lib/strings/errors' +import {Text} from '../../util/text/Text' +import {s} from 'lib/styles' import {createFullHandle} from 'lib/strings/handles' import {toNiceDomain} from 'lib/strings/url-helpers' -import {s} from 'lib/styles' +import {isNetworkError} from 'lib/strings/errors' +import {usePalette} from 'lib/hooks/usePalette' import {useTheme} from 'lib/ThemeContext' -import React, {useRef, useState} from 'react' -import { - ActivityIndicator, - Keyboard, - TextInput, - TouchableOpacity, - View, -} from 'react-native' - -import {useDialogControl} from '#/components/Dialog' -import {logger} from '#/logger' import {useSessionApi} from '#/state/session' +import {cleanError} from 'lib/strings/errors' +import {logger} from '#/logger' +import {Trans, msg} from '@lingui/macro' +import {styles} from './styles' +import {useLingui} from '@lingui/react' +import {useDialogControl} from '#/components/Dialog' -import {Text} from '../../util/text/Text' import {ServerInputDialog} from '../server-input' -import {styles} from './styles' type ServiceDescription = ComAtprotoServerDescribeServer.OutputSchema diff --git a/src/view/com/auth/login/PasswordUpdatedForm.tsx b/src/view/com/auth/login/PasswordUpdatedForm.tsx index a88a1dc996..71f750b141 100644 --- a/src/view/com/auth/login/PasswordUpdatedForm.tsx +++ b/src/view/com/auth/login/PasswordUpdatedForm.tsx @@ -1,13 +1,12 @@ -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {useAnalytics} from 'lib/analytics/analytics' -import {usePalette} from 'lib/hooks/usePalette' -import {s} from 'lib/styles' import React, {useEffect} from 'react' import {TouchableOpacity, View} from 'react-native' - +import {useAnalytics} from 'lib/analytics/analytics' import {Text} from '../../util/text/Text' +import {s} from 'lib/styles' +import {usePalette} from 'lib/hooks/usePalette' import {styles} from './styles' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' export const PasswordUpdatedForm = ({ onPressNext, diff --git a/src/view/com/auth/login/SetNewPasswordForm.tsx b/src/view/com/auth/login/SetNewPasswordForm.tsx index 18a95d629e..6d1584c86c 100644 --- a/src/view/com/auth/login/SetNewPasswordForm.tsx +++ b/src/view/com/auth/login/SetNewPasswordForm.tsx @@ -1,26 +1,24 @@ -import {BskyAgent} from '@atproto/api' -import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {useAnalytics} from 'lib/analytics/analytics' -import {usePalette} from 'lib/hooks/usePalette' -import {isNetworkError} from 'lib/strings/errors' -import {cleanError} from 'lib/strings/errors' -import {checkAndFormatResetCode} from 'lib/strings/password' -import {s} from 'lib/styles' -import {useTheme} from 'lib/ThemeContext' -import React, {useEffect, useState} from 'react' +import React, {useState, useEffect} from 'react' import { ActivityIndicator, TextInput, TouchableOpacity, View, } from 'react-native' - -import {logger} from '#/logger' - +import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' +import {BskyAgent} from '@atproto/api' +import {useAnalytics} from 'lib/analytics/analytics' import {Text} from '../../util/text/Text' +import {s} from 'lib/styles' +import {isNetworkError} from 'lib/strings/errors' +import {usePalette} from 'lib/hooks/usePalette' +import {useTheme} from 'lib/ThemeContext' +import {cleanError} from 'lib/strings/errors' +import {checkAndFormatResetCode} from 'lib/strings/password' +import {logger} from '#/logger' import {styles} from './styles' +import {Trans, msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' export const SetNewPasswordForm = ({ error, diff --git a/src/view/com/auth/login/styles.ts b/src/view/com/auth/login/styles.ts index 5adea4c87b..9dccc2803b 100644 --- a/src/view/com/auth/login/styles.ts +++ b/src/view/com/auth/login/styles.ts @@ -1,6 +1,5 @@ -import {colors} from 'lib/styles' import {StyleSheet} from 'react-native' - +import {colors} from 'lib/styles' import {isWeb} from '#/platform/detection' export const styles = StyleSheet.create({ diff --git a/src/view/com/auth/onboarding/RecommendedFeeds.tsx b/src/view/com/auth/onboarding/RecommendedFeeds.tsx index 6b78c14156..d3318bffd8 100644 --- a/src/view/com/auth/onboarding/RecommendedFeeds.tsx +++ b/src/view/com/auth/onboarding/RecommendedFeeds.tsx @@ -1,20 +1,18 @@ -import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {usePalette} from 'lib/hooks/usePalette' -import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' import React from 'react' import {ActivityIndicator, FlatList, StyleSheet, View} from 'react-native' -import {ErrorMessage} from 'view/com/util/error/ErrorMessage' -import {Button} from 'view/com/util/forms/Button' -import {Mobile, TabletOrDesktop} from 'view/com/util/layouts/Breakpoints' -import {TitleColumnLayout} from 'view/com/util/layouts/TitleColumnLayout' +import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' +import {TabletOrDesktop, Mobile} from 'view/com/util/layouts/Breakpoints' import {Text} from 'view/com/util/text/Text' import {ViewHeader} from 'view/com/util/ViewHeader' - -import {useSuggestedFeedsQuery} from '#/state/queries/suggested-feeds' - +import {TitleColumnLayout} from 'view/com/util/layouts/TitleColumnLayout' +import {Button} from 'view/com/util/forms/Button' import {RecommendedFeedsItem} from './RecommendedFeedsItem' +import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' +import {usePalette} from 'lib/hooks/usePalette' +import {ErrorMessage} from 'view/com/util/error/ErrorMessage' +import {Trans, msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {useSuggestedFeedsQuery} from '#/state/queries/suggested-feeds' type Props = { next: () => void diff --git a/src/view/com/auth/onboarding/RecommendedFeedsItem.tsx b/src/view/com/auth/onboarding/RecommendedFeedsItem.tsx index 92035a4929..ea3e1f725d 100644 --- a/src/view/com/auth/onboarding/RecommendedFeedsItem.tsx +++ b/src/view/com/auth/onboarding/RecommendedFeedsItem.tsx @@ -1,26 +1,25 @@ -import {AppBskyFeedDefs, RichText as BskRichText} from '@atproto/api' -import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {usePalette} from 'lib/hooks/usePalette' -import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {HeartIcon} from 'lib/icons' -import {sanitizeHandle} from 'lib/strings/handles' import React from 'react' import {View} from 'react-native' -import {Button} from 'view/com/util/forms/Button' -import {RichText} from 'view/com/util/text/RichText' +import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' +import {AppBskyFeedDefs, RichText as BskRichText} from '@atproto/api' import {Text} from 'view/com/util/text/Text' -import * as Toast from 'view/com/util/Toast' +import {RichText} from 'view/com/util/text/RichText' +import {Button} from 'view/com/util/forms/Button' import {UserAvatar} from 'view/com/util/UserAvatar' - -import {useAnalytics} from '#/lib/analytics/analytics' -import {logger} from '#/logger' +import * as Toast from 'view/com/util/Toast' +import {HeartIcon} from 'lib/icons' +import {usePalette} from 'lib/hooks/usePalette' +import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' +import {sanitizeHandle} from 'lib/strings/handles' import { - usePinFeedMutation, usePreferencesQuery, + usePinFeedMutation, useRemoveFeedMutation, } from '#/state/queries/preferences' +import {logger} from '#/logger' +import {useAnalytics} from '#/lib/analytics/analytics' +import {Trans, msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' export function RecommendedFeedsItem({ item, diff --git a/src/view/com/auth/onboarding/RecommendedFollows.tsx b/src/view/com/auth/onboarding/RecommendedFollows.tsx index a7a1eebed9..d275f6c90e 100644 --- a/src/view/com/auth/onboarding/RecommendedFollows.tsx +++ b/src/view/com/auth/onboarding/RecommendedFollows.tsx @@ -1,23 +1,21 @@ -import {AppBskyActorDefs, moderateProfile} from '@atproto/api' -import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {usePalette} from 'lib/hooks/usePalette' -import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' import React from 'react' import {ActivityIndicator, FlatList, StyleSheet, View} from 'react-native' -import {Button} from 'view/com/util/forms/Button' -import {Mobile, TabletOrDesktop} from 'view/com/util/layouts/Breakpoints' -import {TitleColumnLayout} from 'view/com/util/layouts/TitleColumnLayout' +import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' +import {AppBskyActorDefs, moderateProfile} from '@atproto/api' +import {TabletOrDesktop, Mobile} from 'view/com/util/layouts/Breakpoints' import {Text} from 'view/com/util/text/Text' import {ViewHeader} from 'view/com/util/ViewHeader' - -import {logger} from '#/logger' -import {useModerationOpts} from '#/state/queries/preferences' +import {TitleColumnLayout} from 'view/com/util/layouts/TitleColumnLayout' +import {Button} from 'view/com/util/forms/Button' +import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' +import {usePalette} from 'lib/hooks/usePalette' +import {RecommendedFollowsItem} from './RecommendedFollowsItem' import {useSuggestedFollowsQuery} from '#/state/queries/suggested-follows' import {useGetSuggestedFollowersByActor} from '#/state/queries/suggested-follows' - -import {RecommendedFollowsItem} from './RecommendedFollowsItem' +import {useModerationOpts} from '#/state/queries/preferences' +import {logger} from '#/logger' +import {Trans, msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' type Props = { next: () => void diff --git a/src/view/com/auth/onboarding/RecommendedFollowsItem.tsx b/src/view/com/auth/onboarding/RecommendedFollowsItem.tsx index e530dbd352..07001068cc 100644 --- a/src/view/com/auth/onboarding/RecommendedFollowsItem.tsx +++ b/src/view/com/auth/onboarding/RecommendedFollowsItem.tsx @@ -1,21 +1,20 @@ -import {AppBskyActorDefs, ProfileModeration} from '@atproto/api' -import {Trans} from '@lingui/macro' -import {useAnalytics} from 'lib/analytics/analytics' +import React from 'react' +import {View, StyleSheet, ActivityIndicator} from 'react-native' +import {ProfileModeration, AppBskyActorDefs} from '@atproto/api' +import {Button} from '#/view/com/util/forms/Button' import {usePalette} from 'lib/hooks/usePalette' -import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' import {sanitizeDisplayName} from 'lib/strings/display-names' import {sanitizeHandle} from 'lib/strings/handles' import {s} from 'lib/styles' -import React from 'react' -import {ActivityIndicator, StyleSheet, View} from 'react-native' -import Animated, {FadeInRight} from 'react-native-reanimated' -import {Text} from 'view/com/util/text/Text' import {UserAvatar} from 'view/com/util/UserAvatar' - -import {logger} from '#/logger' +import {Text} from 'view/com/util/text/Text' +import Animated, {FadeInRight} from 'react-native-reanimated' +import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' +import {useAnalytics} from 'lib/analytics/analytics' +import {Trans} from '@lingui/macro' import {Shadow, useProfileShadow} from '#/state/cache/profile-shadow' import {useProfileFollowMutationQueue} from '#/state/queries/profile' -import {Button} from '#/view/com/util/forms/Button' +import {logger} from '#/logger' type Props = { profile: AppBskyActorDefs.ProfileViewBasic diff --git a/src/view/com/auth/onboarding/Welcome.tsx b/src/view/com/auth/onboarding/Welcome.tsx index 64de7fee09..b44b58f843 100644 --- a/src/view/com/auth/onboarding/Welcome.tsx +++ b/src/view/com/auth/onboarding/Welcome.tsx @@ -1,7 +1,5 @@ import 'react' - import {withBreakpoints} from 'view/com/util/layouts/withBreakpoints' - import {WelcomeDesktop} from './WelcomeDesktop' import {WelcomeMobile} from './WelcomeMobile' diff --git a/src/view/com/auth/onboarding/WelcomeDesktop.tsx b/src/view/com/auth/onboarding/WelcomeDesktop.tsx index 926c4fcda5..fdb31197c0 100644 --- a/src/view/com/auth/onboarding/WelcomeDesktop.tsx +++ b/src/view/com/auth/onboarding/WelcomeDesktop.tsx @@ -1,13 +1,13 @@ -import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' -import {Trans} from '@lingui/macro' -import {usePalette} from 'lib/hooks/usePalette' -import {s} from 'lib/styles' import React from 'react' import {StyleSheet, View} from 'react-native' import {useMediaQuery} from 'react-responsive' -import {Button} from 'view/com/util/forms/Button' -import {TitleColumnLayout} from 'view/com/util/layouts/TitleColumnLayout' import {Text} from 'view/com/util/text/Text' +import {s} from 'lib/styles' +import {usePalette} from 'lib/hooks/usePalette' +import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' +import {TitleColumnLayout} from 'view/com/util/layouts/TitleColumnLayout' +import {Button} from 'view/com/util/forms/Button' +import {Trans} from '@lingui/macro' type Props = { next: () => void diff --git a/src/view/com/auth/onboarding/WelcomeMobile.tsx b/src/view/com/auth/onboarding/WelcomeMobile.tsx index 030eddee13..5de1a78170 100644 --- a/src/view/com/auth/onboarding/WelcomeMobile.tsx +++ b/src/view/com/auth/onboarding/WelcomeMobile.tsx @@ -1,12 +1,12 @@ -import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' -import {Trans} from '@lingui/macro' -import {usePalette} from 'lib/hooks/usePalette' -import {s} from 'lib/styles' import React from 'react' import {Pressable, StyleSheet, View} from 'react-native' -import {Button} from 'view/com/util/forms/Button' import {Text} from 'view/com/util/text/Text' +import {s} from 'lib/styles' +import {usePalette} from 'lib/hooks/usePalette' +import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' +import {Button} from 'view/com/util/forms/Button' import {ViewHeader} from 'view/com/util/ViewHeader' +import {Trans} from '@lingui/macro' type Props = { next: () => void diff --git a/src/view/com/auth/server-input/index.tsx b/src/view/com/auth/server-input/index.tsx index 39a395402f..32b5a3141a 100644 --- a/src/view/com/auth/server-input/index.tsx +++ b/src/view/com/auth/server-input/index.tsx @@ -1,17 +1,17 @@ -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {BSKY_SERVICE} from 'lib/constants' import React from 'react' import {View} from 'react-native' +import {useLingui} from '@lingui/react' +import {Trans, msg} from '@lingui/macro' +import {BSKY_SERVICE} from 'lib/constants' +import * as persisted from '#/state/persisted' import {atoms as a, useBreakpoints, useTheme} from '#/alf' -import {Button, ButtonText} from '#/components/Button' import * as Dialog from '#/components/Dialog' -import * as TextField from '#/components/forms/TextField' +import {Text, P} from '#/components/Typography' +import {Button, ButtonText} from '#/components/Button' import * as ToggleButton from '#/components/forms/ToggleButton' +import * as TextField from '#/components/forms/TextField' import {Globe_Stroke2_Corner0_Rounded as Globe} from '#/components/icons/Globe' -import {P, Text} from '#/components/Typography' -import * as persisted from '#/state/persisted' export function ServerInputDialog({ control, diff --git a/src/view/com/auth/util/HelpTip.tsx b/src/view/com/auth/util/HelpTip.tsx index 349eb2f3a8..65f7278d6b 100644 --- a/src/view/com/auth/util/HelpTip.tsx +++ b/src/view/com/auth/util/HelpTip.tsx @@ -1,9 +1,9 @@ -import {useColorSchemeStyle} from 'lib/hooks/useColorSchemeStyle' -import {InfoCircleIcon} from 'lib/icons' -import {colors, s} from 'lib/styles' import React from 'react' import {StyleSheet, View} from 'react-native' import {Text} from 'view/com/util/text/Text' +import {InfoCircleIcon} from 'lib/icons' +import {s, colors} from 'lib/styles' +import {useColorSchemeStyle} from 'lib/hooks/useColorSchemeStyle' export function HelpTip({text}: {text: string}) { const bg = useColorSchemeStyle( diff --git a/src/view/com/auth/util/TextInput.tsx b/src/view/com/auth/util/TextInput.tsx index 33ebfd8027..38aff03849 100644 --- a/src/view/com/auth/util/TextInput.tsx +++ b/src/view/com/auth/util/TextInput.tsx @@ -1,9 +1,9 @@ -import {IconProp} from '@fortawesome/fontawesome-svg-core' +import React, {ComponentProps} from 'react' +import {StyleSheet, TextInput as RNTextInput, View} from 'react-native' import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' +import {IconProp} from '@fortawesome/fontawesome-svg-core' import {usePalette} from 'lib/hooks/usePalette' import {useTheme} from 'lib/ThemeContext' -import React, {ComponentProps} from 'react' -import {StyleSheet, TextInput as RNTextInput, View} from 'react-native' interface Props extends Omit, 'onChange'> { testID?: string diff --git a/src/view/com/composer/Composer.tsx b/src/view/com/composer/Composer.tsx index 57be93ca75..2855d4232c 100644 --- a/src/view/com/composer/Composer.tsx +++ b/src/view/com/composer/Composer.tsx @@ -1,21 +1,5 @@ -import {RichText} from '@atproto/api' -import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {useAnalytics} from 'lib/analytics/analytics' -import * as apilib from 'lib/api/index' -import {MAX_GRAPHEME_LENGTH} from 'lib/constants' -import {useIsKeyboardVisible} from 'lib/hooks/useIsKeyboardVisible' -import {usePalette} from 'lib/hooks/usePalette' -import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {cleanError} from 'lib/strings/errors' -import {insertMentionAt} from 'lib/strings/mention-manip' -import {shortenLinks} from 'lib/strings/rich-text-manip' -import {toShortUrl} from 'lib/strings/url-helpers' -import {colors, gradients, s} from 'lib/styles' -import {observer} from 'mobx-react-lite' -import {isAndroid, isIOS, isNative, isWeb} from 'platform/detection' import React, {useCallback, useEffect, useMemo, useRef, useState} from 'react' +import {observer} from 'mobx-react-lite' import { ActivityIndicator, BackHandler, @@ -28,43 +12,57 @@ import { TouchableOpacity, View, } from 'react-native' -import LinearGradient from 'react-native-linear-gradient' import {useSafeAreaInsets} from 'react-native-safe-area-context' -import {GalleryModel} from 'state/models/media/gallery' +import LinearGradient from 'react-native-linear-gradient' +import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' +import {RichText} from '@atproto/api' +import {useAnalytics} from 'lib/analytics/analytics' +import {useIsKeyboardVisible} from 'lib/hooks/useIsKeyboardVisible' +import {ExternalEmbed} from './ExternalEmbed' +import {Text} from '../util/text/Text' +import * as Toast from '../util/Toast' +// TODO: Prevent naming components that coincide with RN primitives +// due to linting false positives +import {TextInput, TextInputRef} from './text-input/TextInput' +import {CharProgress} from './char-progress/CharProgress' +import {UserAvatar} from '../util/UserAvatar' +import * as apilib from 'lib/api/index' import {ComposerOpts} from 'state/shell/composer' -import {ComposerReplyTo} from 'view/com/composer/ComposerReplyTo' - -import {logger} from '#/logger' -import {emitPostCreated} from '#/state/events' -import {useModalControls, useModals} from '#/state/modals' +import {s, colors, gradients} from 'lib/styles' +import {cleanError} from 'lib/strings/errors' +import {shortenLinks} from 'lib/strings/rich-text-manip' +import {toShortUrl} from 'lib/strings/url-helpers' +import {SelectPhotoBtn} from './photos/SelectPhotoBtn' +import {OpenCameraBtn} from './photos/OpenCameraBtn' +import {ThreadgateBtn} from './threadgate/ThreadgateBtn' +import {usePalette} from 'lib/hooks/usePalette' +import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' +import {useExternalLinkFetch} from './useExternalLinkFetch' +import {isWeb, isNative, isAndroid, isIOS} from 'platform/detection' +import QuoteEmbed from '../util/post-embeds/QuoteEmbed' +import {GalleryModel} from 'state/models/media/gallery' +import {Gallery} from './photos/Gallery' +import {MAX_GRAPHEME_LENGTH} from 'lib/constants' +import {LabelsBtn} from './labels/LabelsBtn' +import {SelectLangBtn} from './select-language/SelectLangBtn' +import {SuggestedLanguage} from './select-language/SuggestedLanguage' +import {insertMentionAt} from 'lib/strings/mention-manip' +import {Trans, msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {useModals, useModalControls} from '#/state/modals' import {useRequireAltTextEnabled} from '#/state/preferences' import { - toPostLanguages, useLanguagePrefs, useLanguagePrefsApi, + toPostLanguages, } from '#/state/preferences/languages' +import {useSession, getAgent} from '#/state/session' import {useProfileQuery} from '#/state/queries/profile' -import {ThreadgateSetting} from '#/state/queries/threadgate' -import {getAgent, useSession} from '#/state/session' import {useComposerControls} from '#/state/shell/composer' - -import QuoteEmbed from '../util/post-embeds/QuoteEmbed' -import {Text} from '../util/text/Text' -import * as Toast from '../util/Toast' -import {UserAvatar} from '../util/UserAvatar' -import {CharProgress} from './char-progress/CharProgress' -import {ExternalEmbed} from './ExternalEmbed' -import {LabelsBtn} from './labels/LabelsBtn' -import {Gallery} from './photos/Gallery' -import {OpenCameraBtn} from './photos/OpenCameraBtn' -import {SelectPhotoBtn} from './photos/SelectPhotoBtn' -import {SelectLangBtn} from './select-language/SelectLangBtn' -import {SuggestedLanguage} from './select-language/SuggestedLanguage' -// TODO: Prevent naming components that coincide with RN primitives -// due to linting false positives -import {TextInput, TextInputRef} from './text-input/TextInput' -import {ThreadgateBtn} from './threadgate/ThreadgateBtn' -import {useExternalLinkFetch} from './useExternalLinkFetch' +import {emitPostCreated} from '#/state/events' +import {ThreadgateSetting} from '#/state/queries/threadgate' +import {logger} from '#/logger' +import {ComposerReplyTo} from 'view/com/composer/ComposerReplyTo' type Props = ComposerOpts export const ComposePost = observer(function ComposePost({ diff --git a/src/view/com/composer/ComposerReplyTo.tsx b/src/view/com/composer/ComposerReplyTo.tsx index e6fe11565f..39a1473a3b 100644 --- a/src/view/com/composer/ComposerReplyTo.tsx +++ b/src/view/com/composer/ComposerReplyTo.tsx @@ -1,21 +1,21 @@ +import React from 'react' +import {LayoutAnimation, Pressable, StyleSheet, View} from 'react-native' +import {Image} from 'expo-image' +import {useLingui} from '@lingui/react' +import {msg} from '@lingui/macro' import { AppBskyEmbedImages, AppBskyEmbedRecord, AppBskyEmbedRecordWithMedia, AppBskyFeedPost, } from '@atproto/api' -import {msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {Image} from 'expo-image' +import {ComposerOptsPostRef} from 'state/shell/composer' import {usePalette} from 'lib/hooks/usePalette' import {sanitizeDisplayName} from 'lib/strings/display-names' import {sanitizeHandle} from 'lib/strings/handles' -import React from 'react' -import {LayoutAnimation, Pressable, StyleSheet, View} from 'react-native' -import {ComposerOptsPostRef} from 'state/shell/composer' -import QuoteEmbed from 'view/com/util/post-embeds/QuoteEmbed' -import {Text} from 'view/com/util/text/Text' import {UserAvatar} from 'view/com/util/UserAvatar' +import {Text} from 'view/com/util/text/Text' +import QuoteEmbed from 'view/com/util/post-embeds/QuoteEmbed' export function ComposerReplyTo({replyTo}: {replyTo: ComposerOptsPostRef}) { const pal = usePalette('default') diff --git a/src/view/com/composer/ExternalEmbed.tsx b/src/view/com/composer/ExternalEmbed.tsx index c2aebccd64..02dd1bbd75 100644 --- a/src/view/com/composer/ExternalEmbed.tsx +++ b/src/view/com/composer/ExternalEmbed.tsx @@ -1,9 +1,3 @@ -import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' -import {msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {ExternalEmbedDraft} from 'lib/api/index' -import {usePalette} from 'lib/hooks/usePalette' -import {s} from 'lib/styles' import React from 'react' import { ActivityIndicator, @@ -11,9 +5,14 @@ import { TouchableOpacity, View, } from 'react-native' - +import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' import {AutoSizedImage} from '../util/images/AutoSizedImage' import {Text} from '../util/text/Text' +import {s} from 'lib/styles' +import {usePalette} from 'lib/hooks/usePalette' +import {ExternalEmbedDraft} from 'lib/api/index' +import {useLingui} from '@lingui/react' +import {msg} from '@lingui/macro' export const ExternalEmbed = ({ link, diff --git a/src/view/com/composer/Prompt.tsx b/src/view/com/composer/Prompt.tsx index 5f19a64bdd..632bb2634b 100644 --- a/src/view/com/composer/Prompt.tsx +++ b/src/view/com/composer/Prompt.tsx @@ -1,15 +1,13 @@ -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {usePalette} from 'lib/hooks/usePalette' -import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' import React from 'react' import {StyleSheet, TouchableOpacity} from 'react-native' - -import {useProfileQuery} from '#/state/queries/profile' -import {useSession} from '#/state/session' - -import {Text} from '../util/text/Text' import {UserAvatar} from '../util/UserAvatar' +import {Text} from '../util/text/Text' +import {usePalette} from 'lib/hooks/usePalette' +import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' +import {Trans, msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {useSession} from '#/state/session' +import {useProfileQuery} from '#/state/queries/profile' export function ComposePrompt({onPressCompose}: {onPressCompose: () => void}) { const {currentAccount} = useSession() diff --git a/src/view/com/composer/char-progress/CharProgress.tsx b/src/view/com/composer/char-progress/CharProgress.tsx index 3c5cee492e..a3fa78a59a 100644 --- a/src/view/com/composer/char-progress/CharProgress.tsx +++ b/src/view/com/composer/char-progress/CharProgress.tsx @@ -1,14 +1,13 @@ -import {MAX_GRAPHEME_LENGTH} from 'lib/constants' -import {usePalette} from 'lib/hooks/usePalette' -import {s} from 'lib/styles' import React from 'react' import {View} from 'react-native' +import {Text} from '../../util/text/Text' // @ts-ignore no type definition -prf import ProgressCircle from 'react-native-progress/Circle' // @ts-ignore no type definition -prf import ProgressPie from 'react-native-progress/Pie' - -import {Text} from '../../util/text/Text' +import {s} from 'lib/styles' +import {usePalette} from 'lib/hooks/usePalette' +import {MAX_GRAPHEME_LENGTH} from 'lib/constants' const DANGER_LENGTH = MAX_GRAPHEME_LENGTH diff --git a/src/view/com/composer/labels/LabelsBtn.tsx b/src/view/com/composer/labels/LabelsBtn.tsx index 11f3d03d37..b880dd3306 100644 --- a/src/view/com/composer/labels/LabelsBtn.tsx +++ b/src/view/com/composer/labels/LabelsBtn.tsx @@ -1,14 +1,13 @@ -import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' -import {FontAwesomeIconStyle} from '@fortawesome/react-native-fontawesome' -import {msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {usePalette} from 'lib/hooks/usePalette' -import {ShieldExclamation} from 'lib/icons' -import {isNative} from 'platform/detection' import React from 'react' import {Keyboard, StyleSheet} from 'react-native' import {Button} from 'view/com/util/forms/Button' - +import {usePalette} from 'lib/hooks/usePalette' +import {ShieldExclamation} from 'lib/icons' +import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' +import {FontAwesomeIconStyle} from '@fortawesome/react-native-fontawesome' +import {isNative} from 'platform/detection' +import {useLingui} from '@lingui/react' +import {msg} from '@lingui/macro' import {useModalControls} from '#/state/modals' export function LabelsBtn({ diff --git a/src/view/com/composer/photos/Gallery.tsx b/src/view/com/composer/photos/Gallery.tsx index 380b70c9c8..69c8debb02 100644 --- a/src/view/com/composer/photos/Gallery.tsx +++ b/src/view/com/composer/photos/Gallery.tsx @@ -1,20 +1,19 @@ -import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {Image} from 'expo-image' -import {usePalette} from 'lib/hooks/usePalette' -import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {Dimensions} from 'lib/media/types' -import {colors, s} from 'lib/styles' -import {observer} from 'mobx-react-lite' -import {isNative} from 'platform/detection' import React, {useState} from 'react' import {ImageStyle, Keyboard, LayoutChangeEvent} from 'react-native' -import {StyleSheet, TouchableOpacity, View} from 'react-native' import {GalleryModel} from 'state/models/media/gallery' +import {observer} from 'mobx-react-lite' +import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' +import {s, colors} from 'lib/styles' +import {StyleSheet, TouchableOpacity, View} from 'react-native' +import {Image} from 'expo-image' import {Text} from 'view/com/util/text/Text' - +import {Dimensions} from 'lib/media/types' +import {usePalette} from 'lib/hooks/usePalette' +import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' +import {Trans, msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' import {useModalControls} from '#/state/modals' +import {isNative} from 'platform/detection' const IMAGE_GAP = 8 diff --git a/src/view/com/composer/photos/OpenCameraBtn.tsx b/src/view/com/composer/photos/OpenCameraBtn.tsx index ce5318a2f6..4353704d57 100644 --- a/src/view/com/composer/photos/OpenCameraBtn.tsx +++ b/src/view/com/composer/photos/OpenCameraBtn.tsx @@ -1,21 +1,20 @@ +import React, {useCallback} from 'react' +import {TouchableOpacity, StyleSheet} from 'react-native' +import * as MediaLibrary from 'expo-media-library' import { FontAwesomeIcon, FontAwesomeIconStyle, } from '@fortawesome/react-native-fontawesome' -import {msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import * as MediaLibrary from 'expo-media-library' -import {useAnalytics} from 'lib/analytics/analytics' -import {HITSLOP_10, POST_IMG_MAX} from 'lib/constants' import {usePalette} from 'lib/hooks/usePalette' -import {useCameraPermission} from 'lib/hooks/usePermissions' +import {useAnalytics} from 'lib/analytics/analytics' import {openCamera} from 'lib/media/picker' -import {isMobileWeb, isNative} from 'platform/detection' -import React, {useCallback} from 'react' -import {StyleSheet, TouchableOpacity} from 'react-native' +import {useCameraPermission} from 'lib/hooks/usePermissions' +import {HITSLOP_10, POST_IMG_MAX} from 'lib/constants' import {GalleryModel} from 'state/models/media/gallery' - +import {isMobileWeb, isNative} from 'platform/detection' import {logger} from '#/logger' +import {useLingui} from '@lingui/react' +import {msg} from '@lingui/macro' type Props = { gallery: GalleryModel diff --git a/src/view/com/composer/photos/SelectPhotoBtn.tsx b/src/view/com/composer/photos/SelectPhotoBtn.tsx index 1e0e64090f..f7fa9502d6 100644 --- a/src/view/com/composer/photos/SelectPhotoBtn.tsx +++ b/src/view/com/composer/photos/SelectPhotoBtn.tsx @@ -1,17 +1,17 @@ +import React, {useCallback} from 'react' +import {TouchableOpacity, StyleSheet} from 'react-native' import { FontAwesomeIcon, FontAwesomeIconStyle, } from '@fortawesome/react-native-fontawesome' -import {msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {useAnalytics} from 'lib/analytics/analytics' -import {HITSLOP_10} from 'lib/constants' import {usePalette} from 'lib/hooks/usePalette' +import {useAnalytics} from 'lib/analytics/analytics' import {usePhotoLibraryPermission} from 'lib/hooks/usePermissions' -import {isNative} from 'platform/detection' -import React, {useCallback} from 'react' -import {StyleSheet, TouchableOpacity} from 'react-native' import {GalleryModel} from 'state/models/media/gallery' +import {HITSLOP_10} from 'lib/constants' +import {isNative} from 'platform/detection' +import {useLingui} from '@lingui/react' +import {msg} from '@lingui/macro' type Props = { gallery: GalleryModel diff --git a/src/view/com/composer/select-language/SelectLangBtn.tsx b/src/view/com/composer/select-language/SelectLangBtn.tsx index bfcf248ee1..78b1e9ba27 100644 --- a/src/view/com/composer/select-language/SelectLangBtn.tsx +++ b/src/view/com/composer/select-language/SelectLangBtn.tsx @@ -1,29 +1,27 @@ +import React, {useCallback, useMemo} from 'react' +import {StyleSheet, Keyboard} from 'react-native' import { FontAwesomeIcon, FontAwesomeIconStyle, } from '@fortawesome/react-native-fontawesome' -import {msg, t} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {usePalette} from 'lib/hooks/usePalette' -import {isNative} from 'platform/detection' -import React, {useCallback, useMemo} from 'react' -import {Keyboard, StyleSheet} from 'react-native' +import {Text} from 'view/com/util/text/Text' import { DropdownButton, DropdownItem, DropdownItemButton, } from 'view/com/util/forms/DropdownButton' -import {Text} from 'view/com/util/text/Text' - +import {usePalette} from 'lib/hooks/usePalette' +import {isNative} from 'platform/detection' +import {codeToLanguageName} from '../../../../locale/helpers' import {useModalControls} from '#/state/modals' import { - hasPostLanguage, - toPostLanguages, useLanguagePrefs, useLanguagePrefsApi, + toPostLanguages, + hasPostLanguage, } from '#/state/preferences/languages' - -import {codeToLanguageName} from '../../../../locale/helpers' +import {t, msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' export function SelectLangBtn() { const pal = usePalette('default') diff --git a/src/view/com/composer/select-language/SuggestedLanguage.tsx b/src/view/com/composer/select-language/SuggestedLanguage.tsx index 97a2a98300..0bf62ae0d8 100644 --- a/src/view/com/composer/select-language/SuggestedLanguage.tsx +++ b/src/view/com/composer/select-language/SuggestedLanguage.tsx @@ -1,24 +1,22 @@ -import { - FontAwesomeIcon, - FontAwesomeIconStyle, -} from '@fortawesome/react-native-fontawesome' -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import lande from 'lande' import React, {useEffect, useState} from 'react' import {StyleSheet, View} from 'react-native' - -import {usePalette} from '#/lib/hooks/usePalette' -import {s} from '#/lib/styles' +import lande from 'lande' +import {Trans, msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {Text} from '../../util/text/Text' +import {Button} from '../../util/forms/Button' import {code3ToCode2Strict, codeToLanguageName} from '#/locale/helpers' import { toPostLanguages, useLanguagePrefs, useLanguagePrefsApi, } from '#/state/preferences/languages' - -import {Button} from '../../util/forms/Button' -import {Text} from '../../util/text/Text' +import {usePalette} from '#/lib/hooks/usePalette' +import {s} from '#/lib/styles' +import { + FontAwesomeIcon, + FontAwesomeIconStyle, +} from '@fortawesome/react-native-fontawesome' // fallbacks for safari const onIdle = globalThis.requestIdleCallback || (cb => setTimeout(cb, 1)) diff --git a/src/view/com/composer/text-input/TextInput.tsx b/src/view/com/composer/text-input/TextInput.tsx index 435adfa33c..20be585c25 100644 --- a/src/view/com/composer/text-input/TextInput.tsx +++ b/src/view/com/composer/text-input/TextInput.tsx @@ -1,24 +1,10 @@ -import {AppBskyRichtextFacet, RichText} from '@atproto/api' -import PasteInput, { - PastedFile, - PasteInputRef, -} from '@mattermost/react-native-paste-input' -import {POST_IMG_MAX} from 'lib/constants' -import {usePalette} from 'lib/hooks/usePalette' -import {downloadAndResize} from 'lib/media/manip' -import {isUriImage} from 'lib/media/util' -import {cleanError} from 'lib/strings/errors' -import {getMentionAt, insertMentionAt} from 'lib/strings/mention-manip' -import {useTheme} from 'lib/ThemeContext' -import isEqual from 'lodash.isequal' -import {isIOS} from 'platform/detection' import React, { - ComponentProps, forwardRef, useCallback, - useMemo, useRef, + useMemo, useState, + ComponentProps, } from 'react' import { NativeSyntheticEvent, @@ -27,9 +13,22 @@ import { TextInputSelectionChangeEventData, View, } from 'react-native' -import {Text} from 'view/com/util/text/Text' - +import PasteInput, { + PastedFile, + PasteInputRef, +} from '@mattermost/react-native-paste-input' +import {AppBskyRichtextFacet, RichText} from '@atproto/api' +import isEqual from 'lodash.isequal' import {Autocomplete} from './mobile/Autocomplete' +import {Text} from 'view/com/util/text/Text' +import {cleanError} from 'lib/strings/errors' +import {getMentionAt, insertMentionAt} from 'lib/strings/mention-manip' +import {usePalette} from 'lib/hooks/usePalette' +import {useTheme} from 'lib/ThemeContext' +import {isUriImage} from 'lib/media/util' +import {downloadAndResize} from 'lib/media/manip' +import {POST_IMG_MAX} from 'lib/constants' +import {isIOS} from 'platform/detection' export interface TextInputRef { focus: () => void diff --git a/src/view/com/composer/text-input/TextInput.web.tsx b/src/view/com/composer/text-input/TextInput.web.tsx index 6b363558ab..c62d11201f 100644 --- a/src/view/com/composer/text-input/TextInput.web.tsx +++ b/src/view/com/composer/text-input/TextInput.web.tsx @@ -1,30 +1,28 @@ -import {AppBskyRichtextFacet, RichText} from '@atproto/api' -import {Trans} from '@lingui/macro' +import React from 'react' +import {StyleSheet, View} from 'react-native' +import {RichText, AppBskyRichtextFacet} from '@atproto/api' +import EventEmitter from 'eventemitter3' +import {useEditor, EditorContent, JSONContent} from '@tiptap/react' import {Document} from '@tiptap/extension-document' -import Hardbreak from '@tiptap/extension-hard-break' import History from '@tiptap/extension-history' +import Hardbreak from '@tiptap/extension-hard-break' import {Mention} from '@tiptap/extension-mention' import {Paragraph} from '@tiptap/extension-paragraph' import {Placeholder} from '@tiptap/extension-placeholder' import {Text as TiptapText} from '@tiptap/extension-text' -import {generateJSON} from '@tiptap/html' -import {EditorContent, JSONContent, useEditor} from '@tiptap/react' -import EventEmitter from 'eventemitter3' -import {useColorSchemeStyle} from 'lib/hooks/useColorSchemeStyle' -import {blobToDataUri, isUriImage} from 'lib/media/util' import isEqual from 'lodash.isequal' -import React from 'react' -import {StyleSheet, View} from 'react-native' -import Animated, {FadeIn, FadeOut} from 'react-native-reanimated' - -import {Portal} from '#/components/Portal' -import {usePalette} from '#/lib/hooks/usePalette' -import {useActorAutocompleteFn} from '#/state/queries/actor-autocomplete' - -import {Text} from '../../util/text/Text' import {createSuggestion} from './web/Autocomplete' +import {useColorSchemeStyle} from 'lib/hooks/useColorSchemeStyle' +import {isUriImage, blobToDataUri} from 'lib/media/util' import {Emoji} from './web/EmojiPicker.web' import {LinkDecorator} from './web/LinkDecorator' +import {generateJSON} from '@tiptap/html' +import {useActorAutocompleteFn} from '#/state/queries/actor-autocomplete' +import {usePalette} from '#/lib/hooks/usePalette' +import {Portal} from '#/components/Portal' +import {Text} from '../../util/text/Text' +import {Trans} from '@lingui/macro' +import Animated, {FadeIn, FadeOut} from 'react-native-reanimated' import {TagDecorator} from './web/TagDecorator' export interface TextInputRef { diff --git a/src/view/com/composer/text-input/mobile/Autocomplete.tsx b/src/view/com/composer/text-input/mobile/Autocomplete.tsx index 1e8b7900b5..c400aa48d5 100644 --- a/src/view/com/composer/text-input/mobile/Autocomplete.tsx +++ b/src/view/com/composer/text-input/mobile/Autocomplete.tsx @@ -1,15 +1,13 @@ -import {AppBskyActorDefs} from '@atproto/api' -import {Trans} from '@lingui/macro' +import React, {useEffect, useRef} from 'react' +import {Animated, TouchableOpacity, StyleSheet, View} from 'react-native' import {useAnimatedValue} from 'lib/hooks/useAnimatedValue' import {usePalette} from 'lib/hooks/usePalette' -import React, {useEffect, useRef} from 'react' -import {Animated, StyleSheet, TouchableOpacity, View} from 'react-native' import {Text} from 'view/com/util/text/Text' import {UserAvatar} from 'view/com/util/UserAvatar' - -import {useActorAutocompleteQuery} from '#/state/queries/actor-autocomplete' - import {useGrapheme} from '../hooks/useGrapheme' +import {useActorAutocompleteQuery} from '#/state/queries/actor-autocomplete' +import {Trans} from '@lingui/macro' +import {AppBskyActorDefs} from '@atproto/api' export function Autocomplete({ prefix, diff --git a/src/view/com/composer/text-input/web/Autocomplete.tsx b/src/view/com/composer/text-input/web/Autocomplete.tsx index 21fae297c6..76058fed34 100644 --- a/src/view/com/composer/text-input/web/Autocomplete.tsx +++ b/src/view/com/composer/text-input/web/Autocomplete.tsx @@ -1,11 +1,3 @@ -import {Trans} from '@lingui/macro' -import {ReactRenderer} from '@tiptap/react' -import { - SuggestionKeyDownProps, - SuggestionOptions, - SuggestionProps, -} from '@tiptap/suggestion' -import {usePalette} from 'lib/hooks/usePalette' import React, { forwardRef, useEffect, @@ -13,13 +5,19 @@ import React, { useState, } from 'react' import {Pressable, StyleSheet, View} from 'react-native' +import {ReactRenderer} from '@tiptap/react' import tippy, {Instance as TippyInstance} from 'tippy.js' +import { + SuggestionOptions, + SuggestionProps, + SuggestionKeyDownProps, +} from '@tiptap/suggestion' +import {ActorAutocompleteFn} from '#/state/queries/actor-autocomplete' +import {usePalette} from 'lib/hooks/usePalette' import {Text} from 'view/com/util/text/Text' import {UserAvatar} from 'view/com/util/UserAvatar' - -import {ActorAutocompleteFn} from '#/state/queries/actor-autocomplete' - import {useGrapheme} from '../hooks/useGrapheme' +import {Trans} from '@lingui/macro' interface MentionListRef { onKeyDown: (props: SuggestionKeyDownProps) => boolean diff --git a/src/view/com/composer/text-input/web/EmojiPicker.web.tsx b/src/view/com/composer/text-input/web/EmojiPicker.web.tsx index d918953de9..1493621160 100644 --- a/src/view/com/composer/text-input/web/EmojiPicker.web.tsx +++ b/src/view/com/composer/text-input/web/EmojiPicker.web.tsx @@ -1,12 +1,11 @@ -import Picker from '@emoji-mart/react' import React from 'react' +import Picker from '@emoji-mart/react' import { StyleSheet, TouchableWithoutFeedback, useWindowDimensions, View, } from 'react-native' - import {textInputWebEmitter} from '../TextInput.web' const HEIGHT_OFFSET = 40 diff --git a/src/view/com/composer/text-input/web/LinkDecorator.ts b/src/view/com/composer/text-input/web/LinkDecorator.ts index 207dbe7e40..e36ac80e42 100644 --- a/src/view/com/composer/text-input/web/LinkDecorator.ts +++ b/src/view/com/composer/text-input/web/LinkDecorator.ts @@ -14,11 +14,12 @@ * the facet-set. */ -import {URL_REGEX} from '@atproto/api' import {Mark} from '@tiptap/core' -import {Node as ProsemirrorNode} from '@tiptap/pm/model' import {Plugin, PluginKey} from '@tiptap/pm/state' +import {Node as ProsemirrorNode} from '@tiptap/pm/model' import {Decoration, DecorationSet} from '@tiptap/pm/view' +import {URL_REGEX} from '@atproto/api' + import {isValidDomain} from 'lib/strings/url-helpers' export const LinkDecorator = Mark.create({ diff --git a/src/view/com/composer/text-input/web/TagDecorator.ts b/src/view/com/composer/text-input/web/TagDecorator.ts index 9225fd6bf9..2bf3184a8c 100644 --- a/src/view/com/composer/text-input/web/TagDecorator.ts +++ b/src/view/com/composer/text-input/web/TagDecorator.ts @@ -14,11 +14,11 @@ * the facet-set. */ -import {TAG_REGEX, TRAILING_PUNCTUATION_REGEX} from '@atproto/api' import {Mark} from '@tiptap/core' -import {Node as ProsemirrorNode} from '@tiptap/pm/model' import {Plugin, PluginKey} from '@tiptap/pm/state' +import {Node as ProsemirrorNode} from '@tiptap/pm/model' import {Decoration, DecorationSet} from '@tiptap/pm/view' +import {TAG_REGEX, TRAILING_PUNCTUATION_REGEX} from '@atproto/api' function getDecorations(doc: ProsemirrorNode) { const decorations: Decoration[] = [] diff --git a/src/view/com/composer/threadgate/ThreadgateBtn.tsx b/src/view/com/composer/threadgate/ThreadgateBtn.tsx index 0647d4215b..ebbc613fff 100644 --- a/src/view/com/composer/threadgate/ThreadgateBtn.tsx +++ b/src/view/com/composer/threadgate/ThreadgateBtn.tsx @@ -1,18 +1,17 @@ +import React from 'react' +import {TouchableOpacity, StyleSheet, Keyboard} from 'react-native' import { FontAwesomeIcon, FontAwesomeIconStyle, } from '@fortawesome/react-native-fontawesome' -import {msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' +import {usePalette} from 'lib/hooks/usePalette' import {useAnalytics} from 'lib/analytics/analytics' import {HITSLOP_10} from 'lib/constants' -import {usePalette} from 'lib/hooks/usePalette' -import React from 'react' -import {Keyboard, StyleSheet, TouchableOpacity} from 'react-native' - -import {isNative} from '#/platform/detection' +import {useLingui} from '@lingui/react' +import {msg} from '@lingui/macro' import {useModalControls} from '#/state/modals' import {ThreadgateSetting} from '#/state/queries/threadgate' +import {isNative} from '#/platform/detection' export function ThreadgateBtn({ threadgate, diff --git a/src/view/com/composer/useExternalLinkFetch.ts b/src/view/com/composer/useExternalLinkFetch.ts index 5daff41eab..54773d565c 100644 --- a/src/view/com/composer/useExternalLinkFetch.ts +++ b/src/view/com/composer/useExternalLinkFetch.ts @@ -1,25 +1,24 @@ +import {useState, useEffect} from 'react' +import {ImageModel} from 'state/models/media/image' import * as apilib from 'lib/api/index' -import {POST_IMG_MAX} from 'lib/constants' +import {getLinkMeta} from 'lib/link-meta/link-meta' import { + getPostAsQuote, getFeedAsEmbed, getListAsEmbed, - getPostAsQuote, } from 'lib/link-meta/bsky' -import {getLinkMeta} from 'lib/link-meta/link-meta' import {downloadAndResize} from 'lib/media/manip' import { + isBskyPostUrl, isBskyCustomFeedUrl, isBskyListUrl, - isBskyPostUrl, } from 'lib/strings/url-helpers' -import {useEffect, useState} from 'react' -import {ImageModel} from 'state/models/media/image' import {ComposerOpts} from 'state/shell/composer' - +import {POST_IMG_MAX} from 'lib/constants' import {logger} from '#/logger' -import {useFetchDid} from '#/state/queries/handle' -import {useGetPost} from '#/state/queries/post' import {getAgent} from '#/state/session' +import {useGetPost} from '#/state/queries/post' +import {useFetchDid} from '#/state/queries/handle' export function useExternalLinkFetch({ setQuote, diff --git a/src/view/com/feeds/FeedPage.tsx b/src/view/com/feeds/FeedPage.tsx index 1694877534..e6b5d1fb68 100644 --- a/src/view/com/feeds/FeedPage.tsx +++ b/src/view/com/feeds/FeedPage.tsx @@ -1,29 +1,27 @@ -import {msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' +import React from 'react' import {useNavigation} from '@react-navigation/native' -import {useQueryClient} from '@tanstack/react-query' import {useAnalytics} from 'lib/analytics/analytics' +import {useQueryClient} from '@tanstack/react-query' +import {RQKEY as FEED_RQKEY} from '#/state/queries/post-feed' +import {MainScrollProvider} from '../util/MainScrollProvider' import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' +import {useSetMinimalShellMode} from '#/state/shell' +import {FeedDescriptor, FeedParams} from '#/state/queries/post-feed' import {ComposeIcon2} from 'lib/icons' import {s} from 'lib/styles' -import React from 'react' -import {useWindowDimensions, View} from 'react-native' - -import {getRootNavigation, getTabState, TabState} from '#/lib/routes/helpers' -import {isNative} from '#/platform/detection' -import {listenSoftReset} from '#/state/events' -import {RQKEY as FEED_RQKEY} from '#/state/queries/post-feed' -import {FeedDescriptor, FeedParams} from '#/state/queries/post-feed' -import {truncateAndInvalidate} from '#/state/queries/util' -import {useSession} from '#/state/session' -import {useSetMinimalShellMode} from '#/state/shell' -import {useComposerControls} from '#/state/shell/composer' - +import {View, useWindowDimensions} from 'react-native' +import {ListMethods} from '../util/List' import {Feed} from '../posts/Feed' import {FAB} from '../util/fab/FAB' -import {ListMethods} from '../util/List' import {LoadLatestBtn} from '../util/load-latest/LoadLatestBtn' -import {MainScrollProvider} from '../util/MainScrollProvider' +import {msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {useSession} from '#/state/session' +import {useComposerControls} from '#/state/shell/composer' +import {listenSoftReset} from '#/state/events' +import {truncateAndInvalidate} from '#/state/queries/util' +import {TabState, getTabState, getRootNavigation} from '#/lib/routes/helpers' +import {isNative} from '#/platform/detection' const POLL_FREQ = 60e3 // 60sec diff --git a/src/view/com/feeds/FeedSourceCard.tsx b/src/view/com/feeds/FeedSourceCard.tsx index 4e0865af57..4af62f6f63 100644 --- a/src/view/com/feeds/FeedSourceCard.tsx +++ b/src/view/com/feeds/FeedSourceCard.tsx @@ -1,32 +1,30 @@ -import {AtUri} from '@atproto/api' +import React from 'react' +import {Pressable, StyleProp, StyleSheet, View, ViewStyle} from 'react-native' import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {useNavigationDeduped} from 'lib/hooks/useNavigationDeduped' +import {Text} from '../util/text/Text' +import {RichText} from '#/components/RichText' import {usePalette} from 'lib/hooks/usePalette' -import {sanitizeHandle} from 'lib/strings/handles' -import {pluralize} from 'lib/strings/helpers' import {s} from 'lib/styles' -import React from 'react' -import {Pressable, StyleProp, StyleSheet, View, ViewStyle} from 'react-native' +import {UserAvatar} from '../util/UserAvatar' +import {pluralize} from 'lib/strings/helpers' +import {AtUri} from '@atproto/api' import * as Toast from 'view/com/util/Toast' - -import {useTheme} from '#/alf' -import {RichText} from '#/components/RichText' +import {sanitizeHandle} from 'lib/strings/handles' import {logger} from '#/logger' import {useModalControls} from '#/state/modals' -import {FeedSourceInfo, useFeedSourceInfoQuery} from '#/state/queries/feed' +import {Trans, msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' import { usePinFeedMutation, - usePreferencesQuery, UsePreferencesQueryResponse, - useRemoveFeedMutation, + usePreferencesQuery, useSaveFeedMutation, + useRemoveFeedMutation, } from '#/state/queries/preferences' +import {useFeedSourceInfoQuery, FeedSourceInfo} from '#/state/queries/feed' import {FeedLoadingPlaceholder} from '#/view/com/util/LoadingPlaceholder' - -import {Text} from '../util/text/Text' -import {UserAvatar} from '../util/UserAvatar' +import {useTheme} from '#/alf' +import {useNavigationDeduped} from 'lib/hooks/useNavigationDeduped' export function FeedSourceCard({ feedUri, diff --git a/src/view/com/feeds/ProfileFeedgens.tsx b/src/view/com/feeds/ProfileFeedgens.tsx index 702fe0d4e8..e9cf9e5359 100644 --- a/src/view/com/feeds/ProfileFeedgens.tsx +++ b/src/view/com/feeds/ProfileFeedgens.tsx @@ -1,24 +1,22 @@ -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {useQueryClient} from '@tanstack/react-query' -import {usePalette} from 'lib/hooks/usePalette' import React from 'react' import {StyleProp, StyleSheet, View, ViewStyle} from 'react-native' - +import {useQueryClient} from '@tanstack/react-query' +import {List, ListRef} from '../util/List' +import {FeedSourceCardLoaded} from './FeedSourceCard' +import {ErrorMessage} from '../util/error/ErrorMessage' +import {LoadMoreRetryBtn} from '../util/LoadMoreRetryBtn' +import {Text} from '../util/text/Text' +import {usePalette} from 'lib/hooks/usePalette' +import {useProfileFeedgensQuery, RQKEY} from '#/state/queries/profile-feedgens' +import {logger} from '#/logger' +import {Trans, msg} from '@lingui/macro' import {cleanError} from '#/lib/strings/errors' import {useTheme} from '#/lib/ThemeContext' -import {logger} from '#/logger' -import {isNative} from '#/platform/detection' -import {hydrateFeedGenerator} from '#/state/queries/feed' import {usePreferencesQuery} from '#/state/queries/preferences' -import {RQKEY, useProfileFeedgensQuery} from '#/state/queries/profile-feedgens' +import {hydrateFeedGenerator} from '#/state/queries/feed' import {FeedLoadingPlaceholder} from '#/view/com/util/LoadingPlaceholder' - -import {ErrorMessage} from '../util/error/ErrorMessage' -import {List, ListRef} from '../util/List' -import {LoadMoreRetryBtn} from '../util/LoadMoreRetryBtn' -import {Text} from '../util/text/Text' -import {FeedSourceCardLoaded} from './FeedSourceCard' +import {isNative} from '#/platform/detection' +import {useLingui} from '@lingui/react' const LOADING = {_reactKey: '__loading__'} const EMPTY = {_reactKey: '__empty__'} diff --git a/src/view/com/home/HomeHeader.tsx b/src/view/com/home/HomeHeader.tsx index 13819142a2..aa3ecb7fc2 100644 --- a/src/view/com/home/HomeHeader.tsx +++ b/src/view/com/home/HomeHeader.tsx @@ -1,14 +1,12 @@ -import {useNavigation} from '@react-navigation/native' -import {NavigationProp} from 'lib/routes/types' -import {isWeb} from 'platform/detection' import React from 'react' import {RenderTabBarFnProps} from 'view/com/pager/Pager' - -import {usePalette} from '#/lib/hooks/usePalette' +import {HomeHeaderLayout} from './HomeHeaderLayout' import {FeedSourceInfo} from '#/state/queries/feed' - +import {useNavigation} from '@react-navigation/native' +import {NavigationProp} from 'lib/routes/types' +import {isWeb} from 'platform/detection' import {TabBar} from '../pager/TabBar' -import {HomeHeaderLayout} from './HomeHeaderLayout' +import {usePalette} from '#/lib/hooks/usePalette' export function HomeHeader( props: RenderTabBarFnProps & { diff --git a/src/view/com/home/HomeHeaderLayout.web.tsx b/src/view/com/home/HomeHeaderLayout.web.tsx index 25d90e4e4b..9818b56f6f 100644 --- a/src/view/com/home/HomeHeaderLayout.web.tsx +++ b/src/view/com/home/HomeHeaderLayout.web.tsx @@ -1,22 +1,20 @@ +import React from 'react' +import {StyleSheet, View} from 'react-native' +import Animated from 'react-native-reanimated' +import {usePalette} from 'lib/hooks/usePalette' +import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' +import {HomeHeaderLayoutMobile} from './HomeHeaderLayoutMobile' +import {Logo} from '#/view/icons/Logo' +import {Link} from '../util/Link' import { FontAwesomeIcon, FontAwesomeIconStyle, } from '@fortawesome/react-native-fontawesome' -import {msg} from '@lingui/macro' import {useLingui} from '@lingui/react' -import {useMinimalShellMode} from 'lib/hooks/useMinimalShellMode' -import {usePalette} from 'lib/hooks/usePalette' -import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import React from 'react' -import {StyleSheet, View} from 'react-native' -import Animated from 'react-native-reanimated' - +import {msg} from '@lingui/macro' import {CogIcon} from '#/lib/icons' +import {useMinimalShellMode} from 'lib/hooks/useMinimalShellMode' import {useShellLayout} from '#/state/shell/shell-layout' -import {Logo} from '#/view/icons/Logo' - -import {Link} from '../util/Link' -import {HomeHeaderLayoutMobile} from './HomeHeaderLayoutMobile' export function HomeHeaderLayout(props: { children: React.ReactNode diff --git a/src/view/com/home/HomeHeaderLayoutMobile.tsx b/src/view/com/home/HomeHeaderLayoutMobile.tsx index c621c80d2a..d7b7231c60 100644 --- a/src/view/com/home/HomeHeaderLayoutMobile.tsx +++ b/src/view/com/home/HomeHeaderLayoutMobile.tsx @@ -1,24 +1,23 @@ +import React from 'react' +import {StyleSheet, TouchableOpacity, View} from 'react-native' +import {usePalette} from 'lib/hooks/usePalette' +import {Link} from '../util/Link' import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' import {FontAwesomeIconStyle} from '@fortawesome/react-native-fontawesome' +import {HITSLOP_10} from 'lib/constants' +import Animated from 'react-native-reanimated' import {msg} from '@lingui/macro' import {useLingui} from '@lingui/react' -import {HITSLOP_10} from 'lib/constants' import {useMinimalShellMode} from 'lib/hooks/useMinimalShellMode' -import {usePalette} from 'lib/hooks/usePalette' -import {isWeb} from 'platform/detection' -import React from 'react' -import {StyleSheet, TouchableOpacity, View} from 'react-native' -import Animated from 'react-native-reanimated' - -import {atoms} from '#/alf' -import {ColorPalette_Stroke2_Corner0_Rounded as ColorPalette} from '#/components/icons/ColorPalette' -import {Link as Link2} from '#/components/Link' -import {IS_DEV} from '#/env' import {useSetDrawerOpen} from '#/state/shell/drawer-open' import {useShellLayout} from '#/state/shell/shell-layout' +import {isWeb} from 'platform/detection' import {Logo} from '#/view/icons/Logo' -import {Link} from '../util/Link' +import {IS_DEV} from '#/env' +import {atoms} from '#/alf' +import {Link as Link2} from '#/components/Link' +import {ColorPalette_Stroke2_Corner0_Rounded as ColorPalette} from '#/components/icons/ColorPalette' export function HomeHeaderLayoutMobile({ children, diff --git a/src/view/com/lightbox/ImageViewing/components/ImageDefaultHeader.tsx b/src/view/com/lightbox/ImageViewing/components/ImageDefaultHeader.tsx index eecc3f6f36..3401adaff4 100644 --- a/src/view/com/lightbox/ImageViewing/components/ImageDefaultHeader.tsx +++ b/src/view/com/lightbox/ImageViewing/components/ImageDefaultHeader.tsx @@ -5,10 +5,10 @@ * LICENSE file in the root directory of this source tree. * */ -import {t} from '@lingui/macro' -import {createHitslop} from 'lib/constants' import React from 'react' -import {SafeAreaView, StyleSheet, Text, TouchableOpacity} from 'react-native' +import {createHitslop} from 'lib/constants' +import {SafeAreaView, Text, TouchableOpacity, StyleSheet} from 'react-native' +import {t} from '@lingui/macro' type Props = { onRequestClose: () => void diff --git a/src/view/com/lightbox/ImageViewing/components/ImageItem/ImageItem.android.tsx b/src/view/com/lightbox/ImageViewing/components/ImageItem/ImageItem.android.tsx index 85963067c5..414f98a611 100644 --- a/src/view/com/lightbox/ImageViewing/components/ImageItem/ImageItem.android.tsx +++ b/src/view/com/lightbox/ImageViewing/components/ImageItem/ImageItem.android.tsx @@ -1,28 +1,28 @@ -import {Image} from 'expo-image' import React, {useState} from 'react' + import {ActivityIndicator, Dimensions, StyleSheet} from 'react-native' -import {Gesture, GestureDetector} from 'react-native-gesture-handler' +import {Image} from 'expo-image' import Animated, { runOnJS, - useAnimatedReaction, useAnimatedRef, useAnimatedStyle, + useAnimatedReaction, useSharedValue, withDecay, withSpring, } from 'react-native-reanimated' - -import type {Dimensions as ImageDimensions, ImageSource} from '../../@types' +import {GestureDetector, Gesture} from 'react-native-gesture-handler' import useImageDimensions from '../../hooks/useImageDimensions' import { - applyRounding, createTransform, + readTransform, + applyRounding, prependPan, prependPinch, prependTransform, - readTransform, TransformMatrix, } from '../../transforms' +import type {ImageSource, Dimensions as ImageDimensions} from '../../@types' const SCREEN = Dimensions.get('window') const MIN_DOUBLE_TAP_SCALE = 2 diff --git a/src/view/com/lightbox/ImageViewing/components/ImageItem/ImageItem.ios.tsx b/src/view/com/lightbox/ImageViewing/components/ImageItem/ImageItem.ios.tsx index 5fabeb1703..383490f4f1 100644 --- a/src/view/com/lightbox/ImageViewing/components/ImageItem/ImageItem.ios.tsx +++ b/src/view/com/lightbox/ImageViewing/components/ImageItem/ImageItem.ios.tsx @@ -6,10 +6,10 @@ * */ -import {Image} from 'expo-image' import React, {useState} from 'react' + import {Dimensions, StyleSheet} from 'react-native' -import {Gesture, GestureDetector} from 'react-native-gesture-handler' +import {Image} from 'expo-image' import Animated, { interpolate, runOnJS, @@ -17,11 +17,12 @@ import Animated, { useAnimatedStyle, useSharedValue, } from 'react-native-reanimated' - import {useAnimatedScrollHandler} from '#/lib/hooks/useAnimatedScrollHandler_FIXED' +import {Gesture, GestureDetector} from 'react-native-gesture-handler' -import {Dimensions as ImageDimensions, ImageSource} from '../../@types' import useImageDimensions from '../../hooks/useImageDimensions' + +import {ImageSource, Dimensions as ImageDimensions} from '../../@types' import {ImageLoading} from './ImageLoading' const SWIPE_CLOSE_OFFSET = 75 diff --git a/src/view/com/lightbox/ImageViewing/components/ImageItem/ImageItem.tsx b/src/view/com/lightbox/ImageViewing/components/ImageItem/ImageItem.tsx index 4cb7903efa..08b99bf9ee 100644 --- a/src/view/com/lightbox/ImageViewing/components/ImageItem/ImageItem.tsx +++ b/src/view/com/lightbox/ImageViewing/components/ImageItem/ImageItem.tsx @@ -2,7 +2,6 @@ import React from 'react' import {View} from 'react-native' - import {ImageSource} from '../../@types' type Props = { diff --git a/src/view/com/lightbox/ImageViewing/components/ImageItem/ImageLoading.tsx b/src/view/com/lightbox/ImageViewing/components/ImageItem/ImageLoading.tsx index 318e7d8da2..9667fcaa7b 100644 --- a/src/view/com/lightbox/ImageViewing/components/ImageItem/ImageLoading.tsx +++ b/src/view/com/lightbox/ImageViewing/components/ImageItem/ImageLoading.tsx @@ -7,6 +7,7 @@ */ import React from 'react' + import {ActivityIndicator, Dimensions, StyleSheet, View} from 'react-native' const SCREEN = Dimensions.get('screen') diff --git a/src/view/com/lightbox/ImageViewing/hooks/useImageDimensions.ts b/src/view/com/lightbox/ImageViewing/hooks/useImageDimensions.ts index 46f9f22953..cb46fd0d9c 100644 --- a/src/view/com/lightbox/ImageViewing/hooks/useImageDimensions.ts +++ b/src/view/com/lightbox/ImageViewing/hooks/useImageDimensions.ts @@ -8,7 +8,6 @@ import {useEffect, useState} from 'react' import {Image, ImageURISource} from 'react-native' - import {Dimensions, ImageSource} from '../@types' const CACHE_SIZE = 50 diff --git a/src/view/com/lightbox/ImageViewing/index.tsx b/src/view/com/lightbox/ImageViewing/index.tsx index 1432b34ff8..ff8fdb86d3 100644 --- a/src/view/com/lightbox/ImageViewing/index.tsx +++ b/src/view/com/lightbox/ImageViewing/index.tsx @@ -9,14 +9,15 @@ // https://github.com/jobtoday/react-native-image-viewing import React, {ComponentType, useCallback, useMemo, useState} from 'react' -import {Platform, StyleSheet, View} from 'react-native' -import PagerView from 'react-native-pager-view' -import Animated, {useAnimatedStyle, withSpring} from 'react-native-reanimated' -import {Edge, SafeAreaView} from 'react-native-safe-area-context' +import {StyleSheet, View, Platform} from 'react-native' -import {ImageSource} from './@types' -import ImageDefaultHeader from './components/ImageDefaultHeader' import ImageItem from './components/ImageItem/ImageItem' +import ImageDefaultHeader from './components/ImageDefaultHeader' + +import {ImageSource} from './@types' +import Animated, {useAnimatedStyle, withSpring} from 'react-native-reanimated' +import {Edge, SafeAreaView} from 'react-native-safe-area-context' +import PagerView from 'react-native-pager-view' type Props = { images: ImageSource[] diff --git a/src/view/com/lightbox/Lightbox.tsx b/src/view/com/lightbox/Lightbox.tsx index b3e5dfb9b2..2ee5b8d593 100644 --- a/src/view/com/lightbox/Lightbox.tsx +++ b/src/view/com/lightbox/Lightbox.tsx @@ -1,24 +1,22 @@ -import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import * as MediaLibrary from 'expo-media-library' -import {saveImageToMediaLibrary, shareImageModal} from 'lib/media/manip' -import {colors, s} from 'lib/styles' -import {isIOS} from 'platform/detection' import React from 'react' import {LayoutAnimation, StyleSheet, View} from 'react-native' - +import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' +import ImageView from './ImageViewing' +import {shareImageModal, saveImageToMediaLibrary} from 'lib/media/manip' +import * as Toast from '../util/Toast' +import {Text} from '../util/text/Text' +import {s, colors} from 'lib/styles' +import {Button} from '../util/forms/Button' +import {isIOS} from 'platform/detection' +import * as MediaLibrary from 'expo-media-library' import { - ImagesLightbox, - ProfileImageLightbox, useLightbox, useLightboxControls, + ProfileImageLightbox, + ImagesLightbox, } from '#/state/lightbox' - -import {Button} from '../util/forms/Button' -import {Text} from '../util/text/Text' -import * as Toast from '../util/Toast' -import ImageView from './ImageViewing' +import {Trans, msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' export function Lightbox() { const {activeLightbox} = useLightbox() diff --git a/src/view/com/lightbox/Lightbox.web.tsx b/src/view/com/lightbox/Lightbox.web.tsx index e3c3d5acde..fb97c30a45 100644 --- a/src/view/com/lightbox/Lightbox.web.tsx +++ b/src/view/com/lightbox/Lightbox.web.tsx @@ -1,31 +1,29 @@ -import { - FontAwesomeIcon, - FontAwesomeIconStyle, -} from '@fortawesome/react-native-fontawesome' -import {msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {colors, s} from 'lib/styles' import React, {useCallback, useEffect, useState} from 'react' import { Image, ImageStyle, - Pressable, - StyleSheet, TouchableOpacity, TouchableWithoutFeedback, + StyleSheet, View, + Pressable, } from 'react-native' - -import {useWebBodyScrollLock} from '#/lib/hooks/useWebBodyScrollLock' import { - ImagesLightbox, - ProfileImageLightbox, + FontAwesomeIcon, + FontAwesomeIconStyle, +} from '@fortawesome/react-native-fontawesome' +import {colors, s} from 'lib/styles' +import ImageDefaultHeader from './ImageViewing/components/ImageDefaultHeader' +import {Text} from '../util/text/Text' +import {useLingui} from '@lingui/react' +import {msg} from '@lingui/macro' +import { useLightbox, useLightboxControls, + ImagesLightbox, + ProfileImageLightbox, } from '#/state/lightbox' - -import {Text} from '../util/text/Text' -import ImageDefaultHeader from './ImageViewing/components/ImageDefaultHeader' +import {useWebBodyScrollLock} from '#/lib/hooks/useWebBodyScrollLock' interface Img { uri: string diff --git a/src/view/com/lists/ListCard.tsx b/src/view/com/lists/ListCard.tsx index 0a36902a42..19842eb54d 100644 --- a/src/view/com/lists/ListCard.tsx +++ b/src/view/com/lists/ListCard.tsx @@ -1,20 +1,18 @@ -import {AppBskyGraphDefs, AtUri, RichText} from '@atproto/api' -import {Trans} from '@lingui/macro' -import {usePalette} from 'lib/hooks/usePalette' -import {makeProfileLink} from 'lib/routes/links' -import {sanitizeDisplayName} from 'lib/strings/display-names' -import {sanitizeHandle} from 'lib/strings/handles' -import {s} from 'lib/styles' import React from 'react' import {StyleProp, StyleSheet, View, ViewStyle} from 'react-native' - -import {atoms as a} from '#/alf' -import {RichText as RichTextCom} from '#/components/RichText' -import {useSession} from '#/state/session' - +import {AtUri, AppBskyGraphDefs, RichText} from '@atproto/api' import {Link} from '../util/Link' import {Text} from '../util/text/Text' +import {RichText as RichTextCom} from '#/components/RichText' import {UserAvatar} from '../util/UserAvatar' +import {s} from 'lib/styles' +import {usePalette} from 'lib/hooks/usePalette' +import {useSession} from '#/state/session' +import {sanitizeDisplayName} from 'lib/strings/display-names' +import {sanitizeHandle} from 'lib/strings/handles' +import {makeProfileLink} from 'lib/routes/links' +import {Trans} from '@lingui/macro' +import {atoms as a} from '#/alf' export const ListCard = ({ testID, diff --git a/src/view/com/lists/ListMembers.tsx b/src/view/com/lists/ListMembers.tsx index 796db89673..4f2b56426e 100644 --- a/src/view/com/lists/ListMembers.tsx +++ b/src/view/com/lists/ListMembers.tsx @@ -1,8 +1,3 @@ -import {AppBskyActorDefs, AppBskyGraphDefs} from '@atproto/api' -import {msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {useAnalytics} from 'lib/analytics/analytics' -import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' import React from 'react' import { ActivityIndicator, @@ -11,19 +6,22 @@ import { View, ViewStyle, } from 'react-native' - -import {cleanError} from '#/lib/strings/errors' -import {logger} from '#/logger' -import {useModalControls} from '#/state/modals' -import {useListMembersQuery} from '#/state/queries/list-members' -import {useSession} from '#/state/session' - -import {ProfileCard} from '../profile/ProfileCard' -import {ErrorMessage} from '../util/error/ErrorMessage' -import {Button} from '../util/forms/Button' +import {AppBskyActorDefs, AppBskyGraphDefs} from '@atproto/api' import {List, ListRef} from '../util/List' import {ProfileCardFeedLoadingPlaceholder} from '../util/LoadingPlaceholder' +import {ErrorMessage} from '../util/error/ErrorMessage' import {LoadMoreRetryBtn} from '../util/LoadMoreRetryBtn' +import {ProfileCard} from '../profile/ProfileCard' +import {Button} from '../util/forms/Button' +import {useAnalytics} from 'lib/analytics/analytics' +import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' +import {useListMembersQuery} from '#/state/queries/list-members' +import {logger} from '#/logger' +import {useModalControls} from '#/state/modals' +import {useSession} from '#/state/session' +import {cleanError} from '#/lib/strings/errors' +import {useLingui} from '@lingui/react' +import {msg} from '@lingui/macro' const LOADING_ITEM = {_reactKey: '__loading__'} const EMPTY_ITEM = {_reactKey: '__empty__'} diff --git a/src/view/com/lists/MyLists.tsx b/src/view/com/lists/MyLists.tsx index 8d746ca340..e9d2e4f0fe 100644 --- a/src/view/com/lists/MyLists.tsx +++ b/src/view/com/lists/MyLists.tsx @@ -1,8 +1,3 @@ -import {AppBskyGraphDefs as GraphDefs} from '@atproto/api' -import {Trans} from '@lingui/macro' -import {useAnalytics} from 'lib/analytics/analytics' -import {usePalette} from 'lib/hooks/usePalette' -import {s} from 'lib/styles' import React from 'react' import { ActivityIndicator, @@ -13,15 +8,18 @@ import { View, ViewStyle, } from 'react-native' - -import {cleanError} from '#/lib/strings/errors' -import {logger} from '#/logger' +import {AppBskyGraphDefs as GraphDefs} from '@atproto/api' +import {ListCard} from './ListCard' import {MyListsFilter, useMyListsQuery} from '#/state/queries/my-lists' - import {ErrorMessage} from '../util/error/ErrorMessage' -import {List} from '../util/List' import {Text} from '../util/text/Text' -import {ListCard} from './ListCard' +import {useAnalytics} from 'lib/analytics/analytics' +import {usePalette} from 'lib/hooks/usePalette' +import {List} from '../util/List' +import {s} from 'lib/styles' +import {logger} from '#/logger' +import {Trans} from '@lingui/macro' +import {cleanError} from '#/lib/strings/errors' const LOADING = {_reactKey: '__loading__'} const EMPTY = {_reactKey: '__empty__'} diff --git a/src/view/com/lists/ProfileLists.tsx b/src/view/com/lists/ProfileLists.tsx index d2344914ae..a47b25bed4 100644 --- a/src/view/com/lists/ProfileLists.tsx +++ b/src/view/com/lists/ProfileLists.tsx @@ -1,23 +1,21 @@ -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' +import React from 'react' +import {StyleProp, StyleSheet, View, ViewStyle} from 'react-native' import {useQueryClient} from '@tanstack/react-query' +import {List, ListRef} from '../util/List' +import {ListCard} from './ListCard' +import {ErrorMessage} from '../util/error/ErrorMessage' +import {LoadMoreRetryBtn} from '../util/LoadMoreRetryBtn' +import {Text} from '../util/text/Text' import {useAnalytics} from 'lib/analytics/analytics' import {usePalette} from 'lib/hooks/usePalette' -import React from 'react' -import {StyleProp, StyleSheet, View, ViewStyle} from 'react-native' - +import {useProfileListsQuery, RQKEY} from '#/state/queries/profile-lists' +import {logger} from '#/logger' +import {Trans, msg} from '@lingui/macro' import {cleanError} from '#/lib/strings/errors' import {useTheme} from '#/lib/ThemeContext' -import {logger} from '#/logger' -import {isNative} from '#/platform/detection' -import {RQKEY, useProfileListsQuery} from '#/state/queries/profile-lists' import {FeedLoadingPlaceholder} from '#/view/com/util/LoadingPlaceholder' - -import {ErrorMessage} from '../util/error/ErrorMessage' -import {List, ListRef} from '../util/List' -import {LoadMoreRetryBtn} from '../util/LoadMoreRetryBtn' -import {Text} from '../util/text/Text' -import {ListCard} from './ListCard' +import {isNative} from '#/platform/detection' +import {useLingui} from '@lingui/react' const LOADING = {_reactKey: '__loading__'} const EMPTY = {_reactKey: '__empty__'} diff --git a/src/view/com/modals/AddAppPasswords.tsx b/src/view/com/modals/AddAppPasswords.tsx index 2346f6d4e0..a8913dd54c 100644 --- a/src/view/com/modals/AddAppPasswords.tsx +++ b/src/view/com/modals/AddAppPasswords.tsx @@ -1,27 +1,25 @@ +import React, {useState} from 'react' +import {StyleSheet, TextInput, View, TouchableOpacity} from 'react-native' +import {Text} from '../util/text/Text' +import {Button} from '../util/forms/Button' +import {s} from 'lib/styles' +import {usePalette} from 'lib/hooks/usePalette' +import {isNative} from 'platform/detection' import { FontAwesomeIcon, FontAwesomeIconStyle, } from '@fortawesome/react-native-fontawesome' -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' import Clipboard from '@react-native-clipboard/clipboard' -import {usePalette} from 'lib/hooks/usePalette' -import {s} from 'lib/styles' -import {isNative} from 'platform/detection' -import React, {useState} from 'react' -import {StyleSheet, TextInput, TouchableOpacity, View} from 'react-native' - +import * as Toast from '../util/Toast' import {logger} from '#/logger' +import {Trans, msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' import {useModalControls} from '#/state/modals' import { - useAppPasswordCreateMutation, useAppPasswordsQuery, + useAppPasswordCreateMutation, } from '#/state/queries/app-passwords' -import {Button} from '../util/forms/Button' -import {Text} from '../util/text/Text' -import * as Toast from '../util/Toast' - export const snapPoints = ['70%'] const shadesOfBlue: string[] = [ diff --git a/src/view/com/modals/AltImage.tsx b/src/view/com/modals/AltImage.tsx index e3e872a172..17ce05cda8 100644 --- a/src/view/com/modals/AltImage.tsx +++ b/src/view/com/modals/AltImage.tsx @@ -1,31 +1,29 @@ -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {Image} from 'expo-image' -import {MAX_ALT_TEXT} from 'lib/constants' -import {useIsKeyboardVisible} from 'lib/hooks/useIsKeyboardVisible' -import {usePalette} from 'lib/hooks/usePalette' -import {enforceLen} from 'lib/strings/helpers' -import {gradients, s} from 'lib/styles' -import {useTheme} from 'lib/ThemeContext' -import {isWeb} from 'platform/detection' -import React, {useCallback, useMemo, useState} from 'react' +import React, {useMemo, useCallback, useState} from 'react' import { ImageStyle, - ScrollView as RNScrollView, StyleSheet, - TextInput as RNTextInput, TouchableOpacity, - useWindowDimensions, View, + TextInput as RNTextInput, + useWindowDimensions, + ScrollView as RNScrollView, } from 'react-native' +import {ScrollView, TextInput} from './util' +import {Image} from 'expo-image' +import {usePalette} from 'lib/hooks/usePalette' +import {gradients, s} from 'lib/styles' +import {enforceLen} from 'lib/strings/helpers' +import {MAX_ALT_TEXT} from 'lib/constants' +import {useTheme} from 'lib/ThemeContext' +import {useIsKeyboardVisible} from 'lib/hooks/useIsKeyboardVisible' +import {Text} from '../util/text/Text' import LinearGradient from 'react-native-linear-gradient' +import {isWeb} from 'platform/detection' import {ImageModel} from 'state/models/media/image' - +import {useLingui} from '@lingui/react' +import {Trans, msg} from '@lingui/macro' import {useModalControls} from '#/state/modals' -import {Text} from '../util/text/Text' -import {ScrollView, TextInput} from './util' - export const snapPoints = ['100%'] interface Props { diff --git a/src/view/com/modals/AppealLabel.tsx b/src/view/com/modals/AppealLabel.tsx index 5756452a2a..b0aaaf6255 100644 --- a/src/view/com/modals/AppealLabel.tsx +++ b/src/view/com/modals/AppealLabel.tsx @@ -1,19 +1,17 @@ -import {ComAtprotoModerationDefs} from '@atproto/api' -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {usePalette} from 'lib/hooks/usePalette' -import {colors, s} from 'lib/styles' import React, {useState} from 'react' import {StyleSheet, TouchableOpacity, View} from 'react-native' - -import {useWebMediaQueries} from '#/lib/hooks/useWebMediaQueries' +import {ComAtprotoModerationDefs} from '@atproto/api' +import {ScrollView, TextInput} from './util' +import {Text} from '../util/text/Text' +import {s, colors} from 'lib/styles' +import {usePalette} from 'lib/hooks/usePalette' +import {Trans, msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' import {useModalControls} from '#/state/modals' -import {getAgent} from '#/state/session' - import {CharProgress} from '../composer/char-progress/CharProgress' -import {Text} from '../util/text/Text' +import {getAgent} from '#/state/session' import * as Toast from '../util/Toast' -import {ScrollView, TextInput} from './util' +import {useWebMediaQueries} from '#/lib/hooks/useWebMediaQueries' export const snapPoints = ['40%'] diff --git a/src/view/com/modals/BirthDateSettings.tsx b/src/view/com/modals/BirthDateSettings.tsx index dc8b914a50..1cab959896 100644 --- a/src/view/com/modals/BirthDateSettings.tsx +++ b/src/view/com/modals/BirthDateSettings.tsx @@ -1,10 +1,3 @@ -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {usePalette} from 'lib/hooks/usePalette' -import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {cleanError} from 'lib/strings/errors' -import {colors, s} from 'lib/styles' -import {isWeb} from 'platform/detection' import React, {useState} from 'react' import { ActivityIndicator, @@ -12,18 +5,23 @@ import { TouchableOpacity, View, } from 'react-native' - -import {logger} from '#/logger' +import {Text} from '../util/text/Text' +import {DateInput} from '../util/forms/DateInput' +import {ErrorMessage} from '../util/error/ErrorMessage' +import {s, colors} from 'lib/styles' +import {usePalette} from 'lib/hooks/usePalette' +import {isWeb} from 'platform/detection' +import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' +import {cleanError} from 'lib/strings/errors' +import {Trans, msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' import {useModalControls} from '#/state/modals' import { usePreferencesQuery, - UsePreferencesQueryResponse, usePreferencesSetBirthDateMutation, + UsePreferencesQueryResponse, } from '#/state/queries/preferences' - -import {ErrorMessage} from '../util/error/ErrorMessage' -import {DateInput} from '../util/forms/DateInput' -import {Text} from '../util/text/Text' +import {logger} from '#/logger' export const snapPoints = ['50%', '90%'] diff --git a/src/view/com/modals/ChangeEmail.tsx b/src/view/com/modals/ChangeEmail.tsx index 23d0b6f0d7..c5672bc814 100644 --- a/src/view/com/modals/ChangeEmail.tsx +++ b/src/view/com/modals/ChangeEmail.tsx @@ -1,21 +1,19 @@ -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {usePalette} from 'lib/hooks/usePalette' -import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {cleanError} from 'lib/strings/errors' -import {colors, s} from 'lib/styles' -import {isWeb} from 'platform/detection' import React, {useState} from 'react' import {ActivityIndicator, SafeAreaView, StyleSheet, View} from 'react-native' - -import {useModalControls} from '#/state/modals' -import {getAgent, useSession, useSessionApi} from '#/state/session' - -import {ErrorMessage} from '../util/error/ErrorMessage' -import {Button} from '../util/forms/Button' +import {ScrollView, TextInput} from './util' import {Text} from '../util/text/Text' +import {Button} from '../util/forms/Button' +import {ErrorMessage} from '../util/error/ErrorMessage' import * as Toast from '../util/Toast' -import {ScrollView, TextInput} from './util' +import {s, colors} from 'lib/styles' +import {usePalette} from 'lib/hooks/usePalette' +import {isWeb} from 'platform/detection' +import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' +import {cleanError} from 'lib/strings/errors' +import {Trans, msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {useModalControls} from '#/state/modals' +import {useSession, useSessionApi, getAgent} from '#/state/session' enum Stages { InputEmail, diff --git a/src/view/com/modals/ChangeHandle.tsx b/src/view/com/modals/ChangeHandle.tsx index 1521b2d5cc..a43c30c29c 100644 --- a/src/view/com/modals/ChangeHandle.tsx +++ b/src/view/com/modals/ChangeHandle.tsx @@ -1,40 +1,38 @@ -import {ComAtprotoServerDescribeServer} from '@atproto/api' -import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import Clipboard from '@react-native-clipboard/clipboard' -import {useAnalytics} from 'lib/analytics/analytics' -import {usePalette} from 'lib/hooks/usePalette' -import {cleanError} from 'lib/strings/errors' -import {createFullHandle, makeValidHandle} from 'lib/strings/handles' -import {s} from 'lib/styles' -import {useTheme} from 'lib/ThemeContext' import React, {useState} from 'react' +import Clipboard from '@react-native-clipboard/clipboard' +import {ComAtprotoServerDescribeServer} from '@atproto/api' +import * as Toast from '../util/Toast' import { ActivityIndicator, StyleSheet, TouchableOpacity, View, } from 'react-native' - +import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' +import {ScrollView, TextInput} from './util' +import {Text} from '../util/text/Text' +import {Button} from '../util/forms/Button' +import {SelectableBtn} from '../util/forms/SelectableBtn' +import {ErrorMessage} from '../util/error/ErrorMessage' +import {s} from 'lib/styles' +import {createFullHandle, makeValidHandle} from 'lib/strings/handles' +import {usePalette} from 'lib/hooks/usePalette' +import {useTheme} from 'lib/ThemeContext' +import {useAnalytics} from 'lib/analytics/analytics' +import {cleanError} from 'lib/strings/errors' import {logger} from '#/logger' +import {Trans, msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' import {useModalControls} from '#/state/modals' -import {useFetchDid, useUpdateHandleMutation} from '#/state/queries/handle' import {useServiceQuery} from '#/state/queries/service' +import {useUpdateHandleMutation, useFetchDid} from '#/state/queries/handle' import { - getAgent, - SessionAccount, useSession, useSessionApi, + SessionAccount, + getAgent, } from '#/state/session' -import {ErrorMessage} from '../util/error/ErrorMessage' -import {Button} from '../util/forms/Button' -import {SelectableBtn} from '../util/forms/SelectableBtn' -import {Text} from '../util/text/Text' -import * as Toast from '../util/Toast' -import {ScrollView, TextInput} from './util' - export const snapPoints = ['100%'] export type Props = {onChanged: () => void} diff --git a/src/view/com/modals/ChangePassword.tsx b/src/view/com/modals/ChangePassword.tsx index ba60e5d889..d8add97946 100644 --- a/src/view/com/modals/ChangePassword.tsx +++ b/src/view/com/modals/ChangePassword.tsx @@ -1,13 +1,3 @@ -import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import * as EmailValidator from 'email-validator' -import {usePalette} from 'lib/hooks/usePalette' -import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {cleanError, isNetworkError} from 'lib/strings/errors' -import {checkAndFormatResetCode} from 'lib/strings/password' -import {colors, s} from 'lib/styles' -import {isAndroid, isWeb} from 'platform/detection' import React, {useState} from 'react' import { ActivityIndicator, @@ -16,16 +6,24 @@ import { TouchableOpacity, View, } from 'react-native' - -import {logger} from '#/logger' -import {useModalControls} from '#/state/modals' -import {getAgent, useSession} from '#/state/session' - -import {ErrorMessage} from '../util/error/ErrorMessage' -import {Button} from '../util/forms/Button' -import {Text} from '../util/text/Text' import {ScrollView} from './util' +import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' import {TextInput} from './util' +import {Text} from '../util/text/Text' +import {Button} from '../util/forms/Button' +import {ErrorMessage} from '../util/error/ErrorMessage' +import {s, colors} from 'lib/styles' +import {usePalette} from 'lib/hooks/usePalette' +import {isAndroid, isWeb} from 'platform/detection' +import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' +import {cleanError, isNetworkError} from 'lib/strings/errors' +import {checkAndFormatResetCode} from 'lib/strings/password' +import {Trans, msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {useModalControls} from '#/state/modals' +import {useSession, getAgent} from '#/state/session' +import * as EmailValidator from 'email-validator' +import {logger} from '#/logger' enum Stages { RequestCode, diff --git a/src/view/com/modals/Confirm.tsx b/src/view/com/modals/Confirm.tsx index 470d3cf61f..307897fb8a 100644 --- a/src/view/com/modals/Confirm.tsx +++ b/src/view/com/modals/Confirm.tsx @@ -1,9 +1,3 @@ -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {usePalette} from 'lib/hooks/usePalette' -import {cleanError} from 'lib/strings/errors' -import {colors, s} from 'lib/styles' -import {isWeb} from 'platform/detection' import React, {useState} from 'react' import { ActivityIndicator, @@ -11,13 +5,17 @@ import { TouchableOpacity, View, } from 'react-native' - +import {Text} from '../util/text/Text' +import {s, colors} from 'lib/styles' +import {ErrorMessage} from '../util/error/ErrorMessage' +import {cleanError} from 'lib/strings/errors' +import {usePalette} from 'lib/hooks/usePalette' +import {isWeb} from 'platform/detection' +import {useLingui} from '@lingui/react' +import {Trans, msg} from '@lingui/macro' import type {ConfirmModal} from '#/state/modals' import {useModalControls} from '#/state/modals' -import {ErrorMessage} from '../util/error/ErrorMessage' -import {Text} from '../util/text/Text' - export const snapPoints = ['50%'] export function Component({ diff --git a/src/view/com/modals/ContentFilteringSettings.tsx b/src/view/com/modals/ContentFilteringSettings.tsx index ed0b6dcf82..328d23dc29 100644 --- a/src/view/com/modals/ContentFilteringSettings.tsx +++ b/src/view/com/modals/ContentFilteringSettings.tsx @@ -1,32 +1,30 @@ +import React from 'react' import {LabelPreference} from '@atproto/api' -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' +import {StyleSheet, Pressable, View, Linking} from 'react-native' +import LinearGradient from 'react-native-linear-gradient' +import {ScrollView} from './util' +import {s, colors, gradients} from 'lib/styles' +import {Text} from '../util/text/Text' +import {TextLink} from '../util/Link' +import {ToggleButton} from '../util/forms/ToggleButton' +import {Button} from '../util/forms/Button' import {usePalette} from 'lib/hooks/usePalette' -import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {colors, gradients, s} from 'lib/styles' import {isIOS} from 'platform/detection' -import React from 'react' -import {Linking, Pressable, StyleSheet, View} from 'react-native' -import LinearGradient from 'react-native-linear-gradient' - +import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' +import * as Toast from '../util/Toast' import {logger} from '#/logger' +import {Trans, msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' import {useModalControls} from '#/state/modals' import { - CONFIGURABLE_LABEL_GROUPS, - ConfigurableLabelGroup, usePreferencesQuery, - UsePreferencesQueryResponse, - usePreferencesSetAdultContentMutation, usePreferencesSetContentLabelMutation, + usePreferencesSetAdultContentMutation, + ConfigurableLabelGroup, + CONFIGURABLE_LABEL_GROUPS, + UsePreferencesQueryResponse, } from '#/state/queries/preferences' -import {Button} from '../util/forms/Button' -import {ToggleButton} from '../util/forms/ToggleButton' -import {TextLink} from '../util/Link' -import {Text} from '../util/text/Text' -import * as Toast from '../util/Toast' -import {ScrollView} from './util' - export const snapPoints = ['90%'] export function Component({}: {}) { diff --git a/src/view/com/modals/CreateOrEditList.tsx b/src/view/com/modals/CreateOrEditList.tsx index 3c7618e1e6..0e11fcffd5 100644 --- a/src/view/com/modals/CreateOrEditList.tsx +++ b/src/view/com/modals/CreateOrEditList.tsx @@ -1,19 +1,4 @@ -import { - AppBskyGraphDefs, - AppBskyRichtextFacet, - RichText as RichTextAPI, -} from '@atproto/api' -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {useAnalytics} from 'lib/analytics/analytics' -import {usePalette} from 'lib/hooks/usePalette' -import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {compressIfNeeded} from 'lib/media/manip' -import {cleanError, isNetworkError} from 'lib/strings/errors' -import {enforceLen} from 'lib/strings/helpers' -import {colors, gradients, s} from 'lib/styles' -import {useTheme} from 'lib/ThemeContext' -import React, {useCallback, useMemo, useState} from 'react' +import React, {useState, useCallback, useMemo} from 'react' import { ActivityIndicator, KeyboardAvoidingView, @@ -23,23 +8,36 @@ import { TouchableOpacity, View, } from 'react-native' -import {Image as RNImage} from 'react-native-image-crop-picker' +import { + AppBskyGraphDefs, + AppBskyRichtextFacet, + RichText as RichTextAPI, +} from '@atproto/api' import LinearGradient from 'react-native-linear-gradient' - -import {richTextToString} from '#/lib/strings/rich-text-helpers' -import {shortenLinks} from '#/lib/strings/rich-text-manip' +import {Image as RNImage} from 'react-native-image-crop-picker' +import {Text} from '../util/text/Text' +import {ErrorMessage} from '../util/error/ErrorMessage' +import * as Toast from '../util/Toast' +import {s, colors, gradients} from 'lib/styles' +import {enforceLen} from 'lib/strings/helpers' +import {compressIfNeeded} from 'lib/media/manip' +import {EditableUserAvatar} from '../util/UserAvatar' +import {usePalette} from 'lib/hooks/usePalette' +import {useTheme} from 'lib/ThemeContext' +import {useAnalytics} from 'lib/analytics/analytics' +import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' +import {cleanError, isNetworkError} from 'lib/strings/errors' +import {Trans, msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' import {useModalControls} from '#/state/modals' import { useListCreateMutation, useListMetadataMutation, } from '#/state/queries/list' +import {richTextToString} from '#/lib/strings/rich-text-helpers' +import {shortenLinks} from '#/lib/strings/rich-text-manip' import {getAgent} from '#/state/session' -import {ErrorMessage} from '../util/error/ErrorMessage' -import {Text} from '../util/text/Text' -import * as Toast from '../util/Toast' -import {EditableUserAvatar} from '../util/UserAvatar' - const MAX_NAME = 64 // todo const MAX_DESCRIPTION = 300 // todo diff --git a/src/view/com/modals/DeleteAccount.tsx b/src/view/com/modals/DeleteAccount.tsx index f0d2af8d25..40d78cfe0c 100644 --- a/src/view/com/modals/DeleteAccount.tsx +++ b/src/view/com/modals/DeleteAccount.tsx @@ -1,29 +1,27 @@ -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {usePalette} from 'lib/hooks/usePalette' -import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {cleanError} from 'lib/strings/errors' -import {colors, gradients, s} from 'lib/styles' -import {useTheme} from 'lib/ThemeContext' -import {isAndroid} from 'platform/detection' import React from 'react' import { - ActivityIndicator, SafeAreaView, + ActivityIndicator, StyleSheet, TouchableOpacity, View, } from 'react-native' +import {TextInput, ScrollView} from './util' import LinearGradient from 'react-native-linear-gradient' - -import {useModalControls} from '#/state/modals' -import {getAgent, useSession, useSessionApi} from '#/state/session' - -import {resetToTab} from '../../../Navigation' -import {ErrorMessage} from '../util/error/ErrorMessage' -import {Text} from '../util/text/Text' import * as Toast from '../util/Toast' -import {ScrollView, TextInput} from './util' +import {Text} from '../util/text/Text' +import {s, colors, gradients} from 'lib/styles' +import {usePalette} from 'lib/hooks/usePalette' +import {useTheme} from 'lib/ThemeContext' +import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' +import {ErrorMessage} from '../util/error/ErrorMessage' +import {cleanError} from 'lib/strings/errors' +import {resetToTab} from '../../../Navigation' +import {Trans, msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {useModalControls} from '#/state/modals' +import {useSession, useSessionApi, getAgent} from '#/state/session' +import {isAndroid} from 'platform/detection' export const snapPoints = isAndroid ? ['90%'] : ['55%'] diff --git a/src/view/com/modals/EditImage.tsx b/src/view/com/modals/EditImage.tsx index 0b77a506a1..3b35ffee21 100644 --- a/src/view/com/modals/EditImage.tsx +++ b/src/view/com/modals/EditImage.tsx @@ -1,29 +1,27 @@ -import {MaterialIcons} from '@expo/vector-icons' -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {Slider} from '@miblanchard/react-native-slider' -import {MAX_ALT_TEXT} from 'lib/constants' -import {usePalette} from 'lib/hooks/usePalette' -import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {RectTallIcon, RectWideIcon, SquareIcon} from 'lib/icons' -import {enforceLen} from 'lib/strings/helpers' -import {gradients, s} from 'lib/styles' -import {useTheme} from 'lib/ThemeContext' -import {getKeys} from 'lib/type-assertions' -import {observer} from 'mobx-react-lite' import React, {useCallback, useEffect, useMemo, useRef, useState} from 'react' -import ImageEditor, {Position} from 'react-avatar-editor' import {Pressable, StyleSheet, View} from 'react-native' +import {usePalette} from 'lib/hooks/usePalette' import {useWindowDimensions} from 'react-native' +import {gradients, s} from 'lib/styles' +import {useTheme} from 'lib/ThemeContext' +import {Text} from '../util/text/Text' import LinearGradient from 'react-native-linear-gradient' +import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' +import ImageEditor, {Position} from 'react-avatar-editor' +import {TextInput} from './util' +import {enforceLen} from 'lib/strings/helpers' +import {MAX_ALT_TEXT} from 'lib/constants' import {GalleryModel} from 'state/models/media/gallery' import {ImageModel} from 'state/models/media/image' - +import {SquareIcon, RectWideIcon, RectTallIcon} from 'lib/icons' +import {Slider} from '@miblanchard/react-native-slider' +import {MaterialIcons} from '@expo/vector-icons' +import {observer} from 'mobx-react-lite' +import {getKeys} from 'lib/type-assertions' +import {Trans, msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' import {useModalControls} from '#/state/modals' -import {Text} from '../util/text/Text' -import {TextInput} from './util' - export const snapPoints = ['80%'] const RATIOS = { diff --git a/src/view/com/modals/EditProfile.tsx b/src/view/com/modals/EditProfile.tsx index 7e11e6bbc2..097b7b0d1b 100644 --- a/src/view/com/modals/EditProfile.tsx +++ b/src/view/com/modals/EditProfile.tsx @@ -1,16 +1,5 @@ -import {AppBskyActorDefs} from '@atproto/api' -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {useAnalytics} from 'lib/analytics/analytics' -import {MAX_DESCRIPTION, MAX_DISPLAY_NAME} from 'lib/constants' -import {usePalette} from 'lib/hooks/usePalette' -import {compressIfNeeded} from 'lib/media/manip' -import {cleanError} from 'lib/strings/errors' -import {enforceLen} from 'lib/strings/helpers' -import {colors, gradients, s} from 'lib/styles' -import {useTheme} from 'lib/ThemeContext' -import {isWeb} from 'platform/detection' -import React, {useCallback, useState} from 'react' +import React, {useState, useCallback} from 'react' +import * as Toast from '../util/Toast' import { ActivityIndicator, KeyboardAvoidingView, @@ -20,19 +9,28 @@ import { TouchableOpacity, View, } from 'react-native' -import {Image as RNImage} from 'react-native-image-crop-picker' import LinearGradient from 'react-native-linear-gradient' +import {Image as RNImage} from 'react-native-image-crop-picker' +import {AppBskyActorDefs} from '@atproto/api' +import {Text} from '../util/text/Text' +import {ErrorMessage} from '../util/error/ErrorMessage' +import {s, colors, gradients} from 'lib/styles' +import {enforceLen} from 'lib/strings/helpers' +import {MAX_DISPLAY_NAME, MAX_DESCRIPTION} from 'lib/constants' +import {compressIfNeeded} from 'lib/media/manip' +import {UserBanner} from '../util/UserBanner' +import {EditableUserAvatar} from '../util/UserAvatar' +import {usePalette} from 'lib/hooks/usePalette' +import {useTheme} from 'lib/ThemeContext' +import {useAnalytics} from 'lib/analytics/analytics' +import {cleanError} from 'lib/strings/errors' import Animated, {FadeOut} from 'react-native-reanimated' - -import {logger} from '#/logger' +import {isWeb} from 'platform/detection' +import {Trans, msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' import {useModalControls} from '#/state/modals' import {useProfileUpdateMutation} from '#/state/queries/profile' - -import {ErrorMessage} from '../util/error/ErrorMessage' -import {Text} from '../util/text/Text' -import * as Toast from '../util/Toast' -import {EditableUserAvatar} from '../util/UserAvatar' -import {UserBanner} from '../util/UserBanner' +import {logger} from '#/logger' const AnimatedTouchableOpacity = Animated.createAnimatedComponent(TouchableOpacity) diff --git a/src/view/com/modals/EmbedConsent.tsx b/src/view/com/modals/EmbedConsent.tsx index 9eaaf082a0..04104c52e1 100644 --- a/src/view/com/modals/EmbedConsent.tsx +++ b/src/view/com/modals/EmbedConsent.tsx @@ -1,22 +1,20 @@ -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {usePalette} from 'lib/hooks/usePalette' -import {colors, gradients, s} from 'lib/styles' import React from 'react' import {StyleSheet, TouchableOpacity, View} from 'react-native' import LinearGradient from 'react-native-linear-gradient' - -import {useWebMediaQueries} from '#/lib/hooks/useWebMediaQueries' +import {s, colors, gradients} from 'lib/styles' +import {Text} from '../util/text/Text' +import {ScrollView} from './util' +import {usePalette} from 'lib/hooks/usePalette' import { EmbedPlayerSource, embedPlayerSources, externalEmbedLabels, } from '#/lib/strings/embed-player' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' import {useModalControls} from '#/state/modals' import {useSetExternalEmbedPref} from '#/state/preferences/external-embeds-prefs' - -import {Text} from '../util/text/Text' -import {ScrollView} from './util' +import {useWebMediaQueries} from '#/lib/hooks/useWebMediaQueries' export const snapPoints = [450] diff --git a/src/view/com/modals/InAppBrowserConsent.tsx b/src/view/com/modals/InAppBrowserConsent.tsx index cc19037571..86bb46ca81 100644 --- a/src/view/com/modals/InAppBrowserConsent.tsx +++ b/src/view/com/modals/InAppBrowserConsent.tsx @@ -1,20 +1,20 @@ -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {usePalette} from 'lib/hooks/usePalette' -import {s} from 'lib/styles' import React from 'react' import {StyleSheet, View} from 'react-native' +import {s} from 'lib/styles' +import {Text} from '../util/text/Text' +import {Button} from '../util/forms/Button' +import {ScrollView} from './util' +import {usePalette} from 'lib/hooks/usePalette' + +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' import {useModalControls} from '#/state/modals' import { useOpenLink, useSetInAppBrowser, } from '#/state/preferences/in-app-browser' -import {Button} from '../util/forms/Button' -import {Text} from '../util/text/Text' -import {ScrollView} from './util' - export const snapPoints = [350] export function Component({href}: {href: string}) { diff --git a/src/view/com/modals/InviteCodes.tsx b/src/view/com/modals/InviteCodes.tsx index 80155e2280..c0318df015 100644 --- a/src/view/com/modals/InviteCodes.tsx +++ b/src/view/com/modals/InviteCodes.tsx @@ -1,38 +1,36 @@ +import React from 'react' +import { + StyleSheet, + TouchableOpacity, + View, + ActivityIndicator, +} from 'react-native' import {ComAtprotoServerDefs} from '@atproto/api' import { FontAwesomeIcon, FontAwesomeIconStyle, } from '@fortawesome/react-native-fontawesome' -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' import Clipboard from '@react-native-clipboard/clipboard' +import {Text} from '../util/text/Text' +import {Button} from '../util/forms/Button' +import * as Toast from '../util/Toast' +import {ScrollView} from './util' import {usePalette} from 'lib/hooks/usePalette' +import {isWeb} from 'platform/detection' import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' +import {Trans, msg} from '@lingui/macro' import {cleanError} from 'lib/strings/errors' -import {isWeb} from 'platform/detection' -import React from 'react' -import { - ActivityIndicator, - StyleSheet, - TouchableOpacity, - View, -} from 'react-native' - -import {makeProfileLink} from '#/lib/routes/links' -import {useInvitesAPI, useInvitesState} from '#/state/invites' import {useModalControls} from '#/state/modals' +import {useInvitesState, useInvitesAPI} from '#/state/invites' +import {UserInfoText} from '../util/UserInfoText' +import {makeProfileLink} from '#/lib/routes/links' +import {Link} from '../util/Link' +import {ErrorMessage} from '../util/error/ErrorMessage' import { - InviteCodesQueryResponse, useInviteCodesQuery, + InviteCodesQueryResponse, } from '#/state/queries/invites' - -import {ErrorMessage} from '../util/error/ErrorMessage' -import {Button} from '../util/forms/Button' -import {Link} from '../util/Link' -import {Text} from '../util/text/Text' -import * as Toast from '../util/Toast' -import {UserInfoText} from '../util/UserInfoText' -import {ScrollView} from './util' +import {useLingui} from '@lingui/react' export const snapPoints = ['70%'] diff --git a/src/view/com/modals/LinkWarning.tsx b/src/view/com/modals/LinkWarning.tsx index 1d0f1bda67..81fdc72853 100644 --- a/src/view/com/modals/LinkWarning.tsx +++ b/src/view/com/modals/LinkWarning.tsx @@ -1,21 +1,19 @@ +import React from 'react' +import {SafeAreaView, StyleSheet, View} from 'react-native' +import {ScrollView} from './util' import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' +import {Text} from '../util/text/Text' +import {Button} from '../util/forms/Button' +import {s, colors} from 'lib/styles' import {usePalette} from 'lib/hooks/usePalette' +import {isWeb} from 'platform/detection' import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' import {isPossiblyAUrl, splitApexDomain} from 'lib/strings/url-helpers' -import {colors, s} from 'lib/styles' -import {isWeb} from 'platform/detection' -import React from 'react' -import {SafeAreaView, StyleSheet, View} from 'react-native' - +import {Trans, msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' import {useModalControls} from '#/state/modals' import {useOpenLink} from '#/state/preferences/in-app-browser' -import {Button} from '../util/forms/Button' -import {Text} from '../util/text/Text' -import {ScrollView} from './util' - export const snapPoints = ['50%'] export function Component({text, href}: {text: string; href: string}) { diff --git a/src/view/com/modals/ListAddRemoveUsers.tsx b/src/view/com/modals/ListAddRemoveUsers.tsx index eae746d2bf..27c33f806c 100644 --- a/src/view/com/modals/ListAddRemoveUsers.tsx +++ b/src/view/com/modals/ListAddRemoveUsers.tsx @@ -1,15 +1,3 @@ -import {AppBskyActorDefs, AppBskyGraphDefs} from '@atproto/api' -import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {useIsKeyboardVisible} from 'lib/hooks/useIsKeyboardVisible' -import {usePalette} from 'lib/hooks/usePalette' -import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {sanitizeDisplayName} from 'lib/strings/display-names' -import {cleanError} from 'lib/strings/errors' -import {sanitizeHandle} from 'lib/strings/handles' -import {colors, s} from 'lib/styles' -import {isWeb} from 'platform/detection' import React, {useCallback, useState} from 'react' import { ActivityIndicator, @@ -18,23 +6,33 @@ import { StyleSheet, View, } from 'react-native' - +import {AppBskyActorDefs, AppBskyGraphDefs} from '@atproto/api' +import {ScrollView, TextInput} from './util' +import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' +import {Text} from '../util/text/Text' +import {Button} from '../util/forms/Button' +import {UserAvatar} from '../util/UserAvatar' +import * as Toast from '../util/Toast' +import {s, colors} from 'lib/styles' +import {usePalette} from 'lib/hooks/usePalette' +import {isWeb} from 'platform/detection' +import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' +import {useIsKeyboardVisible} from 'lib/hooks/useIsKeyboardVisible' +import {cleanError} from 'lib/strings/errors' +import {sanitizeDisplayName} from 'lib/strings/display-names' +import {sanitizeHandle} from 'lib/strings/handles' import {HITSLOP_20} from '#/lib/constants' +import {Trans, msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' import {useModalControls} from '#/state/modals' -import {useActorAutocompleteQuery} from '#/state/queries/actor-autocomplete' import { + useDangerousListMembershipsQuery, getMembership, ListMembersip, - useDangerousListMembershipsQuery, useListMembershipAddMutation, useListMembershipRemoveMutation, } from '#/state/queries/list-memberships' - -import {Button} from '../util/forms/Button' -import {Text} from '../util/text/Text' -import * as Toast from '../util/Toast' -import {UserAvatar} from '../util/UserAvatar' -import {ScrollView, TextInput} from './util' +import {useActorAutocompleteQuery} from '#/state/queries/actor-autocomplete' export const snapPoints = ['90%'] diff --git a/src/view/com/modals/Modal.tsx b/src/view/com/modals/Modal.tsx index fb0ea471d7..100444ff58 100644 --- a/src/view/com/modals/Modal.tsx +++ b/src/view/com/modals/Modal.tsx @@ -1,40 +1,39 @@ -import BottomSheet from '@gorhom/bottom-sheet' -import {usePalette} from 'lib/hooks/usePalette' -import React, {useEffect, useRef} from 'react' +import React, {useRef, useEffect} from 'react' import {StyleSheet} from 'react-native' import {SafeAreaView} from 'react-native-safe-area-context' - -import {useModalControls, useModals} from '#/state/modals' - +import BottomSheet from '@gorhom/bottom-sheet' import {createCustomBackdrop} from '../util/BottomSheetCustomBackdrop' -import * as AddAppPassword from './AddAppPasswords' +import {usePalette} from 'lib/hooks/usePalette' + +import {useModals, useModalControls} from '#/state/modals' +import * as ConfirmModal from './Confirm' +import * as EditProfileModal from './EditProfile' +import * as RepostModal from './Repost' +import * as SelfLabelModal from './SelfLabel' +import * as ThreadgateModal from './Threadgate' +import * as CreateOrEditListModal from './CreateOrEditList' +import * as UserAddRemoveListsModal from './UserAddRemoveLists' +import * as ListAddUserModal from './ListAddRemoveUsers' import * as AltImageModal from './AltImage' import * as EditImageModal from './AltImage' +import * as ReportModal from './report/Modal' import * as AppealLabelModal from './AppealLabel' -import * as BirthDateSettingsModal from './BirthDateSettings' -import * as ChangeEmailModal from './ChangeEmail' -import * as ChangeHandleModal from './ChangeHandle' -import * as ChangePasswordModal from './ChangePassword' -import * as ConfirmModal from './Confirm' -import * as ContentFilteringSettingsModal from './ContentFilteringSettings' -import * as CreateOrEditListModal from './CreateOrEditList' import * as DeleteAccountModal from './DeleteAccount' -import * as EditProfileModal from './EditProfile' -import * as EmbedConsentModal from './EmbedConsent' -import * as InAppBrowserConsentModal from './InAppBrowserConsent' +import * as ChangeHandleModal from './ChangeHandle' import * as InviteCodesModal from './InviteCodes' +import * as AddAppPassword from './AddAppPasswords' +import * as ContentFilteringSettingsModal from './ContentFilteringSettings' import * as ContentLanguagesSettingsModal from './lang-settings/ContentLanguagesSettings' import * as PostLanguagesSettingsModal from './lang-settings/PostLanguagesSettings' -import * as LinkWarningModal from './LinkWarning' -import * as ListAddUserModal from './ListAddRemoveUsers' import * as ModerationDetailsModal from './ModerationDetails' -import * as ReportModal from './report/Modal' -import * as RepostModal from './Repost' -import * as SelfLabelModal from './SelfLabel' -import * as SwitchAccountModal from './SwitchAccount' -import * as ThreadgateModal from './Threadgate' -import * as UserAddRemoveListsModal from './UserAddRemoveLists' +import * as BirthDateSettingsModal from './BirthDateSettings' import * as VerifyEmailModal from './VerifyEmail' +import * as ChangeEmailModal from './ChangeEmail' +import * as ChangePasswordModal from './ChangePassword' +import * as SwitchAccountModal from './SwitchAccount' +import * as LinkWarningModal from './LinkWarning' +import * as EmbedConsentModal from './EmbedConsent' +import * as InAppBrowserConsentModal from './InAppBrowserConsent' const DEFAULT_SNAPPOINTS = ['90%'] const HANDLE_HEIGHT = 24 diff --git a/src/view/com/modals/Modal.web.tsx b/src/view/com/modals/Modal.web.tsx index 295942dd67..0ced894a17 100644 --- a/src/view/com/modals/Modal.web.tsx +++ b/src/view/com/modals/Modal.web.tsx @@ -1,40 +1,39 @@ -import {usePalette} from 'lib/hooks/usePalette' -import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' import React from 'react' -import {StyleSheet, TouchableWithoutFeedback, View} from 'react-native' +import {TouchableWithoutFeedback, StyleSheet, View} from 'react-native' import Animated, {FadeIn, FadeOut} from 'react-native-reanimated' - +import {usePalette} from 'lib/hooks/usePalette' +import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' import {useWebBodyScrollLock} from '#/lib/hooks/useWebBodyScrollLock' -import type {Modal as ModalIface} from '#/state/modals' -import {useModalControls, useModals} from '#/state/modals' -import * as AddAppPassword from './AddAppPasswords' -import * as AltTextImageModal from './AltImage' -import * as AppealLabelModal from './AppealLabel' -import * as BirthDateSettingsModal from './BirthDateSettings' -import * as ChangeEmailModal from './ChangeEmail' -import * as ChangeHandleModal from './ChangeHandle' -import * as ChangePasswordModal from './ChangePassword' +import {useModals, useModalControls} from '#/state/modals' +import type {Modal as ModalIface} from '#/state/modals' import * as ConfirmModal from './Confirm' -import * as ContentFilteringSettingsModal from './ContentFilteringSettings' +import * as EditProfileModal from './EditProfile' +import * as ReportModal from './report/Modal' +import * as AppealLabelModal from './AppealLabel' import * as CreateOrEditListModal from './CreateOrEditList' -import * as CropImageModal from './crop-image/CropImage.web' +import * as UserAddRemoveLists from './UserAddRemoveLists' +import * as ListAddUserModal from './ListAddRemoveUsers' import * as DeleteAccountModal from './DeleteAccount' +import * as RepostModal from './Repost' +import * as SelfLabelModal from './SelfLabel' +import * as ThreadgateModal from './Threadgate' +import * as CropImageModal from './crop-image/CropImage.web' +import * as AltTextImageModal from './AltImage' import * as EditImageModal from './EditImage' -import * as EditProfileModal from './EditProfile' -import * as EmbedConsentModal from './EmbedConsent' +import * as ChangeHandleModal from './ChangeHandle' import * as InviteCodesModal from './InviteCodes' +import * as AddAppPassword from './AddAppPasswords' +import * as ContentFilteringSettingsModal from './ContentFilteringSettings' import * as ContentLanguagesSettingsModal from './lang-settings/ContentLanguagesSettings' import * as PostLanguagesSettingsModal from './lang-settings/PostLanguagesSettings' -import * as LinkWarningModal from './LinkWarning' -import * as ListAddUserModal from './ListAddRemoveUsers' import * as ModerationDetailsModal from './ModerationDetails' -import * as ReportModal from './report/Modal' -import * as RepostModal from './Repost' -import * as SelfLabelModal from './SelfLabel' -import * as ThreadgateModal from './Threadgate' -import * as UserAddRemoveLists from './UserAddRemoveLists' +import * as BirthDateSettingsModal from './BirthDateSettings' import * as VerifyEmailModal from './VerifyEmail' +import * as ChangeEmailModal from './ChangeEmail' +import * as ChangePasswordModal from './ChangePassword' +import * as LinkWarningModal from './LinkWarning' +import * as EmbedConsentModal from './EmbedConsent' export function ModalsContainer() { const {isModalActive, activeModals} = useModals() diff --git a/src/view/com/modals/ModerationDetails.tsx b/src/view/com/modals/ModerationDetails.tsx index 77b7628e6f..f890d50dce 100644 --- a/src/view/com/modals/ModerationDetails.tsx +++ b/src/view/com/modals/ModerationDetails.tsx @@ -1,19 +1,17 @@ +import React from 'react' +import {StyleSheet, View} from 'react-native' import {ModerationUI} from '@atproto/api' -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {usePalette} from 'lib/hooks/usePalette' import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {listUriToHref} from 'lib/strings/url-helpers' import {s} from 'lib/styles' +import {Text} from '../util/text/Text' +import {TextLink} from '../util/Link' +import {usePalette} from 'lib/hooks/usePalette' import {isWeb} from 'platform/detection' -import React from 'react' -import {StyleSheet, View} from 'react-native' - -import {useModalControls} from '#/state/modals' - +import {listUriToHref} from 'lib/strings/url-helpers' import {Button} from '../util/forms/Button' -import {TextLink} from '../util/Link' -import {Text} from '../util/text/Text' +import {useModalControls} from '#/state/modals' +import {useLingui} from '@lingui/react' +import {Trans, msg} from '@lingui/macro' export const snapPoints = [300] diff --git a/src/view/com/modals/Repost.tsx b/src/view/com/modals/Repost.tsx index a052979dd1..6e4881adcd 100644 --- a/src/view/com/modals/Repost.tsx +++ b/src/view/com/modals/Repost.tsx @@ -1,16 +1,14 @@ -import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {usePalette} from 'lib/hooks/usePalette' -import {RepostIcon} from 'lib/icons' -import {colors, gradients, s} from 'lib/styles' import React from 'react' import {StyleSheet, TouchableOpacity, View} from 'react-native' import LinearGradient from 'react-native-linear-gradient' - -import {useModalControls} from '#/state/modals' - +import {s, colors, gradients} from 'lib/styles' import {Text} from '../util/text/Text' +import {usePalette} from 'lib/hooks/usePalette' +import {RepostIcon} from 'lib/icons' +import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' +import {Trans, msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {useModalControls} from '#/state/modals' export const snapPoints = [250] diff --git a/src/view/com/modals/SelfLabel.tsx b/src/view/com/modals/SelfLabel.tsx index a79a90d372..779a9e71b3 100644 --- a/src/view/com/modals/SelfLabel.tsx +++ b/src/view/com/modals/SelfLabel.tsx @@ -1,18 +1,16 @@ -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' +import React, {useState} from 'react' +import {StyleSheet, TouchableOpacity, View} from 'react-native' +import {Text} from '../util/text/Text' +import {s, colors} from 'lib/styles' import {usePalette} from 'lib/hooks/usePalette' import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {colors, s} from 'lib/styles' import {isWeb} from 'platform/detection' -import React, {useState} from 'react' -import {StyleSheet, TouchableOpacity, View} from 'react-native' -import {ScrollView} from 'view/com/modals/util' - -import {useModalControls} from '#/state/modals' - import {Button} from '../util/forms/Button' import {SelectableBtn} from '../util/forms/SelectableBtn' -import {Text} from '../util/text/Text' +import {ScrollView} from 'view/com/modals/util' +import {Trans, msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {useModalControls} from '#/state/modals' const ADULT_CONTENT_LABELS = ['sexual', 'nudity', 'porn'] diff --git a/src/view/com/modals/SwitchAccount.tsx b/src/view/com/modals/SwitchAccount.tsx index 220aba43f4..c034c4b528 100644 --- a/src/view/com/modals/SwitchAccount.tsx +++ b/src/view/com/modals/SwitchAccount.tsx @@ -1,12 +1,3 @@ -import {BottomSheetScrollView} from '@gorhom/bottom-sheet' -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {useAnalytics} from 'lib/analytics/analytics' -import {Haptics} from 'lib/haptics' -import {useAccountSwitcher} from 'lib/hooks/useAccountSwitcher' -import {usePalette} from 'lib/hooks/usePalette' -import {makeProfileLink} from 'lib/routes/links' -import {s} from 'lib/styles' import React from 'react' import { ActivityIndicator, @@ -14,15 +5,22 @@ import { TouchableOpacity, View, } from 'react-native' - -import {useProfileQuery} from '#/state/queries/profile' -import {SessionAccount, useSession, useSessionApi} from '#/state/session' -import {useCloseAllActiveElements} from '#/state/util' - -import {AccountDropdownBtn} from '../util/AccountDropdownBtn' -import {Link} from '../util/Link' import {Text} from '../util/text/Text' +import {s} from 'lib/styles' +import {usePalette} from 'lib/hooks/usePalette' +import {useAnalytics} from 'lib/analytics/analytics' +import {useAccountSwitcher} from 'lib/hooks/useAccountSwitcher' import {UserAvatar} from '../util/UserAvatar' +import {AccountDropdownBtn} from '../util/AccountDropdownBtn' +import {Link} from '../util/Link' +import {makeProfileLink} from 'lib/routes/links' +import {BottomSheetScrollView} from '@gorhom/bottom-sheet' +import {Haptics} from 'lib/haptics' +import {Trans, msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {useSession, useSessionApi, SessionAccount} from '#/state/session' +import {useProfileQuery} from '#/state/queries/profile' +import {useCloseAllActiveElements} from '#/state/util' export const snapPoints = ['40%', '90%'] diff --git a/src/view/com/modals/Threadgate.tsx b/src/view/com/modals/Threadgate.tsx index b7661c4287..0e49fc2f35 100644 --- a/src/view/com/modals/Threadgate.tsx +++ b/src/view/com/modals/Threadgate.tsx @@ -1,10 +1,3 @@ -import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {usePalette} from 'lib/hooks/usePalette' -import {colors, s} from 'lib/styles' -import isEqual from 'lodash.isequal' -import {isWeb} from 'platform/detection' import React, {useState} from 'react' import { Pressable, @@ -14,13 +7,18 @@ import { View, ViewStyle, } from 'react-native' +import {Text} from '../util/text/Text' +import {s, colors} from 'lib/styles' +import {usePalette} from 'lib/hooks/usePalette' +import {isWeb} from 'platform/detection' import {ScrollView} from 'view/com/modals/util' - +import {Trans, msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' import {useModalControls} from '#/state/modals' -import {useMyListsQuery} from '#/state/queries/my-lists' import {ThreadgateSetting} from '#/state/queries/threadgate' - -import {Text} from '../util/text/Text' +import {useMyListsQuery} from '#/state/queries/my-lists' +import isEqual from 'lodash.isequal' +import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' export const snapPoints = ['60%'] diff --git a/src/view/com/modals/UserAddRemoveLists.tsx b/src/view/com/modals/UserAddRemoveLists.tsx index ff5dfea1d3..8452f25133 100644 --- a/src/view/com/modals/UserAddRemoveLists.tsx +++ b/src/view/com/modals/UserAddRemoveLists.tsx @@ -1,11 +1,3 @@ -import {AppBskyGraphDefs as GraphDefs} from '@atproto/api' -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {usePalette} from 'lib/hooks/usePalette' -import {sanitizeDisplayName} from 'lib/strings/display-names' -import {sanitizeHandle} from 'lib/strings/handles' -import {s} from 'lib/styles' -import {isAndroid, isMobileWeb, isWeb} from 'platform/detection' import React, {useCallback} from 'react' import { ActivityIndicator, @@ -13,24 +5,30 @@ import { useWindowDimensions, View, } from 'react-native' - -import {cleanError} from '#/lib/strings/errors' +import {AppBskyGraphDefs as GraphDefs} from '@atproto/api' +import {Text} from '../util/text/Text' +import {UserAvatar} from '../util/UserAvatar' +import {MyLists} from '../lists/MyLists' +import {Button} from '../util/forms/Button' +import * as Toast from '../util/Toast' +import {sanitizeDisplayName} from 'lib/strings/display-names' +import {sanitizeHandle} from 'lib/strings/handles' +import {s} from 'lib/styles' +import {usePalette} from 'lib/hooks/usePalette' +import {isWeb, isAndroid, isMobileWeb} from 'platform/detection' +import {Trans, msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' import {useModalControls} from '#/state/modals' import { + useDangerousListMembershipsQuery, getMembership, ListMembersip, - useDangerousListMembershipsQuery, useListMembershipAddMutation, useListMembershipRemoveMutation, } from '#/state/queries/list-memberships' +import {cleanError} from '#/lib/strings/errors' import {useSession} from '#/state/session' -import {MyLists} from '../lists/MyLists' -import {Button} from '../util/forms/Button' -import {Text} from '../util/text/Text' -import * as Toast from '../util/Toast' -import {UserAvatar} from '../util/UserAvatar' - export const snapPoints = ['fullscreen'] export function Component({ diff --git a/src/view/com/modals/VerifyEmail.tsx b/src/view/com/modals/VerifyEmail.tsx index 8c8c64ad92..30a57afc58 100644 --- a/src/view/com/modals/VerifyEmail.tsx +++ b/src/view/com/modals/VerifyEmail.tsx @@ -1,11 +1,3 @@ -import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {usePalette} from 'lib/hooks/usePalette' -import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {cleanError} from 'lib/strings/errors' -import {colors, s} from 'lib/styles' -import {isWeb} from 'platform/detection' import React, {useState} from 'react' import { ActivityIndicator, @@ -14,17 +6,23 @@ import { StyleSheet, View, } from 'react-native' -import {Circle, Path, Svg} from 'react-native-svg' - -import {logger} from '#/logger' -import {useModalControls} from '#/state/modals' -import {getAgent, useSession, useSessionApi} from '#/state/session' - -import {ErrorMessage} from '../util/error/ErrorMessage' -import {Button} from '../util/forms/Button' +import {Svg, Circle, Path} from 'react-native-svg' +import {ScrollView, TextInput} from './util' +import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' import {Text} from '../util/text/Text' +import {Button} from '../util/forms/Button' +import {ErrorMessage} from '../util/error/ErrorMessage' import * as Toast from '../util/Toast' -import {ScrollView, TextInput} from './util' +import {s, colors} from 'lib/styles' +import {usePalette} from 'lib/hooks/usePalette' +import {isWeb} from 'platform/detection' +import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' +import {cleanError} from 'lib/strings/errors' +import {Trans, msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {useModalControls} from '#/state/modals' +import {useSession, useSessionApi, getAgent} from '#/state/session' +import {logger} from '#/logger' export const snapPoints = ['90%'] diff --git a/src/view/com/modals/crop-image/CropImage.web.tsx b/src/view/com/modals/crop-image/CropImage.web.tsx index 9c42d9532f..6f094a1fdf 100644 --- a/src/view/com/modals/crop-image/CropImage.web.tsx +++ b/src/view/com/modals/crop-image/CropImage.web.tsx @@ -1,18 +1,17 @@ -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {Slider} from '@miblanchard/react-native-slider' -import {usePalette} from 'lib/hooks/usePalette' -import {RectTallIcon, RectWideIcon, SquareIcon} from 'lib/icons' -import {Dimensions} from 'lib/media/types' -import {getDataUriSize} from 'lib/media/util' -import {gradients, s} from 'lib/styles' import React from 'react' -import ImageEditor from 'react-avatar-editor' import {StyleSheet, TouchableOpacity, View} from 'react-native' -import {Image as RNImage} from 'react-native-image-crop-picker' +import ImageEditor from 'react-avatar-editor' +import {Slider} from '@miblanchard/react-native-slider' import LinearGradient from 'react-native-linear-gradient' import {Text} from 'view/com/util/text/Text' - +import {Dimensions} from 'lib/media/types' +import {getDataUriSize} from 'lib/media/util' +import {s, gradients} from 'lib/styles' +import {usePalette} from 'lib/hooks/usePalette' +import {SquareIcon, RectWideIcon, RectTallIcon} from 'lib/icons' +import {Image as RNImage} from 'react-native-image-crop-picker' +import {Trans, msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' import {useModalControls} from '#/state/modals' enum AspectRatio { diff --git a/src/view/com/modals/lang-settings/ConfirmLanguagesButton.tsx b/src/view/com/modals/lang-settings/ConfirmLanguagesButton.tsx index ce462d072e..91e11a19ca 100644 --- a/src/view/com/modals/lang-settings/ConfirmLanguagesButton.tsx +++ b/src/view/com/modals/lang-settings/ConfirmLanguagesButton.tsx @@ -1,11 +1,11 @@ -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {usePalette} from 'lib/hooks/usePalette' -import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {colors, gradients, s} from 'lib/styles' import React from 'react' -import {Pressable, StyleSheet, Text, View} from 'react-native' +import {StyleSheet, Text, View, Pressable} from 'react-native' import LinearGradient from 'react-native-linear-gradient' +import {s, colors, gradients} from 'lib/styles' +import {usePalette} from 'lib/hooks/usePalette' +import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' +import {Trans, msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' export const ConfirmLanguagesButton = ({ onPress, diff --git a/src/view/com/modals/lang-settings/ContentLanguagesSettings.tsx b/src/view/com/modals/lang-settings/ContentLanguagesSettings.tsx index 52863b2a8b..b8c125b65c 100644 --- a/src/view/com/modals/lang-settings/ContentLanguagesSettings.tsx +++ b/src/view/com/modals/lang-settings/ContentLanguagesSettings.tsx @@ -1,22 +1,20 @@ -import {Trans} from '@lingui/macro' +import React from 'react' +import {StyleSheet, View} from 'react-native' +import {ScrollView} from '../util' +import {Text} from '../../util/text/Text' import {usePalette} from 'lib/hooks/usePalette' import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' import {deviceLocales} from 'platform/detection' -import React from 'react' -import {StyleSheet, View} from 'react-native' - +import {LANGUAGES, LANGUAGES_MAP_CODE2} from '../../../../locale/languages' +import {LanguageToggle} from './LanguageToggle' +import {ConfirmLanguagesButton} from './ConfirmLanguagesButton' +import {Trans} from '@lingui/macro' import {useModalControls} from '#/state/modals' import { useLanguagePrefs, useLanguagePrefsApi, } from '#/state/preferences/languages' -import {LANGUAGES, LANGUAGES_MAP_CODE2} from '../../../../locale/languages' -import {Text} from '../../util/text/Text' -import {ScrollView} from '../util' -import {ConfirmLanguagesButton} from './ConfirmLanguagesButton' -import {LanguageToggle} from './LanguageToggle' - export const snapPoints = ['100%'] export function Component({}: {}) { diff --git a/src/view/com/modals/lang-settings/LanguageToggle.tsx b/src/view/com/modals/lang-settings/LanguageToggle.tsx index 3d65137018..45b100f201 100644 --- a/src/view/com/modals/lang-settings/LanguageToggle.tsx +++ b/src/view/com/modals/lang-settings/LanguageToggle.tsx @@ -1,9 +1,8 @@ -import {usePalette} from 'lib/hooks/usePalette' import React from 'react' import {StyleSheet} from 'react-native' +import {usePalette} from 'lib/hooks/usePalette' import {ToggleButton} from 'view/com/util/forms/ToggleButton' - -import {toPostLanguages, useLanguagePrefs} from '#/state/preferences/languages' +import {useLanguagePrefs, toPostLanguages} from '#/state/preferences/languages' export function LanguageToggle({ code2, diff --git a/src/view/com/modals/lang-settings/PostLanguagesSettings.tsx b/src/view/com/modals/lang-settings/PostLanguagesSettings.tsx index 49a209759b..05cfb81156 100644 --- a/src/view/com/modals/lang-settings/PostLanguagesSettings.tsx +++ b/src/view/com/modals/lang-settings/PostLanguagesSettings.tsx @@ -1,23 +1,21 @@ -import {Trans} from '@lingui/macro' +import React from 'react' +import {StyleSheet, View} from 'react-native' +import {ScrollView} from '../util' +import {Text} from '../../util/text/Text' import {usePalette} from 'lib/hooks/usePalette' import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' import {deviceLocales} from 'platform/detection' -import React from 'react' -import {StyleSheet, View} from 'react-native' +import {LANGUAGES, LANGUAGES_MAP_CODE2} from '../../../../locale/languages' +import {ConfirmLanguagesButton} from './ConfirmLanguagesButton' import {ToggleButton} from 'view/com/util/forms/ToggleButton' - +import {Trans} from '@lingui/macro' import {useModalControls} from '#/state/modals' import { - hasPostLanguage, useLanguagePrefs, useLanguagePrefsApi, + hasPostLanguage, } from '#/state/preferences/languages' -import {LANGUAGES, LANGUAGES_MAP_CODE2} from '../../../../locale/languages' -import {Text} from '../../util/text/Text' -import {ScrollView} from '../util' -import {ConfirmLanguagesButton} from './ConfirmLanguagesButton' - export const snapPoints = ['100%'] export function Component() { diff --git a/src/view/com/modals/report/InputIssueDetails.tsx b/src/view/com/modals/report/InputIssueDetails.tsx index e353da56f3..2bc86f75e7 100644 --- a/src/view/com/modals/report/InputIssueDetails.tsx +++ b/src/view/com/modals/report/InputIssueDetails.tsx @@ -1,16 +1,15 @@ +import React from 'react' +import {View, TouchableOpacity, StyleSheet} from 'react-native' +import {TextInput} from '../util' import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' +import {CharProgress} from '../../composer/char-progress/CharProgress' +import {Text} from '../../util/text/Text' import {usePalette} from 'lib/hooks/usePalette' import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' import {s} from 'lib/styles' -import React from 'react' -import {StyleSheet, TouchableOpacity, View} from 'react-native' - -import {CharProgress} from '../../composer/char-progress/CharProgress' -import {Text} from '../../util/text/Text' -import {TextInput} from '../util' import {SendReportButton} from './SendReportButton' +import {Trans, msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' export function InputIssueDetails({ details, diff --git a/src/view/com/modals/report/Modal.tsx b/src/view/com/modals/report/Modal.tsx index 3540b8b029..abbad9b402 100644 --- a/src/view/com/modals/report/Modal.tsx +++ b/src/view/com/modals/report/Modal.tsx @@ -1,24 +1,22 @@ +import React, {useState, useMemo} from 'react' +import {Linking, StyleSheet, TouchableOpacity, View} from 'react-native' +import {ScrollView} from 'react-native-gesture-handler' import {AtUri} from '@atproto/api' -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {usePalette} from 'lib/hooks/usePalette' import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {cleanError} from 'lib/strings/errors' import {s} from 'lib/styles' -import React, {useMemo, useState} from 'react' -import {Linking, StyleSheet, TouchableOpacity, View} from 'react-native' -import {ScrollView} from 'react-native-gesture-handler' - -import {useModalControls} from '#/state/modals' -import {getAgent} from '#/state/session' - -import {ErrorMessage} from '../../util/error/ErrorMessage' import {Text} from '../../util/text/Text' import * as Toast from '../../util/Toast' +import {ErrorMessage} from '../../util/error/ErrorMessage' +import {cleanError} from 'lib/strings/errors' +import {usePalette} from 'lib/hooks/usePalette' +import {SendReportButton} from './SendReportButton' import {InputIssueDetails} from './InputIssueDetails' import {ReportReasonOptions} from './ReasonOptions' -import {SendReportButton} from './SendReportButton' import {CollectionId} from './types' +import {Trans, msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {useModalControls} from '#/state/modals' +import {getAgent} from '#/state/session' const DMCA_LINK = 'https://bsky.social/about/support/copyright' diff --git a/src/view/com/modals/report/ReasonOptions.tsx b/src/view/com/modals/report/ReasonOptions.tsx index 3ed7bb79d1..23b49b6648 100644 --- a/src/view/com/modals/report/ReasonOptions.tsx +++ b/src/view/com/modals/report/ReasonOptions.tsx @@ -1,10 +1,10 @@ -import {AtUri, ComAtprotoModerationDefs} from '@atproto/api' -import {usePalette, UsePaletteValue} from 'lib/hooks/usePalette' -import React, {useMemo} from 'react' import {View} from 'react-native' -import {RadioGroup, RadioGroupItem} from 'view/com/util/forms/RadioGroup' +import React, {useMemo} from 'react' +import {AtUri, ComAtprotoModerationDefs} from '@atproto/api' import {Text} from '../../util/text/Text' +import {UsePaletteValue, usePalette} from 'lib/hooks/usePalette' +import {RadioGroup, RadioGroupItem} from 'view/com/util/forms/RadioGroup' import {CollectionId} from './types' type ReasonMap = Record diff --git a/src/view/com/modals/report/SendReportButton.tsx b/src/view/com/modals/report/SendReportButton.tsx index eeda20b84c..40c239bffe 100644 --- a/src/view/com/modals/report/SendReportButton.tsx +++ b/src/view/com/modals/report/SendReportButton.tsx @@ -1,16 +1,15 @@ -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {colors, gradients, s} from 'lib/styles' import React from 'react' +import LinearGradient from 'react-native-linear-gradient' import { ActivityIndicator, StyleSheet, TouchableOpacity, View, } from 'react-native' -import LinearGradient from 'react-native-linear-gradient' - import {Text} from '../../util/text/Text' +import {s, gradients, colors} from 'lib/styles' +import {Trans, msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' export function SendReportButton({ onPress, diff --git a/src/view/com/notifications/Feed.tsx b/src/view/com/notifications/Feed.tsx index bfce184368..dd439d4755 100644 --- a/src/view/com/notifications/Feed.tsx +++ b/src/view/com/notifications/Feed.tsx @@ -1,23 +1,21 @@ -import {msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {s} from 'lib/styles' import React from 'react' +import {CenteredView} from '../util/Views' import {ActivityIndicator, StyleSheet, View} from 'react-native' - -import {usePalette} from '#/lib/hooks/usePalette' -import {cleanError} from '#/lib/strings/errors' -import {logger} from '#/logger' +import {FeedItem} from './FeedItem' +import {NotificationFeedLoadingPlaceholder} from '../util/LoadingPlaceholder' +import {ErrorMessage} from '../util/error/ErrorMessage' +import {LoadMoreRetryBtn} from '../util/LoadMoreRetryBtn' +import {EmptyState} from '../util/EmptyState' +import {s} from 'lib/styles' import {useNotificationFeedQuery} from '#/state/queries/notifications/feed' import {useUnreadNotificationsApi} from '#/state/queries/notifications/unread' +import {logger} from '#/logger' +import {cleanError} from '#/lib/strings/errors' import {useModerationOpts} from '#/state/queries/preferences' - -import {EmptyState} from '../util/EmptyState' -import {ErrorMessage} from '../util/error/ErrorMessage' import {List, ListRef} from '../util/List' -import {NotificationFeedLoadingPlaceholder} from '../util/LoadingPlaceholder' -import {LoadMoreRetryBtn} from '../util/LoadMoreRetryBtn' -import {CenteredView} from '../util/Views' -import {FeedItem} from './FeedItem' +import {useLingui} from '@lingui/react' +import {msg} from '@lingui/macro' +import {usePalette} from '#/lib/hooks/usePalette' const EMPTY_FEED_ITEM = {_reactKey: '__empty__'} const LOAD_MORE_ERROR_ITEM = {_reactKey: '__load_more_error__'} diff --git a/src/view/com/notifications/FeedItem.tsx b/src/view/com/notifications/FeedItem.tsx index e5b3466b5b..45166fe3c3 100644 --- a/src/view/com/notifications/FeedItem.tsx +++ b/src/view/com/notifications/FeedItem.tsx @@ -1,11 +1,19 @@ +import React, {memo, useMemo, useState, useEffect} from 'react' +import { + Animated, + TouchableOpacity, + Pressable, + StyleSheet, + View, +} from 'react-native' import { AppBskyEmbedImages, - AppBskyEmbedRecordWithMedia, AppBskyFeedDefs, AppBskyFeedPost, - moderateProfile, ModerationOpts, ProfileModeration, + moderateProfile, + AppBskyEmbedRecordWithMedia, } from '@atproto/api' import {AtUri} from '@atproto/api' import { @@ -13,38 +21,28 @@ import { FontAwesomeIconStyle, Props, } from '@fortawesome/react-native-fontawesome' -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {useAnimatedValue} from 'lib/hooks/useAnimatedValue' -import {usePalette} from 'lib/hooks/usePalette' -import {HeartIconSolid} from 'lib/icons' -import {makeProfileLink} from 'lib/routes/links' +import {FeedNotification} from '#/state/queries/notifications/feed' +import {s, colors} from 'lib/styles' +import {niceDate} from 'lib/strings/time' import {sanitizeDisplayName} from 'lib/strings/display-names' import {sanitizeHandle} from 'lib/strings/handles' import {pluralize} from 'lib/strings/helpers' -import {niceDate} from 'lib/strings/time' -import {colors, s} from 'lib/styles' -import {isWeb} from 'platform/detection' -import React, {memo, useEffect, useMemo, useState} from 'react' -import { - Animated, - Pressable, - StyleSheet, - TouchableOpacity, - View, -} from 'react-native' - -import {FeedNotification} from '#/state/queries/notifications/feed' - -import {FeedSourceCard} from '../feeds/FeedSourceCard' -import {Post} from '../post/Post' +import {HeartIconSolid} from 'lib/icons' +import {Text} from '../util/text/Text' +import {UserAvatar, PreviewableUserAvatar} from '../util/UserAvatar' +import {UserPreviewLink} from '../util/UserPreviewLink' import {ImageHorzList} from '../util/images/ImageHorzList' +import {Post} from '../post/Post' import {Link, TextLink} from '../util/Link' +import {usePalette} from 'lib/hooks/usePalette' +import {useAnimatedValue} from 'lib/hooks/useAnimatedValue' import {formatCount} from '../util/numeric/format' -import {Text} from '../util/text/Text' +import {makeProfileLink} from 'lib/routes/links' import {TimeElapsed} from '../util/TimeElapsed' -import {PreviewableUserAvatar, UserAvatar} from '../util/UserAvatar' -import {UserPreviewLink} from '../util/UserPreviewLink' +import {isWeb} from 'platform/detection' +import {Trans, msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {FeedSourceCard} from '../feeds/FeedSourceCard' const MAX_AUTHORS = 5 diff --git a/src/view/com/pager/Pager.tsx b/src/view/com/pager/Pager.tsx index e17e25099b..06ec2e4503 100644 --- a/src/view/com/pager/Pager.tsx +++ b/src/view/com/pager/Pager.tsx @@ -1,11 +1,11 @@ -import {s} from 'lib/styles' import React, {forwardRef} from 'react' import {Animated, View} from 'react-native' import PagerView, { - PagerViewOnPageScrollEvent, PagerViewOnPageSelectedEvent, + PagerViewOnPageScrollEvent, PageScrollStateChangedNativeEvent, } from 'react-native-pager-view' +import {s} from 'lib/styles' export type PageSelectedEvent = PagerViewOnPageSelectedEvent const AnimatedPagerView = Animated.createAnimatedComponent(PagerView) diff --git a/src/view/com/pager/Pager.web.tsx b/src/view/com/pager/Pager.web.tsx index 2bad144910..42982ef7f8 100644 --- a/src/view/com/pager/Pager.web.tsx +++ b/src/view/com/pager/Pager.web.tsx @@ -1,7 +1,7 @@ -import {s} from 'lib/styles' import React from 'react' import {flushSync} from 'react-dom' import {View} from 'react-native' +import {s} from 'lib/styles' export interface RenderTabBarFnProps { selectedPage: number diff --git a/src/view/com/pager/PagerWithHeader.tsx b/src/view/com/pager/PagerWithHeader.tsx index 5317a77739..aa110682a2 100644 --- a/src/view/com/pager/PagerWithHeader.tsx +++ b/src/view/com/pager/PagerWithHeader.tsx @@ -1,28 +1,26 @@ import * as React from 'react' import { LayoutChangeEvent, - NativeScrollEvent, ScrollView, StyleSheet, View, + NativeScrollEvent, } from 'react-native' import Animated, { - AnimatedRef, + useAnimatedStyle, + useSharedValue, runOnJS, runOnUI, scrollTo, - SharedValue, useAnimatedRef, - useAnimatedStyle, - useSharedValue, + AnimatedRef, + SharedValue, } from 'react-native-reanimated' import {Pager, PagerRef, RenderTabBarFnProps} from 'view/com/pager/Pager' - +import {TabBar} from './TabBar' import {useNonReactiveCallback} from '#/lib/hooks/useNonReactiveCallback' -import {ScrollProvider} from '#/lib/ScrollContext' - import {ListMethods} from '../util/List' -import {TabBar} from './TabBar' +import {ScrollProvider} from '#/lib/ScrollContext' export interface PagerWithHeaderChildParams { headerHeight: number diff --git a/src/view/com/pager/PagerWithHeader.web.tsx b/src/view/com/pager/PagerWithHeader.web.tsx index 4c95aa8780..9c63c149fe 100644 --- a/src/view/com/pager/PagerWithHeader.web.tsx +++ b/src/view/com/pager/PagerWithHeader.web.tsx @@ -2,12 +2,10 @@ import * as React from 'react' import {FlatList, ScrollView, StyleSheet, View} from 'react-native' import {useAnimatedRef} from 'react-native-reanimated' import {Pager, PagerRef, RenderTabBarFnProps} from 'view/com/pager/Pager' - +import {TabBar} from './TabBar' import {usePalette} from '#/lib/hooks/usePalette' import {useWebMediaQueries} from '#/lib/hooks/useWebMediaQueries' - import {ListMethods} from '../util/List' -import {TabBar} from './TabBar' export interface PagerWithHeaderChildParams { headerHeight: number diff --git a/src/view/com/pager/TabBar.tsx b/src/view/com/pager/TabBar.tsx index db05237c54..ff8acd60cc 100644 --- a/src/view/com/pager/TabBar.tsx +++ b/src/view/com/pager/TabBar.tsx @@ -1,13 +1,11 @@ +import React, {useRef, useMemo, useEffect, useState, useCallback} from 'react' +import {StyleSheet, View, ScrollView, LayoutChangeEvent} from 'react-native' +import {Text} from '../util/text/Text' +import {PressableWithHover} from '../util/PressableWithHover' import {usePalette} from 'lib/hooks/usePalette' import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import React, {useCallback, useEffect, useMemo, useRef, useState} from 'react' -import {LayoutChangeEvent, ScrollView, StyleSheet, View} from 'react-native' - -import {isNative} from '#/platform/detection' - -import {PressableWithHover} from '../util/PressableWithHover' -import {Text} from '../util/text/Text' import {DraggableScrollView} from './DraggableScrollView' +import {isNative} from '#/platform/detection' export interface TabBarProps { testID?: string diff --git a/src/view/com/post-thread/PostLikedBy.tsx b/src/view/com/post-thread/PostLikedBy.tsx index 67ed3b3f53..55463dc137 100644 --- a/src/view/com/post-thread/PostLikedBy.tsx +++ b/src/view/com/post-thread/PostLikedBy.tsx @@ -1,17 +1,15 @@ -import {AppBskyFeedGetLikes as GetLikes} from '@atproto/api' import React, {useCallback, useMemo, useState} from 'react' import {ActivityIndicator, StyleSheet, View} from 'react-native' - -import {cleanError} from '#/lib/strings/errors' -import {logger} from '#/logger' -import {usePostLikedByQuery} from '#/state/queries/post-liked-by' -import {useResolveUriQuery} from '#/state/queries/resolve-uri' - -import {ProfileCardWithFollowBtn} from '../profile/ProfileCard' -import {ErrorMessage} from '../util/error/ErrorMessage' +import {AppBskyFeedGetLikes as GetLikes} from '@atproto/api' +import {CenteredView} from '../util/Views' import {List} from '../util/List' +import {ErrorMessage} from '../util/error/ErrorMessage' +import {ProfileCardWithFollowBtn} from '../profile/ProfileCard' +import {logger} from '#/logger' import {LoadingScreen} from '../util/LoadingScreen' -import {CenteredView} from '../util/Views' +import {useResolveUriQuery} from '#/state/queries/resolve-uri' +import {usePostLikedByQuery} from '#/state/queries/post-liked-by' +import {cleanError} from '#/lib/strings/errors' export function PostLikedBy({uri}: {uri: string}) { const [isPTRing, setIsPTRing] = useState(false) diff --git a/src/view/com/post-thread/PostRepostedBy.tsx b/src/view/com/post-thread/PostRepostedBy.tsx index 82c969235e..31a0be832d 100644 --- a/src/view/com/post-thread/PostRepostedBy.tsx +++ b/src/view/com/post-thread/PostRepostedBy.tsx @@ -1,17 +1,15 @@ -import {AppBskyActorDefs as ActorDefs} from '@atproto/api' -import React, {useCallback, useMemo, useState} from 'react' +import React, {useMemo, useCallback, useState} from 'react' import {ActivityIndicator, StyleSheet, View} from 'react-native' - -import {cleanError} from '#/lib/strings/errors' -import {logger} from '#/logger' -import {usePostRepostedByQuery} from '#/state/queries/post-reposted-by' -import {useResolveUriQuery} from '#/state/queries/resolve-uri' - +import {AppBskyActorDefs as ActorDefs} from '@atproto/api' +import {CenteredView} from '../util/Views' +import {List} from '../util/List' import {ProfileCardWithFollowBtn} from '../profile/ProfileCard' import {ErrorMessage} from '../util/error/ErrorMessage' -import {List} from '../util/List' +import {logger} from '#/logger' import {LoadingScreen} from '../util/LoadingScreen' -import {CenteredView} from '../util/Views' +import {useResolveUriQuery} from '#/state/queries/resolve-uri' +import {usePostRepostedByQuery} from '#/state/queries/post-reposted-by' +import {cleanError} from '#/lib/strings/errors' export function PostRepostedBy({uri}: {uri: string}) { const [isPTRing, setIsPTRing] = useState(false) diff --git a/src/view/com/post-thread/PostThread.tsx b/src/view/com/post-thread/PostThread.tsx index f022bdeacd..a7ee42a948 100644 --- a/src/view/com/post-thread/PostThread.tsx +++ b/src/view/com/post-thread/PostThread.tsx @@ -1,17 +1,3 @@ -import {AppBskyFeedDefs} from '@atproto/api' -import { - FontAwesomeIcon, - FontAwesomeIconStyle, -} from '@fortawesome/react-native-fontawesome' -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {useNavigation} from '@react-navigation/native' -import {usePalette} from 'lib/hooks/usePalette' -import {useSetTitle} from 'lib/hooks/useSetTitle' -import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {NavigationProp} from 'lib/routes/types' -import {sanitizeDisplayName} from 'lib/strings/display-names' -import {s} from 'lib/styles' import React, {useEffect, useRef} from 'react' import { ActivityIndicator, @@ -20,33 +6,45 @@ import { TouchableOpacity, View, } from 'react-native' - -import {moderatePost_wrapped as moderatePost} from '#/lib/moderatePost_wrapped' -import {cleanError} from '#/lib/strings/errors' -import {isAndroid, isNative, isWeb} from '#/platform/detection' +import {AppBskyFeedDefs} from '@atproto/api' +import {CenteredView} from '../util/Views' +import {LoadingScreen} from '../util/LoadingScreen' +import {List, ListMethods} from '../util/List' +import { + FontAwesomeIcon, + FontAwesomeIconStyle, +} from '@fortawesome/react-native-fontawesome' +import {PostThreadItem} from './PostThreadItem' +import {ComposePrompt} from '../composer/Prompt' +import {ViewHeader} from '../util/ViewHeader' +import {ErrorMessage} from '../util/error/ErrorMessage' +import {Text} from '../util/text/Text' +import {s} from 'lib/styles' +import {usePalette} from 'lib/hooks/usePalette' +import {useSetTitle} from 'lib/hooks/useSetTitle' import { - sortThread, - ThreadBlocked, ThreadNode, - ThreadNotFound, ThreadPost, + ThreadNotFound, + ThreadBlocked, usePostThreadQuery, + sortThread, } from '#/state/queries/post-thread' +import {useNavigation} from '@react-navigation/native' +import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' +import {NavigationProp} from 'lib/routes/types' +import {sanitizeDisplayName} from 'lib/strings/display-names' +import {cleanError} from '#/lib/strings/errors' +import {Trans, msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' import { + UsePreferencesQueryResponse, useModerationOpts, usePreferencesQuery, - UsePreferencesQueryResponse, } from '#/state/queries/preferences' import {useSession} from '#/state/session' - -import {ComposePrompt} from '../composer/Prompt' -import {ErrorMessage} from '../util/error/ErrorMessage' -import {List, ListMethods} from '../util/List' -import {LoadingScreen} from '../util/LoadingScreen' -import {Text} from '../util/text/Text' -import {ViewHeader} from '../util/ViewHeader' -import {CenteredView} from '../util/Views' -import {PostThreadItem} from './PostThreadItem' +import {isAndroid, isNative, isWeb} from '#/platform/detection' +import {moderatePost_wrapped as moderatePost} from '#/lib/moderatePost_wrapped' // FlatList maintainVisibleContentPosition breaks if too many items // are prepended. This seems to be an optimal number based on *shrug*. diff --git a/src/view/com/post-thread/PostThreadFollowBtn.tsx b/src/view/com/post-thread/PostThreadFollowBtn.tsx index 63e2888fd5..e5b747cc9a 100644 --- a/src/view/com/post-thread/PostThreadFollowBtn.tsx +++ b/src/view/com/post-thread/PostThreadFollowBtn.tsx @@ -1,24 +1,24 @@ +import React from 'react' +import {StyleSheet, TouchableOpacity, View} from 'react-native' +import {useNavigation} from '@react-navigation/native' import {AppBskyActorDefs} from '@atproto/api' -import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' -import {useNavigation} from '@react-navigation/native' -import {track} from 'lib/analytics/analytics' +import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' + +import {logger} from '#/logger' +import {Text} from 'view/com/util/text/Text' +import * as Toast from 'view/com/util/Toast' +import {s} from 'lib/styles' import {usePalette} from 'lib/hooks/usePalette' import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {s} from 'lib/styles' -import React from 'react' -import {StyleSheet, TouchableOpacity, View} from 'react-native' import {Shadow, useProfileShadow} from 'state/cache/profile-shadow' +import {track} from 'lib/analytics/analytics' import { useProfileFollowMutationQueue, useProfileQuery, } from 'state/queries/profile' import {useRequireAuth} from 'state/session' -import {Text} from 'view/com/util/text/Text' -import * as Toast from 'view/com/util/Toast' - -import {logger} from '#/logger' export function PostThreadFollowBtn({did}: {did: string}) { const {data: profile, isLoading} = useProfileQuery({did}) diff --git a/src/view/com/post-thread/PostThreadItem.tsx b/src/view/com/post-thread/PostThreadItem.tsx index 54c47adaee..9522ea6a07 100644 --- a/src/view/com/post-thread/PostThreadItem.tsx +++ b/src/view/com/post-thread/PostThreadItem.tsx @@ -1,52 +1,50 @@ +import React, {memo, useMemo} from 'react' +import {StyleSheet, View} from 'react-native' import { + AtUri, AppBskyFeedDefs, AppBskyFeedPost, - AtUri, - PostModeration, RichText as RichTextAPI, + PostModeration, } from '@atproto/api' +import {moderatePost_wrapped as moderatePost} from '#/lib/moderatePost_wrapped' import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {MAX_POST_LINES} from 'lib/constants' -import {isEmbedByEmbedder} from 'lib/embeds' -import {usePalette} from 'lib/hooks/usePalette' -import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {makeProfileLink} from 'lib/routes/links' +import {PostThreadFollowBtn} from 'view/com/post-thread/PostThreadFollowBtn' +import {Link, TextLink} from '../util/Link' +import {RichText} from '#/components/RichText' +import {Text} from '../util/text/Text' +import {PreviewableUserAvatar} from '../util/UserAvatar' +import {s} from 'lib/styles' +import {niceDate} from 'lib/strings/time' import {sanitizeDisplayName} from 'lib/strings/display-names' import {sanitizeHandle} from 'lib/strings/handles' import {countLines, pluralize} from 'lib/strings/helpers' -import {niceDate} from 'lib/strings/time' -import {s} from 'lib/styles' -import React, {memo, useMemo} from 'react' -import {StyleSheet, View} from 'react-native' -import {useSession} from 'state/session' -import {PostThreadFollowBtn} from 'view/com/post-thread/PostThreadFollowBtn' - -import {atoms as a} from '#/alf' -import {RichText} from '#/components/RichText' -import {moderatePost_wrapped as moderatePost} from '#/lib/moderatePost_wrapped' -import {POST_TOMBSTONE, Shadow, usePostShadow} from '#/state/cache/post-shadow' +import {isEmbedByEmbedder} from 'lib/embeds' +import {getTranslatorLink, isPostInLanguage} from '../../../locale/helpers' +import {PostMeta} from '../util/PostMeta' +import {PostEmbeds} from '../util/post-embeds' +import {PostCtrls} from '../util/post-ctrls/PostCtrls' +import {PostHider} from '../util/moderation/PostHider' +import {ContentHider} from '../util/moderation/ContentHider' +import {PostAlerts} from '../util/moderation/PostAlerts' +import {ErrorMessage} from '../util/error/ErrorMessage' +import {usePalette} from 'lib/hooks/usePalette' +import {formatCount} from '../util/numeric/format' +import {makeProfileLink} from 'lib/routes/links' +import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' +import {MAX_POST_LINES} from 'lib/constants' +import {Trans, msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' import {useLanguagePrefs} from '#/state/preferences' +import {useComposerControls} from '#/state/shell/composer' +import {useModerationOpts} from '#/state/queries/preferences' import {useOpenLink} from '#/state/preferences/in-app-browser' +import {Shadow, usePostShadow, POST_TOMBSTONE} from '#/state/cache/post-shadow' import {ThreadPost} from '#/state/queries/post-thread' -import {useModerationOpts} from '#/state/queries/preferences' -import {useComposerControls} from '#/state/shell/composer' - -import {getTranslatorLink, isPostInLanguage} from '../../../locale/helpers' +import {useSession} from 'state/session' import {WhoCanReply} from '../threadgate/WhoCanReply' -import {ErrorMessage} from '../util/error/ErrorMessage' -import {Link, TextLink} from '../util/Link' import {LoadingPlaceholder} from '../util/LoadingPlaceholder' -import {ContentHider} from '../util/moderation/ContentHider' -import {PostAlerts} from '../util/moderation/PostAlerts' -import {PostHider} from '../util/moderation/PostHider' -import {formatCount} from '../util/numeric/format' -import {PostCtrls} from '../util/post-ctrls/PostCtrls' -import {PostEmbeds} from '../util/post-embeds' -import {PostMeta} from '../util/PostMeta' -import {Text} from '../util/text/Text' -import {PreviewableUserAvatar} from '../util/UserAvatar' +import {atoms as a} from '#/alf' export function PostThreadItem({ post, diff --git a/src/view/com/post/Post.tsx b/src/view/com/post/Post.tsx index d7f6bb2cbb..5fa4da84e1 100644 --- a/src/view/com/post/Post.tsx +++ b/src/view/com/post/Post.tsx @@ -1,3 +1,5 @@ +import React, {useState, useMemo} from 'react' +import {StyleProp, StyleSheet, View, ViewStyle} from 'react-native' import { AppBskyFeedDefs, AppBskyFeedPost, @@ -5,33 +7,29 @@ import { PostModeration, RichText as RichTextAPI, } from '@atproto/api' -import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {MAX_POST_LINES} from 'lib/constants' -import {usePalette} from 'lib/hooks/usePalette' -import {makeProfileLink} from 'lib/routes/links' -import {countLines} from 'lib/strings/helpers' -import {colors, s} from 'lib/styles' -import React, {useMemo, useState} from 'react' -import {StyleProp, StyleSheet, View, ViewStyle} from 'react-native' - -import {atoms as a} from '#/alf' -import {RichText} from '#/components/RichText' import {moderatePost_wrapped as moderatePost} from '#/lib/moderatePost_wrapped' -import {POST_TOMBSTONE, Shadow, usePostShadow} from '#/state/cache/post-shadow' -import {useModerationOpts} from '#/state/queries/preferences' -import {useComposerControls} from '#/state/shell/composer' - +import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' import {Link, TextLink} from '../util/Link' +import {UserInfoText} from '../util/UserInfoText' +import {PostMeta} from '../util/PostMeta' +import {PostEmbeds} from '../util/post-embeds' +import {PostCtrls} from '../util/post-ctrls/PostCtrls' import {ContentHider} from '../util/moderation/ContentHider' import {PostAlerts} from '../util/moderation/PostAlerts' -import {PostCtrls} from '../util/post-ctrls/PostCtrls' -import {PostEmbeds} from '../util/post-embeds' -import {PostMeta} from '../util/PostMeta' import {Text} from '../util/text/Text' +import {RichText} from '#/components/RichText' import {PreviewableUserAvatar} from '../util/UserAvatar' -import {UserInfoText} from '../util/UserInfoText' +import {s, colors} from 'lib/styles' +import {usePalette} from 'lib/hooks/usePalette' +import {makeProfileLink} from 'lib/routes/links' +import {MAX_POST_LINES} from 'lib/constants' +import {countLines} from 'lib/strings/helpers' +import {useModerationOpts} from '#/state/queries/preferences' +import {useComposerControls} from '#/state/shell/composer' +import {Shadow, usePostShadow, POST_TOMBSTONE} from '#/state/cache/post-shadow' +import {Trans, msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {atoms as a} from '#/alf' export function Post({ post, diff --git a/src/view/com/posts/CustomFeedEmptyState.tsx b/src/view/com/posts/CustomFeedEmptyState.tsx index 473968fca4..62a10fd197 100644 --- a/src/view/com/posts/CustomFeedEmptyState.tsx +++ b/src/view/com/posts/CustomFeedEmptyState.tsx @@ -1,19 +1,18 @@ +import React from 'react' +import {StyleSheet, View} from 'react-native' +import {useNavigation} from '@react-navigation/native' import { FontAwesomeIcon, FontAwesomeIconStyle, } from '@fortawesome/react-native-fontawesome' -import {Trans} from '@lingui/macro' -import {useNavigation} from '@react-navigation/native' -import {usePalette} from 'lib/hooks/usePalette' +import {Text} from '../util/text/Text' +import {Button} from '../util/forms/Button' import {MagnifyingGlassIcon} from 'lib/icons' import {NavigationProp} from 'lib/routes/types' +import {usePalette} from 'lib/hooks/usePalette' import {s} from 'lib/styles' import {isWeb} from 'platform/detection' -import React from 'react' -import {StyleSheet, View} from 'react-native' - -import {Button} from '../util/forms/Button' -import {Text} from '../util/text/Text' +import {Trans} from '@lingui/macro' export function CustomFeedEmptyState() { const pal = usePalette('default') diff --git a/src/view/com/posts/DiscoverFallbackHeader.tsx b/src/view/com/posts/DiscoverFallbackHeader.tsx index cb6dcc021f..ffde899979 100644 --- a/src/view/com/posts/DiscoverFallbackHeader.tsx +++ b/src/view/com/posts/DiscoverFallbackHeader.tsx @@ -1,12 +1,10 @@ -import {Trans} from '@lingui/macro' import React from 'react' import {View} from 'react-native' - +import {Trans} from '@lingui/macro' +import {Text} from '../util/text/Text' import {usePalette} from '#/lib/hooks/usePalette' -import {InfoCircleIcon} from '#/lib/icons' - import {TextLink} from '../util/Link' -import {Text} from '../util/text/Text' +import {InfoCircleIcon} from '#/lib/icons' export function DiscoverFallbackHeader() { const pal = usePalette('default') diff --git a/src/view/com/posts/Feed.tsx b/src/view/com/posts/Feed.tsx index 65f5437cb8..cd3e98785d 100644 --- a/src/view/com/posts/Feed.tsx +++ b/src/view/com/posts/Feed.tsx @@ -1,9 +1,3 @@ -import {msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {useQueryClient} from '@tanstack/react-query' -import {useAnalytics} from 'lib/analytics/analytics' -import {useInitialNumToRender} from 'lib/hooks/useInitialNumToRender' -import {useTheme} from 'lib/ThemeContext' import React, {memo} from 'react' import { ActivityIndicator, @@ -14,27 +8,31 @@ import { View, ViewStyle, } from 'react-native' - -import {FALLBACK_MARKER_POST} from '#/lib/api/feed/home' +import {useQueryClient} from '@tanstack/react-query' +import {List, ListRef} from '../util/List' +import {PostFeedLoadingPlaceholder} from '../util/LoadingPlaceholder' +import {FeedErrorMessage} from './FeedErrorMessage' +import {FeedSlice} from './FeedSlice' +import {LoadMoreRetryBtn} from '../util/LoadMoreRetryBtn' +import {useAnalytics} from 'lib/analytics/analytics' +import {useTheme} from 'lib/ThemeContext' import {logger} from '#/logger' -import {isWeb} from '#/platform/detection' -import {listenPostCreated} from '#/state/events' -import {STALE} from '#/state/queries' import { + RQKEY, FeedDescriptor, FeedParams, - pollLatest, - RQKEY, usePostFeedQuery, + pollLatest, } from '#/state/queries/post-feed' +import {isWeb} from '#/platform/detection' +import {listenPostCreated} from '#/state/events' import {useSession} from '#/state/session' - -import {List, ListRef} from '../util/List' -import {PostFeedLoadingPlaceholder} from '../util/LoadingPlaceholder' -import {LoadMoreRetryBtn} from '../util/LoadMoreRetryBtn' +import {STALE} from '#/state/queries' +import {msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' import {DiscoverFallbackHeader} from './DiscoverFallbackHeader' -import {FeedErrorMessage} from './FeedErrorMessage' -import {FeedSlice} from './FeedSlice' +import {FALLBACK_MARKER_POST} from '#/lib/api/feed/home' +import {useInitialNumToRender} from 'lib/hooks/useInitialNumToRender' const LOADING_ITEM = {_reactKey: '__loading__'} const EMPTY_FEED_ITEM = {_reactKey: '__empty__'} diff --git a/src/view/com/posts/FeedErrorMessage.tsx b/src/view/com/posts/FeedErrorMessage.tsx index 54381081d1..6d99c32f18 100644 --- a/src/view/com/posts/FeedErrorMessage.tsx +++ b/src/view/com/posts/FeedErrorMessage.tsx @@ -1,23 +1,21 @@ +import React from 'react' +import {View} from 'react-native' import {AppBskyFeedGetAuthorFeed, AtUri} from '@atproto/api' -import {msg as msgLingui, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {useNavigation} from '@react-navigation/native' +import {Text} from '../util/text/Text' +import {Button} from '../util/forms/Button' +import * as Toast from '../util/Toast' +import {ErrorMessage} from '../util/error/ErrorMessage' import {usePalette} from 'lib/hooks/usePalette' +import {useNavigation} from '@react-navigation/native' import {NavigationProp} from 'lib/routes/types' -import React from 'react' -import {View} from 'react-native' - -import {cleanError} from '#/lib/strings/errors' import {logger} from '#/logger' import {useModalControls} from '#/state/modals' +import {msg as msgLingui, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' import {FeedDescriptor} from '#/state/queries/post-feed' -import {useRemoveFeedMutation} from '#/state/queries/preferences' - import {EmptyState} from '../util/EmptyState' -import {ErrorMessage} from '../util/error/ErrorMessage' -import {Button} from '../util/forms/Button' -import {Text} from '../util/text/Text' -import * as Toast from '../util/Toast' +import {cleanError} from '#/lib/strings/errors' +import {useRemoveFeedMutation} from '#/state/queries/preferences' export enum KnownError { Block = 'Block', diff --git a/src/view/com/posts/FeedItem.tsx b/src/view/com/posts/FeedItem.tsx index 078465961b..7d29703e2d 100644 --- a/src/view/com/posts/FeedItem.tsx +++ b/src/view/com/posts/FeedItem.tsx @@ -1,3 +1,5 @@ +import React, {memo, useMemo, useState} from 'react' +import {StyleSheet, View} from 'react-native' import { AppBskyFeedDefs, AppBskyFeedPost, @@ -9,36 +11,32 @@ import { FontAwesomeIcon, FontAwesomeIconStyle, } from '@fortawesome/react-native-fontawesome' -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {isReasonFeedSource, ReasonFeedSource} from 'lib/api/feed/types' -import {MAX_POST_LINES} from 'lib/constants' -import {isEmbedByEmbedder} from 'lib/embeds' +import {ReasonFeedSource, isReasonFeedSource} from 'lib/api/feed/types' +import {Link, TextLinkOnWebOnly, TextLink} from '../util/Link' +import {Text} from '../util/text/Text' +import {UserInfoText} from '../util/UserInfoText' +import {PostMeta} from '../util/PostMeta' +import {PostCtrls} from '../util/post-ctrls/PostCtrls' +import {PostEmbeds} from '../util/post-embeds' +import {ContentHider} from '../util/moderation/ContentHider' +import {PostAlerts} from '../util/moderation/PostAlerts' +import {RichText} from '#/components/RichText' +import {PreviewableUserAvatar} from '../util/UserAvatar' +import {s} from 'lib/styles' import {usePalette} from 'lib/hooks/usePalette' -import {makeProfileLink} from 'lib/routes/links' import {sanitizeDisplayName} from 'lib/strings/display-names' import {sanitizeHandle} from 'lib/strings/handles' +import {makeProfileLink} from 'lib/routes/links' +import {isEmbedByEmbedder} from 'lib/embeds' +import {MAX_POST_LINES} from 'lib/constants' import {countLines} from 'lib/strings/helpers' -import {s} from 'lib/styles' -import React, {memo, useMemo, useState} from 'react' -import {StyleSheet, View} from 'react-native' - -import {atoms as a} from '#/alf' -import {RichText} from '#/components/RichText' -import {POST_TOMBSTONE, Shadow, usePostShadow} from '#/state/cache/post-shadow' -import {useSession} from '#/state/session' import {useComposerControls} from '#/state/shell/composer' - +import {Shadow, usePostShadow, POST_TOMBSTONE} from '#/state/cache/post-shadow' import {FeedNameText} from '../util/FeedInfoText' -import {Link, TextLink, TextLinkOnWebOnly} from '../util/Link' -import {ContentHider} from '../util/moderation/ContentHider' -import {PostAlerts} from '../util/moderation/PostAlerts' -import {PostCtrls} from '../util/post-ctrls/PostCtrls' -import {PostEmbeds} from '../util/post-embeds' -import {PostMeta} from '../util/PostMeta' -import {Text} from '../util/text/Text' -import {PreviewableUserAvatar} from '../util/UserAvatar' -import {UserInfoText} from '../util/UserInfoText' +import {useSession} from '#/state/session' +import {Trans, msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {atoms as a} from '#/alf' export function FeedItem({ post, diff --git a/src/view/com/posts/FeedSlice.tsx b/src/view/com/posts/FeedSlice.tsx index b4a6b37e67..84edee4a11 100644 --- a/src/view/com/posts/FeedSlice.tsx +++ b/src/view/com/posts/FeedSlice.tsx @@ -1,16 +1,14 @@ -import {AtUri} from '@atproto/api' -import {Trans} from '@lingui/macro' -import {usePalette} from 'lib/hooks/usePalette' -import {makeProfileLink} from 'lib/routes/links' import React, {memo} from 'react' import {StyleSheet, View} from 'react-native' -import Svg, {Circle, Line} from 'react-native-svg' - import {FeedPostSlice} from '#/state/queries/post-feed' - +import {AtUri} from '@atproto/api' import {Link} from '../util/Link' import {Text} from '../util/text/Text' +import Svg, {Circle, Line} from 'react-native-svg' import {FeedItem} from './FeedItem' +import {usePalette} from 'lib/hooks/usePalette' +import {makeProfileLink} from 'lib/routes/links' +import {Trans} from '@lingui/macro' let FeedSlice = ({slice}: {slice: FeedPostSlice}): React.ReactNode => { if (slice.isThread && slice.items.length > 3) { diff --git a/src/view/com/posts/FollowingEmptyState.tsx b/src/view/com/posts/FollowingEmptyState.tsx index e2991435e8..ef02039afb 100644 --- a/src/view/com/posts/FollowingEmptyState.tsx +++ b/src/view/com/posts/FollowingEmptyState.tsx @@ -1,19 +1,18 @@ +import React from 'react' +import {StyleSheet, View} from 'react-native' +import {useNavigation} from '@react-navigation/native' import { FontAwesomeIcon, FontAwesomeIconStyle, } from '@fortawesome/react-native-fontawesome' -import {Trans} from '@lingui/macro' -import {useNavigation} from '@react-navigation/native' -import {usePalette} from 'lib/hooks/usePalette' +import {Text} from '../util/text/Text' +import {Button} from '../util/forms/Button' import {MagnifyingGlassIcon} from 'lib/icons' import {NavigationProp} from 'lib/routes/types' +import {usePalette} from 'lib/hooks/usePalette' import {s} from 'lib/styles' import {isWeb} from 'platform/detection' -import React from 'react' -import {StyleSheet, View} from 'react-native' - -import {Button} from '../util/forms/Button' -import {Text} from '../util/text/Text' +import {Trans} from '@lingui/macro' export function FollowingEmptyState() { const pal = usePalette('default') diff --git a/src/view/com/posts/FollowingEndOfFeed.tsx b/src/view/com/posts/FollowingEndOfFeed.tsx index c91d94ce24..bea5bedeac 100644 --- a/src/view/com/posts/FollowingEndOfFeed.tsx +++ b/src/view/com/posts/FollowingEndOfFeed.tsx @@ -1,18 +1,17 @@ +import React from 'react' +import {StyleSheet, View, Dimensions} from 'react-native' +import {useNavigation} from '@react-navigation/native' import { FontAwesomeIcon, FontAwesomeIconStyle, } from '@fortawesome/react-native-fontawesome' -import {Trans} from '@lingui/macro' -import {useNavigation} from '@react-navigation/native' -import {usePalette} from 'lib/hooks/usePalette' +import {Text} from '../util/text/Text' +import {Button} from '../util/forms/Button' import {NavigationProp} from 'lib/routes/types' +import {usePalette} from 'lib/hooks/usePalette' import {s} from 'lib/styles' import {isWeb} from 'platform/detection' -import React from 'react' -import {Dimensions, StyleSheet, View} from 'react-native' - -import {Button} from '../util/forms/Button' -import {Text} from '../util/text/Text' +import {Trans} from '@lingui/macro' export function FollowingEndOfFeed() { const pal = usePalette('default') diff --git a/src/view/com/profile/FollowButton.tsx b/src/view/com/profile/FollowButton.tsx index d1ef10c36c..9cc635b664 100644 --- a/src/view/com/profile/FollowButton.tsx +++ b/src/view/com/profile/FollowButton.tsx @@ -1,14 +1,12 @@ -import {AppBskyActorDefs} from '@atproto/api' -import {msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' import React from 'react' import {StyleProp, TextStyle, View} from 'react-native' - -import {Shadow} from '#/state/cache/types' -import {useProfileFollowMutationQueue} from '#/state/queries/profile' - +import {AppBskyActorDefs} from '@atproto/api' import {Button, ButtonType} from '../util/forms/Button' import * as Toast from '../util/Toast' +import {useProfileFollowMutationQueue} from '#/state/queries/profile' +import {Shadow} from '#/state/cache/types' +import {useLingui} from '@lingui/react' +import {msg} from '@lingui/macro' export function FollowButton({ unfollowedType = 'inverted', diff --git a/src/view/com/profile/ProfileCard.tsx b/src/view/com/profile/ProfileCard.tsx index 2830268d43..266adc51de 100644 --- a/src/view/com/profile/ProfileCard.tsx +++ b/src/view/com/profile/ProfileCard.tsx @@ -1,31 +1,29 @@ +import * as React from 'react' +import {StyleProp, StyleSheet, View, ViewStyle} from 'react-native' import { AppBskyActorDefs, moderateProfile, ProfileModeration, } from '@atproto/api' -import {Trans} from '@lingui/macro' +import {Link} from '../util/Link' +import {Text} from '../util/text/Text' +import {UserAvatar} from '../util/UserAvatar' +import {s} from 'lib/styles' import {usePalette} from 'lib/hooks/usePalette' +import {FollowButton} from './FollowButton' +import {sanitizeDisplayName} from 'lib/strings/display-names' +import {sanitizeHandle} from 'lib/strings/handles' +import {makeProfileLink} from 'lib/routes/links' import { describeModerationCause, - getModerationCauseKey, getProfileModerationCauses, + getModerationCauseKey, } from 'lib/moderation' -import {makeProfileLink} from 'lib/routes/links' -import {sanitizeDisplayName} from 'lib/strings/display-names' -import {sanitizeHandle} from 'lib/strings/handles' -import {s} from 'lib/styles' -import * as React from 'react' -import {StyleProp, StyleSheet, View, ViewStyle} from 'react-native' - -import {useProfileShadow} from '#/state/cache/profile-shadow' import {Shadow} from '#/state/cache/types' import {useModerationOpts} from '#/state/queries/preferences' +import {useProfileShadow} from '#/state/cache/profile-shadow' import {useSession} from '#/state/session' - -import {Link} from '../util/Link' -import {Text} from '../util/text/Text' -import {UserAvatar} from '../util/UserAvatar' -import {FollowButton} from './FollowButton' +import {Trans} from '@lingui/macro' export function ProfileCard({ testID, diff --git a/src/view/com/profile/ProfileFollowers.tsx b/src/view/com/profile/ProfileFollowers.tsx index e48ec96591..411ae6c176 100644 --- a/src/view/com/profile/ProfileFollowers.tsx +++ b/src/view/com/profile/ProfileFollowers.tsx @@ -1,17 +1,15 @@ -import {AppBskyActorDefs as ActorDefs} from '@atproto/api' import React from 'react' import {ActivityIndicator, StyleSheet, View} from 'react-native' - -import {cleanError} from '#/lib/strings/errors' -import {logger} from '#/logger' -import {useProfileFollowersQuery} from '#/state/queries/profile-followers' -import {useResolveDidQuery} from '#/state/queries/resolve-uri' - -import {ErrorMessage} from '../util/error/ErrorMessage' -import {List} from '../util/List' -import {LoadingScreen} from '../util/LoadingScreen' +import {AppBskyActorDefs as ActorDefs} from '@atproto/api' import {CenteredView} from '../util/Views' +import {LoadingScreen} from '../util/LoadingScreen' +import {List} from '../util/List' +import {ErrorMessage} from '../util/error/ErrorMessage' import {ProfileCardWithFollowBtn} from './ProfileCard' +import {useProfileFollowersQuery} from '#/state/queries/profile-followers' +import {useResolveDidQuery} from '#/state/queries/resolve-uri' +import {logger} from '#/logger' +import {cleanError} from '#/lib/strings/errors' export function ProfileFollowers({name}: {name: string}) { const [isPTRing, setIsPTRing] = React.useState(false) diff --git a/src/view/com/profile/ProfileFollows.tsx b/src/view/com/profile/ProfileFollows.tsx index 58275cd0ed..bd4af10810 100644 --- a/src/view/com/profile/ProfileFollows.tsx +++ b/src/view/com/profile/ProfileFollows.tsx @@ -1,17 +1,15 @@ -import {AppBskyActorDefs as ActorDefs} from '@atproto/api' import React from 'react' import {ActivityIndicator, StyleSheet, View} from 'react-native' - -import {cleanError} from '#/lib/strings/errors' -import {logger} from '#/logger' -import {useProfileFollowsQuery} from '#/state/queries/profile-follows' -import {useResolveDidQuery} from '#/state/queries/resolve-uri' - -import {ErrorMessage} from '../util/error/ErrorMessage' -import {List} from '../util/List' -import {LoadingScreen} from '../util/LoadingScreen' +import {AppBskyActorDefs as ActorDefs} from '@atproto/api' import {CenteredView} from '../util/Views' +import {LoadingScreen} from '../util/LoadingScreen' +import {List} from '../util/List' +import {ErrorMessage} from '../util/error/ErrorMessage' import {ProfileCardWithFollowBtn} from './ProfileCard' +import {useProfileFollowsQuery} from '#/state/queries/profile-follows' +import {useResolveDidQuery} from '#/state/queries/resolve-uri' +import {logger} from '#/logger' +import {cleanError} from '#/lib/strings/errors' export function ProfileFollows({name}: {name: string}) { const [isPTRing, setIsPTRing] = React.useState(false) diff --git a/src/view/com/profile/ProfileHeader.tsx b/src/view/com/profile/ProfileHeader.tsx index b78c95f789..a11fe83743 100644 --- a/src/view/com/profile/ProfileHeader.tsx +++ b/src/view/com/profile/ProfileHeader.tsx @@ -1,59 +1,57 @@ +import React, {memo, useMemo} from 'react' +import { + StyleSheet, + TouchableOpacity, + TouchableWithoutFeedback, + View, +} from 'react-native' +import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' +import {useNavigation} from '@react-navigation/native' import { AppBskyActorDefs, - moderateProfile, ModerationOpts, + moderateProfile, RichText as RichTextAPI, } from '@atproto/api' -import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' -import {msg, Trans} from '@lingui/macro' +import {Trans, msg} from '@lingui/macro' import {useLingui} from '@lingui/react' -import {useNavigation} from '@react-navigation/native' -import {useAnalytics} from 'lib/analytics/analytics' -import {BACK_HITSLOP} from 'lib/constants' -import {usePalette} from 'lib/hooks/usePalette' -import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {makeProfileLink} from 'lib/routes/links' import {NavigationProp} from 'lib/routes/types' -import {sanitizeDisplayName} from 'lib/strings/display-names' -import {isInvalidHandle, sanitizeHandle} from 'lib/strings/handles' -import {pluralize} from 'lib/strings/helpers' -import {colors, s} from 'lib/styles' import {isNative} from 'platform/detection' -import React, {memo, useMemo} from 'react' -import { - StyleSheet, - TouchableOpacity, - TouchableWithoutFeedback, - View, -} from 'react-native' -import {useProfileShadow} from 'state/cache/profile-shadow' -import {ProfileMenu} from 'view/com/profile/ProfileMenu' - -import {atoms as a} from '#/alf' +import {BlurView} from '../util/BlurView' +import * as Toast from '../util/Toast' +import {LoadingPlaceholder} from '../util/LoadingPlaceholder' +import {Text} from '../util/text/Text' +import {ThemedText} from '../util/text/ThemedText' import {RichText} from '#/components/RichText' -import {logger} from '#/logger' -import {Shadow} from '#/state/cache/types' -import {ProfileImageLightbox, useLightboxControls} from '#/state/lightbox' +import {UserAvatar} from '../util/UserAvatar' +import {UserBanner} from '../util/UserBanner' +import {ProfileHeaderAlerts} from '../util/moderation/ProfileHeaderAlerts' +import {formatCount} from '../util/numeric/format' +import {Link} from '../util/Link' +import {ProfileHeaderSuggestedFollows} from './ProfileHeaderSuggestedFollows' import {useModalControls} from '#/state/modals' +import {useLightboxControls, ProfileImageLightbox} from '#/state/lightbox' import { useProfileBlockMutationQueue, useProfileFollowMutationQueue, } from '#/state/queries/profile' +import {usePalette} from 'lib/hooks/usePalette' +import {useAnalytics} from 'lib/analytics/analytics' +import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' +import {BACK_HITSLOP} from 'lib/constants' +import {isInvalidHandle, sanitizeHandle} from 'lib/strings/handles' +import {makeProfileLink} from 'lib/routes/links' +import {pluralize} from 'lib/strings/helpers' +import {sanitizeDisplayName} from 'lib/strings/display-names' +import {s, colors} from 'lib/styles' +import {logger} from '#/logger' import {useSession} from '#/state/session' +import {Shadow} from '#/state/cache/types' import {useRequireAuth} from '#/state/session' - -import {BlurView} from '../util/BlurView' -import {Link} from '../util/Link' -import {LoadingPlaceholder} from '../util/LoadingPlaceholder' import {LabelInfo} from '../util/moderation/LabelInfo' -import {ProfileHeaderAlerts} from '../util/moderation/ProfileHeaderAlerts' -import {formatCount} from '../util/numeric/format' -import {Text} from '../util/text/Text' -import {ThemedText} from '../util/text/ThemedText' -import * as Toast from '../util/Toast' -import {UserAvatar} from '../util/UserAvatar' -import {UserBanner} from '../util/UserBanner' -import {ProfileHeaderSuggestedFollows} from './ProfileHeaderSuggestedFollows' +import {useProfileShadow} from 'state/cache/profile-shadow' +import {atoms as a} from '#/alf' +import {ProfileMenu} from 'view/com/profile/ProfileMenu' let ProfileHeaderLoading = (_props: {}): React.ReactNode => { const pal = usePalette('default') diff --git a/src/view/com/profile/ProfileHeaderSuggestedFollows.tsx b/src/view/com/profile/ProfileHeaderSuggestedFollows.tsx index bc440a68ab..6edc61fcf8 100644 --- a/src/view/com/profile/ProfileHeaderSuggestedFollows.tsx +++ b/src/view/com/profile/ProfileHeaderSuggestedFollows.tsx @@ -1,28 +1,27 @@ +import React from 'react' +import {View, StyleSheet, Pressable, ScrollView} from 'react-native' import {AppBskyActorDefs, moderateProfile} from '@atproto/api' import { FontAwesomeIcon, FontAwesomeIconStyle, } from '@fortawesome/react-native-fontawesome' -import {Trans} from '@lingui/macro' -import {useAnalytics} from 'lib/analytics/analytics' + +import * as Toast from '../util/Toast' import {usePalette} from 'lib/hooks/usePalette' -import {makeProfileLink} from 'lib/routes/links' +import {Text} from 'view/com/util/text/Text' +import {UserAvatar} from 'view/com/util/UserAvatar' +import {Button} from 'view/com/util/forms/Button' import {sanitizeDisplayName} from 'lib/strings/display-names' import {sanitizeHandle} from 'lib/strings/handles' -import {isWeb} from 'platform/detection' -import React from 'react' -import {Pressable, ScrollView, StyleSheet, View} from 'react-native' -import {Button} from 'view/com/util/forms/Button' +import {makeProfileLink} from 'lib/routes/links' import {Link} from 'view/com/util/Link' -import {Text} from 'view/com/util/text/Text' -import {UserAvatar} from 'view/com/util/UserAvatar' - -import {useProfileShadow} from '#/state/cache/profile-shadow' +import {useAnalytics} from 'lib/analytics/analytics' +import {isWeb} from 'platform/detection' import {useModerationOpts} from '#/state/queries/preferences' -import {useProfileFollowMutationQueue} from '#/state/queries/profile' import {useSuggestedFollowsByActorQuery} from '#/state/queries/suggested-follows' - -import * as Toast from '../util/Toast' +import {useProfileShadow} from '#/state/cache/profile-shadow' +import {useProfileFollowMutationQueue} from '#/state/queries/profile' +import {Trans} from '@lingui/macro' const OUTER_PADDING = 10 const INNER_PADDING = 14 diff --git a/src/view/com/profile/ProfileMenu.tsx b/src/view/com/profile/ProfileMenu.tsx index c427ac9f72..d79e1891d8 100644 --- a/src/view/com/profile/ProfileMenu.tsx +++ b/src/view/com/profile/ProfileMenu.tsx @@ -1,17 +1,21 @@ +import React, {memo} from 'react' +import {TouchableOpacity} from 'react-native' import {AppBskyActorDefs} from '@atproto/api' -import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' +import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' import {useQueryClient} from '@tanstack/react-query' -import {useAnalytics} from 'lib/analytics/analytics' -import {HITSLOP_10} from 'lib/constants' +import * as Toast from 'view/com/util/Toast' +import {EventStopper} from 'view/com/util/EventStopper' +import {useSession} from 'state/session' +import * as Menu from '#/components/Menu' +import {useTheme} from '#/alf' import {usePalette} from 'lib/hooks/usePalette' -import {makeProfileLink} from 'lib/routes/links' +import {HITSLOP_10} from 'lib/constants' import {shareUrl} from 'lib/sharing' import {toShareUrl} from 'lib/strings/url-helpers' -import React, {memo} from 'react' -import {TouchableOpacity} from 'react-native' -import {Shadow} from 'state/cache/types' +import {makeProfileLink} from 'lib/routes/links' +import {useAnalytics} from 'lib/analytics/analytics' import {useModalControls} from 'state/modals' import { RQKEY as profileQueryKey, @@ -19,21 +23,16 @@ import { useProfileFollowMutationQueue, useProfileMuteMutationQueue, } from 'state/queries/profile' -import {useSession} from 'state/session' -import {EventStopper} from 'view/com/util/EventStopper' -import * as Toast from 'view/com/util/Toast' - -import {useTheme} from '#/alf' import {ArrowOutOfBox_Stroke2_Corner0_Rounded as Share} from '#/components/icons/ArrowOutOfBox' -import {Flag_Stroke2_Corner0_Rounded as Flag} from '#/components/icons/Flag' import {ListSparkle_Stroke2_Corner0_Rounded as List} from '#/components/icons/ListSparkle' import {Mute_Stroke2_Corner0_Rounded as Mute} from '#/components/icons/Mute' -import {PeopleRemove2_Stroke2_Corner0_Rounded as UserMinus} from '#/components/icons/PeopleRemove2' +import {SpeakerVolumeFull_Stroke2_Corner0_Rounded as Unmute} from '#/components/icons/Speaker' +import {Flag_Stroke2_Corner0_Rounded as Flag} from '#/components/icons/Flag' import {PersonCheck_Stroke2_Corner0_Rounded as PersonCheck} from '#/components/icons/PersonCheck' import {PersonX_Stroke2_Corner0_Rounded as PersonX} from '#/components/icons/PersonX' -import {SpeakerVolumeFull_Stroke2_Corner0_Rounded as Unmute} from '#/components/icons/Speaker' -import * as Menu from '#/components/Menu' +import {PeopleRemove2_Stroke2_Corner0_Rounded as UserMinus} from '#/components/icons/PeopleRemove2' import {logger} from '#/logger' +import {Shadow} from 'state/cache/types' let ProfileMenu = ({ profile, diff --git a/src/view/com/profile/ProfileSubpageHeader.tsx b/src/view/com/profile/ProfileSubpageHeader.tsx index f2934fa1c3..eaf00f3e66 100644 --- a/src/view/com/profile/ProfileSubpageHeader.tsx +++ b/src/view/com/profile/ProfileSubpageHeader.tsx @@ -1,26 +1,24 @@ +import React from 'react' +import {Pressable, StyleSheet, View} from 'react-native' import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' import {useNavigation} from '@react-navigation/native' -import {BACK_HITSLOP} from 'lib/constants' import {usePalette} from 'lib/hooks/usePalette' import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' +import {Text} from '../util/text/Text' +import {TextLink} from '../util/Link' +import {UserAvatar, UserAvatarType} from '../util/UserAvatar' +import {LoadingPlaceholder} from '../util/LoadingPlaceholder' +import {CenteredView} from '../util/Views' +import {sanitizeHandle} from 'lib/strings/handles' import {makeProfileLink} from 'lib/routes/links' import {NavigationProp} from 'lib/routes/types' -import {sanitizeHandle} from 'lib/strings/handles' +import {BACK_HITSLOP} from 'lib/constants' import {isNative} from 'platform/detection' -import React from 'react' -import {Pressable, StyleSheet, View} from 'react-native' - -import {emitSoftReset} from '#/state/events' -import {ImagesLightbox, useLightboxControls} from '#/state/lightbox' +import {useLightboxControls, ImagesLightbox} from '#/state/lightbox' +import {useLingui} from '@lingui/react' +import {Trans, msg} from '@lingui/macro' import {useSetDrawerOpen} from '#/state/shell' - -import {TextLink} from '../util/Link' -import {LoadingPlaceholder} from '../util/LoadingPlaceholder' -import {Text} from '../util/text/Text' -import {UserAvatar, UserAvatarType} from '../util/UserAvatar' -import {CenteredView} from '../util/Views' +import {emitSoftReset} from '#/state/events' export function ProfileSubpageHeader({ isLoading, diff --git a/src/view/com/testing/TestCtrls.e2e.tsx b/src/view/com/testing/TestCtrls.e2e.tsx index 77a114b54a..e1e8994882 100644 --- a/src/view/com/testing/TestCtrls.e2e.tsx +++ b/src/view/com/testing/TestCtrls.e2e.tsx @@ -1,14 +1,12 @@ -import {useQueryClient} from '@tanstack/react-query' import React from 'react' import {Pressable, View} from 'react-native' - +import {navigate} from '../../../Navigation' import {useModalControls} from '#/state/modals' -import {useSetFeedViewPreferencesMutation} from '#/state/queries/preferences' +import {useQueryClient} from '@tanstack/react-query' import {useSessionApi} from '#/state/session' +import {useSetFeedViewPreferencesMutation} from '#/state/queries/preferences' import {useLoggedOutViewControls} from '#/state/shell/logged-out' -import {navigate} from '../../../Navigation' - /** * This utility component is only included in the test simulator * build. It gives some quick triggers which help improve the pace diff --git a/src/view/com/threadgate/WhoCanReply.tsx b/src/view/com/threadgate/WhoCanReply.tsx index bd17a0de32..1c34623d84 100644 --- a/src/view/com/threadgate/WhoCanReply.tsx +++ b/src/view/com/threadgate/WhoCanReply.tsx @@ -1,22 +1,21 @@ +import React from 'react' +import {StyleProp, View, ViewStyle} from 'react-native' import { AppBskyFeedDefs, AppBskyFeedThreadgate, AppBskyGraphDefs, AtUri, } from '@atproto/api' -import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' import {Trans} from '@lingui/macro' -import React from 'react' -import {StyleProp, View, ViewStyle} from 'react-native' - -import {useColorSchemeStyle} from '#/lib/hooks/useColorSchemeStyle' import {usePalette} from '#/lib/hooks/usePalette' +import {Text} from '../util/text/Text' +import {TextLink} from '../util/Link' +import {makeProfileLink, makeListLink} from '#/lib/routes/links' +import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' +import {useColorSchemeStyle} from '#/lib/hooks/useColorSchemeStyle' import {useWebMediaQueries} from '#/lib/hooks/useWebMediaQueries' -import {makeListLink, makeProfileLink} from '#/lib/routes/links' -import {colors} from '#/lib/styles' -import {TextLink} from '../util/Link' -import {Text} from '../util/text/Text' +import {colors} from '#/lib/styles' export function WhoCanReply({ post, diff --git a/src/view/com/util/AccountDropdownBtn.tsx b/src/view/com/util/AccountDropdownBtn.tsx index 24f64af456..221879df79 100644 --- a/src/view/com/util/AccountDropdownBtn.tsx +++ b/src/view/com/util/AccountDropdownBtn.tsx @@ -1,18 +1,16 @@ +import React from 'react' +import {Pressable} from 'react-native' import { FontAwesomeIcon, FontAwesomeIconStyle, } from '@fortawesome/react-native-fontawesome' -import {msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {usePalette} from 'lib/hooks/usePalette' import {s} from 'lib/styles' -import React from 'react' -import {Pressable} from 'react-native' - -import {SessionAccount, useSessionApi} from '#/state/session' - -import * as Toast from '../../com/util/Toast' +import {usePalette} from 'lib/hooks/usePalette' import {DropdownItem, NativeDropdown} from './forms/NativeDropdown' +import * as Toast from '../../com/util/Toast' +import {useSessionApi, SessionAccount} from '#/state/session' +import {useLingui} from '@lingui/react' +import {msg} from '@lingui/macro' export function AccountDropdownBtn({account}: {account: SessionAccount}) { const pal = usePalette('default') diff --git a/src/view/com/util/BlurView.android.tsx b/src/view/com/util/BlurView.android.tsx index a62e1dff01..eee1d9d867 100644 --- a/src/view/com/util/BlurView.android.tsx +++ b/src/view/com/util/BlurView.android.tsx @@ -1,6 +1,6 @@ -import {addStyle} from 'lib/styles' import React from 'react' import {StyleSheet, View, ViewProps} from 'react-native' +import {addStyle} from 'lib/styles' type BlurViewProps = ViewProps & { blurType?: 'dark' | 'light' diff --git a/src/view/com/util/BlurView.web.tsx b/src/view/com/util/BlurView.web.tsx index 09807816b3..d1fb4665fb 100644 --- a/src/view/com/util/BlurView.web.tsx +++ b/src/view/com/util/BlurView.web.tsx @@ -1,6 +1,6 @@ -import {addStyle} from 'lib/styles' import React from 'react' import {StyleSheet, View, ViewProps} from 'react-native' +import {addStyle} from 'lib/styles' type BlurViewProps = ViewProps & { blurType?: 'dark' | 'light' diff --git a/src/view/com/util/BottomSheetCustomBackdrop.tsx b/src/view/com/util/BottomSheetCustomBackdrop.tsx index 7cf9c10da6..ed5a2f1654 100644 --- a/src/view/com/util/BottomSheetCustomBackdrop.tsx +++ b/src/view/com/util/BottomSheetCustomBackdrop.tsx @@ -1,12 +1,12 @@ -import {BottomSheetBackdropProps} from '@gorhom/bottom-sheet' -import {t} from '@lingui/macro' import React, {useMemo} from 'react' import {TouchableWithoutFeedback} from 'react-native' +import {BottomSheetBackdropProps} from '@gorhom/bottom-sheet' import Animated, { Extrapolate, interpolate, useAnimatedStyle, } from 'react-native-reanimated' +import {t} from '@lingui/macro' export function createCustomBackdrop( onClose?: (() => void) | undefined, diff --git a/src/view/com/util/EmptyState.tsx b/src/view/com/util/EmptyState.tsx index cc71165b55..7486b212fa 100644 --- a/src/view/com/util/EmptyState.tsx +++ b/src/view/com/util/EmptyState.tsx @@ -1,14 +1,13 @@ +import React from 'react' +import {StyleProp, StyleSheet, View, ViewStyle} from 'react-native' import {IconProp} from '@fortawesome/fontawesome-svg-core' import { FontAwesomeIcon, FontAwesomeIconStyle, } from '@fortawesome/react-native-fontawesome' -import {usePalette} from 'lib/hooks/usePalette' -import {UserGroupIcon} from 'lib/icons' -import React from 'react' -import {StyleProp, StyleSheet, View, ViewStyle} from 'react-native' - import {Text} from './text/Text' +import {UserGroupIcon} from 'lib/icons' +import {usePalette} from 'lib/hooks/usePalette' export function EmptyState({ testID, diff --git a/src/view/com/util/EmptyStateWithButton.tsx b/src/view/com/util/EmptyStateWithButton.tsx index 1a580ae9aa..008ca2bdb6 100644 --- a/src/view/com/util/EmptyStateWithButton.tsx +++ b/src/view/com/util/EmptyStateWithButton.tsx @@ -1,15 +1,14 @@ -import {IconProp} from '@fortawesome/fontawesome-svg-core' +import React from 'react' +import {StyleSheet, View} from 'react-native' import { FontAwesomeIcon, FontAwesomeIconStyle, } from '@fortawesome/react-native-fontawesome' +import {IconProp} from '@fortawesome/fontawesome-svg-core' +import {Text} from './text/Text' +import {Button} from './forms/Button' import {usePalette} from 'lib/hooks/usePalette' import {s} from 'lib/styles' -import React from 'react' -import {StyleSheet, View} from 'react-native' - -import {Button} from './forms/Button' -import {Text} from './text/Text' interface Props { testID?: string diff --git a/src/view/com/util/ErrorBoundary.tsx b/src/view/com/util/ErrorBoundary.tsx index b287a2469a..5ec1d00144 100644 --- a/src/view/com/util/ErrorBoundary.tsx +++ b/src/view/com/util/ErrorBoundary.tsx @@ -1,10 +1,8 @@ -import {t} from '@lingui/macro' import React, {Component, ErrorInfo, ReactNode} from 'react' - -import {logger} from '#/logger' - import {ErrorScreen} from './error/ErrorScreen' import {CenteredView} from './Views' +import {t} from '@lingui/macro' +import {logger} from '#/logger' interface Props { children?: ReactNode diff --git a/src/view/com/util/FeedInfoText.tsx b/src/view/com/util/FeedInfoText.tsx index 3afaf256cc..54124c739a 100644 --- a/src/view/com/util/FeedInfoText.tsx +++ b/src/view/com/util/FeedInfoText.tsx @@ -1,12 +1,10 @@ -import {sanitizeDisplayName} from 'lib/strings/display-names' -import {TypographyVariant} from 'lib/ThemeContext' import React from 'react' import {StyleProp, StyleSheet, TextStyle} from 'react-native' - -import {useFeedSourceInfoQuery} from '#/state/queries/feed' - import {TextLinkOnWebOnly} from './Link' import {LoadingPlaceholder} from './LoadingPlaceholder' +import {TypographyVariant} from 'lib/ThemeContext' +import {sanitizeDisplayName} from 'lib/strings/display-names' +import {useFeedSourceInfoQuery} from '#/state/queries/feed' export function FeedNameText({ type = 'md', diff --git a/src/view/com/util/Html.tsx b/src/view/com/util/Html.tsx index b8d31dfd6a..2e47194811 100644 --- a/src/view/com/util/Html.tsx +++ b/src/view/com/util/Html.tsx @@ -1,17 +1,16 @@ +import * as React from 'react' +import {StyleSheet, View} from 'react-native' +import {usePalette} from 'lib/hooks/usePalette' +import {useTheme} from 'lib/ThemeContext' +import {Text} from './text/Text' +import {TextLink} from './Link' import { H1 as ExpoH1, H2 as ExpoH2, H3 as ExpoH3, H4 as ExpoH4, } from '@expo/html-elements' -import {usePalette} from 'lib/hooks/usePalette' import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {useTheme} from 'lib/ThemeContext' -import * as React from 'react' -import {StyleSheet, View} from 'react-native' - -import {TextLink} from './Link' -import {Text} from './text/Text' /** * These utilities are used to define long documents in an html-like diff --git a/src/view/com/util/Link.tsx b/src/view/com/util/Link.tsx index 112e061bcc..f456224885 100644 --- a/src/view/com/util/Link.tsx +++ b/src/view/com/util/Link.tsx @@ -1,38 +1,36 @@ -import {sanitizeUrl} from '@braintree/sanitize-url' -import {StackActions, useLinkProps} from '@react-navigation/native' -import { - DebouncedNavigationProp, - useNavigationDeduped, -} from 'lib/hooks/useNavigationDeduped' -import { - convertBskyAppUrlIfNeeded, - isExternalUrl, - linkRequiresWarning, -} from 'lib/strings/url-helpers' -import {TypographyVariant} from 'lib/ThemeContext' -import {isAndroid, isWeb} from 'platform/detection' import React, {ComponentProps, memo, useMemo} from 'react' import { GestureResponderEvent, Platform, - Pressable, StyleProp, - TextProps, TextStyle, - TouchableOpacity, - TouchableWithoutFeedback, + TextProps, View, ViewStyle, + Pressable, + TouchableWithoutFeedback, + TouchableOpacity, } from 'react-native' -import {WebAuxClickWrapper} from 'view/com/util/WebAuxClickWrapper' - -import {useModalControls} from '#/state/modals' -import {useOpenLink} from '#/state/preferences/in-app-browser' - +import {useLinkProps, StackActions} from '@react-navigation/native' +import {Text} from './text/Text' +import {TypographyVariant} from 'lib/ThemeContext' import {router} from '../../../routes' -import FixedTouchableHighlight from '../pager/FixedTouchableHighlight' +import { + convertBskyAppUrlIfNeeded, + isExternalUrl, + linkRequiresWarning, +} from 'lib/strings/url-helpers' +import {isAndroid, isWeb} from 'platform/detection' +import {sanitizeUrl} from '@braintree/sanitize-url' import {PressableWithHover} from './PressableWithHover' -import {Text} from './text/Text' +import FixedTouchableHighlight from '../pager/FixedTouchableHighlight' +import {useModalControls} from '#/state/modals' +import {useOpenLink} from '#/state/preferences/in-app-browser' +import {WebAuxClickWrapper} from 'view/com/util/WebAuxClickWrapper' +import { + DebouncedNavigationProp, + useNavigationDeduped, +} from 'lib/hooks/useNavigationDeduped' type Event = | React.MouseEvent diff --git a/src/view/com/util/List.tsx b/src/view/com/util/List.tsx index 896608af1f..d30a9d805b 100644 --- a/src/view/com/util/List.tsx +++ b/src/view/com/util/List.tsx @@ -1,13 +1,11 @@ -import {addStyle} from 'lib/styles' import React, {memo} from 'react' import {FlatListProps, RefreshControl} from 'react-native' +import {FlatList_INTERNAL} from './Views' +import {addStyle} from 'lib/styles' +import {useScrollHandlers} from '#/lib/ScrollContext' import {runOnJS, useSharedValue} from 'react-native-reanimated' - import {useAnimatedScrollHandler} from '#/lib/hooks/useAnimatedScrollHandler_FIXED' import {usePalette} from '#/lib/hooks/usePalette' -import {useScrollHandlers} from '#/lib/ScrollContext' - -import {FlatList_INTERNAL} from './Views' export type ListMethods = FlatList_INTERNAL export type ListProps = Omit< diff --git a/src/view/com/util/List.web.tsx b/src/view/com/util/List.web.tsx index 6fb17b9f68..936bac198d 100644 --- a/src/view/com/util/List.web.tsx +++ b/src/view/com/util/List.web.tsx @@ -1,12 +1,11 @@ +import React, {isValidElement, memo, useRef, startTransition} from 'react' +import {FlatListProps, StyleSheet, View, ViewProps} from 'react-native' +import {addStyle} from 'lib/styles' import {usePalette} from 'lib/hooks/usePalette' import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {addStyle} from 'lib/styles' -import React, {isValidElement, memo, startTransition, useRef} from 'react' -import {FlatListProps, StyleSheet, View, ViewProps} from 'react-native' - -import {batchedUpdates} from '#/lib/batchedUpdates' -import {useNonReactiveCallback} from '#/lib/hooks/useNonReactiveCallback' import {useScrollHandlers} from '#/lib/ScrollContext' +import {useNonReactiveCallback} from '#/lib/hooks/useNonReactiveCallback' +import {batchedUpdates} from '#/lib/batchedUpdates' export type ListMethods = any // TODO: Better types. export type ListProps = Omit< diff --git a/src/view/com/util/LoadMoreRetryBtn.tsx b/src/view/com/util/LoadMoreRetryBtn.tsx index fa82456322..a2e9838b36 100644 --- a/src/view/com/util/LoadMoreRetryBtn.tsx +++ b/src/view/com/util/LoadMoreRetryBtn.tsx @@ -1,13 +1,12 @@ +import React from 'react' +import {StyleSheet} from 'react-native' import { FontAwesomeIcon, FontAwesomeIconStyle, } from '@fortawesome/react-native-fontawesome' -import {usePalette} from 'lib/hooks/usePalette' -import React from 'react' -import {StyleSheet} from 'react-native' - import {Button} from './forms/Button' import {Text} from './text/Text' +import {usePalette} from 'lib/hooks/usePalette' export function LoadMoreRetryBtn({ label, diff --git a/src/view/com/util/LoadingPlaceholder.tsx b/src/view/com/util/LoadingPlaceholder.tsx index fb2c226e8e..6dfe125985 100644 --- a/src/view/com/util/LoadingPlaceholder.tsx +++ b/src/view/com/util/LoadingPlaceholder.tsx @@ -1,20 +1,20 @@ -import {usePalette} from 'lib/hooks/usePalette' +import React from 'react' +import { + StyleSheet, + StyleProp, + View, + ViewStyle, + DimensionValue, +} from 'react-native' import { - CommentBottomArrow, HeartIcon, HeartIconSolid, + CommentBottomArrow, RepostIcon, } from 'lib/icons' import {s} from 'lib/styles' import {useTheme} from 'lib/ThemeContext' -import React from 'react' -import { - DimensionValue, - StyleProp, - StyleSheet, - View, - ViewStyle, -} from 'react-native' +import {usePalette} from 'lib/hooks/usePalette' export function LoadingPlaceholder({ width, diff --git a/src/view/com/util/LoadingScreen.tsx b/src/view/com/util/LoadingScreen.tsx index 0736649316..93c3bee42a 100644 --- a/src/view/com/util/LoadingScreen.tsx +++ b/src/view/com/util/LoadingScreen.tsx @@ -1,7 +1,6 @@ -import {s} from 'lib/styles' import React from 'react' import {ActivityIndicator, View} from 'react-native' - +import {s} from 'lib/styles' import {CenteredView} from './Views' export function LoadingScreen() { diff --git a/src/view/com/util/MainScrollProvider.tsx b/src/view/com/util/MainScrollProvider.tsx index 1ed0631ac4..01b8a954d5 100644 --- a/src/view/com/util/MainScrollProvider.tsx +++ b/src/view/com/util/MainScrollProvider.tsx @@ -1,12 +1,11 @@ -import EventEmitter from 'eventemitter3' -import {isNative, isWeb} from 'platform/detection' import React, {useCallback, useEffect} from 'react' -import {NativeScrollEvent} from 'react-native' -import {interpolate, useSharedValue} from 'react-native-reanimated' - +import EventEmitter from 'eventemitter3' import {ScrollProvider} from '#/lib/ScrollContext' -import {useMinimalShellMode, useSetMinimalShellMode} from '#/state/shell' +import {NativeScrollEvent} from 'react-native' +import {useSetMinimalShellMode, useMinimalShellMode} from '#/state/shell' import {useShellLayout} from '#/state/shell/shell-layout' +import {isNative, isWeb} from 'platform/detection' +import {useSharedValue, interpolate} from 'react-native-reanimated' const WEB_HIDE_SHELL_THRESHOLD = 200 diff --git a/src/view/com/util/PostMeta.tsx b/src/view/com/util/PostMeta.tsx index 5832fc5d86..3795dcf136 100644 --- a/src/view/com/util/PostMeta.tsx +++ b/src/view/com/util/PostMeta.tsx @@ -1,20 +1,18 @@ -import {ModerationUI} from '@atproto/api' +import React, {memo} from 'react' +import {StyleProp, StyleSheet, TextStyle, View, ViewStyle} from 'react-native' +import {Text} from './text/Text' +import {TextLinkOnWebOnly} from './Link' +import {niceDate} from 'lib/strings/time' import {usePalette} from 'lib/hooks/usePalette' -import {makeProfileLink} from 'lib/routes/links' +import {TypographyVariant} from 'lib/ThemeContext' +import {UserAvatar} from './UserAvatar' import {sanitizeDisplayName} from 'lib/strings/display-names' import {sanitizeHandle} from 'lib/strings/handles' -import {niceDate} from 'lib/strings/time' -import {TypographyVariant} from 'lib/ThemeContext' import {isAndroid, isWeb} from 'platform/detection' -import React, {memo} from 'react' -import {StyleProp, StyleSheet, TextStyle, View, ViewStyle} from 'react-native' - -import {usePrefetchProfileQuery} from '#/state/queries/profile' - -import {TextLinkOnWebOnly} from './Link' -import {Text} from './text/Text' import {TimeElapsed} from './TimeElapsed' -import {UserAvatar} from './UserAvatar' +import {makeProfileLink} from 'lib/routes/links' +import {ModerationUI} from '@atproto/api' +import {usePrefetchProfileQuery} from '#/state/queries/profile' interface PostMetaOpts { author: { diff --git a/src/view/com/util/PressableWithHover.tsx b/src/view/com/util/PressableWithHover.tsx index 83c84f836b..77276f1843 100644 --- a/src/view/com/util/PressableWithHover.tsx +++ b/src/view/com/util/PressableWithHover.tsx @@ -1,12 +1,12 @@ -import {addStyle} from 'lib/styles' import React, { - forwardRef, + useState, + useCallback, PropsWithChildren, + forwardRef, Ref, - useCallback, - useState, } from 'react' import {Pressable, PressableProps, StyleProp, ViewStyle} from 'react-native' +import {addStyle} from 'lib/styles' interface PressableWithHover extends PressableProps { hoverStyle: StyleProp diff --git a/src/view/com/util/Selector.tsx b/src/view/com/util/Selector.tsx index b607a018a9..66e363cd41 100644 --- a/src/view/com/util/Selector.tsx +++ b/src/view/com/util/Selector.tsx @@ -1,10 +1,9 @@ -import {msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {usePalette} from 'lib/hooks/usePalette' -import React, {createRef, useMemo, useRef, useState} from 'react' +import React, {createRef, useState, useMemo, useRef} from 'react' import {Animated, Pressable, StyleSheet, View} from 'react-native' - import {Text} from './text/Text' +import {usePalette} from 'lib/hooks/usePalette' +import {useLingui} from '@lingui/react' +import {msg} from '@lingui/macro' interface Layout { x: number diff --git a/src/view/com/util/SimpleViewHeader.tsx b/src/view/com/util/SimpleViewHeader.tsx index 3319f7a943..814b2fb15d 100644 --- a/src/view/com/util/SimpleViewHeader.tsx +++ b/src/view/com/util/SimpleViewHeader.tsx @@ -1,9 +1,3 @@ -import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' -import {useNavigation} from '@react-navigation/native' -import {useAnalytics} from 'lib/analytics/analytics' -import {usePalette} from 'lib/hooks/usePalette' -import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {NavigationProp} from 'lib/routes/types' import React from 'react' import { StyleProp, @@ -12,11 +6,15 @@ import { View, ViewStyle, } from 'react-native' - -import {isWeb} from '#/platform/detection' -import {useSetDrawerOpen} from '#/state/shell' - +import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' +import {useNavigation} from '@react-navigation/native' import {CenteredView} from './Views' +import {usePalette} from 'lib/hooks/usePalette' +import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' +import {useAnalytics} from 'lib/analytics/analytics' +import {NavigationProp} from 'lib/routes/types' +import {useSetDrawerOpen} from '#/state/shell' +import {isWeb} from '#/platform/detection' const BACK_HITSLOP = {left: 20, top: 20, right: 50, bottom: 20} diff --git a/src/view/com/util/TimeElapsed.tsx b/src/view/com/util/TimeElapsed.tsx index bf848193d1..aa3a092235 100644 --- a/src/view/com/util/TimeElapsed.tsx +++ b/src/view/com/util/TimeElapsed.tsx @@ -1,6 +1,5 @@ -import {ago} from 'lib/strings/time' import React from 'react' - +import {ago} from 'lib/strings/time' import {useTickEveryMinute} from '#/state/shell' // FIXME(dan): Figure out why the false positives diff --git a/src/view/com/util/Toast.tsx b/src/view/com/util/Toast.tsx index 91187e2059..5462505e1e 100644 --- a/src/view/com/util/Toast.tsx +++ b/src/view/com/util/Toast.tsx @@ -1,16 +1,14 @@ +import RootSiblings from 'react-native-root-siblings' +import React from 'react' +import {Animated, StyleSheet, View} from 'react-native' import {Props as FontAwesomeProps} from '@fortawesome/react-native-fontawesome' -import {useAnimatedValue} from 'lib/hooks/useAnimatedValue' -import {usePalette} from 'lib/hooks/usePalette' +import {Text} from './text/Text' import {colors} from 'lib/styles' import {useTheme} from 'lib/ThemeContext' -import React from 'react' -import {Animated, StyleSheet, View} from 'react-native' -import RootSiblings from 'react-native-root-siblings' - +import {usePalette} from 'lib/hooks/usePalette' +import {useAnimatedValue} from 'lib/hooks/useAnimatedValue' import {IS_TEST} from '#/env' -import {Text} from './text/Text' - const TIMEOUT = 4e3 export function show( diff --git a/src/view/com/util/Toast.web.tsx b/src/view/com/util/Toast.web.tsx index da7a5df8ea..d5a8435412 100644 --- a/src/view/com/util/Toast.web.tsx +++ b/src/view/com/util/Toast.web.tsx @@ -2,13 +2,13 @@ * Note: the dataSet properties are used to leverage custom CSS in public/index.html */ +import React, {useState, useEffect} from 'react' +import {StyleSheet, Text, View} from 'react-native' import { FontAwesomeIcon, FontAwesomeIconStyle, Props as FontAwesomeProps, } from '@fortawesome/react-native-fontawesome' -import React, {useEffect, useState} from 'react' -import {StyleSheet, Text, View} from 'react-native' const DURATION = 3500 diff --git a/src/view/com/util/UserAvatar.tsx b/src/view/com/util/UserAvatar.tsx index 2aa28b725f..4132373974 100644 --- a/src/view/com/util/UserAvatar.tsx +++ b/src/view/com/util/UserAvatar.tsx @@ -1,31 +1,30 @@ -import {ModerationUI} from '@atproto/api' -import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' -import {msg, Trans} from '@lingui/macro' +import React, {memo, useMemo} from 'react' +import {Image, StyleSheet, TouchableOpacity, View} from 'react-native' +import Svg, {Circle, Rect, Path} from 'react-native-svg' +import {Image as RNImage} from 'react-native-image-crop-picker' import {useLingui} from '@lingui/react' -import {usePalette} from 'lib/hooks/usePalette' +import {msg, Trans} from '@lingui/macro' +import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' +import {ModerationUI} from '@atproto/api' + +import {HighPriorityImage} from 'view/com/util/images/Image' +import {openCamera, openCropper, openPicker} from '../../../lib/media/picker' import { - useCameraPermission, usePhotoLibraryPermission, + useCameraPermission, } from 'lib/hooks/usePermissions' import {colors} from 'lib/styles' -import {isAndroid, isNative, isWeb} from 'platform/detection' -import React, {memo, useMemo} from 'react' -import {Image, StyleSheet, TouchableOpacity, View} from 'react-native' -import {Image as RNImage} from 'react-native-image-crop-picker' -import Svg, {Circle, Path, Rect} from 'react-native-svg' -import {HighPriorityImage} from 'view/com/util/images/Image' - -import {useTheme} from '#/alf' +import {usePalette} from 'lib/hooks/usePalette' +import {isWeb, isAndroid, isNative} from 'platform/detection' +import {UserPreviewLink} from './UserPreviewLink' +import * as Menu from '#/components/Menu' import { - Camera_Filled_Stroke2_Corner0_Rounded as CameraFilled, Camera_Stroke2_Corner0_Rounded as Camera, + Camera_Filled_Stroke2_Corner0_Rounded as CameraFilled, } from '#/components/icons/Camera' import {StreamingLive_Stroke2_Corner0_Rounded as Library} from '#/components/icons/StreamingLive' import {Trash_Stroke2_Corner0_Rounded as Trash} from '#/components/icons/Trash' -import * as Menu from '#/components/Menu' - -import {openCamera, openCropper, openPicker} from '../../../lib/media/picker' -import {UserPreviewLink} from './UserPreviewLink' +import {useTheme} from '#/alf' export type UserAvatarType = 'user' | 'algo' | 'list' diff --git a/src/view/com/util/UserBanner.tsx b/src/view/com/util/UserBanner.tsx index 6eb0ccc12a..a5ddfee8ac 100644 --- a/src/view/com/util/UserBanner.tsx +++ b/src/view/com/util/UserBanner.tsx @@ -1,30 +1,29 @@ +import React from 'react' +import {StyleSheet, TouchableOpacity, View} from 'react-native' import {ModerationUI} from '@atproto/api' -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' import {Image} from 'expo-image' -import {usePalette} from 'lib/hooks/usePalette' +import {useLingui} from '@lingui/react' +import {msg, Trans} from '@lingui/macro' + +import {colors} from 'lib/styles' +import {useTheme} from 'lib/ThemeContext' +import {useTheme as useAlfTheme} from '#/alf' +import {openCamera, openCropper, openPicker} from '../../../lib/media/picker' import { - useCameraPermission, usePhotoLibraryPermission, + useCameraPermission, } from 'lib/hooks/usePermissions' -import {colors} from 'lib/styles' -import {useTheme} from 'lib/ThemeContext' +import {usePalette} from 'lib/hooks/usePalette' import {isAndroid, isNative} from 'platform/detection' -import React from 'react' -import {StyleSheet, TouchableOpacity, View} from 'react-native' import {Image as RNImage} from 'react-native-image-crop-picker' import {EventStopper} from 'view/com/util/EventStopper' - -import {useTheme as useAlfTheme} from '#/alf' +import * as Menu from '#/components/Menu' import { Camera_Filled_Stroke2_Corner0_Rounded as CameraFilled, Camera_Stroke2_Corner0_Rounded as Camera, } from '#/components/icons/Camera' import {StreamingLive_Stroke2_Corner0_Rounded as Library} from '#/components/icons/StreamingLive' import {Trash_Stroke2_Corner0_Rounded as Trash} from '#/components/icons/Trash' -import * as Menu from '#/components/Menu' - -import {openCamera, openCropper, openPicker} from '../../../lib/media/picker' export function UserBanner({ banner, diff --git a/src/view/com/util/UserInfoText.tsx b/src/view/com/util/UserInfoText.tsx index ab937c664b..9cb9997f60 100644 --- a/src/view/com/util/UserInfoText.tsx +++ b/src/view/com/util/UserInfoText.tsx @@ -1,17 +1,15 @@ -import {AppBskyActorGetProfile as GetProfile} from '@atproto/api' -import {makeProfileLink} from 'lib/routes/links' -import {sanitizeDisplayName} from 'lib/strings/display-names' -import {sanitizeHandle} from 'lib/strings/handles' -import {TypographyVariant} from 'lib/ThemeContext' import React from 'react' +import {AppBskyActorGetProfile as GetProfile} from '@atproto/api' import {StyleProp, StyleSheet, TextStyle} from 'react-native' - -import {STALE} from '#/state/queries' -import {useProfileQuery} from '#/state/queries/profile' - import {TextLinkOnWebOnly} from './Link' -import {LoadingPlaceholder} from './LoadingPlaceholder' import {Text} from './text/Text' +import {LoadingPlaceholder} from './LoadingPlaceholder' +import {TypographyVariant} from 'lib/ThemeContext' +import {sanitizeDisplayName} from 'lib/strings/display-names' +import {sanitizeHandle} from 'lib/strings/handles' +import {makeProfileLink} from 'lib/routes/links' +import {useProfileQuery} from '#/state/queries/profile' +import {STALE} from '#/state/queries' export function UserInfoText({ type = 'md', diff --git a/src/view/com/util/UserPreviewLink.tsx b/src/view/com/util/UserPreviewLink.tsx index 09d230000e..a2c46afc01 100644 --- a/src/view/com/util/UserPreviewLink.tsx +++ b/src/view/com/util/UserPreviewLink.tsx @@ -1,11 +1,9 @@ -import {makeProfileLink} from 'lib/routes/links' -import {isWeb} from 'platform/detection' import React from 'react' import {StyleProp, ViewStyle} from 'react-native' - -import {usePrefetchProfileQuery} from '#/state/queries/profile' - import {Link} from './Link' +import {isWeb} from 'platform/detection' +import {makeProfileLink} from 'lib/routes/links' +import {usePrefetchProfileQuery} from '#/state/queries/profile' interface UserPreviewLinkProps { did: string diff --git a/src/view/com/util/ViewHeader.tsx b/src/view/com/util/ViewHeader.tsx index 3ac7572692..872e10eef0 100644 --- a/src/view/com/util/ViewHeader.tsx +++ b/src/view/com/util/ViewHeader.tsx @@ -1,21 +1,19 @@ +import React from 'react' +import {StyleSheet, TouchableOpacity, View} from 'react-native' import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' -import {msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' import {useNavigation} from '@react-navigation/native' -import {useAnalytics} from 'lib/analytics/analytics' -import {useMinimalShellMode} from 'lib/hooks/useMinimalShellMode' +import {CenteredView} from './Views' +import {Text} from './text/Text' import {usePalette} from 'lib/hooks/usePalette' import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' +import {useAnalytics} from 'lib/analytics/analytics' import {NavigationProp} from 'lib/routes/types' -import React from 'react' -import {StyleSheet, TouchableOpacity, View} from 'react-native' +import {useMinimalShellMode} from 'lib/hooks/useMinimalShellMode' import Animated from 'react-native-reanimated' - -import {useTheme} from '#/alf' import {useSetDrawerOpen} from '#/state/shell' - -import {Text} from './text/Text' -import {CenteredView} from './Views' +import {msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {useTheme} from '#/alf' const BACK_HITSLOP = {left: 20, top: 20, right: 50, bottom: 20} diff --git a/src/view/com/util/ViewSelector.tsx b/src/view/com/util/ViewSelector.tsx index 3800283349..ee993c564d 100644 --- a/src/view/com/util/ViewSelector.tsx +++ b/src/view/com/util/ViewSelector.tsx @@ -1,21 +1,20 @@ -import {useColorSchemeStyle} from 'lib/hooks/useColorSchemeStyle' -import {usePalette} from 'lib/hooks/usePalette' -import {clamp} from 'lib/numbers' -import {colors, s} from 'lib/styles' -import {isAndroid} from 'platform/detection' import React, {useEffect, useState} from 'react' import { - NativeScrollEvent, NativeSyntheticEvent, + NativeScrollEvent, Pressable, RefreshControl, - ScrollView, StyleSheet, View, + ScrollView, } from 'react-native' - -import {Text} from './text/Text' import {FlatList_INTERNAL} from './Views' +import {useColorSchemeStyle} from 'lib/hooks/useColorSchemeStyle' +import {Text} from './text/Text' +import {usePalette} from 'lib/hooks/usePalette' +import {clamp} from 'lib/numbers' +import {s, colors} from 'lib/styles' +import {isAndroid} from 'platform/detection' const HEADER_ITEM = {_reactKey: '__header__'} const SELECTOR_ITEM = {_reactKey: '__selector__'} diff --git a/src/view/com/util/Views.web.tsx b/src/view/com/util/Views.web.tsx index db023a32c8..ae165077ca 100644 --- a/src/view/com/util/Views.web.tsx +++ b/src/view/com/util/Views.web.tsx @@ -12,9 +12,6 @@ * need to match layout but which aren't scrolled. */ -import {usePalette} from 'lib/hooks/usePalette' -import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {addStyle} from 'lib/styles' import React from 'react' import { FlatListProps, @@ -23,6 +20,9 @@ import { View, ViewProps, } from 'react-native' +import {addStyle} from 'lib/styles' +import {usePalette} from 'lib/hooks/usePalette' +import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' import Animated from 'react-native-reanimated' interface AddedProps { diff --git a/src/view/com/util/anim/TriggerableAnimated.tsx b/src/view/com/util/anim/TriggerableAnimated.tsx index bb88035d7b..eedeeda037 100644 --- a/src/view/com/util/anim/TriggerableAnimated.tsx +++ b/src/view/com/util/anim/TriggerableAnimated.tsx @@ -1,6 +1,6 @@ -import {useAnimatedValue} from 'lib/hooks/useAnimatedValue' import React from 'react' import {Animated, StyleProp, View, ViewStyle} from 'react-native' +import {useAnimatedValue} from 'lib/hooks/useAnimatedValue' type CreateAnimFn = (interp: Animated.Value) => Animated.CompositeAnimation type FinishCb = () => void diff --git a/src/view/com/util/error/ErrorMessage.tsx b/src/view/com/util/error/ErrorMessage.tsx index 5418a0204d..a4238b8a46 100644 --- a/src/view/com/util/error/ErrorMessage.tsx +++ b/src/view/com/util/error/ErrorMessage.tsx @@ -1,21 +1,20 @@ -import { - FontAwesomeIcon, - FontAwesomeIconStyle, -} from '@fortawesome/react-native-fontawesome' -import {msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {usePalette} from 'lib/hooks/usePalette' -import {useTheme} from 'lib/ThemeContext' import React from 'react' import { - StyleProp, StyleSheet, TouchableOpacity, + StyleProp, View, ViewStyle, } from 'react-native' - +import { + FontAwesomeIcon, + FontAwesomeIconStyle, +} from '@fortawesome/react-native-fontawesome' import {Text} from '../text/Text' +import {useTheme} from 'lib/ThemeContext' +import {usePalette} from 'lib/hooks/usePalette' +import {useLingui} from '@lingui/react' +import {msg} from '@lingui/macro' export function ErrorMessage({ message, diff --git a/src/view/com/util/error/ErrorScreen.tsx b/src/view/com/util/error/ErrorScreen.tsx index f3c4a7a3bd..98fe6437b6 100644 --- a/src/view/com/util/error/ErrorScreen.tsx +++ b/src/view/com/util/error/ErrorScreen.tsx @@ -1,19 +1,18 @@ +import React from 'react' +import {StyleSheet, View} from 'react-native' import { FontAwesomeIcon, FontAwesomeIconStyle, } from '@fortawesome/react-native-fontawesome' -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {usePalette} from 'lib/hooks/usePalette' -import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' +import {Text} from '../text/Text' import {useTheme} from 'lib/ThemeContext' -import React from 'react' -import {StyleSheet, View} from 'react-native' -import {ViewHeader} from 'view/com/util/ViewHeader' - +import {usePalette} from 'lib/hooks/usePalette' import {Button} from '../forms/Button' -import {Text} from '../text/Text' import {CenteredView} from '../Views' +import {Trans, msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {ViewHeader} from 'view/com/util/ViewHeader' +import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' export function ErrorScreen({ title, diff --git a/src/view/com/util/fab/FAB.web.tsx b/src/view/com/util/fab/FAB.web.tsx index cbe1adfd38..0a8831fa92 100644 --- a/src/view/com/util/fab/FAB.web.tsx +++ b/src/view/com/util/fab/FAB.web.tsx @@ -1,8 +1,7 @@ -import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' import React from 'react' import {View} from 'react-native' - import {FABInner, FABProps} from './FABInner' +import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' export const FAB = (_opts: FABProps) => { const {isDesktop} = useWebMediaQueries() diff --git a/src/view/com/util/fab/FABInner.tsx b/src/view/com/util/fab/FABInner.tsx index 15e3262ae9..27a16117bd 100644 --- a/src/view/com/util/fab/FABInner.tsx +++ b/src/view/com/util/fab/FABInner.tsx @@ -1,14 +1,13 @@ -import {useMinimalShellMode} from 'lib/hooks/useMinimalShellMode' -import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {clamp} from 'lib/numbers' -import {gradients} from 'lib/styles' import React, {ComponentProps} from 'react' import {StyleSheet, TouchableWithoutFeedback} from 'react-native' import LinearGradient from 'react-native-linear-gradient' -import Animated from 'react-native-reanimated' +import {gradients} from 'lib/styles' +import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' import {useSafeAreaInsets} from 'react-native-safe-area-context' - +import {clamp} from 'lib/numbers' +import {useMinimalShellMode} from 'lib/hooks/useMinimalShellMode' import {isWeb} from '#/platform/detection' +import Animated from 'react-native-reanimated' export interface FABProps extends ComponentProps { diff --git a/src/view/com/util/forms/Button.tsx b/src/view/com/util/forms/Button.tsx index 62d49c00bf..e6e05bb044 100644 --- a/src/view/com/util/forms/Button.tsx +++ b/src/view/com/util/forms/Button.tsx @@ -1,21 +1,20 @@ -import {choose} from 'lib/functions' -import {useTheme} from 'lib/ThemeContext' import React from 'react' import { - ActivityIndicator, GestureResponderEvent, - NativeSyntheticEvent, - NativeTouchEvent, - Pressable, - PressableStateCallbackType, StyleProp, StyleSheet, TextStyle, - View, + Pressable, ViewStyle, + PressableStateCallbackType, + ActivityIndicator, + View, + NativeSyntheticEvent, + NativeTouchEvent, } from 'react-native' - import {Text} from '../text/Text' +import {useTheme} from 'lib/ThemeContext' +import {choose} from 'lib/functions' export type ButtonType = | 'primary' diff --git a/src/view/com/util/forms/DateInput.tsx b/src/view/com/util/forms/DateInput.tsx index 8a813049a4..0104562aa5 100644 --- a/src/view/com/util/forms/DateInput.tsx +++ b/src/view/com/util/forms/DateInput.tsx @@ -1,19 +1,18 @@ +import React, {useState, useCallback} from 'react' +import {StyleProp, StyleSheet, TextStyle, View, ViewStyle} from 'react-native' import { FontAwesomeIcon, FontAwesomeIconStyle, } from '@fortawesome/react-native-fontawesome' -import {getLocales} from 'expo-localization' -import {usePalette} from 'lib/hooks/usePalette' +import {isIOS, isAndroid} from 'platform/detection' +import {Button, ButtonType} from './Button' +import {Text} from '../text/Text' import {TypographyVariant} from 'lib/ThemeContext' import {useTheme} from 'lib/ThemeContext' -import {isAndroid, isIOS} from 'platform/detection' -import React, {useCallback, useState} from 'react' -import {StyleProp, StyleSheet, TextStyle, View, ViewStyle} from 'react-native' +import {usePalette} from 'lib/hooks/usePalette' +import {getLocales} from 'expo-localization' import DatePicker from 'react-native-date-picker' -import {Text} from '../text/Text' -import {Button, ButtonType} from './Button' - const LOCALE = getLocales()[0] interface Props { diff --git a/src/view/com/util/forms/DateInput.web.tsx b/src/view/com/util/forms/DateInput.web.tsx index ff1ed58b76..8d74f6dae2 100644 --- a/src/view/com/util/forms/DateInput.web.tsx +++ b/src/view/com/util/forms/DateInput.web.tsx @@ -1,8 +1,8 @@ -import {usePalette} from 'lib/hooks/usePalette' -import React, {useCallback, useState} from 'react' +import React, {useState, useCallback} from 'react' import {StyleProp, StyleSheet, TextStyle, View, ViewStyle} from 'react-native' // @ts-ignore types not available -prf import {unstable_createElement} from 'react-native-web' +import {usePalette} from 'lib/hooks/usePalette' interface Props { testID?: string diff --git a/src/view/com/util/forms/DropdownButton.tsx b/src/view/com/util/forms/DropdownButton.tsx index f12f1d09cc..2285b0615a 100644 --- a/src/view/com/util/forms/DropdownButton.tsx +++ b/src/view/com/util/forms/DropdownButton.tsx @@ -1,12 +1,3 @@ -import {IconProp} from '@fortawesome/fontawesome-svg-core' -import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' -import {msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {HITSLOP_10} from 'lib/constants' -import {usePalette} from 'lib/hooks/usePalette' -import {colors} from 'lib/styles' -import {useTheme} from 'lib/ThemeContext' -import {isWeb} from 'platform/detection' import React, {PropsWithChildren, useMemo, useRef} from 'react' import { Dimensions, @@ -19,10 +10,18 @@ import { View, ViewStyle, } from 'react-native' +import {IconProp} from '@fortawesome/fontawesome-svg-core' import RootSiblings from 'react-native-root-siblings' - +import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' import {Text} from '../text/Text' import {Button, ButtonType} from './Button' +import {colors} from 'lib/styles' +import {usePalette} from 'lib/hooks/usePalette' +import {useTheme} from 'lib/ThemeContext' +import {HITSLOP_10} from 'lib/constants' +import {useLingui} from '@lingui/react' +import {msg} from '@lingui/macro' +import {isWeb} from 'platform/detection' const ESTIMATED_BTN_HEIGHT = 50 const ESTIMATED_SEP_HEIGHT = 16 diff --git a/src/view/com/util/forms/NativeDropdown.tsx b/src/view/com/util/forms/NativeDropdown.tsx index 62f830c43b..0a47569f27 100644 --- a/src/view/com/util/forms/NativeDropdown.tsx +++ b/src/view/com/util/forms/NativeDropdown.tsx @@ -1,13 +1,13 @@ -import {IconProp} from '@fortawesome/fontawesome-svg-core' -import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' -import {HITSLOP_10} from 'lib/constants' -import {usePalette} from 'lib/hooks/usePalette' -import {useTheme} from 'lib/ThemeContext' -import {isWeb} from 'platform/detection' import React from 'react' -import {Platform, Pressable, StyleSheet, View, ViewStyle} from 'react-native' +import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' import * as DropdownMenu from 'zeego/dropdown-menu' +import {Pressable, StyleSheet, Platform, View, ViewStyle} from 'react-native' +import {IconProp} from '@fortawesome/fontawesome-svg-core' import {MenuItemCommonProps} from 'zeego/lib/typescript/menu' +import {usePalette} from 'lib/hooks/usePalette' +import {isWeb} from 'platform/detection' +import {useTheme} from 'lib/ThemeContext' +import {HITSLOP_10} from 'lib/constants' // Custom Dropdown Menu Components // == diff --git a/src/view/com/util/forms/NativeDropdown.web.tsx b/src/view/com/util/forms/NativeDropdown.web.tsx index 10a005446c..6abeb16cc2 100644 --- a/src/view/com/util/forms/NativeDropdown.web.tsx +++ b/src/view/com/util/forms/NativeDropdown.web.tsx @@ -1,12 +1,12 @@ -import {IconProp} from '@fortawesome/fontawesome-svg-core' +import React from 'react' import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' import * as DropdownMenu from '@radix-ui/react-dropdown-menu' -import {HITSLOP_10} from 'lib/constants' +import {Pressable, StyleSheet, View, Text, ViewStyle} from 'react-native' +import {IconProp} from '@fortawesome/fontawesome-svg-core' +import {MenuItemCommonProps} from 'zeego/lib/typescript/menu' import {usePalette} from 'lib/hooks/usePalette' import {useTheme} from 'lib/ThemeContext' -import React from 'react' -import {Pressable, StyleSheet, Text, View, ViewStyle} from 'react-native' -import {MenuItemCommonProps} from 'zeego/lib/typescript/menu' +import {HITSLOP_10} from 'lib/constants' // Custom Dropdown Menu Components // == diff --git a/src/view/com/util/forms/PostDropdownBtn.tsx b/src/view/com/util/forms/PostDropdownBtn.tsx index 9727fc21f8..3c1a736f3f 100644 --- a/src/view/com/util/forms/PostDropdownBtn.tsx +++ b/src/view/com/util/forms/PostDropdownBtn.tsx @@ -1,50 +1,49 @@ +import React, {memo} from 'react' +import {StyleProp, ViewStyle, Pressable, PressableProps} from 'react-native' +import Clipboard from '@react-native-clipboard/clipboard' +import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' +import {useNavigation} from '@react-navigation/native' import { AppBskyActorDefs, AppBskyFeedPost, AtUri, RichText as RichTextAPI, } from '@atproto/api' -import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' -import {msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import Clipboard from '@react-native-clipboard/clipboard' -import {useNavigation} from '@react-navigation/native' -import {getCurrentRoute} from 'lib/routes/helpers' -import {shareUrl} from 'lib/sharing' import {toShareUrl} from 'lib/strings/url-helpers' import {useTheme} from 'lib/ThemeContext' -import React, {memo} from 'react' -import {Pressable, PressableProps, StyleProp, ViewStyle} from 'react-native' - -import {atoms as a, useTheme as useAlf} from '#/alf' -import {useGlobalDialogsControlContext} from '#/components/dialogs/Context' -import {ArrowOutOfBox_Stroke2_Corner0_Rounded as Share} from '#/components/icons/ArrowOutOfBox' -import {BubbleQuestion_Stroke2_Corner0_Rounded as Translate} from '#/components/icons/Bubble' -import {CircleInfo_Stroke2_Corner0_Rounded as CircleInfo} from '#/components/icons/CircleInfo' -import {Clipboard_Stroke2_Corner2_Rounded as ClipboardIcon} from '#/components/icons/Clipboard' -import {EyeSlash_Stroke2_Corner0_Rounded as EyeSlash} from '#/components/icons/EyeSlash' -import {Filter_Stroke2_Corner0_Rounded as Filter} from '#/components/icons/Filter' -import {Mute_Stroke2_Corner0_Rounded as Mute} from '#/components/icons/Mute' -import {SpeakerVolumeFull_Stroke2_Corner0_Rounded as Unmute} from '#/components/icons/Speaker' -import {Trash_Stroke2_Corner0_Rounded as Trash} from '#/components/icons/Trash' -import {Warning_Stroke2_Corner0_Rounded as Warning} from '#/components/icons/Warning' -import * as Menu from '#/components/Menu' +import {shareUrl} from 'lib/sharing' +import * as Toast from '../Toast' +import {EventStopper} from '../EventStopper' +import {useModalControls} from '#/state/modals' import {makeProfileLink} from '#/lib/routes/links' import {CommonNavigatorParams} from '#/lib/routes/types' -import {richTextToString} from '#/lib/strings/rich-text-helpers' +import {getCurrentRoute} from 'lib/routes/helpers' import {getTranslatorLink} from '#/locale/helpers' -import {logger} from '#/logger' -import {isWeb} from '#/platform/detection' -import {useModalControls} from '#/state/modals' +import {usePostDeleteMutation} from '#/state/queries/post' import {useMutedThreads, useToggleThreadMute} from '#/state/muted-threads' import {useLanguagePrefs} from '#/state/preferences' import {useHiddenPosts, useHiddenPostsApi} from '#/state/preferences' import {useOpenLink} from '#/state/preferences/in-app-browser' -import {usePostDeleteMutation} from '#/state/queries/post' +import {logger} from '#/logger' +import {msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' import {useSession} from '#/state/session' +import {isWeb} from '#/platform/detection' +import {richTextToString} from '#/lib/strings/rich-text-helpers' +import {useGlobalDialogsControlContext} from '#/components/dialogs/Context' -import {EventStopper} from '../EventStopper' -import * as Toast from '../Toast' +import {atoms as a, useTheme as useAlf} from '#/alf' +import * as Menu from '#/components/Menu' +import {Clipboard_Stroke2_Corner2_Rounded as ClipboardIcon} from '#/components/icons/Clipboard' +import {Filter_Stroke2_Corner0_Rounded as Filter} from '#/components/icons/Filter' +import {ArrowOutOfBox_Stroke2_Corner0_Rounded as Share} from '#/components/icons/ArrowOutOfBox' +import {EyeSlash_Stroke2_Corner0_Rounded as EyeSlash} from '#/components/icons/EyeSlash' +import {Mute_Stroke2_Corner0_Rounded as Mute} from '#/components/icons/Mute' +import {SpeakerVolumeFull_Stroke2_Corner0_Rounded as Unmute} from '#/components/icons/Speaker' +import {BubbleQuestion_Stroke2_Corner0_Rounded as Translate} from '#/components/icons/Bubble' +import {Warning_Stroke2_Corner0_Rounded as Warning} from '#/components/icons/Warning' +import {Trash_Stroke2_Corner0_Rounded as Trash} from '#/components/icons/Trash' +import {CircleInfo_Stroke2_Corner0_Rounded as CircleInfo} from '#/components/icons/CircleInfo' let PostDropdownBtn = ({ testID, diff --git a/src/view/com/util/forms/RadioButton.tsx b/src/view/com/util/forms/RadioButton.tsx index 696a0c00ab..9d1cb47497 100644 --- a/src/view/com/util/forms/RadioButton.tsx +++ b/src/view/com/util/forms/RadioButton.tsx @@ -1,10 +1,9 @@ -import {choose} from 'lib/functions' -import {useTheme} from 'lib/ThemeContext' import React from 'react' import {StyleProp, StyleSheet, TextStyle, View, ViewStyle} from 'react-native' - import {Text} from '../text/Text' import {Button, ButtonType} from './Button' +import {useTheme} from 'lib/ThemeContext' +import {choose} from 'lib/functions' export function RadioButton({ testID, diff --git a/src/view/com/util/forms/RadioGroup.tsx b/src/view/com/util/forms/RadioGroup.tsx index abd1f5589d..14599e6490 100644 --- a/src/view/com/util/forms/RadioGroup.tsx +++ b/src/view/com/util/forms/RadioGroup.tsx @@ -1,9 +1,8 @@ -import {s} from 'lib/styles' import React, {useState} from 'react' import {View} from 'react-native' - -import {ButtonType} from './Button' import {RadioButton} from './RadioButton' +import {ButtonType} from './Button' +import {s} from 'lib/styles' export interface RadioGroupItem { label: string | JSX.Element diff --git a/src/view/com/util/forms/SearchInput.tsx b/src/view/com/util/forms/SearchInput.tsx index ff8b6bbddb..5a21d8fdd0 100644 --- a/src/view/com/util/forms/SearchInput.tsx +++ b/src/view/com/util/forms/SearchInput.tsx @@ -1,13 +1,3 @@ -import { - FontAwesomeIcon, - FontAwesomeIconStyle, -} from '@fortawesome/react-native-fontawesome' -import {msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {HITSLOP_10} from 'lib/constants' -import {usePalette} from 'lib/hooks/usePalette' -import {MagnifyingGlassIcon} from 'lib/icons' -import {useTheme} from 'lib/ThemeContext' import React from 'react' import { StyleProp, @@ -17,6 +7,16 @@ import { View, ViewStyle, } from 'react-native' +import { + FontAwesomeIcon, + FontAwesomeIconStyle, +} from '@fortawesome/react-native-fontawesome' +import {HITSLOP_10} from 'lib/constants' +import {MagnifyingGlassIcon} from 'lib/icons' +import {useTheme} from 'lib/ThemeContext' +import {usePalette} from 'lib/hooks/usePalette' +import {useLingui} from '@lingui/react' +import {msg} from '@lingui/macro' interface Props { query: string diff --git a/src/view/com/util/forms/SelectableBtn.tsx b/src/view/com/util/forms/SelectableBtn.tsx index 94eb049d2a..e577e155de 100644 --- a/src/view/com/util/forms/SelectableBtn.tsx +++ b/src/view/com/util/forms/SelectableBtn.tsx @@ -1,9 +1,8 @@ -import {usePalette} from 'lib/hooks/usePalette' -import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' import React from 'react' -import {Pressable, StyleProp, StyleSheet, ViewStyle} from 'react-native' - +import {Pressable, ViewStyle, StyleProp, StyleSheet} from 'react-native' import {Text} from '../text/Text' +import {usePalette} from 'lib/hooks/usePalette' +import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' interface SelectableBtnProps { testID?: string diff --git a/src/view/com/util/forms/ToggleButton.tsx b/src/view/com/util/forms/ToggleButton.tsx index e40218b803..c98e846cd3 100644 --- a/src/view/com/util/forms/ToggleButton.tsx +++ b/src/view/com/util/forms/ToggleButton.tsx @@ -1,12 +1,11 @@ -import {choose} from 'lib/functions' -import {colors} from 'lib/styles' -import {useTheme} from 'lib/ThemeContext' -import {TypographyVariant} from 'lib/ThemeContext' import React from 'react' import {StyleProp, StyleSheet, TextStyle, View, ViewStyle} from 'react-native' - import {Text} from '../text/Text' import {Button, ButtonType} from './Button' +import {useTheme} from 'lib/ThemeContext' +import {choose} from 'lib/functions' +import {colors} from 'lib/styles' +import {TypographyVariant} from 'lib/ThemeContext' export function ToggleButton({ testID, diff --git a/src/view/com/util/images/AutoSizedImage.tsx b/src/view/com/util/images/AutoSizedImage.tsx index 2b52b103d0..61cb6f69f3 100644 --- a/src/view/com/util/images/AutoSizedImage.tsx +++ b/src/view/com/util/images/AutoSizedImage.tsx @@ -1,11 +1,11 @@ -import {msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' +import React from 'react' +import {StyleProp, StyleSheet, Pressable, View, ViewStyle} from 'react-native' import {Image} from 'expo-image' -import * as imageSizes from 'lib/media/image-sizes' -import {Dimensions} from 'lib/media/types' import {clamp} from 'lib/numbers' -import React from 'react' -import {Pressable, StyleProp, StyleSheet, View, ViewStyle} from 'react-native' +import {Dimensions} from 'lib/media/types' +import * as imageSizes from 'lib/media/image-sizes' +import {msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' const MIN_ASPECT_RATIO = 0.33 // 1/3 const MAX_ASPECT_RATIO = 10 // 10/1 diff --git a/src/view/com/util/images/Gallery.tsx b/src/view/com/util/images/Gallery.tsx index b5bc394989..7de3b093ae 100644 --- a/src/view/com/util/images/Gallery.tsx +++ b/src/view/com/util/images/Gallery.tsx @@ -1,10 +1,10 @@ import {AppBskyEmbedImages} from '@atproto/api' +import React, {ComponentProps, FC} from 'react' +import {StyleSheet, Text, Pressable, View} from 'react-native' +import {Image} from 'expo-image' import {msg} from '@lingui/macro' import {useLingui} from '@lingui/react' -import {Image} from 'expo-image' import {isWeb} from 'platform/detection' -import React, {ComponentProps, FC} from 'react' -import {Pressable, StyleSheet, Text, View} from 'react-native' type EventFunction = (index: number) => void diff --git a/src/view/com/util/images/Image.tsx b/src/view/com/util/images/Image.tsx index fbdcfebbf9..e779fa3787 100644 --- a/src/view/com/util/images/Image.tsx +++ b/src/view/com/util/images/Image.tsx @@ -1,5 +1,5 @@ -import {Image, ImageProps, ImageSource} from 'expo-image' import React from 'react' +import {Image, ImageProps, ImageSource} from 'expo-image' interface HighPriorityImageProps extends ImageProps { source: ImageSource diff --git a/src/view/com/util/images/Image.web.tsx b/src/view/com/util/images/Image.web.tsx index eeaf16b9a6..ecd9d730ab 100644 --- a/src/view/com/util/images/Image.web.tsx +++ b/src/view/com/util/images/Image.web.tsx @@ -1,8 +1,8 @@ import { Image, + NativeSyntheticEvent, ImageLoadEventData, ImageSourcePropType, - NativeSyntheticEvent, } from 'react-native' export default Image export const HighPriorityImage = Image diff --git a/src/view/com/util/images/ImageHorzList.tsx b/src/view/com/util/images/ImageHorzList.tsx index a93fa195ca..e37f8af1b7 100644 --- a/src/view/com/util/images/ImageHorzList.tsx +++ b/src/view/com/util/images/ImageHorzList.tsx @@ -1,7 +1,7 @@ -import {AppBskyEmbedImages} from '@atproto/api' -import {Image} from 'expo-image' import React from 'react' import {StyleProp, StyleSheet, View, ViewStyle} from 'react-native' +import {Image} from 'expo-image' +import {AppBskyEmbedImages} from '@atproto/api' interface Props { images: AppBskyEmbedImages.ViewImage[] diff --git a/src/view/com/util/images/ImageLayoutGrid.tsx b/src/view/com/util/images/ImageLayoutGrid.tsx index fe2a409b20..ba6c04f505 100644 --- a/src/view/com/util/images/ImageLayoutGrid.tsx +++ b/src/view/com/util/images/ImageLayoutGrid.tsx @@ -1,9 +1,8 @@ -import {AppBskyEmbedImages} from '@atproto/api' -import {isWeb} from 'platform/detection' import React from 'react' import {StyleProp, StyleSheet, View, ViewStyle} from 'react-native' - +import {AppBskyEmbedImages} from '@atproto/api' import {GalleryItem} from './Gallery' +import {isWeb} from 'platform/detection' interface ImageLayoutGridProps { images: AppBskyEmbedImages.ViewImage[] diff --git a/src/view/com/util/layouts/LoggedOutLayout.tsx b/src/view/com/util/layouts/LoggedOutLayout.tsx index 1032c1f14e..9424a7154b 100644 --- a/src/view/com/util/layouts/LoggedOutLayout.tsx +++ b/src/view/com/util/layouts/LoggedOutLayout.tsx @@ -1,10 +1,9 @@ -import {useColorSchemeStyle} from 'lib/hooks/useColorSchemeStyle' -import {usePalette} from 'lib/hooks/usePalette' -import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' import React from 'react' import {StyleSheet, View} from 'react-native' - import {Text} from '../text/Text' +import {usePalette} from 'lib/hooks/usePalette' +import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' +import {useColorSchemeStyle} from 'lib/hooks/useColorSchemeStyle' export const LoggedOutLayout = ({ leadin, diff --git a/src/view/com/util/layouts/TitleColumnLayout.tsx b/src/view/com/util/layouts/TitleColumnLayout.tsx index 3033d7f42e..49ad9fcdb3 100644 --- a/src/view/com/util/layouts/TitleColumnLayout.tsx +++ b/src/view/com/util/layouts/TitleColumnLayout.tsx @@ -1,7 +1,7 @@ -import {useColorSchemeStyle} from 'lib/hooks/useColorSchemeStyle' -import {usePalette} from 'lib/hooks/usePalette' import React from 'react' import {StyleProp, StyleSheet, View, ViewStyle} from 'react-native' +import {usePalette} from 'lib/hooks/usePalette' +import {useColorSchemeStyle} from 'lib/hooks/useColorSchemeStyle' interface Props { testID?: string diff --git a/src/view/com/util/layouts/withBreakpoints.tsx b/src/view/com/util/layouts/withBreakpoints.tsx index de649e55c3..5746aa660d 100644 --- a/src/view/com/util/layouts/withBreakpoints.tsx +++ b/src/view/com/util/layouts/withBreakpoints.tsx @@ -1,6 +1,6 @@ -import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {isNative} from 'platform/detection' import React from 'react' +import {isNative} from 'platform/detection' +import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' export const withBreakpoints =

( Mobile: React.ComponentType

, diff --git a/src/view/com/util/load-latest/LoadLatestBtn.tsx b/src/view/com/util/load-latest/LoadLatestBtn.tsx index 4cc30432dc..f02e4a2bd7 100644 --- a/src/view/com/util/load-latest/LoadLatestBtn.tsx +++ b/src/view/com/util/load-latest/LoadLatestBtn.tsx @@ -1,13 +1,13 @@ -import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' -import {HITSLOP_20} from 'lib/constants' -import {useMinimalShellMode} from 'lib/hooks/useMinimalShellMode' -import {usePalette} from 'lib/hooks/usePalette' -import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {colors} from 'lib/styles' import React from 'react' import {StyleSheet, TouchableOpacity, View} from 'react-native' +import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' import Animated from 'react-native-reanimated' import {useMediaQuery} from 'react-responsive' +import {usePalette} from 'lib/hooks/usePalette' +import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' +import {colors} from 'lib/styles' +import {HITSLOP_20} from 'lib/constants' +import {useMinimalShellMode} from 'lib/hooks/useMinimalShellMode' const AnimatedTouchableOpacity = Animated.createAnimatedComponent(TouchableOpacity) import {isWeb} from 'platform/detection' diff --git a/src/view/com/util/moderation/ContentHider.tsx b/src/view/com/util/moderation/ContentHider.tsx index 8d4978d229..cd25452904 100644 --- a/src/view/com/util/moderation/ContentHider.tsx +++ b/src/view/com/util/moderation/ContentHider.tsx @@ -1,17 +1,15 @@ -import {ModerationUI, PostModeration} from '@atproto/api' +import React from 'react' +import {Pressable, StyleProp, StyleSheet, View, ViewStyle} from 'react-native' import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' import {usePalette} from 'lib/hooks/usePalette' +import {ModerationUI, PostModeration} from '@atproto/api' +import {Text} from '../text/Text' import {ShieldExclamation} from 'lib/icons' import {describeModerationCause} from 'lib/moderation' -import {isPostMediaBlurred} from 'lib/moderation' -import React from 'react' -import {Pressable, StyleProp, StyleSheet, View, ViewStyle} from 'react-native' - +import {useLingui} from '@lingui/react' +import {msg, Trans} from '@lingui/macro' import {useModalControls} from '#/state/modals' - -import {Text} from '../text/Text' +import {isPostMediaBlurred} from 'lib/moderation' export function ContentHider({ testID, diff --git a/src/view/com/util/moderation/LabelInfo.tsx b/src/view/com/util/moderation/LabelInfo.tsx index 55f8b2dabf..970338752c 100644 --- a/src/view/com/util/moderation/LabelInfo.tsx +++ b/src/view/com/util/moderation/LabelInfo.tsx @@ -1,14 +1,12 @@ +import React from 'react' +import {Pressable, StyleProp, View, ViewStyle} from 'react-native' import {ComAtprotoLabelDefs} from '@atproto/api' +import {Text} from '../text/Text' +import {usePalette} from 'lib/hooks/usePalette' import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' -import {usePalette} from 'lib/hooks/usePalette' -import React from 'react' -import {Pressable, StyleProp, View, ViewStyle} from 'react-native' - import {useModalControls} from '#/state/modals' -import {Text} from '../text/Text' - export function LabelInfo({ details, labels, diff --git a/src/view/com/util/moderation/PostAlerts.tsx b/src/view/com/util/moderation/PostAlerts.tsx index 135a99486a..bc5bf9b325 100644 --- a/src/view/com/util/moderation/PostAlerts.tsx +++ b/src/view/com/util/moderation/PostAlerts.tsx @@ -1,16 +1,14 @@ +import React from 'react' +import {Pressable, StyleProp, StyleSheet, ViewStyle} from 'react-native' import {ModerationUI} from '@atproto/api' -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' +import {Text} from '../text/Text' import {usePalette} from 'lib/hooks/usePalette' import {ShieldExclamation} from 'lib/icons' import {describeModerationCause} from 'lib/moderation' -import React from 'react' -import {Pressable, StyleProp, StyleSheet, ViewStyle} from 'react-native' - +import {Trans, msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' import {useModalControls} from '#/state/modals' -import {Text} from '../text/Text' - export function PostAlerts({ moderation, style, diff --git a/src/view/com/util/moderation/PostHider.tsx b/src/view/com/util/moderation/PostHider.tsx index 02d309a855..ede62e988c 100644 --- a/src/view/com/util/moderation/PostHider.tsx +++ b/src/view/com/util/moderation/PostHider.tsx @@ -1,18 +1,16 @@ +import React, {ComponentProps} from 'react' +import {StyleSheet, Pressable, View, ViewStyle, StyleProp} from 'react-native' import {ModerationUI} from '@atproto/api' import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' import {usePalette} from 'lib/hooks/usePalette' -import {ShieldExclamation} from 'lib/icons' -import {describeModerationCause} from 'lib/moderation' -import {addStyle} from 'lib/styles' -import React, {ComponentProps} from 'react' -import {Pressable, StyleProp, StyleSheet, View, ViewStyle} from 'react-native' - -import {useModalControls} from '#/state/modals' - import {Link} from '../Link' import {Text} from '../text/Text' +import {addStyle} from 'lib/styles' +import {describeModerationCause} from 'lib/moderation' +import {ShieldExclamation} from 'lib/icons' +import {useLingui} from '@lingui/react' +import {Trans, msg} from '@lingui/macro' +import {useModalControls} from '#/state/modals' interface Props extends ComponentProps { iconSize: number diff --git a/src/view/com/util/moderation/ProfileHeaderAlerts.tsx b/src/view/com/util/moderation/ProfileHeaderAlerts.tsx index 0d4660ebbc..0f07b679ba 100644 --- a/src/view/com/util/moderation/ProfileHeaderAlerts.tsx +++ b/src/view/com/util/moderation/ProfileHeaderAlerts.tsx @@ -1,20 +1,18 @@ +import React from 'react' +import {Pressable, StyleProp, StyleSheet, View, ViewStyle} from 'react-native' import {ProfileModeration} from '@atproto/api' -import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' +import {Text} from '../text/Text' import {usePalette} from 'lib/hooks/usePalette' import {ShieldExclamation} from 'lib/icons' import { describeModerationCause, getProfileModerationCauses, } from 'lib/moderation' -import React from 'react' -import {Pressable, StyleProp, StyleSheet, View, ViewStyle} from 'react-native' - +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' import {useModalControls} from '#/state/modals' -import {Text} from '../text/Text' - export function ProfileHeaderAlerts({ moderation, style, diff --git a/src/view/com/util/moderation/ScreenHider.tsx b/src/view/com/util/moderation/ScreenHider.tsx index 52e5e37a0f..86f0cbf7bf 100644 --- a/src/view/com/util/moderation/ScreenHider.tsx +++ b/src/view/com/util/moderation/ScreenHider.tsx @@ -1,29 +1,27 @@ -import {ModerationUI} from '@atproto/api' +import React from 'react' +import { + TouchableWithoutFeedback, + StyleProp, + StyleSheet, + View, + ViewStyle, +} from 'react-native' import { FontAwesomeIcon, FontAwesomeIconStyle, } from '@fortawesome/react-native-fontawesome' -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' import {useNavigation} from '@react-navigation/native' +import {ModerationUI} from '@atproto/api' import {usePalette} from 'lib/hooks/usePalette' import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {describeModerationCause} from 'lib/moderation' import {NavigationProp} from 'lib/routes/types' -import React from 'react' -import { - StyleProp, - StyleSheet, - TouchableWithoutFeedback, - View, - ViewStyle, -} from 'react-native' - -import {s} from '#/lib/styles' -import {useModalControls} from '#/state/modals' - -import {Button} from '../forms/Button' import {Text} from '../text/Text' +import {Button} from '../forms/Button' +import {describeModerationCause} from 'lib/moderation' +import {Trans, msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {useModalControls} from '#/state/modals' +import {s} from '#/lib/styles' import {CenteredView} from '../Views' export function ScreenHider({ diff --git a/src/view/com/util/post-ctrls/PostCtrls.tsx b/src/view/com/util/post-ctrls/PostCtrls.tsx index d1340f6d2d..1e26eeccee 100644 --- a/src/view/com/util/post-ctrls/PostCtrls.tsx +++ b/src/view/com/util/post-ctrls/PostCtrls.tsx @@ -1,20 +1,3 @@ -import { - AppBskyFeedDefs, - AppBskyFeedPost, - AtUri, - RichText as RichTextAPI, -} from '@atproto/api' -import {msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {HITSLOP_10, HITSLOP_20} from 'lib/constants' -import {Haptics} from 'lib/haptics' -import {CommentBottomArrow, HeartIcon, HeartIconSolid} from 'lib/icons' -import {makeProfileLink} from 'lib/routes/links' -import {shareUrl} from 'lib/sharing' -import {pluralize} from 'lib/strings/helpers' -import {toShareUrl} from 'lib/strings/url-helpers' -import {s} from 'lib/styles' -import {useTheme} from 'lib/ThemeContext' import React, {memo, useCallback} from 'react' import { StyleProp, @@ -23,20 +6,35 @@ import { View, ViewStyle, } from 'react-native' - -import {ArrowOutOfBox_Stroke2_Corner0_Rounded as ArrowOutOfBox} from '#/components/icons/ArrowOutOfBox' -import {Shadow} from '#/state/cache/types' +import { + AppBskyFeedDefs, + AppBskyFeedPost, + AtUri, + RichText as RichTextAPI, +} from '@atproto/api' +import {Text} from '../text/Text' +import {PostDropdownBtn} from '../forms/PostDropdownBtn' +import {HeartIcon, HeartIconSolid, CommentBottomArrow} from 'lib/icons' +import {s} from 'lib/styles' +import {pluralize} from 'lib/strings/helpers' +import {useTheme} from 'lib/ThemeContext' +import {RepostButton} from './RepostButton' +import {Haptics} from 'lib/haptics' +import {HITSLOP_10, HITSLOP_20} from 'lib/constants' import {useModalControls} from '#/state/modals' import { usePostLikeMutationQueue, usePostRepostMutationQueue, } from '#/state/queries/post' -import {useRequireAuth} from '#/state/session' import {useComposerControls} from '#/state/shell/composer' - -import {PostDropdownBtn} from '../forms/PostDropdownBtn' -import {Text} from '../text/Text' -import {RepostButton} from './RepostButton' +import {Shadow} from '#/state/cache/types' +import {useRequireAuth} from '#/state/session' +import {msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {ArrowOutOfBox_Stroke2_Corner0_Rounded as ArrowOutOfBox} from '#/components/icons/ArrowOutOfBox' +import {toShareUrl} from 'lib/strings/url-helpers' +import {shareUrl} from 'lib/sharing' +import {makeProfileLink} from 'lib/routes/links' let PostCtrls = ({ big, diff --git a/src/view/com/util/post-ctrls/RepostButton.tsx b/src/view/com/util/post-ctrls/RepostButton.tsx index b0cf6a7b1a..cc3db50c8b 100644 --- a/src/view/com/util/post-ctrls/RepostButton.tsx +++ b/src/view/com/util/post-ctrls/RepostButton.tsx @@ -1,17 +1,15 @@ -import {msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {HITSLOP_10, HITSLOP_20} from 'lib/constants' -import {RepostIcon} from 'lib/icons' -import {pluralize} from 'lib/strings/helpers' -import {colors, s} from 'lib/styles' -import {useTheme} from 'lib/ThemeContext' import React, {memo, useCallback} from 'react' import {StyleProp, StyleSheet, TouchableOpacity, ViewStyle} from 'react-native' - +import {RepostIcon} from 'lib/icons' +import {s, colors} from 'lib/styles' +import {useTheme} from 'lib/ThemeContext' +import {Text} from '../text/Text' +import {pluralize} from 'lib/strings/helpers' +import {HITSLOP_10, HITSLOP_20} from 'lib/constants' import {useModalControls} from '#/state/modals' import {useRequireAuth} from '#/state/session' - -import {Text} from '../text/Text' +import {msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' interface Props { isReposted: boolean diff --git a/src/view/com/util/post-ctrls/RepostButton.web.tsx b/src/view/com/util/post-ctrls/RepostButton.web.tsx index 391eeaf1fc..bbe5869feb 100644 --- a/src/view/com/util/post-ctrls/RepostButton.web.tsx +++ b/src/view/com/util/post-ctrls/RepostButton.web.tsx @@ -1,20 +1,19 @@ -import {msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' +import React from 'react' +import {StyleProp, StyleSheet, View, ViewStyle, Pressable} from 'react-native' import {RepostIcon} from 'lib/icons' import {colors} from 'lib/styles' import {useTheme} from 'lib/ThemeContext' -import React from 'react' -import {Pressable, StyleProp, StyleSheet, View, ViewStyle} from 'react-native' - -import {useRequireAuth} from '#/state/session' -import {useSession} from '#/state/session' +import {Text} from '../text/Text' -import {EventStopper} from '../EventStopper' import { - DropdownItem as NativeDropdownItem, NativeDropdown, + DropdownItem as NativeDropdownItem, } from '../forms/NativeDropdown' -import {Text} from '../text/Text' +import {EventStopper} from '../EventStopper' +import {useLingui} from '@lingui/react' +import {msg} from '@lingui/macro' +import {useRequireAuth} from '#/state/session' +import {useSession} from '#/state/session' interface Props { isReposted: boolean diff --git a/src/view/com/util/post-embeds/ExternalGifEmbed.tsx b/src/view/com/util/post-embeds/ExternalGifEmbed.tsx index 135f9b211a..f06c8b794d 100644 --- a/src/view/com/util/post-embeds/ExternalGifEmbed.tsx +++ b/src/view/com/util/post-embeds/ExternalGifEmbed.tsx @@ -1,10 +1,6 @@ -import {AppBskyEmbedExternal} from '@atproto/api' -import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' -import {msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {Image, ImageLoadEventData} from 'expo-image' import {EmbedPlayerParams, getGifDims} from 'lib/strings/embed-player' import React from 'react' +import {Image, ImageLoadEventData} from 'expo-image' import { ActivityIndicator, GestureResponderEvent, @@ -13,10 +9,13 @@ import { StyleSheet, View, } from 'react-native' -import {useModalControls} from 'state/modals' -import {useExternalEmbedsPrefs} from 'state/preferences' - import {isIOS, isNative, isWeb} from '#/platform/detection' +import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' +import {useExternalEmbedsPrefs} from 'state/preferences' +import {useModalControls} from 'state/modals' +import {useLingui} from '@lingui/react' +import {msg} from '@lingui/macro' +import {AppBskyEmbedExternal} from '@atproto/api' export function ExternalGifEmbed({ link, diff --git a/src/view/com/util/post-embeds/ExternalLinkEmbed.tsx b/src/view/com/util/post-embeds/ExternalLinkEmbed.tsx index a29901baef..aaa98a41f6 100644 --- a/src/view/com/util/post-embeds/ExternalLinkEmbed.tsx +++ b/src/view/com/util/post-embeds/ExternalLinkEmbed.tsx @@ -1,16 +1,15 @@ -import {AppBskyEmbedExternal} from '@atproto/api' +import React from 'react' import {Image} from 'expo-image' +import {Text} from '../text/Text' +import {StyleSheet, View} from 'react-native' import {usePalette} from 'lib/hooks/usePalette' import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {parseEmbedPlayerFromUrl} from 'lib/strings/embed-player' +import {AppBskyEmbedExternal} from '@atproto/api' import {toNiceDomain} from 'lib/strings/url-helpers' -import React from 'react' -import {StyleSheet, View} from 'react-native' -import {useExternalEmbedsPrefs} from 'state/preferences' -import {ExternalGifEmbed} from 'view/com/util/post-embeds/ExternalGifEmbed' +import {parseEmbedPlayerFromUrl} from 'lib/strings/embed-player' import {ExternalPlayer} from 'view/com/util/post-embeds/ExternalPlayerEmbed' - -import {Text} from '../text/Text' +import {ExternalGifEmbed} from 'view/com/util/post-embeds/ExternalGifEmbed' +import {useExternalEmbedsPrefs} from 'state/preferences' export const ExternalLinkEmbed = ({ link, diff --git a/src/view/com/util/post-embeds/ExternalPlayerEmbed.tsx b/src/view/com/util/post-embeds/ExternalPlayerEmbed.tsx index 1b9d408445..cf2db5b333 100644 --- a/src/view/com/util/post-embeds/ExternalPlayerEmbed.tsx +++ b/src/view/com/util/post-embeds/ExternalPlayerEmbed.tsx @@ -1,12 +1,3 @@ -import {AppBskyEmbedExternal} from '@atproto/api' -import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' -import {msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {useNavigation} from '@react-navigation/native' -import {Image} from 'expo-image' -import {NavigationProp} from 'lib/routes/types' -import {EmbedPlayerParams, getPlayerAspect} from 'lib/strings/embed-player' -import {isNative} from 'platform/detection' import React from 'react' import { ActivityIndicator, @@ -22,12 +13,20 @@ import Animated, { useAnimatedRef, useFrameCallback, } from 'react-native-reanimated' -import {useSafeAreaInsets} from 'react-native-safe-area-context' +import {Image} from 'expo-image' import {WebView} from 'react-native-webview' -import {useModalControls} from 'state/modals' -import {useExternalEmbedsPrefs} from 'state/preferences' - +import {useSafeAreaInsets} from 'react-native-safe-area-context' +import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' +import {msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {useNavigation} from '@react-navigation/native' +import {AppBskyEmbedExternal} from '@atproto/api' +import {EmbedPlayerParams, getPlayerAspect} from 'lib/strings/embed-player' import {EventStopper} from '../EventStopper' +import {isNative} from 'platform/detection' +import {NavigationProp} from 'lib/routes/types' +import {useExternalEmbedsPrefs} from 'state/preferences' +import {useModalControls} from 'state/modals' interface ShouldStartLoadRequest { url: string diff --git a/src/view/com/util/post-embeds/ListEmbed.tsx b/src/view/com/util/post-embeds/ListEmbed.tsx index ad766d900f..fc5ad270fc 100644 --- a/src/view/com/util/post-embeds/ListEmbed.tsx +++ b/src/view/com/util/post-embeds/ListEmbed.tsx @@ -1,9 +1,9 @@ -import {AppBskyGraphDefs} from '@atproto/api' -import {usePalette} from 'lib/hooks/usePalette' -import {s} from 'lib/styles' import React from 'react' import {StyleProp, StyleSheet, View, ViewStyle} from 'react-native' +import {usePalette} from 'lib/hooks/usePalette' import {ListCard} from 'view/com/lists/ListCard' +import {AppBskyGraphDefs} from '@atproto/api' +import {s} from 'lib/styles' export function ListEmbed({ item, diff --git a/src/view/com/util/post-embeds/QuoteEmbed.tsx b/src/view/com/util/post-embeds/QuoteEmbed.tsx index b3b24192b7..35b0912698 100644 --- a/src/view/com/util/post-embeds/QuoteEmbed.tsx +++ b/src/view/com/util/post-embeds/QuoteEmbed.tsx @@ -1,29 +1,27 @@ +import React from 'react' +import {StyleProp, StyleSheet, View, ViewStyle} from 'react-native' import { - AppBskyEmbedExternal, - AppBskyEmbedImages, AppBskyEmbedRecord, - AppBskyEmbedRecordWithMedia, AppBskyFeedPost, + AppBskyEmbedImages, + AppBskyEmbedRecordWithMedia, ModerationUI, + AppBskyEmbedExternal, RichText as RichTextAPI, } from '@atproto/api' import {AtUri} from '@atproto/api' -import {Trans} from '@lingui/macro' -import {usePalette} from 'lib/hooks/usePalette' -import {InfoCircleIcon} from 'lib/icons' -import {makeProfileLink} from 'lib/routes/links' -import React from 'react' -import {StyleProp, StyleSheet, View, ViewStyle} from 'react-native' -import {ComposerOptsQuote} from 'state/shell/composer' - -import {atoms as a} from '#/alf' -import {RichText} from '#/components/RichText' - -import {Link} from '../Link' -import {PostAlerts} from '../moderation/PostAlerts' import {PostMeta} from '../PostMeta' +import {Link} from '../Link' import {Text} from '../text/Text' +import {usePalette} from 'lib/hooks/usePalette' +import {ComposerOptsQuote} from 'state/shell/composer' import {PostEmbeds} from '.' +import {PostAlerts} from '../moderation/PostAlerts' +import {makeProfileLink} from 'lib/routes/links' +import {InfoCircleIcon} from 'lib/icons' +import {Trans} from '@lingui/macro' +import {RichText} from '#/components/RichText' +import {atoms as a} from '#/alf' export function MaybeQuoteEmbed({ embed, diff --git a/src/view/com/util/post-embeds/index.tsx b/src/view/com/util/post-embeds/index.tsx index c2fabd2a03..7e235babb6 100644 --- a/src/view/com/util/post-embeds/index.tsx +++ b/src/view/com/util/post-embeds/index.tsx @@ -1,6 +1,16 @@ +import React, {useCallback} from 'react' +import { + StyleSheet, + StyleProp, + View, + ViewStyle, + Text, + InteractionManager, +} from 'react-native' +import {Image} from 'expo-image' import { - AppBskyEmbedExternal, AppBskyEmbedImages, + AppBskyEmbedExternal, AppBskyEmbedRecord, AppBskyEmbedRecordWithMedia, AppBskyFeedDefs, @@ -8,31 +18,19 @@ import { ModerationUI, PostModeration, } from '@atproto/api' -import {Image} from 'expo-image' +import {Link} from '../Link' +import {ImageLayoutGrid} from '../images/ImageLayoutGrid' +import {useLightboxControls, ImagesLightbox} from '#/state/lightbox' import {usePalette} from 'lib/hooks/usePalette' +import {ExternalLinkEmbed} from './ExternalLinkEmbed' +import {MaybeQuoteEmbed} from './QuoteEmbed' +import {AutoSizedImage} from '../images/AutoSizedImage' +import {ListEmbed} from './ListEmbed' import {isCauseALabelOnUri, isQuoteBlurred} from 'lib/moderation' -import React, {useCallback} from 'react' -import { - InteractionManager, - StyleProp, - StyleSheet, - Text, - View, - ViewStyle, -} from 'react-native' import {FeedSourceCard} from 'view/com/feeds/FeedSourceCard' - -import {shareUrl} from '#/lib/sharing' -import {isNative} from '#/platform/detection' -import {ImagesLightbox, useLightboxControls} from '#/state/lightbox' - -import {AutoSizedImage} from '../images/AutoSizedImage' -import {ImageLayoutGrid} from '../images/ImageLayoutGrid' -import {Link} from '../Link' import {ContentHider} from '../moderation/ContentHider' -import {ExternalLinkEmbed} from './ExternalLinkEmbed' -import {ListEmbed} from './ListEmbed' -import {MaybeQuoteEmbed} from './QuoteEmbed' +import {isNative} from '#/platform/detection' +import {shareUrl} from '#/lib/sharing' type Embed = | AppBskyEmbedRecord.View diff --git a/src/view/com/util/text/RichText.tsx b/src/view/com/util/text/RichText.tsx index 5756db3245..f4ade30e55 100644 --- a/src/view/com/util/text/RichText.tsx +++ b/src/view/com/util/text/RichText.tsx @@ -1,18 +1,16 @@ -import {AppBskyRichtextFacet, RichText as RichTextObj} from '@atproto/api' +import React from 'react' +import {TextStyle, StyleProp} from 'react-native' +import {RichText as RichTextObj, AppBskyRichtextFacet} from '@atproto/api' +import {TextLink} from '../Link' +import {Text} from './Text' +import {lh} from 'lib/styles' +import {toShortUrl} from 'lib/strings/url-helpers' +import {useTheme, TypographyVariant} from 'lib/ThemeContext' import {usePalette} from 'lib/hooks/usePalette' import {makeTagLink} from 'lib/routes/links' -import {toShortUrl} from 'lib/strings/url-helpers' -import {lh} from 'lib/styles' -import {TypographyVariant, useTheme} from 'lib/ThemeContext' -import React from 'react' -import {StyleProp, TextStyle} from 'react-native' - import {TagMenu, useTagMenuControl} from '#/components/TagMenu' import {isNative} from '#/platform/detection' -import {TextLink} from '../Link' -import {Text} from './Text' - const WORD_WRAP = {wordWrap: 1} /** diff --git a/src/view/com/util/text/Text.tsx b/src/view/com/util/text/Text.tsx index 0dfa667fbc..ccb51bfca6 100644 --- a/src/view/com/util/text/Text.tsx +++ b/src/view/com/util/text/Text.tsx @@ -1,8 +1,8 @@ -import {lh, s} from 'lib/styles' -import {TypographyVariant, useTheme} from 'lib/ThemeContext' -import {isIOS} from 'platform/detection' import React from 'react' import {Text as RNText, TextProps} from 'react-native' +import {s, lh} from 'lib/styles' +import {useTheme, TypographyVariant} from 'lib/ThemeContext' +import {isIOS} from 'platform/detection' import {UITextView} from 'react-native-ui-text-view' export type CustomTextProps = TextProps & { diff --git a/src/view/com/util/text/ThemedText.tsx b/src/view/com/util/text/ThemedText.tsx index 27268472bf..2844d273c2 100644 --- a/src/view/com/util/text/ThemedText.tsx +++ b/src/view/com/util/text/ThemedText.tsx @@ -1,8 +1,7 @@ -import {usePalette} from 'lib/hooks/usePalette' -import {addStyle} from 'lib/styles' import React from 'react' - import {CustomTextProps, Text} from './Text' +import {usePalette} from 'lib/hooks/usePalette' +import {addStyle} from 'lib/styles' export type ThemedTextProps = CustomTextProps & { fg?: 'default' | 'light' | 'error' | 'inverted' | 'inverted-light' diff --git a/src/view/icons/Logo.tsx b/src/view/icons/Logo.tsx index d6d4c83215..9212381a9e 100644 --- a/src/view/icons/Logo.tsx +++ b/src/view/icons/Logo.tsx @@ -1,12 +1,12 @@ import React from 'react' import {StyleSheet, TextProps} from 'react-native' import Svg, { + Path, Defs, LinearGradient, - Path, - PathProps, Stop, SvgProps, + PathProps, } from 'react-native-svg' import {colors} from '#/lib/styles' diff --git a/src/view/icons/Logotype.tsx b/src/view/icons/Logotype.tsx index d6c35f6d9e..080c402fb3 100644 --- a/src/view/icons/Logotype.tsx +++ b/src/view/icons/Logotype.tsx @@ -1,5 +1,5 @@ import React from 'react' -import Svg, {Path, PathProps, SvgProps} from 'react-native-svg' +import Svg, {Path, SvgProps, PathProps} from 'react-native-svg' import {usePalette} from '#/lib/hooks/usePalette' diff --git a/src/view/icons/index.tsx b/src/view/icons/index.tsx index 570d1b53bc..ede1e63355 100644 --- a/src/view/icons/index.tsx +++ b/src/view/icons/index.tsx @@ -1,71 +1,63 @@ import {library} from '@fortawesome/fontawesome-svg-core' + import {faAddressCard} from '@fortawesome/free-regular-svg-icons' -import {faBell as farBell} from '@fortawesome/free-regular-svg-icons/faBell' -import {faBookmark as farBookmark} from '@fortawesome/free-regular-svg-icons/faBookmark' -import {faCalendar as farCalendar} from '@fortawesome/free-regular-svg-icons/faCalendar' -import {faCircle} from '@fortawesome/free-regular-svg-icons/faCircle' -import {faCircleCheck as farCircleCheck} from '@fortawesome/free-regular-svg-icons/faCircleCheck' -import {faCirclePlay} from '@fortawesome/free-regular-svg-icons/faCirclePlay' -import {faCircleUser} from '@fortawesome/free-regular-svg-icons/faCircleUser' -import {faClone as farClone} from '@fortawesome/free-regular-svg-icons/faClone' -import {faComment} from '@fortawesome/free-regular-svg-icons/faComment' -import {faComments} from '@fortawesome/free-regular-svg-icons/faComments' -import {faCompass} from '@fortawesome/free-regular-svg-icons/faCompass' -import {faEyeSlash as farEyeSlash} from '@fortawesome/free-regular-svg-icons/faEyeSlash' -import {faFaceSmile} from '@fortawesome/free-regular-svg-icons/faFaceSmile' -import {faFloppyDisk} from '@fortawesome/free-regular-svg-icons/faFloppyDisk' -import {faHand as farHand} from '@fortawesome/free-regular-svg-icons/faHand' -import {faHeart} from '@fortawesome/free-regular-svg-icons/faHeart' -import {faImage as farImage} from '@fortawesome/free-regular-svg-icons/faImage' -import {faMessage} from '@fortawesome/free-regular-svg-icons/faMessage' -import {faPaste} from '@fortawesome/free-regular-svg-icons/faPaste' -import {faSquare} from '@fortawesome/free-regular-svg-icons/faSquare' -import {faSquareCheck} from '@fortawesome/free-regular-svg-icons/faSquareCheck' -import {faSquarePlus} from '@fortawesome/free-regular-svg-icons/faSquarePlus' -import {faTrashCan} from '@fortawesome/free-regular-svg-icons/faTrashCan' -import {faUser} from '@fortawesome/free-regular-svg-icons/faUser' -import {faFlask} from '@fortawesome/free-solid-svg-icons' import {faAngleDown} from '@fortawesome/free-solid-svg-icons/faAngleDown' import {faAngleLeft} from '@fortawesome/free-solid-svg-icons/faAngleLeft' import {faAngleRight} from '@fortawesome/free-solid-svg-icons/faAngleRight' import {faAngleUp} from '@fortawesome/free-solid-svg-icons/faAngleUp' -import {faArrowDown} from '@fortawesome/free-solid-svg-icons/faArrowDown' import {faArrowLeft} from '@fortawesome/free-solid-svg-icons/faArrowLeft' import {faArrowRight} from '@fortawesome/free-solid-svg-icons/faArrowRight' -import {faArrowRightFromBracket} from '@fortawesome/free-solid-svg-icons/faArrowRightFromBracket' -import {faArrowRotateLeft} from '@fortawesome/free-solid-svg-icons/faArrowRotateLeft' -import {faArrowsRotate} from '@fortawesome/free-solid-svg-icons/faArrowsRotate' -import {faArrowTrendUp} from '@fortawesome/free-solid-svg-icons/faArrowTrendUp' import {faArrowUp} from '@fortawesome/free-solid-svg-icons/faArrowUp' +import {faArrowDown} from '@fortawesome/free-solid-svg-icons/faArrowDown' +import {faArrowRightFromBracket} from '@fortawesome/free-solid-svg-icons/faArrowRightFromBracket' import {faArrowUpFromBracket} from '@fortawesome/free-solid-svg-icons/faArrowUpFromBracket' import {faArrowUpRightFromSquare} from '@fortawesome/free-solid-svg-icons/faArrowUpRightFromSquare' +import {faArrowRotateLeft} from '@fortawesome/free-solid-svg-icons/faArrowRotateLeft' +import {faArrowTrendUp} from '@fortawesome/free-solid-svg-icons/faArrowTrendUp' +import {faArrowsRotate} from '@fortawesome/free-solid-svg-icons/faArrowsRotate' import {faAt} from '@fortawesome/free-solid-svg-icons/faAt' -import {faBan} from '@fortawesome/free-solid-svg-icons/faBan' import {faBars} from '@fortawesome/free-solid-svg-icons/faBars' +import {faBan} from '@fortawesome/free-solid-svg-icons/faBan' import {faBell} from '@fortawesome/free-solid-svg-icons/faBell' +import {faBell as farBell} from '@fortawesome/free-regular-svg-icons/faBell' import {faBookmark} from '@fortawesome/free-solid-svg-icons/faBookmark' +import {faBookmark as farBookmark} from '@fortawesome/free-regular-svg-icons/faBookmark' +import {faCalendar as farCalendar} from '@fortawesome/free-regular-svg-icons/faCalendar' import {faCamera} from '@fortawesome/free-solid-svg-icons/faCamera' import {faCheck} from '@fortawesome/free-solid-svg-icons/faCheck' -import {faChevronDown} from '@fortawesome/free-solid-svg-icons/faChevronDown' import {faChevronRight} from '@fortawesome/free-solid-svg-icons/faChevronRight' +import {faCircle} from '@fortawesome/free-regular-svg-icons/faCircle' +import {faCircleCheck as farCircleCheck} from '@fortawesome/free-regular-svg-icons/faCircleCheck' import {faCircleCheck} from '@fortawesome/free-solid-svg-icons/faCircleCheck' import {faCircleDot} from '@fortawesome/free-solid-svg-icons/faCircleDot' import {faCircleExclamation} from '@fortawesome/free-solid-svg-icons/faCircleExclamation' +import {faCirclePlay} from '@fortawesome/free-regular-svg-icons/faCirclePlay' +import {faCircleUser} from '@fortawesome/free-regular-svg-icons/faCircleUser' import {faClone} from '@fortawesome/free-solid-svg-icons/faClone' +import {faClone as farClone} from '@fortawesome/free-regular-svg-icons/faClone' +import {faComment} from '@fortawesome/free-regular-svg-icons/faComment' import {faCommentSlash} from '@fortawesome/free-solid-svg-icons/faCommentSlash' +import {faComments} from '@fortawesome/free-regular-svg-icons/faComments' +import {faCompass} from '@fortawesome/free-regular-svg-icons/faCompass' import {faDownload} from '@fortawesome/free-solid-svg-icons/faDownload' import {faEllipsis} from '@fortawesome/free-solid-svg-icons/faEllipsis' import {faEnvelope} from '@fortawesome/free-solid-svg-icons/faEnvelope' import {faExclamation} from '@fortawesome/free-solid-svg-icons/faExclamation' import {faEye} from '@fortawesome/free-solid-svg-icons/faEye' -import {faFilter} from '@fortawesome/free-solid-svg-icons/faFilter' +import {faEyeSlash as farEyeSlash} from '@fortawesome/free-regular-svg-icons/faEyeSlash' +import {faFaceSmile} from '@fortawesome/free-regular-svg-icons/faFaceSmile' import {faFire} from '@fortawesome/free-solid-svg-icons/faFire' +import {faFlask} from '@fortawesome/free-solid-svg-icons' +import {faFloppyDisk} from '@fortawesome/free-regular-svg-icons/faFloppyDisk' import {faGear} from '@fortawesome/free-solid-svg-icons/faGear' import {faGlobe} from '@fortawesome/free-solid-svg-icons/faGlobe' import {faHand} from '@fortawesome/free-solid-svg-icons/faHand' +import {faHand as farHand} from '@fortawesome/free-regular-svg-icons/faHand' import {faHashtag} from '@fortawesome/free-solid-svg-icons/faHashtag' +import {faHeart} from '@fortawesome/free-regular-svg-icons/faHeart' import {faHeart as fasHeart} from '@fortawesome/free-solid-svg-icons/faHeart' import {faHouse} from '@fortawesome/free-solid-svg-icons/faHouse' +import {faImage as farImage} from '@fortawesome/free-regular-svg-icons/faImage' import {faImage} from '@fortawesome/free-solid-svg-icons/faImage' import {faInfo} from '@fortawesome/free-solid-svg-icons/faInfo' import {faLanguage} from '@fortawesome/free-solid-svg-icons/faLanguage' @@ -74,8 +66,10 @@ import {faList} from '@fortawesome/free-solid-svg-icons/faList' import {faListUl} from '@fortawesome/free-solid-svg-icons/faListUl' import {faLock} from '@fortawesome/free-solid-svg-icons/faLock' import {faMagnifyingGlass} from '@fortawesome/free-solid-svg-icons/faMagnifyingGlass' +import {faMessage} from '@fortawesome/free-regular-svg-icons/faMessage' import {faNoteSticky} from '@fortawesome/free-solid-svg-icons/faNoteSticky' import {faPause} from '@fortawesome/free-solid-svg-icons/faPause' +import {faPaste} from '@fortawesome/free-regular-svg-icons/faPaste' import {faPen} from '@fortawesome/free-solid-svg-icons/faPen' import {faPenNib} from '@fortawesome/free-solid-svg-icons/faPenNib' import {faPenToSquare} from '@fortawesome/free-solid-svg-icons/faPenToSquare' @@ -93,16 +87,23 @@ import {faShareFromSquare} from '@fortawesome/free-solid-svg-icons/faShareFromSq import {faShield} from '@fortawesome/free-solid-svg-icons/faShield' import {faSignal} from '@fortawesome/free-solid-svg-icons/faSignal' import {faSliders} from '@fortawesome/free-solid-svg-icons/faSliders' +import {faSquare} from '@fortawesome/free-regular-svg-icons/faSquare' +import {faSquareCheck} from '@fortawesome/free-regular-svg-icons/faSquareCheck' +import {faSquarePlus} from '@fortawesome/free-regular-svg-icons/faSquarePlus' import {faThumbtack} from '@fortawesome/free-solid-svg-icons/faThumbtack' import {faTicket} from '@fortawesome/free-solid-svg-icons/faTicket' -import {faUserCheck} from '@fortawesome/free-solid-svg-icons/faUserCheck' -import {faUserPlus} from '@fortawesome/free-solid-svg-icons/faUserPlus' +import {faTrashCan} from '@fortawesome/free-regular-svg-icons/faTrashCan' +import {faUser} from '@fortawesome/free-regular-svg-icons/faUser' import {faUsers} from '@fortawesome/free-solid-svg-icons/faUsers' +import {faUserCheck} from '@fortawesome/free-solid-svg-icons/faUserCheck' import {faUserSlash} from '@fortawesome/free-solid-svg-icons/faUserSlash' -import {faUsersSlash} from '@fortawesome/free-solid-svg-icons/faUsersSlash' +import {faUserPlus} from '@fortawesome/free-solid-svg-icons/faUserPlus' import {faUserXmark} from '@fortawesome/free-solid-svg-icons/faUserXmark' +import {faUsersSlash} from '@fortawesome/free-solid-svg-icons/faUsersSlash' import {faX} from '@fortawesome/free-solid-svg-icons/faX' import {faXmark} from '@fortawesome/free-solid-svg-icons/faXmark' +import {faChevronDown} from '@fortawesome/free-solid-svg-icons/faChevronDown' +import {faFilter} from '@fortawesome/free-solid-svg-icons/faFilter' library.add( faAddressCard, diff --git a/src/view/screens/AppPasswords.tsx b/src/view/screens/AppPasswords.tsx index b28b992bb0..dc439c3679 100644 --- a/src/view/screens/AppPasswords.tsx +++ b/src/view/screens/AppPasswords.tsx @@ -1,12 +1,3 @@ -import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {useFocusEffect} from '@react-navigation/native' -import {NativeStackScreenProps} from '@react-navigation/native-stack' -import {useAnalytics} from 'lib/analytics/analytics' -import {usePalette} from 'lib/hooks/usePalette' -import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {CommonNavigatorParams} from 'lib/routes/types' import React from 'react' import { ActivityIndicator, @@ -14,23 +5,30 @@ import { TouchableOpacity, View, } from 'react-native' +import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' import {ScrollView} from 'react-native-gesture-handler' +import {Text} from '../com/util/text/Text' +import {Button} from '../com/util/forms/Button' +import * as Toast from '../com/util/Toast' +import {usePalette} from 'lib/hooks/usePalette' +import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' +import {NativeStackScreenProps} from '@react-navigation/native-stack' +import {CommonNavigatorParams} from 'lib/routes/types' +import {useAnalytics} from 'lib/analytics/analytics' +import {useFocusEffect} from '@react-navigation/native' +import {ViewHeader} from '../com/util/ViewHeader' import {CenteredView} from 'view/com/util/Views' - -import {cleanError} from '#/lib/strings/errors' +import {Trans, msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {useSetMinimalShellMode} from '#/state/shell' import {useModalControls} from '#/state/modals' import {useLanguagePrefs} from '#/state/preferences' import { - useAppPasswordDeleteMutation, useAppPasswordsQuery, + useAppPasswordDeleteMutation, } from '#/state/queries/app-passwords' -import {useSetMinimalShellMode} from '#/state/shell' - import {ErrorScreen} from '../com/util/error/ErrorScreen' -import {Button} from '../com/util/forms/Button' -import {Text} from '../com/util/text/Text' -import * as Toast from '../com/util/Toast' -import {ViewHeader} from '../com/util/ViewHeader' +import {cleanError} from '#/lib/strings/errors' type Props = NativeStackScreenProps export function AppPasswords({}: Props) { diff --git a/src/view/screens/CommunityGuidelines.tsx b/src/view/screens/CommunityGuidelines.tsx index e995b8795f..f6c29a3b8d 100644 --- a/src/view/screens/CommunityGuidelines.tsx +++ b/src/view/screens/CommunityGuidelines.tsx @@ -1,18 +1,16 @@ -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {useFocusEffect} from '@react-navigation/native' -import {usePalette} from 'lib/hooks/usePalette' -import {CommonNavigatorParams, NativeStackScreenProps} from 'lib/routes/types' -import {s} from 'lib/styles' import React from 'react' import {View} from 'react-native' -import {TextLink} from 'view/com/util/Link' +import {useFocusEffect} from '@react-navigation/native' import {Text} from 'view/com/util/text/Text' +import {TextLink} from 'view/com/util/Link' +import {NativeStackScreenProps, CommonNavigatorParams} from 'lib/routes/types' +import {ViewHeader} from '../com/util/ViewHeader' import {ScrollView} from 'view/com/util/Views' - +import {usePalette} from 'lib/hooks/usePalette' +import {s} from 'lib/styles' import {useSetMinimalShellMode} from '#/state/shell' - -import {ViewHeader} from '../com/util/ViewHeader' +import {Trans, msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' type Props = NativeStackScreenProps< CommonNavigatorParams, diff --git a/src/view/screens/CopyrightPolicy.tsx b/src/view/screens/CopyrightPolicy.tsx index 0288eaa4ea..522a9e4dba 100644 --- a/src/view/screens/CopyrightPolicy.tsx +++ b/src/view/screens/CopyrightPolicy.tsx @@ -1,18 +1,16 @@ -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {useFocusEffect} from '@react-navigation/native' -import {usePalette} from 'lib/hooks/usePalette' -import {CommonNavigatorParams, NativeStackScreenProps} from 'lib/routes/types' -import {s} from 'lib/styles' import React from 'react' import {View} from 'react-native' -import {TextLink} from 'view/com/util/Link' +import {useFocusEffect} from '@react-navigation/native' import {Text} from 'view/com/util/text/Text' +import {TextLink} from 'view/com/util/Link' +import {NativeStackScreenProps, CommonNavigatorParams} from 'lib/routes/types' +import {ViewHeader} from '../com/util/ViewHeader' import {ScrollView} from 'view/com/util/Views' - +import {usePalette} from 'lib/hooks/usePalette' +import {s} from 'lib/styles' import {useSetMinimalShellMode} from '#/state/shell' - -import {ViewHeader} from '../com/util/ViewHeader' +import {Trans, msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' type Props = NativeStackScreenProps export const CopyrightPolicyScreen = (_props: Props) => { diff --git a/src/view/screens/Debug.tsx b/src/view/screens/Debug.tsx index 226e7a9f09..f26b1505a8 100644 --- a/src/view/screens/Debug.tsx +++ b/src/view/screens/Debug.tsx @@ -1,24 +1,23 @@ -import {msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {usePalette} from 'lib/hooks/usePalette' -import {CommonNavigatorParams, NativeStackScreenProps} from 'lib/routes/types' -import {s} from 'lib/styles' -import {PaletteColorName, ThemeProvider} from 'lib/ThemeContext' import React from 'react' import {ScrollView, View} from 'react-native' +import {NativeStackScreenProps, CommonNavigatorParams} from 'lib/routes/types' +import {ViewHeader} from '../com/util/ViewHeader' +import {ThemeProvider, PaletteColorName} from 'lib/ThemeContext' +import {usePalette} from 'lib/hooks/usePalette' +import {s} from 'lib/styles' import * as Toast from 'view/com/util/Toast' - +import {Text} from '../com/util/text/Text' +import {ViewSelector} from '../com/util/ViewSelector' import {EmptyState} from '../com/util/EmptyState' -import {ErrorMessage} from '../com/util/error/ErrorMessage' -import {ErrorScreen} from '../com/util/error/ErrorScreen' +import * as LoadingPlaceholder from '../com/util/LoadingPlaceholder' import {Button, ButtonType} from '../com/util/forms/Button' import {DropdownButton, DropdownItem} from '../com/util/forms/DropdownButton' -import {RadioGroup} from '../com/util/forms/RadioGroup' import {ToggleButton} from '../com/util/forms/ToggleButton' -import * as LoadingPlaceholder from '../com/util/LoadingPlaceholder' -import {Text} from '../com/util/text/Text' -import {ViewHeader} from '../com/util/ViewHeader' -import {ViewSelector} from '../com/util/ViewSelector' +import {RadioGroup} from '../com/util/forms/RadioGroup' +import {ErrorScreen} from '../com/util/error/ErrorScreen' +import {ErrorMessage} from '../com/util/error/ErrorMessage' +import {msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' const MAIN_VIEWS = ['Base', 'Controls', 'Error', 'Notifs'] diff --git a/src/view/screens/Feeds.tsx b/src/view/screens/Feeds.tsx index 05377b8fb9..2e3bf08db5 100644 --- a/src/view/screens/Feeds.tsx +++ b/src/view/screens/Feeds.tsx @@ -1,53 +1,52 @@ -import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' -import {FontAwesomeIconStyle} from '@fortawesome/react-native-fontawesome' -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {useFocusEffect} from '@react-navigation/native' -import {HITSLOP_10} from 'lib/constants' -import {usePalette} from 'lib/hooks/usePalette' -import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {CogIcon, ComposeIcon2, MagnifyingGlassIcon2} from 'lib/icons' -import {FeedsTabNavigatorParams, NativeStackScreenProps} from 'lib/routes/types' -import {cleanError} from 'lib/strings/errors' -import {s} from 'lib/styles' -import debounce from 'lodash.debounce' import React from 'react' import { ActivityIndicator, - type FlatList, - Pressable, StyleSheet, View, + type FlatList, + Pressable, } from 'react-native' -import {FeedSourceCard} from 'view/com/feeds/FeedSourceCard' -import {ErrorMessage} from 'view/com/util/error/ErrorMessage' +import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' +import {FontAwesomeIconStyle} from '@fortawesome/react-native-fontawesome' +import {ViewHeader} from 'view/com/util/ViewHeader' import {FAB} from 'view/com/util/fab/FAB' -import {SearchInput, SearchInputRef} from 'view/com/util/forms/SearchInput' import {Link} from 'view/com/util/Link' -import {List} from 'view/com/util/List' +import {NativeStackScreenProps, FeedsTabNavigatorParams} from 'lib/routes/types' +import {usePalette} from 'lib/hooks/usePalette' +import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' +import {ComposeIcon2, CogIcon, MagnifyingGlassIcon2} from 'lib/icons' +import {s} from 'lib/styles' +import {atoms as a, useTheme} from '#/alf' +import {SearchInput, SearchInputRef} from 'view/com/util/forms/SearchInput' +import {UserAvatar} from 'view/com/util/UserAvatar' import { - FeedFeedLoadingPlaceholder, LoadingPlaceholder, + FeedFeedLoadingPlaceholder, } from 'view/com/util/LoadingPlaceholder' +import {ErrorMessage} from 'view/com/util/error/ErrorMessage' +import debounce from 'lodash.debounce' import {Text} from 'view/com/util/text/Text' -import {UserAvatar} from 'view/com/util/UserAvatar' -import {ViewHeader} from 'view/com/util/ViewHeader' - -import {atoms as a, useTheme} from '#/alf' -import {IconCircle} from '#/components/IconCircle' -import {ListMagnifyingGlass_Stroke2_Corner0_Rounded} from '#/components/icons/ListMagnifyingGlass' -import {ListSparkle_Stroke2_Corner0_Rounded} from '#/components/icons/ListSparkle' -import {isNative, isWeb} from '#/platform/detection' +import {List} from 'view/com/util/List' +import {useFocusEffect} from '@react-navigation/native' +import {FeedSourceCard} from 'view/com/feeds/FeedSourceCard' +import {Trans, msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {useSetMinimalShellMode} from '#/state/shell' +import {usePreferencesQuery} from '#/state/queries/preferences' import { - getAvatarTypeFromUri, useFeedSourceInfoQuery, useGetPopularFeedsQuery, useSearchPopularFeedsMutation, + getAvatarTypeFromUri, } from '#/state/queries/feed' -import {usePreferencesQuery} from '#/state/queries/preferences' -import {useSession} from '#/state/session' -import {useSetMinimalShellMode} from '#/state/shell' +import {cleanError} from 'lib/strings/errors' import {useComposerControls} from '#/state/shell/composer' +import {useSession} from '#/state/session' +import {isNative, isWeb} from '#/platform/detection' +import {HITSLOP_10} from 'lib/constants' +import {IconCircle} from '#/components/IconCircle' +import {ListSparkle_Stroke2_Corner0_Rounded} from '#/components/icons/ListSparkle' +import {ListMagnifyingGlass_Stroke2_Corner0_Rounded} from '#/components/icons/ListMagnifyingGlass' type Props = NativeStackScreenProps diff --git a/src/view/screens/Home.tsx b/src/view/screens/Home.tsx index ad48d0aa1b..99ac8c44af 100644 --- a/src/view/screens/Home.tsx +++ b/src/view/screens/Home.tsx @@ -1,25 +1,23 @@ -import {useFocusEffect} from '@react-navigation/native' -import {HomeTabNavigatorParams, NativeStackScreenProps} from 'lib/routes/types' import React from 'react' -import {ActivityIndicator, StyleSheet, View} from 'react-native' -import {FeedPage} from 'view/com/feeds/FeedPage' -import {Pager, PagerRef, RenderTabBarFnProps} from 'view/com/pager/Pager' -import {CustomFeedEmptyState} from 'view/com/posts/CustomFeedEmptyState' +import {View, ActivityIndicator, StyleSheet} from 'react-native' +import {useFocusEffect} from '@react-navigation/native' +import {NativeStackScreenProps, HomeTabNavigatorParams} from 'lib/routes/types' +import {FeedDescriptor, FeedParams} from '#/state/queries/post-feed' import {FollowingEmptyState} from 'view/com/posts/FollowingEmptyState' import {FollowingEndOfFeed} from 'view/com/posts/FollowingEndOfFeed' - -import {useSetTitle} from '#/lib/hooks/useSetTitle' -import {emitSoftReset} from '#/state/events' -import {FeedSourceInfo, usePinnedFeedsInfos} from '#/state/queries/feed' -import {FeedDescriptor, FeedParams} from '#/state/queries/post-feed' +import {CustomFeedEmptyState} from 'view/com/posts/CustomFeedEmptyState' +import {HomeHeader} from '../com/home/HomeHeader' +import {Pager, RenderTabBarFnProps, PagerRef} from 'view/com/pager/Pager' +import {FeedPage} from 'view/com/feeds/FeedPage' +import {HomeLoggedOutCTA} from '../com/auth/HomeLoggedOutCTA' +import {useSetMinimalShellMode, useSetDrawerSwipeDisabled} from '#/state/shell' import {usePreferencesQuery} from '#/state/queries/preferences' +import {usePinnedFeedsInfos, FeedSourceInfo} from '#/state/queries/feed' import {UsePreferencesQueryResponse} from '#/state/queries/preferences/types' +import {emitSoftReset} from '#/state/events' import {useSession} from '#/state/session' -import {useSetDrawerSwipeDisabled, useSetMinimalShellMode} from '#/state/shell' import {useSelectedFeed, useSetSelectedFeed} from '#/state/shell/selected-feed' - -import {HomeLoggedOutCTA} from '../com/auth/HomeLoggedOutCTA' -import {HomeHeader} from '../com/home/HomeHeader' +import {useSetTitle} from '#/lib/hooks/useSetTitle' type Props = NativeStackScreenProps export function HomeScreen(props: Props) { diff --git a/src/view/screens/LanguageSettings.tsx b/src/view/screens/LanguageSettings.tsx index 02251102aa..819840a461 100644 --- a/src/view/screens/LanguageSettings.tsx +++ b/src/view/screens/LanguageSettings.tsx @@ -1,29 +1,27 @@ +import React from 'react' +import {StyleSheet, View} from 'react-native' +import {Text} from '../com/util/text/Text' +import {s} from 'lib/styles' +import {usePalette} from 'lib/hooks/usePalette' +import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' +import {CommonNavigatorParams, NativeStackScreenProps} from 'lib/routes/types' +import {ViewHeader} from 'view/com/util/ViewHeader' +import {CenteredView} from 'view/com/util/Views' +import {Button} from 'view/com/util/forms/Button' import { FontAwesomeIcon, FontAwesomeIconStyle, } from '@fortawesome/react-native-fontawesome' -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' +import {useAnalytics} from 'lib/analytics/analytics' import {useFocusEffect} from '@react-navigation/native' import {APP_LANGUAGES, LANGUAGES} from 'lib/../locale/languages' -import {useAnalytics} from 'lib/analytics/analytics' -import {usePalette} from 'lib/hooks/usePalette' -import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {CommonNavigatorParams, NativeStackScreenProps} from 'lib/routes/types' -import {s} from 'lib/styles' -import React from 'react' -import {StyleSheet, View} from 'react-native' import RNPickerSelect, {PickerSelectProps} from 'react-native-picker-select' -import {Button} from 'view/com/util/forms/Button' -import {ViewHeader} from 'view/com/util/ViewHeader' -import {CenteredView} from 'view/com/util/Views' - -import {sanitizeAppLanguageSetting} from '#/locale/helpers' +import {useSetMinimalShellMode} from '#/state/shell' import {useModalControls} from '#/state/modals' import {useLanguagePrefs, useLanguagePrefsApi} from '#/state/preferences' -import {useSetMinimalShellMode} from '#/state/shell' - -import {Text} from '../com/util/text/Text' +import {Trans, msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {sanitizeAppLanguageSetting} from '#/locale/helpers' type Props = NativeStackScreenProps diff --git a/src/view/screens/Lists.tsx b/src/view/screens/Lists.tsx index d57e6a7145..bdd5dd9b78 100644 --- a/src/view/screens/Lists.tsx +++ b/src/view/screens/Lists.tsx @@ -1,21 +1,20 @@ -import {AtUri} from '@atproto/api' -import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' -import {Trans} from '@lingui/macro' -import {useFocusEffect, useNavigation} from '@react-navigation/native' -import {usePalette} from 'lib/hooks/usePalette' -import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {CommonNavigatorParams, NativeStackScreenProps} from 'lib/routes/types' -import {NavigationProp} from 'lib/routes/types' -import {s} from 'lib/styles' import React from 'react' import {View} from 'react-native' +import {useFocusEffect, useNavigation} from '@react-navigation/native' +import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' +import {AtUri} from '@atproto/api' +import {NativeStackScreenProps, CommonNavigatorParams} from 'lib/routes/types' +import {MyLists} from '#/view/com/lists/MyLists' +import {Text} from 'view/com/util/text/Text' import {Button} from 'view/com/util/forms/Button' +import {NavigationProp} from 'lib/routes/types' +import {usePalette} from 'lib/hooks/usePalette' +import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' import {SimpleViewHeader} from 'view/com/util/SimpleViewHeader' -import {Text} from 'view/com/util/text/Text' - -import {useModalControls} from '#/state/modals' +import {s} from 'lib/styles' import {useSetMinimalShellMode} from '#/state/shell' -import {MyLists} from '#/view/com/lists/MyLists' +import {useModalControls} from '#/state/modals' +import {Trans} from '@lingui/macro' type Props = NativeStackScreenProps export function ListsScreen({}: Props) { diff --git a/src/view/screens/Log.tsx b/src/view/screens/Log.tsx index eabf66bf09..e727a1fb81 100644 --- a/src/view/screens/Log.tsx +++ b/src/view/screens/Log.tsx @@ -1,21 +1,19 @@ -import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' -import {msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {useFocusEffect} from '@react-navigation/native' -import {usePalette} from 'lib/hooks/usePalette' -import {CommonNavigatorParams, NativeStackScreenProps} from 'lib/routes/types' -import {ago} from 'lib/strings/time' -import {s} from 'lib/styles' import React from 'react' import {StyleSheet, TouchableOpacity, View} from 'react-native' - +import {useFocusEffect} from '@react-navigation/native' +import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' +import {NativeStackScreenProps, CommonNavigatorParams} from 'lib/routes/types' +import {ScrollView} from '../com/util/Views' +import {s} from 'lib/styles' +import {ViewHeader} from '../com/util/ViewHeader' +import {Text} from '../com/util/text/Text' +import {usePalette} from 'lib/hooks/usePalette' import {getEntries} from '#/logger/logDump' +import {ago} from 'lib/strings/time' +import {useLingui} from '@lingui/react' +import {msg} from '@lingui/macro' import {useSetMinimalShellMode} from '#/state/shell' -import {Text} from '../com/util/text/Text' -import {ViewHeader} from '../com/util/ViewHeader' -import {ScrollView} from '../com/util/Views' - export function LogScreen({}: NativeStackScreenProps< CommonNavigatorParams, 'Log' diff --git a/src/view/screens/Moderation.tsx b/src/view/screens/Moderation.tsx index 5b06ab845f..928766c304 100644 --- a/src/view/screens/Moderation.tsx +++ b/src/view/screens/Moderation.tsx @@ -1,16 +1,3 @@ -import {ComAtprotoLabelDefs} from '@atproto/api' -import { - FontAwesomeIcon, - FontAwesomeIconStyle, -} from '@fortawesome/react-native-fontawesome' -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {useFocusEffect} from '@react-navigation/native' -import {useAnalytics} from 'lib/analytics/analytics' -import {usePalette} from 'lib/hooks/usePalette' -import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {CommonNavigatorParams, NativeStackScreenProps} from 'lib/routes/types' -import {s} from 'lib/styles' import React from 'react' import { ActivityIndicator, @@ -18,22 +5,33 @@ import { TouchableOpacity, View, } from 'react-native' - -import {useGlobalDialogsControlContext} from '#/components/dialogs/Context' +import {useFocusEffect} from '@react-navigation/native' +import { + FontAwesomeIcon, + FontAwesomeIconStyle, +} from '@fortawesome/react-native-fontawesome' +import {ComAtprotoLabelDefs} from '@atproto/api' +import {NativeStackScreenProps, CommonNavigatorParams} from 'lib/routes/types' +import {s} from 'lib/styles' +import {CenteredView} from '../com/util/Views' +import {ViewHeader} from '../com/util/ViewHeader' +import {Link, TextLink} from '../com/util/Link' +import {Text} from '../com/util/text/Text' +import {usePalette} from 'lib/hooks/usePalette' +import {useAnalytics} from 'lib/analytics/analytics' +import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' +import {useSetMinimalShellMode} from '#/state/shell' import {useModalControls} from '#/state/modals' +import {Trans, msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {ToggleButton} from '../com/util/forms/ToggleButton' +import {useSession} from '#/state/session' import { useProfileQuery, useProfileUpdateMutation, } from '#/state/queries/profile' -import {useSession} from '#/state/session' -import {useSetMinimalShellMode} from '#/state/shell' - -import {ToggleButton} from '../com/util/forms/ToggleButton' -import {Link, TextLink} from '../com/util/Link' -import {Text} from '../com/util/text/Text' -import {ViewHeader} from '../com/util/ViewHeader' -import {CenteredView} from '../com/util/Views' import {ScrollView} from '../com/util/Views' +import {useGlobalDialogsControlContext} from '#/components/dialogs/Context' type Props = NativeStackScreenProps export function ModerationScreen({}: Props) { diff --git a/src/view/screens/ModerationBlockedAccounts.tsx b/src/view/screens/ModerationBlockedAccounts.tsx index 9c25764f8a..09d77987f9 100644 --- a/src/view/screens/ModerationBlockedAccounts.tsx +++ b/src/view/screens/ModerationBlockedAccounts.tsx @@ -1,12 +1,3 @@ -import {AppBskyActorDefs as ActorDefs} from '@atproto/api' -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {useFocusEffect} from '@react-navigation/native' -import {NativeStackScreenProps} from '@react-navigation/native-stack' -import {useAnalytics} from 'lib/analytics/analytics' -import {usePalette} from 'lib/hooks/usePalette' -import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {CommonNavigatorParams} from 'lib/routes/types' import React from 'react' import { ActivityIndicator, @@ -15,17 +6,24 @@ import { StyleSheet, View, } from 'react-native' -import {ProfileCard} from 'view/com/profile/ProfileCard' +import {AppBskyActorDefs as ActorDefs} from '@atproto/api' +import {Text} from '../com/util/text/Text' +import {usePalette} from 'lib/hooks/usePalette' +import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' +import {NativeStackScreenProps} from '@react-navigation/native-stack' +import {CommonNavigatorParams} from 'lib/routes/types' +import {useAnalytics} from 'lib/analytics/analytics' +import {useFocusEffect} from '@react-navigation/native' +import {ViewHeader} from '../com/util/ViewHeader' import {CenteredView} from 'view/com/util/Views' - -import {cleanError} from '#/lib/strings/errors' +import {ErrorScreen} from '../com/util/error/ErrorScreen' +import {ProfileCard} from 'view/com/profile/ProfileCard' import {logger} from '#/logger' -import {useMyBlockedAccountsQuery} from '#/state/queries/my-blocked-accounts' import {useSetMinimalShellMode} from '#/state/shell' - -import {ErrorScreen} from '../com/util/error/ErrorScreen' -import {Text} from '../com/util/text/Text' -import {ViewHeader} from '../com/util/ViewHeader' +import {Trans, msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {useMyBlockedAccountsQuery} from '#/state/queries/my-blocked-accounts' +import {cleanError} from '#/lib/strings/errors' type Props = NativeStackScreenProps< CommonNavigatorParams, diff --git a/src/view/screens/ModerationModlists.tsx b/src/view/screens/ModerationModlists.tsx index 6d9e413843..b7d993acc7 100644 --- a/src/view/screens/ModerationModlists.tsx +++ b/src/view/screens/ModerationModlists.tsx @@ -1,21 +1,20 @@ -import {AtUri} from '@atproto/api' -import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' -import {Trans} from '@lingui/macro' -import {useFocusEffect, useNavigation} from '@react-navigation/native' -import {usePalette} from 'lib/hooks/usePalette' -import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {CommonNavigatorParams, NativeStackScreenProps} from 'lib/routes/types' -import {NavigationProp} from 'lib/routes/types' -import {s} from 'lib/styles' import React from 'react' import {View} from 'react-native' +import {useFocusEffect, useNavigation} from '@react-navigation/native' +import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' +import {AtUri} from '@atproto/api' +import {NativeStackScreenProps, CommonNavigatorParams} from 'lib/routes/types' +import {MyLists} from '#/view/com/lists/MyLists' +import {Text} from 'view/com/util/text/Text' import {Button} from 'view/com/util/forms/Button' +import {NavigationProp} from 'lib/routes/types' +import {usePalette} from 'lib/hooks/usePalette' +import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' import {SimpleViewHeader} from 'view/com/util/SimpleViewHeader' -import {Text} from 'view/com/util/text/Text' - -import {useModalControls} from '#/state/modals' +import {s} from 'lib/styles' import {useSetMinimalShellMode} from '#/state/shell' -import {MyLists} from '#/view/com/lists/MyLists' +import {useModalControls} from '#/state/modals' +import {Trans} from '@lingui/macro' type Props = NativeStackScreenProps export function ModerationModlistsScreen({}: Props) { diff --git a/src/view/screens/ModerationMutedAccounts.tsx b/src/view/screens/ModerationMutedAccounts.tsx index 635c9f468d..1aff19dd3b 100644 --- a/src/view/screens/ModerationMutedAccounts.tsx +++ b/src/view/screens/ModerationMutedAccounts.tsx @@ -1,12 +1,3 @@ -import {AppBskyActorDefs as ActorDefs} from '@atproto/api' -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {useFocusEffect} from '@react-navigation/native' -import {NativeStackScreenProps} from '@react-navigation/native-stack' -import {useAnalytics} from 'lib/analytics/analytics' -import {usePalette} from 'lib/hooks/usePalette' -import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {CommonNavigatorParams} from 'lib/routes/types' import React from 'react' import { ActivityIndicator, @@ -15,17 +6,24 @@ import { StyleSheet, View, } from 'react-native' -import {ProfileCard} from 'view/com/profile/ProfileCard' +import {AppBskyActorDefs as ActorDefs} from '@atproto/api' +import {Text} from '../com/util/text/Text' +import {usePalette} from 'lib/hooks/usePalette' +import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' +import {NativeStackScreenProps} from '@react-navigation/native-stack' +import {CommonNavigatorParams} from 'lib/routes/types' +import {useAnalytics} from 'lib/analytics/analytics' +import {useFocusEffect} from '@react-navigation/native' +import {ViewHeader} from '../com/util/ViewHeader' import {CenteredView} from 'view/com/util/Views' - -import {cleanError} from '#/lib/strings/errors' +import {ErrorScreen} from '../com/util/error/ErrorScreen' +import {ProfileCard} from 'view/com/profile/ProfileCard' import {logger} from '#/logger' -import {useMyMutedAccountsQuery} from '#/state/queries/my-muted-accounts' import {useSetMinimalShellMode} from '#/state/shell' - -import {ErrorScreen} from '../com/util/error/ErrorScreen' -import {Text} from '../com/util/text/Text' -import {ViewHeader} from '../com/util/ViewHeader' +import {Trans, msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {useMyMutedAccountsQuery} from '#/state/queries/my-muted-accounts' +import {cleanError} from '#/lib/strings/errors' type Props = NativeStackScreenProps< CommonNavigatorParams, diff --git a/src/view/screens/NotFound.tsx b/src/view/screens/NotFound.tsx index d101a45b73..dfa840abbc 100644 --- a/src/view/screens/NotFound.tsx +++ b/src/view/screens/NotFound.tsx @@ -1,21 +1,19 @@ -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' +import React from 'react' +import {StyleSheet, View} from 'react-native' import { + useNavigation, StackActions, useFocusEffect, - useNavigation, } from '@react-navigation/native' -import {usePalette} from 'lib/hooks/usePalette' +import {ViewHeader} from '../com/util/ViewHeader' +import {Text} from '../com/util/text/Text' +import {Button} from 'view/com/util/forms/Button' import {NavigationProp} from 'lib/routes/types' +import {usePalette} from 'lib/hooks/usePalette' import {s} from 'lib/styles' -import React from 'react' -import {StyleSheet, View} from 'react-native' -import {Button} from 'view/com/util/forms/Button' - import {useSetMinimalShellMode} from '#/state/shell' - -import {Text} from '../com/util/text/Text' -import {ViewHeader} from '../com/util/ViewHeader' +import {Trans, msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' export const NotFoundScreen = () => { const pal = usePalette('default') diff --git a/src/view/screens/Notifications.tsx b/src/view/screens/Notifications.tsx index 030f73bd8a..48c834a28f 100644 --- a/src/view/screens/Notifications.tsx +++ b/src/view/screens/Notifications.tsx @@ -1,39 +1,37 @@ -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' +import React from 'react' +import {View} from 'react-native' import {useFocusEffect, useIsFocused} from '@react-navigation/native' import {useQueryClient} from '@tanstack/react-query' -import {useAnalytics} from 'lib/analytics/analytics' -import {usePalette} from 'lib/hooks/usePalette' -import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {ComposeIcon2} from 'lib/icons' import { NativeStackScreenProps, NotificationsTabNavigatorParams, } from 'lib/routes/types' -import {colors, s} from 'lib/styles' -import React from 'react' -import {View} from 'react-native' +import {ViewHeader} from '../com/util/ViewHeader' +import {Feed} from '../com/notifications/Feed' import {TextLink} from 'view/com/util/Link' import {ListMethods} from 'view/com/util/List' import {LoadLatestBtn} from 'view/com/util/load-latest/LoadLatestBtn' - -import {useNonReactiveCallback} from '#/lib/hooks/useNonReactiveCallback' +import {MainScrollProvider} from '../com/util/MainScrollProvider' +import {usePalette} from 'lib/hooks/usePalette' +import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' +import {s, colors} from 'lib/styles' +import {useAnalytics} from 'lib/analytics/analytics' import {logger} from '#/logger' -import {isNative} from '#/platform/detection' -import {emitSoftReset, listenSoftReset} from '#/state/events' -import {RQKEY as NOTIFS_RQKEY} from '#/state/queries/notifications/feed' +import {useSetMinimalShellMode} from '#/state/shell' +import {Trans, msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' import { useUnreadNotifications, useUnreadNotificationsApi, } from '#/state/queries/notifications/unread' +import {RQKEY as NOTIFS_RQKEY} from '#/state/queries/notifications/feed' +import {listenSoftReset, emitSoftReset} from '#/state/events' import {truncateAndInvalidate} from '#/state/queries/util' -import {useSetMinimalShellMode} from '#/state/shell' -import {useComposerControls} from '#/state/shell/composer' - -import {Feed} from '../com/notifications/Feed' +import {useNonReactiveCallback} from '#/lib/hooks/useNonReactiveCallback' +import {isNative} from '#/platform/detection' import {FAB} from '../com/util/fab/FAB' -import {MainScrollProvider} from '../com/util/MainScrollProvider' -import {ViewHeader} from '../com/util/ViewHeader' +import {ComposeIcon2} from 'lib/icons' +import {useComposerControls} from '#/state/shell/composer' type Props = NativeStackScreenProps< NotificationsTabNavigatorParams, diff --git a/src/view/screens/PostLikedBy.tsx b/src/view/screens/PostLikedBy.tsx index cfc1997f8d..604301544c 100644 --- a/src/view/screens/PostLikedBy.tsx +++ b/src/view/screens/PostLikedBy.tsx @@ -1,15 +1,13 @@ -import {msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {useFocusEffect} from '@react-navigation/native' -import {CommonNavigatorParams, NativeStackScreenProps} from 'lib/routes/types' -import {makeRecordUri} from 'lib/strings/url-helpers' import React from 'react' import {View} from 'react-native' - -import {useSetMinimalShellMode} from '#/state/shell' - -import {PostLikedBy as PostLikedByComponent} from '../com/post-thread/PostLikedBy' +import {useFocusEffect} from '@react-navigation/native' +import {NativeStackScreenProps, CommonNavigatorParams} from 'lib/routes/types' import {ViewHeader} from '../com/util/ViewHeader' +import {PostLikedBy as PostLikedByComponent} from '../com/post-thread/PostLikedBy' +import {makeRecordUri} from 'lib/strings/url-helpers' +import {useSetMinimalShellMode} from '#/state/shell' +import {msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' type Props = NativeStackScreenProps export const PostLikedByScreen = ({route}: Props) => { diff --git a/src/view/screens/PostRepostedBy.tsx b/src/view/screens/PostRepostedBy.tsx index 46beb7ed9f..07017d6920 100644 --- a/src/view/screens/PostRepostedBy.tsx +++ b/src/view/screens/PostRepostedBy.tsx @@ -1,15 +1,13 @@ -import {msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {useFocusEffect} from '@react-navigation/native' -import {CommonNavigatorParams, NativeStackScreenProps} from 'lib/routes/types' -import {makeRecordUri} from 'lib/strings/url-helpers' import React from 'react' import {View} from 'react-native' - -import {useSetMinimalShellMode} from '#/state/shell' - -import {PostRepostedBy as PostRepostedByComponent} from '../com/post-thread/PostRepostedBy' +import {useFocusEffect} from '@react-navigation/native' +import {NativeStackScreenProps, CommonNavigatorParams} from 'lib/routes/types' import {ViewHeader} from '../com/util/ViewHeader' +import {PostRepostedBy as PostRepostedByComponent} from '../com/post-thread/PostRepostedBy' +import {makeRecordUri} from 'lib/strings/url-helpers' +import {useSetMinimalShellMode} from '#/state/shell' +import {useLingui} from '@lingui/react' +import {msg} from '@lingui/macro' type Props = NativeStackScreenProps export const PostRepostedByScreen = ({route}: Props) => { diff --git a/src/view/screens/PostThread.tsx b/src/view/screens/PostThread.tsx index 5ae68db2e7..aa09ab9ed7 100644 --- a/src/view/screens/PostThread.tsx +++ b/src/view/screens/PostThread.tsx @@ -1,30 +1,28 @@ +import React from 'react' +import {StyleSheet, View} from 'react-native' +import Animated from 'react-native-reanimated' import {useFocusEffect} from '@react-navigation/native' import {useQueryClient} from '@tanstack/react-query' -import {useMinimalShellMode} from 'lib/hooks/useMinimalShellMode' -import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {CommonNavigatorParams, NativeStackScreenProps} from 'lib/routes/types' +import {NativeStackScreenProps, CommonNavigatorParams} from 'lib/routes/types' import {makeRecordUri} from 'lib/strings/url-helpers' +import {PostThread as PostThreadComponent} from '../com/post-thread/PostThread' +import {ComposePrompt} from 'view/com/composer/Prompt' import {s} from 'lib/styles' -import {clamp} from 'lodash' -import React from 'react' -import {StyleSheet, View} from 'react-native' -import Animated from 'react-native-reanimated' import {useSafeAreaInsets} from 'react-native-safe-area-context' -import {ComposePrompt} from 'view/com/composer/Prompt' - -import {isWeb} from '#/platform/detection' import { RQKEY as POST_THREAD_RQKEY, ThreadNode, } from '#/state/queries/post-thread' -import {useResolveUriQuery} from '#/state/queries/resolve-uri' -import {useSession} from '#/state/session' +import {clamp} from 'lodash' +import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' +import {useMinimalShellMode} from 'lib/hooks/useMinimalShellMode' import {useSetMinimalShellMode} from '#/state/shell' -import {useComposerControls} from '#/state/shell/composer' - -import {PostThread as PostThreadComponent} from '../com/post-thread/PostThread' +import {useResolveUriQuery} from '#/state/queries/resolve-uri' import {ErrorMessage} from '../com/util/error/ErrorMessage' import {CenteredView} from '../com/util/Views' +import {useComposerControls} from '#/state/shell/composer' +import {useSession} from '#/state/session' +import {isWeb} from '#/platform/detection' type Props = NativeStackScreenProps export function PostThreadScreen({route}: Props) { diff --git a/src/view/screens/PreferencesExternalEmbeds.tsx b/src/view/screens/PreferencesExternalEmbeds.tsx index 668d7a7b1d..1e8cedf7e2 100644 --- a/src/view/screens/PreferencesExternalEmbeds.tsx +++ b/src/view/screens/PreferencesExternalEmbeds.tsx @@ -1,27 +1,25 @@ -import {Trans} from '@lingui/macro' +import React from 'react' +import {StyleSheet, View} from 'react-native' import {useFocusEffect} from '@react-navigation/native' -import {useAnalytics} from 'lib/analytics/analytics' +import {NativeStackScreenProps, CommonNavigatorParams} from 'lib/routes/types' +import {s} from 'lib/styles' +import {Text} from '../com/util/text/Text' import {usePalette} from 'lib/hooks/usePalette' +import {useAnalytics} from 'lib/analytics/analytics' import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {CommonNavigatorParams, NativeStackScreenProps} from 'lib/routes/types' -import {s} from 'lib/styles' -import React from 'react' -import {StyleSheet, View} from 'react-native' -import { - useExternalEmbedsPrefs, - useSetExternalEmbedPref, -} from 'state/preferences' -import {ToggleButton} from 'view/com/util/forms/ToggleButton' - import { EmbedPlayerSource, externalEmbedLabels, } from '#/lib/strings/embed-player' import {useSetMinimalShellMode} from '#/state/shell' - -import {SimpleViewHeader} from '../com/util/SimpleViewHeader' -import {Text} from '../com/util/text/Text' +import {Trans} from '@lingui/macro' import {ScrollView} from '../com/util/Views' +import { + useExternalEmbedsPrefs, + useSetExternalEmbedPref, +} from 'state/preferences' +import {ToggleButton} from 'view/com/util/forms/ToggleButton' +import {SimpleViewHeader} from '../com/util/SimpleViewHeader' type Props = NativeStackScreenProps< CommonNavigatorParams, diff --git a/src/view/screens/PreferencesFollowingFeed.tsx b/src/view/screens/PreferencesFollowingFeed.tsx index 4062bea011..b4acbcd44c 100644 --- a/src/view/screens/PreferencesFollowingFeed.tsx +++ b/src/view/screens/PreferencesFollowingFeed.tsx @@ -1,26 +1,24 @@ +import React, {useState} from 'react' +import {ScrollView, StyleSheet, TouchableOpacity, View} from 'react-native' import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' import {Slider} from '@miblanchard/react-native-slider' +import {Text} from '../com/util/text/Text' +import {s, colors} from 'lib/styles' import {usePalette} from 'lib/hooks/usePalette' import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {CommonNavigatorParams, NativeStackScreenProps} from 'lib/routes/types' -import {colors, s} from 'lib/styles' -import debounce from 'lodash.debounce' import {isWeb} from 'platform/detection' -import React, {useState} from 'react' -import {ScrollView, StyleSheet, TouchableOpacity, View} from 'react-native' import {ToggleButton} from 'view/com/util/forms/ToggleButton' +import {CommonNavigatorParams, NativeStackScreenProps} from 'lib/routes/types' import {ViewHeader} from 'view/com/util/ViewHeader' import {CenteredView} from 'view/com/util/Views' - +import debounce from 'lodash.debounce' +import {Trans, msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' import { usePreferencesQuery, useSetFeedViewPreferencesMutation, } from '#/state/queries/preferences' -import {Text} from '../com/util/text/Text' - function RepliesThresholdInput({ enabled, initialValue, diff --git a/src/view/screens/PreferencesThreads.tsx b/src/view/screens/PreferencesThreads.tsx index 3e4abb7db7..321c672936 100644 --- a/src/view/screens/PreferencesThreads.tsx +++ b/src/view/screens/PreferencesThreads.tsx @@ -1,10 +1,3 @@ -import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {usePalette} from 'lib/hooks/usePalette' -import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {CommonNavigatorParams, NativeStackScreenProps} from 'lib/routes/types' -import {colors, s} from 'lib/styles' import React from 'react' import { ActivityIndicator, @@ -13,18 +6,23 @@ import { TouchableOpacity, View, } from 'react-native' -import {RadioGroup} from 'view/com/util/forms/RadioGroup' +import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' +import {Text} from '../com/util/text/Text' +import {s, colors} from 'lib/styles' +import {usePalette} from 'lib/hooks/usePalette' +import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' import {ToggleButton} from 'view/com/util/forms/ToggleButton' +import {RadioGroup} from 'view/com/util/forms/RadioGroup' +import {CommonNavigatorParams, NativeStackScreenProps} from 'lib/routes/types' import {ViewHeader} from 'view/com/util/ViewHeader' import {CenteredView} from 'view/com/util/Views' - +import {Trans, msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' import { usePreferencesQuery, useSetThreadViewPreferencesMutation, } from '#/state/queries/preferences' -import {Text} from '../com/util/text/Text' - type Props = NativeStackScreenProps export function PreferencesThreads({navigation}: Props) { const pal = usePalette('default') diff --git a/src/view/screens/PrivacyPolicy.tsx b/src/view/screens/PrivacyPolicy.tsx index ff92909c9b..776d83918c 100644 --- a/src/view/screens/PrivacyPolicy.tsx +++ b/src/view/screens/PrivacyPolicy.tsx @@ -1,18 +1,16 @@ -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {useFocusEffect} from '@react-navigation/native' -import {usePalette} from 'lib/hooks/usePalette' -import {CommonNavigatorParams, NativeStackScreenProps} from 'lib/routes/types' -import {s} from 'lib/styles' import React from 'react' import {View} from 'react-native' -import {TextLink} from 'view/com/util/Link' +import {useFocusEffect} from '@react-navigation/native' import {Text} from 'view/com/util/text/Text' +import {TextLink} from 'view/com/util/Link' +import {NativeStackScreenProps, CommonNavigatorParams} from 'lib/routes/types' +import {ViewHeader} from '../com/util/ViewHeader' import {ScrollView} from 'view/com/util/Views' - +import {usePalette} from 'lib/hooks/usePalette' +import {s} from 'lib/styles' import {useSetMinimalShellMode} from '#/state/shell' - -import {ViewHeader} from '../com/util/ViewHeader' +import {Trans, msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' type Props = NativeStackScreenProps export const PrivacyPolicyScreen = (_props: Props) => { diff --git a/src/view/screens/Profile.tsx b/src/view/screens/Profile.tsx index f2c0af855d..b30b4491bd 100644 --- a/src/view/screens/Profile.tsx +++ b/src/view/screens/Profile.tsx @@ -1,3 +1,6 @@ +import React, {useMemo} from 'react' +import {StyleSheet, View} from 'react-native' +import {useFocusEffect} from '@react-navigation/native' import { AppBskyActorDefs, moderateProfile, @@ -6,50 +9,45 @@ import { } from '@atproto/api' import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' -import {useFocusEffect} from '@react-navigation/native' -import {useQueryClient} from '@tanstack/react-query' +import {NativeStackScreenProps, CommonNavigatorParams} from 'lib/routes/types' +import {CenteredView} from '../com/util/Views' +import {ListRef} from '../com/util/List' +import {ScreenHider} from 'view/com/util/moderation/ScreenHider' +import {Feed} from 'view/com/posts/Feed' +import {ProfileLists} from '../com/lists/ProfileLists' +import {ProfileFeedgens} from '../com/feeds/ProfileFeedgens' +import {ProfileHeader, ProfileHeaderLoading} from '../com/profile/ProfileHeader' +import {PagerWithHeader} from 'view/com/pager/PagerWithHeader' +import {ErrorScreen} from '../com/util/error/ErrorScreen' +import {EmptyState} from '../com/util/EmptyState' +import {FAB} from '../com/util/fab/FAB' +import {s, colors} from 'lib/styles' import {useAnalytics} from 'lib/analytics/analytics' -import {usePalette} from 'lib/hooks/usePalette' -import {useSetTitle} from 'lib/hooks/useSetTitle' import {ComposeIcon2} from 'lib/icons' -import {CommonNavigatorParams, NativeStackScreenProps} from 'lib/routes/types' +import {useSetTitle} from 'lib/hooks/useSetTitle' import {combinedDisplayName} from 'lib/strings/display-names' -import {colors, s} from 'lib/styles' -import React, {useMemo} from 'react' -import {StyleSheet, View} from 'react-native' -import {PagerWithHeader} from 'view/com/pager/PagerWithHeader' -import {Feed} from 'view/com/posts/Feed' -import {ScreenHider} from 'view/com/util/moderation/ScreenHider' - -import {cleanError} from '#/lib/strings/errors' -import {isInvalidHandle} from '#/lib/strings/handles' -import {isNative} from '#/platform/detection' -import {useProfileShadow} from '#/state/cache/profile-shadow' -import {listenSoftReset} from '#/state/events' import { FeedDescriptor, resetProfilePostsQueries, } from '#/state/queries/post-feed' -import {RQKEY as FEED_RQKEY} from '#/state/queries/post-feed' -import {useModerationOpts} from '#/state/queries/preferences' +import {useResolveDidQuery} from '#/state/queries/resolve-uri' import {useProfileQuery} from '#/state/queries/profile' +import {useProfileShadow} from '#/state/cache/profile-shadow' +import {useSession, getAgent} from '#/state/session' +import {useModerationOpts} from '#/state/queries/preferences' import {useProfileExtraInfoQuery} from '#/state/queries/profile-extra-info' -import {useResolveDidQuery} from '#/state/queries/resolve-uri' -import {truncateAndInvalidate} from '#/state/queries/util' -import {getAgent, useSession} from '#/state/session' +import {RQKEY as FEED_RQKEY} from '#/state/queries/post-feed' import {useSetDrawerSwipeDisabled, useSetMinimalShellMode} from '#/state/shell' +import {cleanError} from '#/lib/strings/errors' +import {LoadLatestBtn} from '../com/util/load-latest/LoadLatestBtn' +import {useQueryClient} from '@tanstack/react-query' import {useComposerControls} from '#/state/shell/composer' +import {listenSoftReset} from '#/state/events' +import {truncateAndInvalidate} from '#/state/queries/util' import {Text} from '#/view/com/util/text/Text' - -import {ProfileFeedgens} from '../com/feeds/ProfileFeedgens' -import {ProfileLists} from '../com/lists/ProfileLists' -import {ProfileHeader, ProfileHeaderLoading} from '../com/profile/ProfileHeader' -import {EmptyState} from '../com/util/EmptyState' -import {ErrorScreen} from '../com/util/error/ErrorScreen' -import {FAB} from '../com/util/fab/FAB' -import {ListRef} from '../com/util/List' -import {LoadLatestBtn} from '../com/util/load-latest/LoadLatestBtn' -import {CenteredView} from '../com/util/Views' +import {usePalette} from 'lib/hooks/usePalette' +import {isNative} from '#/platform/detection' +import {isInvalidHandle} from '#/lib/strings/handles' interface SectionRef { scrollToTop: () => void diff --git a/src/view/screens/ProfileFeed.tsx b/src/view/screens/ProfileFeed.tsx index 87c8f82b75..b3a7328c17 100644 --- a/src/view/screens/ProfileFeed.tsx +++ b/src/view/screens/ProfileFeed.tsx @@ -1,71 +1,70 @@ -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {useIsFocused, useNavigation} from '@react-navigation/native' +import React, {useMemo, useCallback} from 'react' +import {StyleSheet, View, Pressable} from 'react-native' import {NativeStackScreenProps} from '@react-navigation/native-stack' +import {useIsFocused, useNavigation} from '@react-navigation/native' import {useQueryClient} from '@tanstack/react-query' -import {useAnalytics} from 'lib/analytics/analytics' -import {Haptics} from 'lib/haptics' import {usePalette} from 'lib/hooks/usePalette' -import {useSetTitle} from 'lib/hooks/useSetTitle' -import {ComposeIcon2} from 'lib/icons' -import {makeCustomFeedLink} from 'lib/routes/links' import {CommonNavigatorParams} from 'lib/routes/types' -import {NavigationProp} from 'lib/routes/types' -import {shareUrl} from 'lib/sharing' -import {pluralize} from 'lib/strings/helpers' import {makeRecordUri} from 'lib/strings/url-helpers' -import {toShareUrl} from 'lib/strings/url-helpers' import {s} from 'lib/styles' -import React, {useCallback, useMemo} from 'react' -import {Pressable, StyleSheet, View} from 'react-native' +import {FeedDescriptor} from '#/state/queries/post-feed' import {PagerWithHeader} from 'view/com/pager/PagerWithHeader' -import {Feed} from 'view/com/posts/Feed' import {ProfileSubpageHeader} from 'view/com/profile/ProfileSubpageHeader' -import {EmptyState} from 'view/com/util/EmptyState' -import {FAB} from 'view/com/util/fab/FAB' -import {Button} from 'view/com/util/forms/Button' +import {Feed} from 'view/com/posts/Feed' +import {InlineLink} from '#/components/Link' import {ListRef} from 'view/com/util/List' +import {Button} from 'view/com/util/forms/Button' +import {Text} from 'view/com/util/text/Text' +import {RichText} from '#/components/RichText' import {LoadLatestBtn} from 'view/com/util/load-latest/LoadLatestBtn' +import {FAB} from 'view/com/util/fab/FAB' +import {EmptyState} from 'view/com/util/EmptyState' import {LoadingScreen} from 'view/com/util/LoadingScreen' -import {Text} from 'view/com/util/text/Text' import * as Toast from 'view/com/util/Toast' +import {useSetTitle} from 'lib/hooks/useSetTitle' +import {RQKEY as FEED_RQKEY} from '#/state/queries/post-feed' +import {shareUrl} from 'lib/sharing' +import {toShareUrl} from 'lib/strings/url-helpers' +import {Haptics} from 'lib/haptics' +import {useAnalytics} from 'lib/analytics/analytics' +import {makeCustomFeedLink} from 'lib/routes/links' +import {pluralize} from 'lib/strings/helpers' import {CenteredView} from 'view/com/util/Views' - -import {atoms as a, useTheme} from '#/alf' -import {Button as NewButton, ButtonText} from '#/components/Button' -import {ArrowOutOfBox_Stroke2_Corner0_Rounded as Share} from '#/components/icons/ArrowOutOfBox' -import {CircleInfo_Stroke2_Corner0_Rounded as CircleInfo} from '#/components/icons/CircleInfo' -import {DotGrid_Stroke2_Corner0_Rounded as Ellipsis} from '#/components/icons/DotGrid' -import { - Heart2_Filled_Stroke2_Corner0_Rounded as HeartFilled, - Heart2_Stroke2_Corner0_Rounded as HeartOutline, -} from '#/components/icons/Heart2' -import {PlusLarge_Stroke2_Corner0_Rounded as Plus} from '#/components/icons/Plus' -import {Trash_Stroke2_Corner0_Rounded as Trash} from '#/components/icons/Trash' -import {InlineLink} from '#/components/Link' -import * as Menu from '#/components/Menu' -import {RichText} from '#/components/RichText' -import {HITSLOP_20} from '#/lib/constants' +import {NavigationProp} from 'lib/routes/types' +import {ComposeIcon2} from 'lib/icons' import {logger} from '#/logger' -import {isNative} from '#/platform/detection' -import {listenSoftReset} from '#/state/events' +import {Trans, msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' import {useModalControls} from '#/state/modals' -import {FeedSourceFeedInfo, useFeedSourceInfoQuery} from '#/state/queries/feed' -import {useLikeMutation, useUnlikeMutation} from '#/state/queries/like' -import {FeedDescriptor} from '#/state/queries/post-feed' -import {RQKEY as FEED_RQKEY} from '#/state/queries/post-feed' +import {useFeedSourceInfoQuery, FeedSourceFeedInfo} from '#/state/queries/feed' +import {useResolveUriQuery} from '#/state/queries/resolve-uri' import { - usePinFeedMutation, - usePreferencesQuery, UsePreferencesQueryResponse, - useRemoveFeedMutation, + usePreferencesQuery, useSaveFeedMutation, + useRemoveFeedMutation, + usePinFeedMutation, useUnpinFeedMutation, } from '#/state/queries/preferences' -import {useResolveUriQuery} from '#/state/queries/resolve-uri' -import {truncateAndInvalidate} from '#/state/queries/util' import {useSession} from '#/state/session' +import {useLikeMutation, useUnlikeMutation} from '#/state/queries/like' import {useComposerControls} from '#/state/shell/composer' +import {truncateAndInvalidate} from '#/state/queries/util' +import {isNative} from '#/platform/detection' +import {listenSoftReset} from '#/state/events' +import {atoms as a, useTheme} from '#/alf' +import * as Menu from '#/components/Menu' +import {HITSLOP_20} from '#/lib/constants' +import {DotGrid_Stroke2_Corner0_Rounded as Ellipsis} from '#/components/icons/DotGrid' +import {Trash_Stroke2_Corner0_Rounded as Trash} from '#/components/icons/Trash' +import {PlusLarge_Stroke2_Corner0_Rounded as Plus} from '#/components/icons/Plus' +import {CircleInfo_Stroke2_Corner0_Rounded as CircleInfo} from '#/components/icons/CircleInfo' +import {ArrowOutOfBox_Stroke2_Corner0_Rounded as Share} from '#/components/icons/ArrowOutOfBox' +import { + Heart2_Stroke2_Corner0_Rounded as HeartOutline, + Heart2_Filled_Stroke2_Corner0_Rounded as HeartFilled, +} from '#/components/icons/Heart2' +import {Button as NewButton, ButtonText} from '#/components/Button' const SECTION_TITLES = ['Posts'] diff --git a/src/view/screens/ProfileFeedLikedBy.tsx b/src/view/screens/ProfileFeedLikedBy.tsx index 877378403d..b1bcf48ba4 100644 --- a/src/view/screens/ProfileFeedLikedBy.tsx +++ b/src/view/screens/ProfileFeedLikedBy.tsx @@ -1,15 +1,13 @@ -import {msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {useFocusEffect} from '@react-navigation/native' -import {CommonNavigatorParams, NativeStackScreenProps} from 'lib/routes/types' -import {makeRecordUri} from 'lib/strings/url-helpers' import React from 'react' import {View} from 'react-native' - -import {useSetMinimalShellMode} from '#/state/shell' - -import {PostLikedBy as PostLikedByComponent} from '../com/post-thread/PostLikedBy' +import {useFocusEffect} from '@react-navigation/native' +import {NativeStackScreenProps, CommonNavigatorParams} from 'lib/routes/types' import {ViewHeader} from '../com/util/ViewHeader' +import {PostLikedBy as PostLikedByComponent} from '../com/post-thread/PostLikedBy' +import {makeRecordUri} from 'lib/strings/url-helpers' +import {useSetMinimalShellMode} from '#/state/shell' +import {useLingui} from '@lingui/react' +import {msg} from '@lingui/macro' type Props = NativeStackScreenProps export const ProfileFeedLikedByScreen = ({route}: Props) => { diff --git a/src/view/screens/ProfileFollowers.tsx b/src/view/screens/ProfileFollowers.tsx index 7925837967..2cad08cb5d 100644 --- a/src/view/screens/ProfileFollowers.tsx +++ b/src/view/screens/ProfileFollowers.tsx @@ -1,14 +1,12 @@ -import {msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {useFocusEffect} from '@react-navigation/native' -import {CommonNavigatorParams, NativeStackScreenProps} from 'lib/routes/types' import React from 'react' import {View} from 'react-native' - -import {useSetMinimalShellMode} from '#/state/shell' - -import {ProfileFollowers as ProfileFollowersComponent} from '../com/profile/ProfileFollowers' +import {useFocusEffect} from '@react-navigation/native' +import {NativeStackScreenProps, CommonNavigatorParams} from 'lib/routes/types' import {ViewHeader} from '../com/util/ViewHeader' +import {ProfileFollowers as ProfileFollowersComponent} from '../com/profile/ProfileFollowers' +import {useSetMinimalShellMode} from '#/state/shell' +import {useLingui} from '@lingui/react' +import {msg} from '@lingui/macro' type Props = NativeStackScreenProps export const ProfileFollowersScreen = ({route}: Props) => { diff --git a/src/view/screens/ProfileFollows.tsx b/src/view/screens/ProfileFollows.tsx index 70fcfa9c6f..80502b98bc 100644 --- a/src/view/screens/ProfileFollows.tsx +++ b/src/view/screens/ProfileFollows.tsx @@ -1,14 +1,12 @@ -import {msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {useFocusEffect} from '@react-navigation/native' -import {CommonNavigatorParams, NativeStackScreenProps} from 'lib/routes/types' import React from 'react' import {View} from 'react-native' - -import {useSetMinimalShellMode} from '#/state/shell' - -import {ProfileFollows as ProfileFollowsComponent} from '../com/profile/ProfileFollows' +import {useFocusEffect} from '@react-navigation/native' +import {NativeStackScreenProps, CommonNavigatorParams} from 'lib/routes/types' import {ViewHeader} from '../com/util/ViewHeader' +import {ProfileFollows as ProfileFollowsComponent} from '../com/profile/ProfileFollows' +import {useSetMinimalShellMode} from '#/state/shell' +import {useLingui} from '@lingui/react' +import {msg} from '@lingui/macro' type Props = NativeStackScreenProps export const ProfileFollowsScreen = ({route}: Props) => { diff --git a/src/view/screens/ProfileList.tsx b/src/view/screens/ProfileList.tsx index 08644dccce..9e98757efa 100644 --- a/src/view/screens/ProfileList.tsx +++ b/src/view/screens/ProfileList.tsx @@ -1,67 +1,66 @@ -import {AppBskyGraphDefs, AtUri, RichText as RichTextAPI} from '@atproto/api' -import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' +import React, {useCallback, useMemo} from 'react' +import {Pressable, StyleSheet, View} from 'react-native' import {useFocusEffect, useIsFocused} from '@react-navigation/native' +import {NativeStackScreenProps, CommonNavigatorParams} from 'lib/routes/types' import {useNavigation} from '@react-navigation/native' +import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' +import {AppBskyGraphDefs, AtUri, RichText as RichTextAPI} from '@atproto/api' import {useQueryClient} from '@tanstack/react-query' -import {Haptics} from 'lib/haptics' -import {usePalette} from 'lib/hooks/usePalette' -import {useSetTitle} from 'lib/hooks/useSetTitle' -import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {ComposeIcon2} from 'lib/icons' -import {makeListLink, makeProfileLink} from 'lib/routes/links' -import {CommonNavigatorParams, NativeStackScreenProps} from 'lib/routes/types' -import {NavigationProp} from 'lib/routes/types' -import {shareUrl} from 'lib/sharing' -import {sanitizeHandle} from 'lib/strings/handles' -import {toShareUrl} from 'lib/strings/url-helpers' -import {s} from 'lib/styles' -import React, {useCallback, useMemo} from 'react' -import {Pressable, StyleSheet, View} from 'react-native' import {PagerWithHeader} from 'view/com/pager/PagerWithHeader' -import {Feed} from 'view/com/posts/Feed' import {ProfileSubpageHeader} from 'view/com/profile/ProfileSubpageHeader' +import {Feed} from 'view/com/posts/Feed' +import {Text} from 'view/com/util/text/Text' +import {NativeDropdown, DropdownItem} from 'view/com/util/forms/NativeDropdown' +import {CenteredView} from 'view/com/util/Views' import {EmptyState} from 'view/com/util/EmptyState' -import {FAB} from 'view/com/util/fab/FAB' +import {LoadingScreen} from 'view/com/util/LoadingScreen' +import {RichText} from '#/components/RichText' import {Button} from 'view/com/util/forms/Button' -import {DropdownItem, NativeDropdown} from 'view/com/util/forms/NativeDropdown' import {TextLink} from 'view/com/util/Link' import {ListRef} from 'view/com/util/List' -import {LoadLatestBtn} from 'view/com/util/load-latest/LoadLatestBtn' -import {LoadingScreen} from 'view/com/util/LoadingScreen' -import {Text} from 'view/com/util/text/Text' import * as Toast from 'view/com/util/Toast' -import {CenteredView} from 'view/com/util/Views' - -import {atoms as a, useTheme} from '#/alf' -import {RichText} from '#/components/RichText' -import {useAnalytics} from '#/lib/analytics/analytics' -import {cleanError} from '#/lib/strings/errors' -import {logger} from '#/logger' -import {isNative, isWeb} from '#/platform/detection' -import {listenSoftReset} from '#/state/events' +import {LoadLatestBtn} from 'view/com/util/load-latest/LoadLatestBtn' +import {FAB} from 'view/com/util/fab/FAB' +import {Haptics} from 'lib/haptics' +import {FeedDescriptor} from '#/state/queries/post-feed' +import {usePalette} from 'lib/hooks/usePalette' +import {useSetTitle} from 'lib/hooks/useSetTitle' +import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' +import {RQKEY as FEED_RQKEY} from '#/state/queries/post-feed' +import {NavigationProp} from 'lib/routes/types' +import {toShareUrl} from 'lib/strings/url-helpers' +import {shareUrl} from 'lib/sharing' +import {s} from 'lib/styles' +import {sanitizeHandle} from 'lib/strings/handles' +import {makeProfileLink, makeListLink} from 'lib/routes/links' +import {ComposeIcon2} from 'lib/icons' +import {ListMembers} from '#/view/com/lists/ListMembers' +import {Trans, msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {useSetMinimalShellMode} from '#/state/shell' import {useModalControls} from '#/state/modals' +import {useResolveUriQuery} from '#/state/queries/resolve-uri' import { + useListQuery, + useListMuteMutation, useListBlockMutation, useListDeleteMutation, - useListMuteMutation, - useListQuery, } from '#/state/queries/list' -import {FeedDescriptor} from '#/state/queries/post-feed' -import {RQKEY as FEED_RQKEY} from '#/state/queries/post-feed' +import {cleanError} from '#/lib/strings/errors' +import {useSession} from '#/state/session' +import {useComposerControls} from '#/state/shell/composer' +import {isNative, isWeb} from '#/platform/detection' +import {truncateAndInvalidate} from '#/state/queries/util' import { - usePinFeedMutation, usePreferencesQuery, - useSetSaveFeedsMutation, + usePinFeedMutation, useUnpinFeedMutation, + useSetSaveFeedsMutation, } from '#/state/queries/preferences' -import {useResolveUriQuery} from '#/state/queries/resolve-uri' -import {truncateAndInvalidate} from '#/state/queries/util' -import {useSession} from '#/state/session' -import {useSetMinimalShellMode} from '#/state/shell' -import {useComposerControls} from '#/state/shell/composer' -import {ListMembers} from '#/view/com/lists/ListMembers' +import {logger} from '#/logger' +import {useAnalytics} from '#/lib/analytics/analytics' +import {listenSoftReset} from '#/state/events' +import {atoms as a, useTheme} from '#/alf' const SECTION_TITLES_CURATE = ['Posts', 'About'] const SECTION_TITLES_MOD = ['About'] diff --git a/src/view/screens/SavedFeeds.tsx b/src/view/screens/SavedFeeds.tsx index b58f9f4f15..251c706384 100644 --- a/src/view/screens/SavedFeeds.tsx +++ b/src/view/screens/SavedFeeds.tsx @@ -1,32 +1,31 @@ -import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' +import React from 'react' +import {StyleSheet, View, ActivityIndicator, Pressable} from 'react-native' import {useFocusEffect} from '@react-navigation/native' import {NativeStackScreenProps} from '@react-navigation/native-stack' +import {track} from '#/lib/analytics/analytics' import {useAnalytics} from 'lib/analytics/analytics' -import {Haptics} from 'lib/haptics' import {usePalette} from 'lib/hooks/usePalette' -import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' import {CommonNavigatorParams} from 'lib/routes/types' -import {colors, s} from 'lib/styles' -import React from 'react' -import {ActivityIndicator, Pressable, StyleSheet, View} from 'react-native' -import {FeedSourceCard} from 'view/com/feeds/FeedSourceCard' -import {TextLink} from 'view/com/util/Link' +import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' +import {ViewHeader} from 'view/com/util/ViewHeader' +import {ScrollView, CenteredView} from 'view/com/util/Views' import {Text} from 'view/com/util/text/Text' +import {s, colors} from 'lib/styles' +import {FeedSourceCard} from 'view/com/feeds/FeedSourceCard' +import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' import * as Toast from 'view/com/util/Toast' -import {ViewHeader} from 'view/com/util/ViewHeader' -import {CenteredView, ScrollView} from 'view/com/util/Views' - -import {track} from '#/lib/analytics/analytics' +import {Haptics} from 'lib/haptics' +import {TextLink} from 'view/com/util/Link' import {logger} from '#/logger' +import {useSetMinimalShellMode} from '#/state/shell' +import {Trans, msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' import { - usePinFeedMutation, usePreferencesQuery, - useSetSaveFeedsMutation, + usePinFeedMutation, useUnpinFeedMutation, + useSetSaveFeedsMutation, } from '#/state/queries/preferences' -import {useSetMinimalShellMode} from '#/state/shell' const HITSLOP_TOP = { top: 20, diff --git a/src/view/screens/Search/Search.tsx b/src/view/screens/Search/Search.tsx index d9d11c8104..42eec53d31 100644 --- a/src/view/screens/Search/Search.tsx +++ b/src/view/screens/Search/Search.tsx @@ -1,59 +1,59 @@ +import React from 'react' +import { + View, + StyleSheet, + ActivityIndicator, + TextInput, + Pressable, + Platform, +} from 'react-native' +import {ScrollView, CenteredView} from '#/view/com/util/Views' +import {List} from '#/view/com/util/List' import {AppBskyActorDefs, AppBskyFeedDefs, moderateProfile} from '@atproto/api' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' import { FontAwesomeIcon, FontAwesomeIconStyle, } from '@fortawesome/react-native-fontawesome' -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import AsyncStorage from '@react-native-async-storage/async-storage' import {useFocusEffect, useNavigation} from '@react-navigation/native' -import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' + +import {logger} from '#/logger' import { NativeStackScreenProps, SearchTabNavigatorParams, } from 'lib/routes/types' -import {useTheme} from 'lib/ThemeContext' -import React from 'react' -import { - ActivityIndicator, - Platform, - Pressable, - StyleSheet, - TextInput, - View, -} from 'react-native' +import {Text} from '#/view/com/util/text/Text' import {ProfileCardFeedLoadingPlaceholder} from 'view/com/util/LoadingPlaceholder' - -import {useAnalytics} from '#/lib/analytics/analytics' +import {ProfileCardWithFollowBtn} from '#/view/com/profile/ProfileCard' +import {Post} from '#/view/com/post/Post' +import {Pager} from '#/view/com/pager/Pager' +import {TabBar} from '#/view/com/pager/TabBar' import {HITSLOP_10} from '#/lib/constants' +import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' import {usePalette} from '#/lib/hooks/usePalette' -import {MagnifyingGlassIcon} from '#/lib/icons' -import {NavigationProp} from '#/lib/routes/types' -import {augmentSearchQuery} from '#/lib/strings/helpers' -import {s} from '#/lib/styles' -import {logger} from '#/logger' -import {isNative, isWeb} from '#/platform/detection' -import {listenSoftReset} from '#/state/events' -import {useActorAutocompleteFn} from '#/state/queries/actor-autocomplete' -import {useActorSearch} from '#/state/queries/actor-search' -import {useModerationOpts} from '#/state/queries/preferences' -import {useSearchPostsQuery} from '#/state/queries/search-posts' -import {useGetSuggestedFollowersByActor} from '#/state/queries/suggested-follows' +import {useTheme} from 'lib/ThemeContext' import {useSession} from '#/state/session' +import {useGetSuggestedFollowersByActor} from '#/state/queries/suggested-follows' +import {useSearchPostsQuery} from '#/state/queries/search-posts' +import {useActorSearch} from '#/state/queries/actor-search' +import {useActorAutocompleteFn} from '#/state/queries/actor-autocomplete' import {useSetDrawerOpen} from '#/state/shell' -import {useSetDrawerSwipeDisabled, useSetMinimalShellMode} from '#/state/shell' -import {Pager} from '#/view/com/pager/Pager' -import {TabBar} from '#/view/com/pager/TabBar' -import {Post} from '#/view/com/post/Post' -import {ProfileCardWithFollowBtn} from '#/view/com/profile/ProfileCard' -import {List} from '#/view/com/util/List' -import {Text} from '#/view/com/util/text/Text' -import {CenteredView, ScrollView} from '#/view/com/util/Views' +import {useAnalytics} from '#/lib/analytics/analytics' +import {MagnifyingGlassIcon} from '#/lib/icons' +import {useModerationOpts} from '#/state/queries/preferences' import { MATCH_HANDLE, SearchLinkCard, SearchProfileCard, } from '#/view/shell/desktop/Search' +import {useSetMinimalShellMode, useSetDrawerSwipeDisabled} from '#/state/shell' +import {isNative, isWeb} from '#/platform/detection' +import {listenSoftReset} from '#/state/events' +import {s} from '#/lib/styles' +import AsyncStorage from '@react-native-async-storage/async-storage' +import {augmentSearchQuery} from '#/lib/strings/helpers' +import {NavigationProp} from '#/lib/routes/types' function Loader() { const pal = usePalette('default') diff --git a/src/view/screens/Settings/ExportCarDialog.tsx b/src/view/screens/Settings/ExportCarDialog.tsx index e4747c6966..dca51c0dca 100644 --- a/src/view/screens/Settings/ExportCarDialog.tsx +++ b/src/view/screens/Settings/ExportCarDialog.tsx @@ -1,13 +1,13 @@ -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' import React from 'react' import {View} from 'react-native' +import {useLingui} from '@lingui/react' +import {Trans, msg} from '@lingui/macro' import {atoms as a, useBreakpoints, useTheme} from '#/alf' -import {Button, ButtonText} from '#/components/Button' import * as Dialog from '#/components/Dialog' +import {Text, P} from '#/components/Typography' +import {Button, ButtonText} from '#/components/Button' import {InlineLink, Link} from '#/components/Link' -import {P, Text} from '#/components/Typography' import {getAgent, useSession} from '#/state/session' export function ExportCarDialog({ diff --git a/src/view/screens/Settings/index.tsx b/src/view/screens/Settings/index.tsx index f25fca15a0..00b507a997 100644 --- a/src/view/screens/Settings/index.tsx +++ b/src/view/screens/Settings/index.tsx @@ -1,73 +1,72 @@ -import { - FontAwesomeIcon, - FontAwesomeIconStyle, -} from '@fortawesome/react-native-fontawesome' -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import Clipboard from '@react-native-clipboard/clipboard' -import {useFocusEffect, useNavigation} from '@react-navigation/native' -import {useQueryClient} from '@tanstack/react-query' -import {useAnalytics} from 'lib/analytics/analytics' -import * as AppInfo from 'lib/app-info' -import {STATUS_PAGE_URL} from 'lib/constants' -import {useAccountSwitcher} from 'lib/hooks/useAccountSwitcher' -import {useCustomPalette} from 'lib/hooks/useCustomPalette' -import {usePalette} from 'lib/hooks/usePalette' -import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {HandIcon, HashtagIcon} from 'lib/icons' -import {makeProfileLink} from 'lib/routes/links' -import {CommonNavigatorParams, NativeStackScreenProps} from 'lib/routes/types' -import {NavigationProp} from 'lib/routes/types' -import {colors, s} from 'lib/styles' import React from 'react' import { ActivityIndicator, Linking, Platform, - Pressable, StyleSheet, + Pressable, TextStyle, TouchableOpacity, View, ViewStyle, } from 'react-native' -import {AccountDropdownBtn} from 'view/com/util/AccountDropdownBtn' -import {SelectableBtn} from 'view/com/util/forms/SelectableBtn' -import {ToggleButton} from 'view/com/util/forms/ToggleButton' -import {Link, TextLink} from 'view/com/util/Link' -import {SimpleViewHeader} from 'view/com/util/SimpleViewHeader' -import {Text} from 'view/com/util/text/Text' -import * as Toast from 'view/com/util/Toast' -import {UserAvatar} from 'view/com/util/UserAvatar' -import {ScrollView} from 'view/com/util/Views' - -import {useDialogControl} from '#/components/Dialog' -import {isNative} from '#/platform/detection' +import {useFocusEffect, useNavigation} from '@react-navigation/native' +import { + FontAwesomeIcon, + FontAwesomeIconStyle, +} from '@fortawesome/react-native-fontawesome' +import {NativeStackScreenProps, CommonNavigatorParams} from 'lib/routes/types' +import * as AppInfo from 'lib/app-info' +import {usePalette} from 'lib/hooks/usePalette' +import {useCustomPalette} from 'lib/hooks/useCustomPalette' +import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' +import {useAccountSwitcher} from 'lib/hooks/useAccountSwitcher' +import {useAnalytics} from 'lib/analytics/analytics' +import {NavigationProp} from 'lib/routes/types' +import {HandIcon, HashtagIcon} from 'lib/icons' +import Clipboard from '@react-native-clipboard/clipboard' +import {makeProfileLink} from 'lib/routes/links' +import {RQKEY as RQKEY_PROFILE} from '#/state/queries/profile' import {useModalControls} from '#/state/modals' -import {clearLegacyStorage} from '#/state/persisted/legacy' -// TODO import {useInviteCodesQuery} from '#/state/queries/invites' -import {clear as clearStorage} from '#/state/persisted/store' +import { + useSetMinimalShellMode, + useThemePrefs, + useSetThemePrefs, + useOnboardingDispatch, +} from '#/state/shell' import { useRequireAltTextEnabled, useSetRequireAltTextEnabled, } from '#/state/preferences' +import {useSession, useSessionApi, SessionAccount} from '#/state/session' +import {useProfileQuery} from '#/state/queries/profile' +import {useClearPreferencesMutation} from '#/state/queries/preferences' +// TODO import {useInviteCodesQuery} from '#/state/queries/invites' +import {clear as clearStorage} from '#/state/persisted/store' +import {clearLegacyStorage} from '#/state/persisted/legacy' +import {STATUS_PAGE_URL} from 'lib/constants' +import {Trans, msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {useQueryClient} from '@tanstack/react-query' +import {useLoggedOutViewControls} from '#/state/shell/logged-out' +import {useCloseAllActiveElements} from '#/state/util' import { useInAppBrowser, useSetInAppBrowser, } from '#/state/preferences/in-app-browser' -import {useClearPreferencesMutation} from '#/state/queries/preferences' -import {RQKEY as RQKEY_PROFILE} from '#/state/queries/profile' -import {useProfileQuery} from '#/state/queries/profile' -import {SessionAccount, useSession, useSessionApi} from '#/state/session' -import { - useOnboardingDispatch, - useSetMinimalShellMode, - useSetThemePrefs, - useThemePrefs, -} from '#/state/shell' -import {useLoggedOutViewControls} from '#/state/shell/logged-out' -import {useCloseAllActiveElements} from '#/state/util' +import {isNative} from '#/platform/detection' +import {useDialogControl} from '#/components/Dialog' +import {s, colors} from 'lib/styles' +import {ScrollView} from 'view/com/util/Views' +import {Link, TextLink} from 'view/com/util/Link' +import {Text} from 'view/com/util/text/Text' +import * as Toast from 'view/com/util/Toast' +import {UserAvatar} from 'view/com/util/UserAvatar' +import {ToggleButton} from 'view/com/util/forms/ToggleButton' +import {SelectableBtn} from 'view/com/util/forms/SelectableBtn' +import {AccountDropdownBtn} from 'view/com/util/AccountDropdownBtn' +import {SimpleViewHeader} from 'view/com/util/SimpleViewHeader' import {ExportCarDialog} from './ExportCarDialog' function SettingsAccountCard({account}: {account: SessionAccount}) { diff --git a/src/view/screens/Storybook/Breakpoints.tsx b/src/view/screens/Storybook/Breakpoints.tsx index 5dd8a89fc0..1b846d517c 100644 --- a/src/view/screens/Storybook/Breakpoints.tsx +++ b/src/view/screens/Storybook/Breakpoints.tsx @@ -1,8 +1,8 @@ import React from 'react' import {View} from 'react-native' -import {atoms as a, useBreakpoints, useTheme} from '#/alf' -import {H3, Text} from '#/components/Typography' +import {atoms as a, useTheme, useBreakpoints} from '#/alf' +import {Text, H3} from '#/components/Typography' export function Breakpoints() { const t = useTheme() diff --git a/src/view/screens/Storybook/Buttons.tsx b/src/view/screens/Storybook/Buttons.tsx index 8a037844e2..320db13ff8 100644 --- a/src/view/screens/Storybook/Buttons.tsx +++ b/src/view/screens/Storybook/Buttons.tsx @@ -4,15 +4,15 @@ import {View} from 'react-native' import {atoms as a} from '#/alf' import { Button, + ButtonVariant, ButtonColor, ButtonIcon, ButtonText, - ButtonVariant, } from '#/components/Button' +import {H1} from '#/components/Typography' import {ArrowTopRight_Stroke2_Corner0_Rounded as ArrowTopRight} from '#/components/icons/ArrowTopRight' import {ChevronLeft_Stroke2_Corner0_Rounded as ChevronLeft} from '#/components/icons/Chevron' import {Globe_Stroke2_Corner0_Rounded as Globe} from '#/components/icons/Globe' -import {H1} from '#/components/Typography' export function Buttons() { return ( diff --git a/src/view/screens/Storybook/Dialogs.tsx b/src/view/screens/Storybook/Dialogs.tsx index af51c808f4..09be124db5 100644 --- a/src/view/screens/Storybook/Dialogs.tsx +++ b/src/view/screens/Storybook/Dialogs.tsx @@ -3,9 +3,9 @@ import {View} from 'react-native' import {atoms as a} from '#/alf' import {Button} from '#/components/Button' +import {H3, P} from '#/components/Typography' import * as Dialog from '#/components/Dialog' import * as Prompt from '#/components/Prompt' -import {H3, P} from '#/components/Typography' import {useDialogStateControlContext} from '#/state/dialogs' export function Dialogs() { diff --git a/src/view/screens/Storybook/Forms.tsx b/src/view/screens/Storybook/Forms.tsx index 0904f6113d..2d5495d706 100644 --- a/src/view/screens/Storybook/Forms.tsx +++ b/src/view/screens/Storybook/Forms.tsx @@ -2,13 +2,13 @@ import React from 'react' import {View} from 'react-native' import {atoms as a} from '#/alf' -import {Button} from '#/components/Button' -import {DateField, Label} from '#/components/forms/DateField' +import {H1, H3} from '#/components/Typography' import * as TextField from '#/components/forms/TextField' +import {DateField, Label} from '#/components/forms/DateField' import * as Toggle from '#/components/forms/Toggle' import * as ToggleButton from '#/components/forms/ToggleButton' +import {Button} from '#/components/Button' import {Globe_Stroke2_Corner0_Rounded as Globe} from '#/components/icons/Globe' -import {H1, H3} from '#/components/Typography' export function Forms() { const [toggleGroupAValues, setToggleGroupAValues] = React.useState(['a']) diff --git a/src/view/screens/Storybook/Icons.tsx b/src/view/screens/Storybook/Icons.tsx index f411a726b3..9d7dc0aa8a 100644 --- a/src/view/screens/Storybook/Icons.tsx +++ b/src/view/screens/Storybook/Icons.tsx @@ -2,11 +2,11 @@ import React from 'react' import {View} from 'react-native' import {atoms as a, useTheme} from '#/alf' +import {H1} from '#/components/Typography' +import {Globe_Stroke2_Corner0_Rounded as Globe} from '#/components/icons/Globe' import {ArrowTopRight_Stroke2_Corner0_Rounded as ArrowTopRight} from '#/components/icons/ArrowTopRight' import {CalendarDays_Stroke2_Corner0_Rounded as CalendarDays} from '#/components/icons/CalendarDays' -import {Globe_Stroke2_Corner0_Rounded as Globe} from '#/components/icons/Globe' import {Loader} from '#/components/Loader' -import {H1} from '#/components/Typography' export function Icons() { const t = useTheme() diff --git a/src/view/screens/Storybook/Links.tsx b/src/view/screens/Storybook/Links.tsx index db65d6fed1..f9ecfba554 100644 --- a/src/view/screens/Storybook/Links.tsx +++ b/src/view/screens/Storybook/Links.tsx @@ -1,7 +1,7 @@ import React from 'react' import {View} from 'react-native' -import {atoms as a, useTheme} from '#/alf' +import {useTheme, atoms as a} from '#/alf' import {ButtonText} from '#/components/Button' import {InlineLink, Link} from '#/components/Link' import {H1, Text} from '#/components/Typography' diff --git a/src/view/screens/Storybook/Menus.tsx b/src/view/screens/Storybook/Menus.tsx index 3e5c74d86e..2f2b147215 100644 --- a/src/view/screens/Storybook/Menus.tsx +++ b/src/view/screens/Storybook/Menus.tsx @@ -2,9 +2,9 @@ import React from 'react' import {View} from 'react-native' import {atoms as a, useTheme} from '#/alf' -import {MagnifyingGlass2_Stroke2_Corner0_Rounded as Search} from '#/components/icons/MagnifyingGlass2' -import * as Menu from '#/components/Menu' import {Text} from '#/components/Typography' +import * as Menu from '#/components/Menu' +import {MagnifyingGlass2_Stroke2_Corner0_Rounded as Search} from '#/components/icons/MagnifyingGlass2' // import {useDialogStateControlContext} from '#/state/dialogs' export function Menus() { diff --git a/src/view/screens/Storybook/Spacing.tsx b/src/view/screens/Storybook/Spacing.tsx index 9b97e92adc..d7faf93a80 100644 --- a/src/view/screens/Storybook/Spacing.tsx +++ b/src/view/screens/Storybook/Spacing.tsx @@ -2,7 +2,7 @@ import React from 'react' import {View} from 'react-native' import {atoms as a, useTheme} from '#/alf' -import {H1, Text} from '#/components/Typography' +import {Text, H1} from '#/components/Typography' export function Spacing() { const t = useTheme() diff --git a/src/view/screens/Storybook/Theming.tsx b/src/view/screens/Storybook/Theming.tsx index 122a57cf8c..5b6763370d 100644 --- a/src/view/screens/Storybook/Theming.tsx +++ b/src/view/screens/Storybook/Theming.tsx @@ -3,7 +3,6 @@ import {View} from 'react-native' import {atoms as a, useTheme} from '#/alf' import {Text} from '#/components/Typography' - import {Palette} from './Palette' export function Theming() { diff --git a/src/view/screens/Storybook/Typography.tsx b/src/view/screens/Storybook/Typography.tsx index 03f86fd467..f0d67c5281 100644 --- a/src/view/screens/Storybook/Typography.tsx +++ b/src/view/screens/Storybook/Typography.tsx @@ -2,8 +2,8 @@ import React from 'react' import {View} from 'react-native' import {atoms as a} from '#/alf' -import {RichText} from '#/components/RichText' import {Text} from '#/components/Typography' +import {RichText} from '#/components/RichText' export function Typography() { return ( diff --git a/src/view/screens/Storybook/index.tsx b/src/view/screens/Storybook/index.tsx index e1a31c76a2..e43d756de5 100644 --- a/src/view/screens/Storybook/index.tsx +++ b/src/view/screens/Storybook/index.tsx @@ -1,22 +1,22 @@ import React from 'react' import {View} from 'react-native' +import {CenteredView, ScrollView} from '#/view/com/util/Views' -import {atoms as a, ThemeProvider, useTheme} from '#/alf' -import {Button} from '#/components/Button' +import {atoms as a, useTheme, ThemeProvider} from '#/alf' import {useSetThemePrefs} from '#/state/shell' -import {CenteredView, ScrollView} from '#/view/com/util/Views' +import {Button} from '#/components/Button' -import {Breakpoints} from './Breakpoints' +import {Theming} from './Theming' +import {Typography} from './Typography' +import {Spacing} from './Spacing' import {Buttons} from './Buttons' -import {Dialogs} from './Dialogs' +import {Links} from './Links' import {Forms} from './Forms' +import {Dialogs} from './Dialogs' +import {Breakpoints} from './Breakpoints' +import {Shadows} from './Shadows' import {Icons} from './Icons' -import {Links} from './Links' import {Menus} from './Menus' -import {Shadows} from './Shadows' -import {Spacing} from './Spacing' -import {Theming} from './Theming' -import {Typography} from './Typography' export function Storybook() { const t = useTheme() diff --git a/src/view/screens/Support.tsx b/src/view/screens/Support.tsx index 083a70d07d..9e7d36ec7a 100644 --- a/src/view/screens/Support.tsx +++ b/src/view/screens/Support.tsx @@ -1,19 +1,17 @@ -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {useFocusEffect} from '@react-navigation/native' -import {HELP_DESK_URL} from 'lib/constants' -import {usePalette} from 'lib/hooks/usePalette' -import {CommonNavigatorParams, NativeStackScreenProps} from 'lib/routes/types' -import {s} from 'lib/styles' import React from 'react' import {View} from 'react-native' -import {TextLink} from 'view/com/util/Link' +import {useFocusEffect} from '@react-navigation/native' +import {NativeStackScreenProps, CommonNavigatorParams} from 'lib/routes/types' +import {ViewHeader} from '../com/util/ViewHeader' import {Text} from 'view/com/util/text/Text' +import {TextLink} from 'view/com/util/Link' import {CenteredView} from 'view/com/util/Views' - +import {usePalette} from 'lib/hooks/usePalette' +import {s} from 'lib/styles' +import {HELP_DESK_URL} from 'lib/constants' import {useSetMinimalShellMode} from '#/state/shell' - -import {ViewHeader} from '../com/util/ViewHeader' +import {Trans, msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' type Props = NativeStackScreenProps export const SupportScreen = (_props: Props) => { diff --git a/src/view/screens/TermsOfService.tsx b/src/view/screens/TermsOfService.tsx index 307cd330e3..47aa9f2688 100644 --- a/src/view/screens/TermsOfService.tsx +++ b/src/view/screens/TermsOfService.tsx @@ -1,18 +1,16 @@ -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {useFocusEffect} from '@react-navigation/native' -import {usePalette} from 'lib/hooks/usePalette' -import {CommonNavigatorParams, NativeStackScreenProps} from 'lib/routes/types' -import {s} from 'lib/styles' import React from 'react' import {View} from 'react-native' -import {TextLink} from 'view/com/util/Link' +import {useFocusEffect} from '@react-navigation/native' import {Text} from 'view/com/util/text/Text' +import {TextLink} from 'view/com/util/Link' +import {NativeStackScreenProps, CommonNavigatorParams} from 'lib/routes/types' +import {ViewHeader} from '../com/util/ViewHeader' import {ScrollView} from 'view/com/util/Views' - +import {usePalette} from 'lib/hooks/usePalette' +import {s} from 'lib/styles' import {useSetMinimalShellMode} from '#/state/shell' - -import {ViewHeader} from '../com/util/ViewHeader' +import {Trans, msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' type Props = NativeStackScreenProps export const TermsOfServiceScreen = (_props: Props) => { diff --git a/src/view/shell/Composer.tsx b/src/view/shell/Composer.tsx index 5ab9407f02..1937fcb6ea 100644 --- a/src/view/shell/Composer.tsx +++ b/src/view/shell/Composer.tsx @@ -1,11 +1,10 @@ -import {useAnimatedValue} from 'lib/hooks/useAnimatedValue' -import {usePalette} from 'lib/hooks/usePalette' -import {observer} from 'mobx-react-lite' import React, {useEffect} from 'react' +import {observer} from 'mobx-react-lite' import {Animated, Easing, Platform, StyleSheet, View} from 'react-native' -import {useComposerState} from 'state/shell/composer' - import {ComposePost} from '../com/composer/Composer' +import {useComposerState} from 'state/shell/composer' +import {useAnimatedValue} from 'lib/hooks/useAnimatedValue' +import {usePalette} from 'lib/hooks/usePalette' export const Composer = observer(function ComposerImpl({ winHeight, diff --git a/src/view/shell/Composer.web.tsx b/src/view/shell/Composer.web.tsx index c0b71a1c8e..00233f66af 100644 --- a/src/view/shell/Composer.web.tsx +++ b/src/view/shell/Composer.web.tsx @@ -1,18 +1,16 @@ -import {usePalette} from 'lib/hooks/usePalette' -import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' import React from 'react' import {StyleSheet, View} from 'react-native' import Animated, {FadeIn, FadeInDown, FadeOut} from 'react-native-reanimated' +import {ComposePost} from '../com/composer/Composer' import {useComposerState} from 'state/shell/composer' +import {usePalette} from 'lib/hooks/usePalette' +import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' +import {useWebBodyScrollLock} from '#/lib/hooks/useWebBodyScrollLock' import { EmojiPicker, EmojiPickerState, } from 'view/com/composer/text-input/web/EmojiPicker.web' -import {useWebBodyScrollLock} from '#/lib/hooks/useWebBodyScrollLock' - -import {ComposePost} from '../com/composer/Composer' - const BOTTOM_BAR_HEIGHT = 61 export function Composer({}: {winHeight: number}) { diff --git a/src/view/shell/Drawer.tsx b/src/view/shell/Drawer.tsx index 6bc9700ee1..2a37d1fe96 100644 --- a/src/view/shell/Drawer.tsx +++ b/src/view/shell/Drawer.tsx @@ -1,59 +1,58 @@ +import React, {ComponentProps} from 'react' +import { + Linking, + SafeAreaView, + ScrollView, + StyleProp, + StyleSheet, + TouchableOpacity, + View, + ViewStyle, +} from 'react-native' +import {useNavigation, StackActions} from '@react-navigation/native' import { FontAwesomeIcon, FontAwesomeIconStyle, } from '@fortawesome/react-native-fontawesome' -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {StackActions, useNavigation} from '@react-navigation/native' -import {useAnalytics} from 'lib/analytics/analytics' +import {s, colors} from 'lib/styles' import {FEEDBACK_FORM_URL, HELP_DESK_URL} from 'lib/constants' -import {useNavigationTabState} from 'lib/hooks/useNavigationTabState' -import {usePalette} from 'lib/hooks/usePalette' import { + HomeIcon, + HomeIconSolid, BellIcon, BellIconSolid, + UserIcon, CogIcon, - HandIcon, - HashtagIcon, - HomeIcon, - HomeIconSolid, - ListIcon, MagnifyingGlassIcon2, MagnifyingGlassIcon2Solid, - UserIcon, UserIconSolid, + HashtagIcon, + ListIcon, + HandIcon, } from 'lib/icons' +import {UserAvatar} from 'view/com/util/UserAvatar' +import {Text} from 'view/com/util/text/Text' +import {useTheme} from 'lib/ThemeContext' +import {usePalette} from 'lib/hooks/usePalette' +import {useAnalytics} from 'lib/analytics/analytics' +import {pluralize} from 'lib/strings/helpers' import {getTabState, TabState} from 'lib/routes/helpers' import {NavigationProp} from 'lib/routes/types' -import {pluralize} from 'lib/strings/helpers' -import {colors, s} from 'lib/styles' -import {useTheme} from 'lib/ThemeContext' +import {useNavigationTabState} from 'lib/hooks/useNavigationTabState' import {isWeb} from 'platform/detection' -import React, {ComponentProps} from 'react' -import { - Linking, - SafeAreaView, - ScrollView, - StyleProp, - StyleSheet, - TouchableOpacity, - View, - ViewStyle, -} from 'react-native' import {formatCountShortOnly} from 'view/com/util/numeric/format' -import {Text} from 'view/com/util/text/Text' -import {UserAvatar} from 'view/com/util/UserAvatar' - -import {useTheme as useAlfTheme} from '#/alf' -import {emitSoftReset} from '#/state/events' -import {useUnreadNotifications} from '#/state/queries/notifications/unread' -import {useProfileQuery} from '#/state/queries/profile' -import {SessionAccount, useSession} from '#/state/session' +import {Trans, msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' import {useSetDrawerOpen} from '#/state/shell' +import {useSession, SessionAccount} from '#/state/session' +import {useProfileQuery} from '#/state/queries/profile' +import {useUnreadNotifications} from '#/state/queries/notifications/unread' +import {emitSoftReset} from '#/state/events' import {NavSignupCard} from '#/view/shell/NavSignupCard' - import {TextLink} from '../com/util/Link' +import {useTheme as useAlfTheme} from '#/alf' + let DrawerProfileCard = ({ account, onPressProfile, diff --git a/src/view/shell/NavSignupCard.tsx b/src/view/shell/NavSignupCard.tsx index 63d5ea2b0c..bae37e8380 100644 --- a/src/view/shell/NavSignupCard.tsx +++ b/src/view/shell/NavSignupCard.tsx @@ -1,14 +1,14 @@ -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {usePalette} from 'lib/hooks/usePalette' -import {s} from 'lib/styles' import React from 'react' import {View} from 'react-native' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {s} from 'lib/styles' +import {usePalette} from 'lib/hooks/usePalette' +import {Text} from '#/view/com/util/text/Text' +import {Button} from '#/view/com/util/forms/Button' import {useLoggedOutViewControls} from '#/state/shell/logged-out' import {useCloseAllActiveElements} from '#/state/util' -import {Button} from '#/view/com/util/forms/Button' -import {Text} from '#/view/com/util/text/Text' import {Logo} from '#/view/icons/Logo' let NavSignupCard = ({}: {}): React.ReactNode => { diff --git a/src/view/shell/bottom-bar/BottomBar.tsx b/src/view/shell/bottom-bar/BottomBar.tsx index 70503f4c40..115faa2965 100644 --- a/src/view/shell/bottom-bar/BottomBar.tsx +++ b/src/view/shell/bottom-bar/BottomBar.tsx @@ -1,44 +1,42 @@ -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {BottomTabBarProps} from '@react-navigation/bottom-tabs' +import React, {ComponentProps} from 'react' +import {GestureResponderEvent, TouchableOpacity, View} from 'react-native' +import Animated from 'react-native-reanimated' import {StackActions} from '@react-navigation/native' +import {BottomTabBarProps} from '@react-navigation/bottom-tabs' +import {useSafeAreaInsets} from 'react-native-safe-area-context' +import {Text} from 'view/com/util/text/Text' import {useAnalytics} from 'lib/analytics/analytics' -import {useDedupe} from 'lib/hooks/useDedupe' -import {useMinimalShellMode} from 'lib/hooks/useMinimalShellMode' -import {useNavigationTabState} from 'lib/hooks/useNavigationTabState' -import {usePalette} from 'lib/hooks/usePalette' +import {clamp} from 'lib/numbers' import { - BellIcon, - BellIconSolid, - HashtagIcon, HomeIcon, HomeIconSolid, MagnifyingGlassIcon2, MagnifyingGlassIcon2Solid, + HashtagIcon, + BellIcon, + BellIconSolid, } from 'lib/icons' -import {clamp} from 'lib/numbers' +import {usePalette} from 'lib/hooks/usePalette' import {getTabState, TabState} from 'lib/routes/helpers' -import {s} from 'lib/styles' -import React, {ComponentProps} from 'react' -import {GestureResponderEvent, TouchableOpacity, View} from 'react-native' -import Animated from 'react-native-reanimated' -import {useSafeAreaInsets} from 'react-native-safe-area-context' -import {Text} from 'view/com/util/text/Text' +import {styles} from './BottomBarStyles' +import {useMinimalShellMode} from 'lib/hooks/useMinimalShellMode' +import {useNavigationTabState} from 'lib/hooks/useNavigationTabState' import {UserAvatar} from 'view/com/util/UserAvatar' - -import {emitSoftReset} from '#/state/events' +import {useLingui} from '@lingui/react' +import {msg, Trans} from '@lingui/macro' import {useModalControls} from '#/state/modals' +import {useShellLayout} from '#/state/shell/shell-layout' import {useUnreadNotifications} from '#/state/queries/notifications/unread' -import {useProfileQuery} from '#/state/queries/profile' +import {emitSoftReset} from '#/state/events' import {useSession} from '#/state/session' +import {useProfileQuery} from '#/state/queries/profile' import {useLoggedOutViewControls} from '#/state/shell/logged-out' -import {useShellLayout} from '#/state/shell/shell-layout' import {useCloseAllActiveElements} from '#/state/util' import {Button} from '#/view/com/util/forms/Button' +import {s} from 'lib/styles' import {Logo} from '#/view/icons/Logo' import {Logotype} from '#/view/icons/Logotype' - -import {styles} from './BottomBarStyles' +import {useDedupe} from 'lib/hooks/useDedupe' type TabOptions = 'Home' | 'Search' | 'Notifications' | 'MyProfile' | 'Feeds' diff --git a/src/view/shell/bottom-bar/BottomBarStyles.tsx b/src/view/shell/bottom-bar/BottomBarStyles.tsx index 1e8347161a..f226406f5d 100644 --- a/src/view/shell/bottom-bar/BottomBarStyles.tsx +++ b/src/view/shell/bottom-bar/BottomBarStyles.tsx @@ -1,5 +1,5 @@ -import {colors} from 'lib/styles' import {StyleSheet} from 'react-native' +import {colors} from 'lib/styles' export const styles = StyleSheet.create({ bottomBar: { diff --git a/src/view/shell/bottom-bar/BottomBarWeb.tsx b/src/view/shell/bottom-bar/BottomBarWeb.tsx index 582c92b02e..b330c4b808 100644 --- a/src/view/shell/bottom-bar/BottomBarWeb.tsx +++ b/src/view/shell/bottom-bar/BottomBarWeb.tsx @@ -1,40 +1,38 @@ +import React from 'react' +import {usePalette} from 'lib/hooks/usePalette' +import {useNavigationState} from '@react-navigation/native' +import Animated from 'react-native-reanimated' +import {useSafeAreaInsets} from 'react-native-safe-area-context' +import {View} from 'react-native' import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' -import {useNavigationState} from '@react-navigation/native' -import {useMinimalShellMode} from 'lib/hooks/useMinimalShellMode' -import {usePalette} from 'lib/hooks/usePalette' +import {getCurrentRoute, isTab} from 'lib/routes/helpers' +import {styles} from './BottomBarStyles' +import {clamp} from 'lib/numbers' import { BellIcon, BellIconSolid, - HashtagIcon, HomeIcon, HomeIconSolid, MagnifyingGlassIcon2, MagnifyingGlassIcon2Solid, + HashtagIcon, UserIcon, UserIconSolid, } from 'lib/icons' -import {clamp} from 'lib/numbers' -import {getCurrentRoute, isTab} from 'lib/routes/helpers' +import {Link} from 'view/com/util/Link' +import {useMinimalShellMode} from 'lib/hooks/useMinimalShellMode' import {makeProfileLink} from 'lib/routes/links' import {CommonNavigatorParams} from 'lib/routes/types' -import {s} from 'lib/styles' -import React from 'react' -import {View} from 'react-native' -import Animated from 'react-native-reanimated' -import {useSafeAreaInsets} from 'react-native-safe-area-context' -import {Link} from 'view/com/util/Link' - import {useSession} from '#/state/session' import {useLoggedOutViewControls} from '#/state/shell/logged-out' import {useCloseAllActiveElements} from '#/state/util' import {Button} from '#/view/com/util/forms/Button' import {Text} from '#/view/com/util/text/Text' +import {s} from 'lib/styles' import {Logo} from '#/view/icons/Logo' import {Logotype} from '#/view/icons/Logotype' -import {styles} from './BottomBarStyles' - export function BottomBarWeb() { const {_} = useLingui() const {hasSession, currentAccount} = useSession() diff --git a/src/view/shell/createNativeStackNavigatorWithAuth.tsx b/src/view/shell/createNativeStackNavigatorWithAuth.tsx index 968e149f63..938213c313 100644 --- a/src/view/shell/createNativeStackNavigatorWithAuth.tsx +++ b/src/view/shell/createNativeStackNavigatorWithAuth.tsx @@ -1,6 +1,11 @@ +import * as React from 'react' +import {View} from 'react-native' +import {PWI_ENABLED, NEW_ONBOARDING_ENABLED} from '#/lib/build-flags' + // Based on @react-navigation/native-stack/src/createNativeStackNavigator.ts // MIT License // Copyright (c) 2017 React Navigation Contributors + import { createNavigatorFactory, EventArg, @@ -16,28 +21,24 @@ import type { NativeStackNavigationEventMap, NativeStackNavigationOptions, } from '@react-navigation/native-stack' -import {NativeStackView} from '@react-navigation/native-stack' import type {NativeStackNavigatorProps} from '@react-navigation/native-stack/src/types' -import {isWeb} from 'platform/detection' -import * as React from 'react' -import {View} from 'react-native' +import {NativeStackView} from '@react-navigation/native-stack' -import {NEW_ONBOARDING_ENABLED, PWI_ENABLED} from '#/lib/build-flags' +import {BottomBarWeb} from './bottom-bar/BottomBarWeb' +import {DesktopLeftNav} from './desktop/LeftNav' +import {DesktopRightNav} from './desktop/RightNav' import {useWebMediaQueries} from '#/lib/hooks/useWebMediaQueries' -import {Deactivated} from '#/screens/Deactivated' -import {Onboarding as NewOnboarding} from '#/screens/Onboarding' -import {useSession} from '#/state/session' import {useOnboardingState} from '#/state/shell' import { useLoggedOutView, useLoggedOutViewControls, } from '#/state/shell/logged-out' - +import {useSession} from '#/state/session' +import {isWeb} from 'platform/detection' +import {Deactivated} from '#/screens/Deactivated' import {LoggedOut} from '../com/auth/LoggedOut' import {Onboarding} from '../com/auth/Onboarding' -import {BottomBarWeb} from './bottom-bar/BottomBarWeb' -import {DesktopLeftNav} from './desktop/LeftNav' -import {DesktopRightNav} from './desktop/RightNav' +import {Onboarding as NewOnboarding} from '#/screens/Onboarding' type NativeStackNavigationOptionsWithAuth = NativeStackNavigationOptions & { requireAuth?: boolean diff --git a/src/view/shell/desktop/Feeds.tsx b/src/view/shell/desktop/Feeds.tsx index 22e1f9e67d..f447490b36 100644 --- a/src/view/shell/desktop/Feeds.tsx +++ b/src/view/shell/desktop/Feeds.tsx @@ -1,17 +1,16 @@ -import {msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {useNavigation, useNavigationState} from '@react-navigation/native' -import {usePalette} from 'lib/hooks/usePalette' -import {getCurrentRoute} from 'lib/routes/helpers' -import {NavigationProp} from 'lib/routes/types' import React from 'react' -import {StyleSheet, View} from 'react-native' +import {View, StyleSheet} from 'react-native' +import {useNavigationState, useNavigation} from '@react-navigation/native' +import {usePalette} from 'lib/hooks/usePalette' import {TextLink} from 'view/com/util/Link' - -import {emitSoftReset} from '#/state/events' +import {getCurrentRoute} from 'lib/routes/helpers' +import {useLingui} from '@lingui/react' +import {msg} from '@lingui/macro' import {usePinnedFeedsInfos} from '#/state/queries/feed' -import {FeedDescriptor} from '#/state/queries/post-feed' import {useSelectedFeed, useSetSelectedFeed} from '#/state/shell/selected-feed' +import {FeedDescriptor} from '#/state/queries/post-feed' +import {NavigationProp} from 'lib/routes/types' +import {emitSoftReset} from '#/state/events' export function DesktopFeeds() { const pal = usePalette('default') diff --git a/src/view/shell/desktop/LeftNav.tsx b/src/view/shell/desktop/LeftNav.tsx index f3340b7a73..c56ba941ed 100644 --- a/src/view/shell/desktop/LeftNav.tsx +++ b/src/view/shell/desktop/LeftNav.tsx @@ -1,54 +1,52 @@ -import { - FontAwesomeIcon, - FontAwesomeIconStyle, -} from '@fortawesome/react-native-fontawesome' -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' +import React from 'react' +import {StyleSheet, TouchableOpacity, View} from 'react-native' +import {PressableWithHover} from 'view/com/util/PressableWithHover' import { useLinkProps, useNavigation, useNavigationState, } from '@react-navigation/native' +import { + FontAwesomeIcon, + FontAwesomeIconStyle, +} from '@fortawesome/react-native-fontawesome' +import {Text} from 'view/com/util/text/Text' +import {UserAvatar} from 'view/com/util/UserAvatar' +import {Link} from 'view/com/util/Link' +import {LoadingPlaceholder} from 'view/com/util/LoadingPlaceholder' import {usePalette} from 'lib/hooks/usePalette' import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' +import {s, colors} from 'lib/styles' import { - BellIcon, - BellIconSolid, - CogIcon, - CogIconSolid, - ComposeIcon2, - HandIcon, - HashtagIcon, HomeIcon, HomeIconSolid, - ListIcon, MagnifyingGlassIcon2, MagnifyingGlassIcon2Solid, + BellIcon, + BellIconSolid, UserIcon, UserIconSolid, + CogIcon, + CogIconSolid, + ComposeIcon2, + ListIcon, + HashtagIcon, + HandIcon, } from 'lib/icons' -import {getCurrentRoute, isStateAtTabRoot, isTab} from 'lib/routes/helpers' +import {getCurrentRoute, isTab, isStateAtTabRoot} from 'lib/routes/helpers' +import {NavigationProp, CommonNavigatorParams} from 'lib/routes/types' +import {router} from '../../../routes' import {makeProfileLink} from 'lib/routes/links' -import {CommonNavigatorParams, NavigationProp} from 'lib/routes/types' -import {colors, s} from 'lib/styles' -import React from 'react' -import {StyleSheet, TouchableOpacity, View} from 'react-native' -import {Link} from 'view/com/util/Link' -import {LoadingPlaceholder} from 'view/com/util/LoadingPlaceholder' -import {PressableWithHover} from 'view/com/util/PressableWithHover' -import {Text} from 'view/com/util/text/Text' -import {UserAvatar} from 'view/com/util/UserAvatar' - -import {isInvalidHandle} from '#/lib/strings/handles' -import {emitSoftReset} from '#/state/events' -import {useFetchHandle} from '#/state/queries/handle' -import {useUnreadNotifications} from '#/state/queries/notifications/unread' +import {useLingui} from '@lingui/react' +import {Trans, msg} from '@lingui/macro' import {useProfileQuery} from '#/state/queries/profile' import {useSession} from '#/state/session' +import {useUnreadNotifications} from '#/state/queries/notifications/unread' import {useComposerControls} from '#/state/shell/composer' +import {useFetchHandle} from '#/state/queries/handle' +import {emitSoftReset} from '#/state/events' import {NavSignupCard} from '#/view/shell/NavSignupCard' - -import {router} from '../../../routes' +import {isInvalidHandle} from '#/lib/strings/handles' function ProfileCard() { const {currentAccount} = useSession() diff --git a/src/view/shell/desktop/RightNav.tsx b/src/view/shell/desktop/RightNav.tsx index bfbb19f108..c1f4987248 100644 --- a/src/view/shell/desktop/RightNav.tsx +++ b/src/view/shell/desktop/RightNav.tsx @@ -1,19 +1,17 @@ -import {msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {FEEDBACK_FORM_URL, HELP_DESK_URL} from 'lib/constants' -import {usePalette} from 'lib/hooks/usePalette' -import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {s} from 'lib/styles' import React from 'react' import {StyleSheet, View} from 'react-native' -import {TextLink} from 'view/com/util/Link' +import {usePalette} from 'lib/hooks/usePalette' +import {DesktopSearch} from './Search' +import {DesktopFeeds} from './Feeds' import {Text} from 'view/com/util/text/Text' - +import {TextLink} from 'view/com/util/Link' +import {FEEDBACK_FORM_URL, HELP_DESK_URL} from 'lib/constants' +import {s} from 'lib/styles' +import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' +import {useLingui} from '@lingui/react' +import {msg} from '@lingui/macro' import {useSession} from '#/state/session' -import {DesktopFeeds} from './Feeds' -import {DesktopSearch} from './Search' - export function DesktopRightNav({routeName}: {routeName: string}) { const pal = usePalette('default') const {_} = useLingui() diff --git a/src/view/shell/desktop/Search.tsx b/src/view/shell/desktop/Search.tsx index 043b9ff3c9..4a94837338 100644 --- a/src/view/shell/desktop/Search.tsx +++ b/src/view/shell/desktop/Search.tsx @@ -1,33 +1,33 @@ +import React from 'react' +import { + ViewStyle, + TextInput, + View, + StyleSheet, + TouchableOpacity, + ActivityIndicator, +} from 'react-native' +import {useNavigation, StackActions} from '@react-navigation/native' import { AppBskyActorDefs, moderateProfile, ProfileModeration, } from '@atproto/api' -import {msg, Trans} from '@lingui/macro' +import {Trans, msg} from '@lingui/macro' import {useLingui} from '@lingui/react' -import {StackActions, useNavigation} from '@react-navigation/native' + +import {s} from '#/lib/styles' +import {sanitizeDisplayName} from '#/lib/strings/display-names' +import {sanitizeHandle} from '#/lib/strings/handles' +import {makeProfileLink} from '#/lib/routes/links' +import {Link} from '#/view/com/util/Link' import {usePalette} from 'lib/hooks/usePalette' import {MagnifyingGlassIcon2} from 'lib/icons' import {NavigationProp} from 'lib/routes/types' -import React from 'react' -import { - ActivityIndicator, - StyleSheet, - TextInput, - TouchableOpacity, - View, - ViewStyle, -} from 'react-native' import {Text} from 'view/com/util/text/Text' - -import {makeProfileLink} from '#/lib/routes/links' -import {sanitizeDisplayName} from '#/lib/strings/display-names' -import {sanitizeHandle} from '#/lib/strings/handles' -import {s} from '#/lib/styles' +import {UserAvatar} from '#/view/com/util/UserAvatar' import {useActorAutocompleteFn} from '#/state/queries/actor-autocomplete' import {useModerationOpts} from '#/state/queries/preferences' -import {Link} from '#/view/com/util/Link' -import {UserAvatar} from '#/view/com/util/UserAvatar' export const MATCH_HANDLE = /@?([a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*(?:\.[a-zA-Z]{2,}))/ diff --git a/src/view/shell/index.tsx b/src/view/shell/index.tsx index b207543785..76a7f8fb3a 100644 --- a/src/view/shell/index.tsx +++ b/src/view/shell/index.tsx @@ -1,39 +1,37 @@ -import {useNavigationState} from '@react-navigation/native' -import {StatusBar} from 'expo-status-bar' -import {usePalette} from 'lib/hooks/usePalette' -import * as notifications from 'lib/notifications/notifications' -import {isStateAtTabRoot} from 'lib/routes/helpers' -import {useTheme} from 'lib/ThemeContext' -import {isAndroid} from 'platform/detection' import React from 'react' +import {StatusBar} from 'expo-status-bar' import { - BackHandler, DimensionValue, StyleSheet, useWindowDimensions, View, + BackHandler, } from 'react-native' -import {Drawer} from 'react-native-drawer-layout' -import Animated from 'react-native-reanimated' import {useSafeAreaInsets} from 'react-native-safe-area-context' -import {useDialogStateContext} from 'state/dialogs' -import {Lightbox} from 'view/com/lightbox/Lightbox' +import {Drawer} from 'react-native-drawer-layout' +import {useNavigationState} from '@react-navigation/native' import {ModalsContainer} from 'view/com/modals/Modal' +import {Lightbox} from 'view/com/lightbox/Lightbox' import {ErrorBoundary} from 'view/com/util/ErrorBoundary' - -import {MutedWordsDialog} from '#/components/dialogs/MutedWords' -import {Outlet as PortalOutlet} from '#/components/Portal' -import {useSession} from '#/state/session' +import {DrawerContent} from './Drawer' +import {Composer} from './Composer' +import {useTheme} from 'lib/ThemeContext' +import {usePalette} from 'lib/hooks/usePalette' +import {RoutesContainer, TabsNavigator} from '../../Navigation' +import {isStateAtTabRoot} from 'lib/routes/helpers' import { useIsDrawerOpen, - useIsDrawerSwipeDisabled, useSetDrawerOpen, + useIsDrawerSwipeDisabled, } from '#/state/shell' +import {isAndroid} from 'platform/detection' +import {useSession} from '#/state/session' import {useCloseAnyActiveElement} from '#/state/util' - -import {RoutesContainer, TabsNavigator} from '../../Navigation' -import {Composer} from './Composer' -import {DrawerContent} from './Drawer' +import * as notifications from 'lib/notifications/notifications' +import {Outlet as PortalOutlet} from '#/components/Portal' +import {MutedWordsDialog} from '#/components/dialogs/MutedWords' +import {useDialogStateContext} from 'state/dialogs' +import Animated from 'react-native-reanimated' function ShellInner() { const isDrawerOpen = useIsDrawerOpen() diff --git a/src/view/shell/index.web.tsx b/src/view/shell/index.web.tsx index d5ac5b970b..71dccb8c48 100644 --- a/src/view/shell/index.web.tsx +++ b/src/view/shell/index.web.tsx @@ -1,24 +1,22 @@ -import {t} from '@lingui/macro' -import {useNavigation} from '@react-navigation/native' -import {useColorSchemeStyle} from 'lib/hooks/useColorSchemeStyle' -import {NavigationProp} from 'lib/routes/types' -import {colors, s} from 'lib/styles' import React, {useEffect} from 'react' -import {StyleSheet, TouchableOpacity, View} from 'react-native' - -import {MutedWordsDialog} from '#/components/dialogs/MutedWords' -import {Outlet as PortalOutlet} from '#/components/Portal' -import {useWebBodyScrollLock} from '#/lib/hooks/useWebBodyScrollLock' -import {useIsDrawerOpen, useSetDrawerOpen} from '#/state/shell' -import {useCloseAllActiveElements} from '#/state/util' - -import {useWebMediaQueries} from '../../lib/hooks/useWebMediaQueries' -import {FlatNavigator, RoutesContainer} from '../../Navigation' +import {View, StyleSheet, TouchableOpacity} from 'react-native' +import {ErrorBoundary} from '../com/util/ErrorBoundary' import {Lightbox} from '../com/lightbox/Lightbox' import {ModalsContainer} from '../com/modals/Modal' -import {ErrorBoundary} from '../com/util/ErrorBoundary' import {Composer} from './Composer.web' +import {useColorSchemeStyle} from 'lib/hooks/useColorSchemeStyle' +import {s, colors} from 'lib/styles' +import {RoutesContainer, FlatNavigator} from '../../Navigation' import {DrawerContent} from './Drawer' +import {useWebMediaQueries} from '../../lib/hooks/useWebMediaQueries' +import {useNavigation} from '@react-navigation/native' +import {NavigationProp} from 'lib/routes/types' +import {t} from '@lingui/macro' +import {useIsDrawerOpen, useSetDrawerOpen} from '#/state/shell' +import {useCloseAllActiveElements} from '#/state/util' +import {useWebBodyScrollLock} from '#/lib/hooks/useWebBodyScrollLock' +import {Outlet as PortalOutlet} from '#/components/Portal' +import {MutedWordsDialog} from '#/components/dialogs/MutedWords' function ShellInner() { const isDrawerOpen = useIsDrawerOpen() From 70c76a76a0d0285c28fa456c3af7741ad7a727cb Mon Sep 17 00:00:00 2001 From: Samuel Newman Date: Wed, 13 Mar 2024 14:50:25 +0000 Subject: [PATCH 005/222] add custom import order --- .eslintrc.js | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/.eslintrc.js b/.eslintrc.js index b26bee1baf..c1592b76a7 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -17,7 +17,29 @@ module.exports = { rules: { 'react/no-unescaped-entities': 0, 'react-native/no-inline-styles': 0, - 'simple-import-sort/imports': 'error', + 'simple-import-sort/imports': [ + 'error', + { + groups: [ + // Side effect imports. + ['^\\u0000'], + // Node.js builtins prefixed with `node:`. + ['^node:'], + // Packages. + // Things that start with a letter (or digit or underscore), or `@` followed by a letter. + // React/React Native priortized, followed by expo + [ + '^(react/(.*)$)|^(react$)|^(react-native(.*)$)', + '^(expo(.*)$)|^(expo$)', + '^@?\\w', + '^', + ], + // Relative imports. + // Anything that starts with a dot or a # + ['^#', '^\\.'], + ], + }, + ], 'simple-import-sort/exports': 'error', }, ignorePatterns: [ From 4d2efd84e437e0c93a66b678093012b5c064c725 Mon Sep 17 00:00:00 2001 From: Samuel Newman Date: Wed, 13 Mar 2024 15:49:24 +0000 Subject: [PATCH 006/222] sort relative imports and move unprefixed ones --- .eslintrc.js | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index c1592b76a7..a74bd79eae 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -28,15 +28,28 @@ module.exports = { // Packages. // Things that start with a letter (or digit or underscore), or `@` followed by a letter. // React/React Native priortized, followed by expo + // Followed by all packages excluding unprefixed relative ones [ - '^(react/(.*)$)|^(react$)|^(react-native(.*)$)', + '^(react\\/(.*)$)|^(react$)|^(react-native(.*)$)', '^(expo(.*)$)|^(expo$)', - '^@?\\w', - '^', + '^(?!(?:alf|components|lib|locale|logger|platform|screens|state|view)(?:$|\\/))@?\\w', ], // Relative imports. - // Anything that starts with a dot or a # - ['^#', '^\\.'], + // Anything that starts with a dot + // due to unprefixed relative imports being used, we whitelist + // the relative paths we use + // (?:$|\\/) matches end of string or / + [ + '^(?:#\\/)?(?:lib|state|logger|platform|locale)(?:$|\\/)', + '^(?:#\\/)?view(?:$|\\/)', + '^(?:#\\/)?screens(?:$|\\/)', + '^(?:#\\/)?alf(?:$|\\/)', + '^(?:#\\/)?components(?:$|\\/)', + '^#\\/', + '^\\.', + ], + // anything else - hopefully we don't have any of these + ['^'], ], }, ], From 41b10e3df548240f4deaab9812c882f3b4c9402c Mon Sep 17 00:00:00 2001 From: Samuel Newman Date: Wed, 13 Mar 2024 15:51:55 +0000 Subject: [PATCH 007/222] forgot to save comment whoops --- .eslintrc.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index a74bd79eae..bade064475 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -35,9 +35,8 @@ module.exports = { '^(?!(?:alf|components|lib|locale|logger|platform|screens|state|view)(?:$|\\/))@?\\w', ], // Relative imports. - // Anything that starts with a dot - // due to unprefixed relative imports being used, we whitelist - // the relative paths we use + // Ideally, anything that starts with a dot or # + // due to unprefixed relative imports being used, we whitelist the relative paths we use // (?:$|\\/) matches end of string or / [ '^(?:#\\/)?(?:lib|state|logger|platform|locale)(?:$|\\/)', From f5b39f2755bdf62b79a7310e58e70fbcc79ac854 Mon Sep 17 00:00:00 2001 From: Samuel Newman Date: Wed, 13 Mar 2024 22:16:32 +0000 Subject: [PATCH 008/222] convert base login component and ChooseAccountForm --- src/alf/atoms.ts | 6 + src/screens/Login/ChooseAccountForm.tsx | 183 ++++++++++++++++++ src/screens/Login/index.tsx | 166 ++++++++++++++++ src/view/com/auth/LoggedOut.tsx | 16 +- src/view/com/auth/login/ChooseAccountForm.tsx | 158 --------------- src/view/com/auth/login/Login.tsx | 164 ---------------- 6 files changed, 363 insertions(+), 330 deletions(-) create mode 100644 src/screens/Login/ChooseAccountForm.tsx create mode 100644 src/screens/Login/index.tsx delete mode 100644 src/view/com/auth/login/ChooseAccountForm.tsx delete mode 100644 src/view/com/auth/login/Login.tsx diff --git a/src/alf/atoms.ts b/src/alf/atoms.ts index 5088e3aaca..fef68ecaba 100644 --- a/src/alf/atoms.ts +++ b/src/alf/atoms.ts @@ -154,6 +154,12 @@ export const atoms = { align_end: { alignItems: 'flex-end', }, + align_baseline: { + alignItems: 'baseline', + }, + align_stretch: { + alignItems: 'stretch', + }, self_auto: { alignSelf: 'auto', }, diff --git a/src/screens/Login/ChooseAccountForm.tsx b/src/screens/Login/ChooseAccountForm.tsx new file mode 100644 index 0000000000..99d1beb891 --- /dev/null +++ b/src/screens/Login/ChooseAccountForm.tsx @@ -0,0 +1,183 @@ +import React from 'react' +import {ScrollView, TouchableOpacity, View} from 'react-native' +import {Trans, msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import flattenReactChildren from 'react-keyed-flatten-children' + +import {useAnalytics} from 'lib/analytics/analytics' +import {UserAvatar} from '../../view/com/util/UserAvatar' +import {colors} from 'lib/styles' +import {styles} from '../../view/com/auth/login/styles' +import {useSession, useSessionApi, SessionAccount} from '#/state/session' +import {useProfileQuery} from '#/state/queries/profile' +import {useLoggedOutViewControls} from '#/state/shell/logged-out' +import * as Toast from '#/view/com/util/Toast' +import {Button} from '#/components/Button' +import {atoms as a, useTheme} from '#/alf' +import {Text} from '#/components/Typography' +import {ChevronRight_Stroke2_Corner0_Rounded as Chevron} from '#/components/icons/Chevron' +import {Check_Stroke2_Corner0_Rounded as Check} from '#/components/icons/Check' + +function Group({children}: {children: React.ReactNode}) { + const t = useTheme() + return ( + + {flattenReactChildren(children).map((child, i) => { + return React.isValidElement(child) ? ( + + {i > 0 ? ( + + ) : null} + {React.cloneElement(child, { + // @ts-ignore + style: { + borderRadius: 0, + borderWidth: 0, + }, + })} + + ) : null + })} + + ) +} + +function AccountItem({ + account, + onSelect, + isCurrentAccount, +}: { + account: SessionAccount + onSelect: (account: SessionAccount) => void + isCurrentAccount: boolean +}) { + const t = useTheme() + const {_} = useLingui() + const {data: profile} = useProfileQuery({did: account.did}) + + const onPress = React.useCallback(() => { + onSelect(account) + }, [account, onSelect]) + + return ( + + + + + + + + {profile?.displayName || account.handle}{' '} + + {account.handle} + + {isCurrentAccount ? ( + + ) : ( + + )} + + + ) +} +export const ChooseAccountForm = ({ + onSelectAccount, + onPressBack, +}: { + onSelectAccount: (account?: SessionAccount) => void + onPressBack: () => void +}) => { + const {track, screen} = useAnalytics() + const {_} = useLingui() + const t = useTheme() + const {accounts, currentAccount} = useSession() + const {initSession} = useSessionApi() + const {setShowLoggedOut} = useLoggedOutViewControls() + + React.useEffect(() => { + screen('Choose Account') + }, [screen]) + + const onSelect = React.useCallback( + async (account: SessionAccount) => { + if (account.accessJwt) { + if (account.did === currentAccount?.did) { + setShowLoggedOut(false) + Toast.show(_(msg`Already signed in as @${account.handle}`)) + } else { + await initSession(account) + track('Sign In', {resumedSession: true}) + setTimeout(() => { + Toast.show(_(msg`Signed in as @${account.handle}`)) + }, 100) + } + } else { + onSelectAccount(account) + } + }, + [currentAccount, track, initSession, onSelectAccount, setShowLoggedOut, _], + ) + + return ( + + + Sign in as... + + + {accounts.map(account => ( + + ))} + onSelectAccount(undefined)} + accessibilityRole="button" + accessibilityLabel={_(msg`Login to account that is not listed`)} + accessibilityHint=""> + + + Other account + + + + + + + + + + + ) +} diff --git a/src/screens/Login/index.tsx b/src/screens/Login/index.tsx new file mode 100644 index 0000000000..f2cfde550b --- /dev/null +++ b/src/screens/Login/index.tsx @@ -0,0 +1,166 @@ +import React from 'react' +import {useAnalytics} from '#/lib/analytics/analytics' +import {useLingui} from '@lingui/react' +import {LoggedOutLayout} from '#/view/com/util/layouts/LoggedOutLayout' +import {SessionAccount, useSession} from '#/state/session' +import {DEFAULT_SERVICE} from '#/lib/constants' +import {useLoggedOutView} from '#/state/shell/logged-out' +import {useServiceQuery} from '#/state/queries/service' +import {msg} from '@lingui/macro' +import {logger} from '#/logger' +import {atoms as a} from '#/alf' +import {KeyboardAvoidingView} from 'react-native' +import {ChooseAccountForm} from './ChooseAccountForm' +import {ForgotPasswordForm} from '#/view/com/auth/login/ForgotPasswordForm' +import {SetNewPasswordForm} from '#/view/com/auth/login/SetNewPasswordForm' +import {PasswordUpdatedForm} from '#/view/com/auth/login/PasswordUpdatedForm' +import {LoginForm} from '#/view/com/auth/login/LoginForm' + +enum Forms { + Login, + ChooseAccount, + ForgotPassword, + SetNewPassword, + PasswordUpdated, +} + +export const Login = ({onPressBack}: {onPressBack: () => void}) => { + const {_} = useLingui() + + const {accounts} = useSession() + const {track} = useAnalytics() + const {requestedAccountSwitchTo} = useLoggedOutView() + const requestedAccount = accounts.find( + acc => acc.did === requestedAccountSwitchTo, + ) + + const [error, setError] = React.useState('') + const [serviceUrl, setServiceUrl] = React.useState( + requestedAccount?.service || DEFAULT_SERVICE, + ) + const [initialHandle, setInitialHandle] = React.useState( + requestedAccount?.handle || '', + ) + const [currentForm, setCurrentForm] = React.useState( + requestedAccount + ? Forms.Login + : accounts.length + ? Forms.ChooseAccount + : Forms.Login, + ) + + const { + data: serviceDescription, + error: serviceError, + refetch: refetchService, + } = useServiceQuery(serviceUrl) + + const onSelectAccount = (account?: SessionAccount) => { + if (account?.service) { + setServiceUrl(account.service) + } + setInitialHandle(account?.handle || '') + setCurrentForm(Forms.Login) + } + + const gotoForm = (form: Forms) => () => { + setError('') + setCurrentForm(form) + } + + React.useEffect(() => { + if (serviceError) { + setError( + _( + msg`Unable to contact your service. Please check your Internet connection.`, + ), + ) + logger.warn(`Failed to fetch service description for ${serviceUrl}`, { + error: String(serviceError), + }) + } else { + setError('') + } + }, [serviceError, serviceUrl, _]) + + const onPressRetryConnect = () => refetchService() + const onPressForgotPassword = () => { + track('Signin:PressedForgotPassword') + setCurrentForm(Forms.ForgotPassword) + } + + let content = null + let title = '' + let description = '' + + switch (currentForm) { + case Forms.Login: + title = _(msg`Sign in`) + description = _(msg`Enter your username and password`) + content = ( + + ) + break + case Forms.ChooseAccount: + title = _(msg`Sign in`) + description = _(msg`Select from an existing account`) + content = ( + + ) + break + case Forms.ForgotPassword: + title = _(msg`Forgot Password`) + description = _(msg`Let's get your password reset!`) + content = ( + + ) + break + case Forms.SetNewPassword: + title = _(msg`Forgot Password`) + description = _(msg`Let's get your password reset!`) + content = ( + + ) + break + case Forms.PasswordUpdated: + title = _(msg`Password updated`) + description = _(msg`You can now sign in with your new password.`) + content = + break + } + + return ( + + + {content} + + + ) +} diff --git a/src/view/com/auth/LoggedOut.tsx b/src/view/com/auth/LoggedOut.tsx index 603abbab2d..58604ec9ee 100644 --- a/src/view/com/auth/LoggedOut.tsx +++ b/src/view/com/auth/LoggedOut.tsx @@ -5,16 +5,16 @@ import {useLingui} from '@lingui/react' import {Trans, msg} from '@lingui/macro' import {useNavigation} from '@react-navigation/native' -import {isIOS, isNative} from 'platform/detection' -import {Login} from 'view/com/auth/login/Login' -import {CreateAccount} from 'view/com/auth/create/CreateAccount' -import {ErrorBoundary} from 'view/com/util/ErrorBoundary' -import {s} from 'lib/styles' -import {usePalette} from 'lib/hooks/usePalette' -import {useAnalytics} from 'lib/analytics/analytics' +import {isIOS, isNative} from '#/platform/detection' +import {Login} from '#/screens/Login' +import {CreateAccount} from '#/view/com/auth/create/CreateAccount' +import {ErrorBoundary} from '#/view/com/util/ErrorBoundary' +import {s} from '#/lib/styles' +import {usePalette} from '#/lib/hooks/usePalette' +import {useAnalytics} from '#/lib/analytics/analytics' import {SplashScreen} from './SplashScreen' import {useSetMinimalShellMode} from '#/state/shell/minimal-mode' -import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' +import {useWebMediaQueries} from '#/lib/hooks/useWebMediaQueries' import { useLoggedOutView, useLoggedOutViewControls, diff --git a/src/view/com/auth/login/ChooseAccountForm.tsx b/src/view/com/auth/login/ChooseAccountForm.tsx deleted file mode 100644 index 32cd8315d3..0000000000 --- a/src/view/com/auth/login/ChooseAccountForm.tsx +++ /dev/null @@ -1,158 +0,0 @@ -import React from 'react' -import {ScrollView, TouchableOpacity, View} from 'react-native' -import { - FontAwesomeIcon, - FontAwesomeIconStyle, -} from '@fortawesome/react-native-fontawesome' -import {useAnalytics} from 'lib/analytics/analytics' -import {Text} from '../../util/text/Text' -import {UserAvatar} from '../../util/UserAvatar' -import {s, colors} from 'lib/styles' -import {usePalette} from 'lib/hooks/usePalette' -import {Trans, msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {styles} from './styles' -import {useSession, useSessionApi, SessionAccount} from '#/state/session' -import {useProfileQuery} from '#/state/queries/profile' -import {useLoggedOutViewControls} from '#/state/shell/logged-out' -import * as Toast from '#/view/com/util/Toast' - -function AccountItem({ - account, - onSelect, - isCurrentAccount, -}: { - account: SessionAccount - onSelect: (account: SessionAccount) => void - isCurrentAccount: boolean -}) { - const pal = usePalette('default') - const {_} = useLingui() - const {data: profile} = useProfileQuery({did: account.did}) - - const onPress = React.useCallback(() => { - onSelect(account) - }, [account, onSelect]) - - return ( - - - - - - - - {profile?.displayName || account.handle}{' '} - - - {account.handle} - - - {isCurrentAccount ? ( - - ) : ( - - )} - - - ) -} -export const ChooseAccountForm = ({ - onSelectAccount, - onPressBack, -}: { - onSelectAccount: (account?: SessionAccount) => void - onPressBack: () => void -}) => { - const {track, screen} = useAnalytics() - const pal = usePalette('default') - const {_} = useLingui() - const {accounts, currentAccount} = useSession() - const {initSession} = useSessionApi() - const {setShowLoggedOut} = useLoggedOutViewControls() - - React.useEffect(() => { - screen('Choose Account') - }, [screen]) - - const onSelect = React.useCallback( - async (account: SessionAccount) => { - if (account.accessJwt) { - if (account.did === currentAccount?.did) { - setShowLoggedOut(false) - Toast.show(_(msg`Already signed in as @${account.handle}`)) - } else { - await initSession(account) - track('Sign In', {resumedSession: true}) - setTimeout(() => { - Toast.show(_(msg`Signed in as @${account.handle}`)) - }, 100) - } - } else { - onSelectAccount(account) - } - }, - [currentAccount, track, initSession, onSelectAccount, setShowLoggedOut, _], - ) - - return ( - - - Sign in as... - - {accounts.map(account => ( - - ))} - onSelectAccount(undefined)} - accessibilityRole="button" - accessibilityLabel={_(msg`Login to account that is not listed`)} - accessibilityHint=""> - - - - Other account - - - - - - - - - Back - - - - - - ) -} diff --git a/src/view/com/auth/login/Login.tsx b/src/view/com/auth/login/Login.tsx deleted file mode 100644 index bc931ac04c..0000000000 --- a/src/view/com/auth/login/Login.tsx +++ /dev/null @@ -1,164 +0,0 @@ -import React, {useState, useEffect} from 'react' -import {KeyboardAvoidingView} from 'react-native' -import {useAnalytics} from 'lib/analytics/analytics' -import {LoggedOutLayout} from 'view/com/util/layouts/LoggedOutLayout' -import {DEFAULT_SERVICE} from '#/lib/constants' -import {usePalette} from 'lib/hooks/usePalette' -import {logger} from '#/logger' -import {ChooseAccountForm} from './ChooseAccountForm' -import {LoginForm} from './LoginForm' -import {ForgotPasswordForm} from './ForgotPasswordForm' -import {SetNewPasswordForm} from './SetNewPasswordForm' -import {PasswordUpdatedForm} from './PasswordUpdatedForm' -import {useLingui} from '@lingui/react' -import {msg} from '@lingui/macro' -import {useSession, SessionAccount} from '#/state/session' -import {useServiceQuery} from '#/state/queries/service' -import {useLoggedOutView} from '#/state/shell/logged-out' - -enum Forms { - Login, - ChooseAccount, - ForgotPassword, - SetNewPassword, - PasswordUpdated, -} - -export const Login = ({onPressBack}: {onPressBack: () => void}) => { - const {_} = useLingui() - const pal = usePalette('default') - - const {accounts} = useSession() - const {track} = useAnalytics() - const {requestedAccountSwitchTo} = useLoggedOutView() - const requestedAccount = accounts.find( - a => a.did === requestedAccountSwitchTo, - ) - - const [error, setError] = useState('') - const [serviceUrl, setServiceUrl] = useState( - requestedAccount?.service || DEFAULT_SERVICE, - ) - const [initialHandle, setInitialHandle] = useState( - requestedAccount?.handle || '', - ) - const [currentForm, setCurrentForm] = useState( - requestedAccount - ? Forms.Login - : accounts.length - ? Forms.ChooseAccount - : Forms.Login, - ) - - const { - data: serviceDescription, - error: serviceError, - refetch: refetchService, - } = useServiceQuery(serviceUrl) - - const onSelectAccount = (account?: SessionAccount) => { - if (account?.service) { - setServiceUrl(account.service) - } - setInitialHandle(account?.handle || '') - setCurrentForm(Forms.Login) - } - - const gotoForm = (form: Forms) => () => { - setError('') - setCurrentForm(form) - } - - useEffect(() => { - if (serviceError) { - setError( - _( - msg`Unable to contact your service. Please check your Internet connection.`, - ), - ) - logger.warn(`Failed to fetch service description for ${serviceUrl}`, { - error: String(serviceError), - }) - } else { - setError('') - } - }, [serviceError, serviceUrl, _]) - - const onPressRetryConnect = () => refetchService() - const onPressForgotPassword = () => { - track('Signin:PressedForgotPassword') - setCurrentForm(Forms.ForgotPassword) - } - - return ( - - {currentForm === Forms.Login ? ( - - - - ) : undefined} - {currentForm === Forms.ChooseAccount ? ( - - - - ) : undefined} - {currentForm === Forms.ForgotPassword ? ( - - - - ) : undefined} - {currentForm === Forms.SetNewPassword ? ( - - - - ) : undefined} - {currentForm === Forms.PasswordUpdated ? ( - - - - ) : undefined} - - ) -} From 9f5289a1017856c303d7fefe28327b30eac3a909 Mon Sep 17 00:00:00 2001 From: Samuel Newman Date: Wed, 13 Mar 2024 23:34:01 +0000 Subject: [PATCH 009/222] alf the login form --- src/components/forms/TextField.tsx | 8 +- src/components/icons/Lock.tsx | 5 + src/components/icons/Pencil.tsx | 5 + src/screens/Login/ChooseAccountForm.tsx | 95 ++++---- .../login => screens/Login}/LoginForm.tsx | 204 +++++++++--------- src/screens/Login/index.tsx | 4 +- src/view/com/auth/server-input/index.tsx | 2 +- 7 files changed, 169 insertions(+), 154 deletions(-) create mode 100644 src/components/icons/Lock.tsx create mode 100644 src/components/icons/Pencil.tsx rename src/{view/com/auth/login => screens/Login}/LoginForm.tsx (61%) diff --git a/src/components/forms/TextField.tsx b/src/components/forms/TextField.tsx index b37f4bfae9..3cffe5b2b6 100644 --- a/src/components/forms/TextField.tsx +++ b/src/components/forms/TextField.tsx @@ -14,6 +14,7 @@ import {useTheme, atoms as a, web, android} from '#/alf' import {Text} from '#/components/Typography' import {useInteractionState} from '#/components/hooks/useInteractionState' import {Props as SVGIconProps} from '#/components/icons/common' +import {mergeRefs} from '#/lib/merge-refs' const Context = React.createContext<{ inputRef: React.RefObject | null @@ -128,6 +129,7 @@ export type InputProps = Omit & { value: string onChangeText: (value: string) => void isInvalid?: boolean + inputRef?: React.RefObject } export function createInput(Component: typeof TextInput) { @@ -137,6 +139,7 @@ export function createInput(Component: typeof TextInput) { value, onChangeText, isInvalid, + inputRef, ...rest }: InputProps) { const t = useTheme() @@ -161,19 +164,22 @@ export function createInput(Component: typeof TextInput) { ) } + const refs = mergeRefs([ctx.inputRef, inputRef!].filter(Boolean)) + return ( <> { screen('Choose Account') @@ -133,50 +134,54 @@ export const ChooseAccountForm = ({ return ( - - Sign in as... - - - {accounts.map(account => ( - - ))} - onSelectAccount(undefined)} - accessibilityRole="button" - accessibilityLabel={_(msg`Login to account that is not listed`)} - accessibilityHint=""> - - - Other account - - - - - - - - + + + Sign in as... + + + {accounts.map(account => ( + + ))} + onSelectAccount(undefined)} + accessibilityRole="button" + accessibilityLabel={_(msg`Login to account that is not listed`)} + accessibilityHint=""> + + + Other account + + + + + + + + + ) diff --git a/src/view/com/auth/login/LoginForm.tsx b/src/screens/Login/LoginForm.tsx similarity index 61% rename from src/view/com/auth/login/LoginForm.tsx rename to src/screens/Login/LoginForm.tsx index fdba9f203f..8ac4fa3595 100644 --- a/src/view/com/auth/login/LoginForm.tsx +++ b/src/screens/Login/LoginForm.tsx @@ -6,28 +6,31 @@ import { TouchableOpacity, View, } from 'react-native' -import { - FontAwesomeIcon, - FontAwesomeIconStyle, -} from '@fortawesome/react-native-fontawesome' import {ComAtprotoServerDescribeServer} from '@atproto/api' +import {Trans, msg} from '@lingui/macro' + import {useAnalytics} from 'lib/analytics/analytics' -import {Text} from '../../util/text/Text' import {s} from 'lib/styles' import {createFullHandle} from 'lib/strings/handles' import {toNiceDomain} from 'lib/strings/url-helpers' import {isNetworkError} from 'lib/strings/errors' -import {usePalette} from 'lib/hooks/usePalette' -import {useTheme} from 'lib/ThemeContext' import {useSessionApi} from '#/state/session' import {cleanError} from 'lib/strings/errors' import {logger} from '#/logger' -import {Trans, msg} from '@lingui/macro' -import {styles} from './styles' +import {styles} from '../../view/com/auth/login/styles' import {useLingui} from '@lingui/react' import {useDialogControl} from '#/components/Dialog' - -import {ServerInputDialog} from '../server-input' +import {ServerInputDialog} from '../../view/com/auth/server-input' +import {Button} from '#/components/Button' +import {isAndroid} from '#/platform/detection' +import {atoms as a, useBreakpoints, useTheme} from '#/alf' +import {Text} from '#/components/Typography' +import * as TextField from '#/components/forms/TextField' +import {At_Stroke2_Corner0_Rounded as At} from '#/components/icons/At' +import {Lock_Stroke2_Corner0_Rounded as Lock} from '#/components/icons/Lock' +import {Globe_Stroke2_Corner0_Rounded as Globe} from '#/components/icons/Globe' +import {Pencil_Stroke2_Corner0_Rounded as Pencil} from '#/components/icons/Pencil' +import {Warning_Stroke2_Corner0_Rounded as Warning} from '#/components/icons/Warning' type ServiceDescription = ComAtprotoServerDescribeServer.OutputSchema @@ -40,7 +43,6 @@ export const LoginForm = ({ setServiceUrl, onPressRetryConnect, onPressBack, - onPressForgotPassword, }: { error: string serviceUrl: string @@ -53,8 +55,7 @@ export const LoginForm = ({ onPressForgotPassword: () => void }) => { const {track} = useAnalytics() - const pal = usePalette('default') - const theme = useTheme() + const t = useTheme() const [isProcessing, setIsProcessing] = useState(false) const [identifier, setIdentifier] = useState(initialHandle) const [password, setPassword] = useState('') @@ -62,6 +63,7 @@ export const LoginForm = ({ const {_} = useLingui() const {login} = useSessionApi() const serverInputControl = useDialogControl() + const {gtMobile} = useBreakpoints() const onPressSelectService = () => { serverInputControl.open() @@ -127,55 +129,54 @@ export const LoginForm = ({ const isReady = !!serviceDescription && !!identifier && !!password return ( - + - - Sign into - - - - - - - {toNiceDomain(serviceUrl)} - - - - - - + + + Hosting provider + + + + {toNiceDomain(serviceUrl)} + + + + - - Account - - - - - + + Account + + + + setIdentifier((str || '').toLowerCase().trim()) } editable={!isProcessing} - accessibilityLabel={_(msg`Username or email address`)} accessibilityHint={_( msg`Input the username or email address you used at signup`, )} /> - - - - + + + + + - Forgot - - + */} + {error ? ( - - - - - + + + {error} ) : undefined} - - - - Back - - + + {!serviceDescription && error ? ( - - - Retry - - + label={_(msg`Retry`)} + accessibilityHint={_(msg`Retries login`)} + variant="solid" + color="secondary" + size="small" + onPress={onPressRetryConnect}> + {_(msg`Retry`)} + ) : !serviceDescription ? ( <> - + Connecting... ) : isProcessing ? ( ) : isReady ? ( - - - Next - - + ) : undefined} diff --git a/src/screens/Login/index.tsx b/src/screens/Login/index.tsx index f2cfde550b..3bd2df60ba 100644 --- a/src/screens/Login/index.tsx +++ b/src/screens/Login/index.tsx @@ -1,4 +1,5 @@ import React from 'react' +import {KeyboardAvoidingView} from 'react-native' import {useAnalytics} from '#/lib/analytics/analytics' import {useLingui} from '@lingui/react' import {LoggedOutLayout} from '#/view/com/util/layouts/LoggedOutLayout' @@ -9,12 +10,11 @@ import {useServiceQuery} from '#/state/queries/service' import {msg} from '@lingui/macro' import {logger} from '#/logger' import {atoms as a} from '#/alf' -import {KeyboardAvoidingView} from 'react-native' import {ChooseAccountForm} from './ChooseAccountForm' import {ForgotPasswordForm} from '#/view/com/auth/login/ForgotPasswordForm' import {SetNewPasswordForm} from '#/view/com/auth/login/SetNewPasswordForm' import {PasswordUpdatedForm} from '#/view/com/auth/login/PasswordUpdatedForm' -import {LoginForm} from '#/view/com/auth/login/LoginForm' +import {LoginForm} from '#/screens/Login/LoginForm' enum Forms { Login, diff --git a/src/view/com/auth/server-input/index.tsx b/src/view/com/auth/server-input/index.tsx index 32b5a3141a..81f4bdf937 100644 --- a/src/view/com/auth/server-input/index.tsx +++ b/src/view/com/auth/server-input/index.tsx @@ -67,7 +67,7 @@ export function ServerInputDialog({ return ( From a06f6ada4e3905df49fe297d8393bb70ebca31be Mon Sep 17 00:00:00 2001 From: Samuel Newman Date: Wed, 13 Mar 2024 23:47:01 +0000 Subject: [PATCH 010/222] experiment: animate between screens --- src/screens/Login/index.tsx | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/screens/Login/index.tsx b/src/screens/Login/index.tsx index 3bd2df60ba..028a497d28 100644 --- a/src/screens/Login/index.tsx +++ b/src/screens/Login/index.tsx @@ -2,6 +2,8 @@ import React from 'react' import {KeyboardAvoidingView} from 'react-native' import {useAnalytics} from '#/lib/analytics/analytics' import {useLingui} from '@lingui/react' +import Animated, {FadeInRight, FadeOutLeft} from 'react-native-reanimated' + import {LoggedOutLayout} from '#/view/com/util/layouts/LoggedOutLayout' import {SessionAccount, useSession} from '#/state/session' import {DEFAULT_SERVICE} from '#/lib/constants' @@ -159,7 +161,12 @@ export const Login = ({onPressBack}: {onPressBack: () => void}) => { return ( - {content} + + {content} + ) From 8316f97e274504c3fc10dc22017ecbf958727c22 Mon Sep 17 00:00:00 2001 From: Samuel Newman Date: Thu, 14 Mar 2024 18:25:39 +0000 Subject: [PATCH 011/222] fix collapsed input issue --- src/screens/Login/LoginForm.tsx | 305 ++++++++++++++++---------------- 1 file changed, 157 insertions(+), 148 deletions(-) diff --git a/src/screens/Login/LoginForm.tsx b/src/screens/Login/LoginForm.tsx index 8ac4fa3595..3089b38871 100644 --- a/src/screens/Login/LoginForm.tsx +++ b/src/screens/Login/LoginForm.tsx @@ -2,6 +2,7 @@ import React, {useState, useRef} from 'react' import { ActivityIndicator, Keyboard, + ScrollView, TextInput, TouchableOpacity, View, @@ -21,7 +22,7 @@ import {styles} from '../../view/com/auth/login/styles' import {useLingui} from '@lingui/react' import {useDialogControl} from '#/components/Dialog' import {ServerInputDialog} from '../../view/com/auth/server-input' -import {Button} from '#/components/Button' +import {Button, ButtonText} from '#/components/Button' import {isAndroid} from '#/platform/detection' import {atoms as a, useBreakpoints, useTheme} from '#/alf' import {Text} from '#/components/Typography' @@ -43,6 +44,7 @@ export const LoginForm = ({ setServiceUrl, onPressRetryConnect, onPressBack, + onPressForgotPassword, }: { error: string serviceUrl: string @@ -129,164 +131,171 @@ export const LoginForm = ({ const isReady = !!serviceDescription && !!identifier && !!password return ( - - + + + - - - Hosting provider - - - - {toNiceDomain(serviceUrl)} - + + Hosting provider + + - + + {toNiceDomain(serviceUrl)} + + + + + + + + Account + + + + { + passwordInputRef.current?.focus() + }} + blurOnSubmit={false} // prevents flickering due to onSubmitEditing going to next field + value={identifier} + onChangeText={str => + setIdentifier((str || '').toLowerCase().trim()) + } + editable={!isProcessing} + accessibilityHint={_( + msg`Input the username or email address you used at signup`, + )} /> - - - - - - Account - - - - { - passwordInputRef.current?.focus() - }} - blurOnSubmit={false} // prevents flickering due to onSubmitEditing going to next field - value={identifier} - onChangeText={str => - setIdentifier((str || '').toLowerCase().trim()) - } - editable={!isProcessing} - accessibilityHint={_( - msg`Input the username or email address you used at signup`, - )} - /> - - - - - - - {/* - - Forgot - - */} - - - {error ? ( - - - - {error} - + + + + + + + + + Forgot? + + + - ) : undefined} - - - - {!serviceDescription && error ? ( + {error ? ( + + + + {error} + + + ) : undefined} + - ) : !serviceDescription ? ( - <> + + {!serviceDescription && error ? ( + + ) : !serviceDescription ? ( + <> + + + Connecting... + + + ) : isProcessing ? ( - - Connecting... - - - ) : isProcessing ? ( - - ) : isReady ? ( - - ) : undefined} + ) : isReady ? ( + + ) : undefined} + - + ) } From a1fc95f30e8ff9f8903451b6f5d2daa318653167 Mon Sep 17 00:00:00 2001 From: Samuel Newman Date: Fri, 15 Mar 2024 13:49:13 +0000 Subject: [PATCH 012/222] convert password reset flow --- .../icons/ticket_stroke2_corner0_rounded.svg | 1 + src/alf/atoms.ts | 69 ++++ src/components/forms/HostingProvider.tsx | 69 ++++ src/components/icons/Ticket.tsx | 5 + src/screens/Login/ChooseAccountForm.tsx | 43 +-- src/screens/Login/ForgotPasswordForm.tsx | 183 +++++++++++ src/screens/Login/FormContainer.tsx | 52 +++ src/screens/Login/FormError.tsx | 34 ++ src/screens/Login/LoginForm.tsx | 297 ++++++++---------- src/screens/Login/PasswordUpdatedForm.tsx | 49 +++ src/screens/Login/SetNewPasswordForm.tsx | 189 +++++++++++ src/screens/Login/index.tsx | 6 +- .../com/auth/login/ForgotPasswordForm.tsx | 228 -------------- .../com/auth/login/PasswordUpdatedForm.tsx | 48 --- .../com/auth/login/SetNewPasswordForm.tsx | 211 ------------- src/view/com/auth/login/styles.ts | 118 ------- 16 files changed, 803 insertions(+), 799 deletions(-) create mode 100644 assets/icons/ticket_stroke2_corner0_rounded.svg create mode 100644 src/components/forms/HostingProvider.tsx create mode 100644 src/components/icons/Ticket.tsx create mode 100644 src/screens/Login/ForgotPasswordForm.tsx create mode 100644 src/screens/Login/FormContainer.tsx create mode 100644 src/screens/Login/FormError.tsx create mode 100644 src/screens/Login/PasswordUpdatedForm.tsx create mode 100644 src/screens/Login/SetNewPasswordForm.tsx delete mode 100644 src/view/com/auth/login/ForgotPasswordForm.tsx delete mode 100644 src/view/com/auth/login/PasswordUpdatedForm.tsx delete mode 100644 src/view/com/auth/login/SetNewPasswordForm.tsx delete mode 100644 src/view/com/auth/login/styles.ts diff --git a/assets/icons/ticket_stroke2_corner0_rounded.svg b/assets/icons/ticket_stroke2_corner0_rounded.svg new file mode 100644 index 0000000000..184addc8e8 --- /dev/null +++ b/assets/icons/ticket_stroke2_corner0_rounded.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/alf/atoms.ts b/src/alf/atoms.ts index fef68ecaba..33803b6fb0 100644 --- a/src/alf/atoms.ts +++ b/src/alf/atoms.ts @@ -300,6 +300,9 @@ export const atoms = { /* * Padding */ + p_0: { + padding: 0, + }, p_2xs: { padding: tokens.space._2xs, }, @@ -330,6 +333,10 @@ export const atoms = { p_5xl: { padding: tokens.space._5xl, }, + px_0: { + paddingLeft: 0, + paddingRight: 0, + }, px_2xs: { paddingLeft: tokens.space._2xs, paddingRight: tokens.space._2xs, @@ -370,6 +377,10 @@ export const atoms = { paddingLeft: tokens.space._5xl, paddingRight: tokens.space._5xl, }, + py_0: { + paddingTop: 0, + paddingBottom: 0, + }, py_2xs: { paddingTop: tokens.space._2xs, paddingBottom: tokens.space._2xs, @@ -410,6 +421,9 @@ export const atoms = { paddingTop: tokens.space._5xl, paddingBottom: tokens.space._5xl, }, + pt_0: { + paddingTop: 0, + }, pt_2xs: { paddingTop: tokens.space._2xs, }, @@ -440,6 +454,9 @@ export const atoms = { pt_5xl: { paddingTop: tokens.space._5xl, }, + pb_0: { + paddingBottom: 0, + }, pb_2xs: { paddingBottom: tokens.space._2xs, }, @@ -470,6 +487,9 @@ export const atoms = { pb_5xl: { paddingBottom: tokens.space._5xl, }, + pl_0: { + paddingLeft: 0, + }, pl_2xs: { paddingLeft: tokens.space._2xs, }, @@ -500,6 +520,9 @@ export const atoms = { pl_5xl: { paddingLeft: tokens.space._5xl, }, + pr_0: { + paddingRight: 0, + }, pr_2xs: { paddingRight: tokens.space._2xs, }, @@ -534,6 +557,9 @@ export const atoms = { /* * Margin */ + m_0: { + margin: 0, + }, m_2xs: { margin: tokens.space._2xs, }, @@ -564,6 +590,13 @@ export const atoms = { m_5xl: { margin: tokens.space._5xl, }, + m_auto: { + margin: 'auto', + }, + mx_0: { + marginLeft: 0, + marginRight: 0, + }, mx_2xs: { marginLeft: tokens.space._2xs, marginRight: tokens.space._2xs, @@ -604,6 +637,14 @@ export const atoms = { marginLeft: tokens.space._5xl, marginRight: tokens.space._5xl, }, + mx_auto: { + marginLeft: 'auto', + marginRight: 'auto', + }, + my_0: { + marginTop: 0, + marginBottom: 0, + }, my_2xs: { marginTop: tokens.space._2xs, marginBottom: tokens.space._2xs, @@ -644,6 +685,13 @@ export const atoms = { marginTop: tokens.space._5xl, marginBottom: tokens.space._5xl, }, + my_auto: { + marginTop: 'auto', + marginBottom: 'auto', + }, + mt_0: { + marginTop: 0, + }, mt_2xs: { marginTop: tokens.space._2xs, }, @@ -674,6 +722,12 @@ export const atoms = { mt_5xl: { marginTop: tokens.space._5xl, }, + mt_auto: { + marginTop: 'auto', + }, + mb_0: { + marginBottom: 0, + }, mb_2xs: { marginBottom: tokens.space._2xs, }, @@ -704,6 +758,12 @@ export const atoms = { mb_5xl: { marginBottom: tokens.space._5xl, }, + mb_auto: { + marginBottom: 'auto', + }, + ml_0: { + marginLeft: 0, + }, ml_2xs: { marginLeft: tokens.space._2xs, }, @@ -734,6 +794,12 @@ export const atoms = { ml_5xl: { marginLeft: tokens.space._5xl, }, + ml_auto: { + marginLeft: 'auto', + }, + mr_0: { + marginRight: 0, + }, mr_2xs: { marginRight: tokens.space._2xs, }, @@ -764,4 +830,7 @@ export const atoms = { mr_5xl: { marginRight: tokens.space._5xl, }, + mr_auto: { + marginRight: 'auto', + }, } as const diff --git a/src/components/forms/HostingProvider.tsx b/src/components/forms/HostingProvider.tsx new file mode 100644 index 0000000000..df506b77c1 --- /dev/null +++ b/src/components/forms/HostingProvider.tsx @@ -0,0 +1,69 @@ +import React from 'react' +import {TouchableOpacity, View} from 'react-native' + +import {isAndroid} from '#/platform/detection' +import {atoms as a, useTheme} from '#/alf' +import {Globe_Stroke2_Corner0_Rounded as Globe} from '#/components/icons/Globe' +import {Pencil_Stroke2_Corner0_Rounded as Pencil} from '#/components/icons/Pencil' +import * as TextField from './TextField' +import {useDialogControl} from '../Dialog' +import {Text} from '../Typography' +import {ServerInputDialog} from '#/view/com/auth/server-input' +import {toNiceDomain} from '#/lib/strings/url-helpers' + +export function HostingProvider({ + serviceUrl, + onSelectServiceUrl, + onOpenDialog, +}: { + serviceUrl: string + onSelectServiceUrl: (provider: string) => void + onOpenDialog?: () => void +}) { + const serverInputControl = useDialogControl() + const t = useTheme() + + const onPressSelectService = React.useCallback(() => { + serverInputControl.open() + if (onOpenDialog) { + onOpenDialog() + } + }, [onOpenDialog, serverInputControl]) + + return ( + <> + + + + {toNiceDomain(serviceUrl)} + + + + + + ) +} diff --git a/src/components/icons/Ticket.tsx b/src/components/icons/Ticket.tsx new file mode 100644 index 0000000000..0df6b81204 --- /dev/null +++ b/src/components/icons/Ticket.tsx @@ -0,0 +1,5 @@ +import {createSinglePathSVG} from './TEMPLATE' + +export const Ticket_Stroke2_Corner0_Rounded = createSinglePathSVG({ + path: 'M4 5.5a.5.5 0 0 0-.5.5v2.535a.5.5 0 0 0 .25.433A3.498 3.498 0 0 1 5.5 12a3.498 3.498 0 0 1-1.75 3.032.5.5 0 0 0-.25.433V18a.5.5 0 0 0 .5.5h16a.5.5 0 0 0 .5-.5v-2.535a.5.5 0 0 0-.25-.433A3.498 3.498 0 0 1 18.5 12c0-1.296.704-2.426 1.75-3.032a.5.5 0 0 0 .25-.433V6a.5.5 0 0 0-.5-.5H4ZM2.5 6A1.5 1.5 0 0 1 4 4.5h16A1.5 1.5 0 0 1 21.5 6v3.17a.5.5 0 0 1-.333.472 2.501 2.501 0 0 0 0 4.716.5.5 0 0 1 .333.471V18a1.5 1.5 0 0 1-1.5 1.5H4A1.5 1.5 0 0 1 2.5 18v-3.17a.5.5 0 0 1 .333-.472 2.501 2.501 0 0 0 0-4.716.5.5 0 0 1-.333-.471V6Zm12 2a.5.5 0 1 1 1 0 .5.5 0 0 1-1 0Zm0 4a.5.5 0 1 1 1 0 .5.5 0 0 1-1 0Zm0 4a.5.5 0 1 1 1 0 .5.5 0 0 1-1 0Z', +}) diff --git a/src/screens/Login/ChooseAccountForm.tsx b/src/screens/Login/ChooseAccountForm.tsx index f5b3c2a861..7a3a4555b2 100644 --- a/src/screens/Login/ChooseAccountForm.tsx +++ b/src/screens/Login/ChooseAccountForm.tsx @@ -1,5 +1,5 @@ import React from 'react' -import {ScrollView, TouchableOpacity, View} from 'react-native' +import {TouchableOpacity, View} from 'react-native' import {Trans, msg} from '@lingui/macro' import {useLingui} from '@lingui/react' import flattenReactChildren from 'react-keyed-flatten-children' @@ -7,16 +7,17 @@ import flattenReactChildren from 'react-keyed-flatten-children' import {useAnalytics} from 'lib/analytics/analytics' import {UserAvatar} from '../../view/com/util/UserAvatar' import {colors} from 'lib/styles' -import {styles} from '../../view/com/auth/login/styles' import {useSession, useSessionApi, SessionAccount} from '#/state/session' import {useProfileQuery} from '#/state/queries/profile' import {useLoggedOutViewControls} from '#/state/shell/logged-out' import * as Toast from '#/view/com/util/Toast' import {Button} from '#/components/Button' -import {atoms as a, useBreakpoints, useTheme} from '#/alf' +import {atoms as a, useTheme} from '#/alf' import {Text} from '#/components/Typography' import {ChevronRight_Stroke2_Corner0_Rounded as Chevron} from '#/components/icons/Chevron' import {Check_Stroke2_Corner0_Rounded as Check} from '#/components/icons/Check' +import * as TextField from '#/components/forms/TextField' +import {FormContainer} from './FormContainer' function Group({children}: {children: React.ReactNode}) { const t = useTheme() @@ -106,7 +107,6 @@ export const ChooseAccountForm = ({ const {accounts, currentAccount} = useSession() const {initSession} = useSessionApi() const {setShowLoggedOut} = useLoggedOutViewControls() - const {gtMobile} = useBreakpoints() React.useEffect(() => { screen('Choose Account') @@ -133,12 +133,13 @@ export const ChooseAccountForm = ({ ) return ( - - - + Select account}> + + Sign in as... - + {accounts.map(account => ( - - - - - + + + + + ) } diff --git a/src/screens/Login/ForgotPasswordForm.tsx b/src/screens/Login/ForgotPasswordForm.tsx new file mode 100644 index 0000000000..fa674155ab --- /dev/null +++ b/src/screens/Login/ForgotPasswordForm.tsx @@ -0,0 +1,183 @@ +import React, {useState, useEffect} from 'react' +import {ActivityIndicator, Keyboard, View} from 'react-native' +import {ComAtprotoServerDescribeServer} from '@atproto/api' +import * as EmailValidator from 'email-validator' +import {BskyAgent} from '@atproto/api' +import {Trans, msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' + +import * as TextField from '#/components/forms/TextField' +import {HostingProvider} from '#/components/forms/HostingProvider' +import {At_Stroke2_Corner0_Rounded as At} from '#/components/icons/At' +import {atoms as a, useTheme} from '#/alf' +import {useAnalytics} from 'lib/analytics/analytics' +import {isNetworkError} from 'lib/strings/errors' +import {cleanError} from 'lib/strings/errors' +import {logger} from '#/logger' +import {Button, ButtonText} from '#/components/Button' +import {Text} from '#/components/Typography' +import {FormContainer} from './FormContainer' +import {FormError} from './FormError' + +type ServiceDescription = ComAtprotoServerDescribeServer.OutputSchema + +export const ForgotPasswordForm = ({ + error, + serviceUrl, + serviceDescription, + setError, + setServiceUrl, + onPressBack, + onEmailSent, +}: { + error: string + serviceUrl: string + serviceDescription: ServiceDescription | undefined + setError: (v: string) => void + setServiceUrl: (v: string) => void + onPressBack: () => void + onEmailSent: () => void +}) => { + const t = useTheme() + const [isProcessing, setIsProcessing] = useState(false) + const [email, setEmail] = useState('') + const {screen} = useAnalytics() + const {_} = useLingui() + + useEffect(() => { + screen('Signin:ForgotPassword') + }, [screen]) + + const onPressSelectService = React.useCallback(() => { + Keyboard.dismiss() + }, []) + + const onPressNext = async () => { + if (!EmailValidator.validate(email)) { + return setError(_(msg`Your email appears to be invalid.`)) + } + + setError('') + setIsProcessing(true) + + try { + const agent = new BskyAgent({service: serviceUrl}) + await agent.com.atproto.server.requestPasswordReset({email}) + onEmailSent() + } catch (e: any) { + const errMsg = e.toString() + logger.warn('Failed to request password reset', {error: e}) + setIsProcessing(false) + if (isNetworkError(e)) { + setError( + _( + msg`Unable to contact your service. Please check your Internet connection.`, + ), + ) + } else { + setError(cleanError(errMsg)) + } + } + } + + return ( + Reset password}> + + + Hosting provider + + + + + + Email address + + + + + + + + + + Enter the email you used to create your account. We'll send you a + "reset code" so you can set a new password. + + + + + + + + {!serviceDescription || isProcessing ? ( + + ) : ( + + )} + {!serviceDescription || isProcessing ? ( + + Processing... + + ) : undefined} + + + + + + ) +} diff --git a/src/screens/Login/FormContainer.tsx b/src/screens/Login/FormContainer.tsx new file mode 100644 index 0000000000..a08aa05b0f --- /dev/null +++ b/src/screens/Login/FormContainer.tsx @@ -0,0 +1,52 @@ +import React from 'react' +import { + ScrollView, + StyleSheet, + View, + type StyleProp, + type ViewStyle, +} from 'react-native' + +import {atoms as a, useBreakpoints, useTheme} from '#/alf' +import {Text} from '#/components/Typography' +import {isWeb} from '#/platform/detection' + +export function FormContainer({ + testID, + title, + children, + style, + contentContainerStyle, +}: { + testID?: string + title?: React.ReactNode + children: React.ReactNode + style?: StyleProp + contentContainerStyle?: StyleProp +}) { + const {gtMobile} = useBreakpoints() + const t = useTheme() + return ( + + + {title && !gtMobile && ( + + {title} + + )} + {children} + + + ) +} + +const styles = StyleSheet.create({ + maxHeight: { + // @ts-ignore web only -prf + maxHeight: isWeb ? '100vh' : undefined, + height: !isWeb ? '100%' : undefined, + }, +}) diff --git a/src/screens/Login/FormError.tsx b/src/screens/Login/FormError.tsx new file mode 100644 index 0000000000..3c6a8649d9 --- /dev/null +++ b/src/screens/Login/FormError.tsx @@ -0,0 +1,34 @@ +import React from 'react' +import {StyleSheet, View} from 'react-native' + +import {Warning_Stroke2_Corner0_Rounded as Warning} from '#/components/icons/Warning' +import {Text} from '#/components/Typography' +import {atoms as a, useTheme} from '#/alf' +import {colors} from '#/lib/styles' + +export function FormError({error}: {error?: string}) { + const t = useTheme() + + if (!error) return null + + return ( + + + + {error} + + + ) +} + +const styles = StyleSheet.create({ + error: { + backgroundColor: colors.red4, + flexDirection: 'row', + alignItems: 'center', + marginBottom: 15, + borderRadius: 8, + paddingHorizontal: 8, + paddingVertical: 8, + }, +}) diff --git a/src/screens/Login/LoginForm.tsx b/src/screens/Login/LoginForm.tsx index 3089b38871..5801552811 100644 --- a/src/screens/Login/LoginForm.tsx +++ b/src/screens/Login/LoginForm.tsx @@ -2,36 +2,29 @@ import React, {useState, useRef} from 'react' import { ActivityIndicator, Keyboard, - ScrollView, TextInput, TouchableOpacity, View, } from 'react-native' import {ComAtprotoServerDescribeServer} from '@atproto/api' import {Trans, msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' import {useAnalytics} from 'lib/analytics/analytics' -import {s} from 'lib/styles' import {createFullHandle} from 'lib/strings/handles' -import {toNiceDomain} from 'lib/strings/url-helpers' import {isNetworkError} from 'lib/strings/errors' import {useSessionApi} from '#/state/session' import {cleanError} from 'lib/strings/errors' import {logger} from '#/logger' -import {styles} from '../../view/com/auth/login/styles' -import {useLingui} from '@lingui/react' -import {useDialogControl} from '#/components/Dialog' -import {ServerInputDialog} from '../../view/com/auth/server-input' import {Button, ButtonText} from '#/components/Button' -import {isAndroid} from '#/platform/detection' -import {atoms as a, useBreakpoints, useTheme} from '#/alf' +import {atoms as a, useTheme} from '#/alf' import {Text} from '#/components/Typography' import * as TextField from '#/components/forms/TextField' import {At_Stroke2_Corner0_Rounded as At} from '#/components/icons/At' import {Lock_Stroke2_Corner0_Rounded as Lock} from '#/components/icons/Lock' -import {Globe_Stroke2_Corner0_Rounded as Globe} from '#/components/icons/Globe' -import {Pencil_Stroke2_Corner0_Rounded as Pencil} from '#/components/icons/Pencil' -import {Warning_Stroke2_Corner0_Rounded as Warning} from '#/components/icons/Warning' +import {HostingProvider} from '#/components/forms/HostingProvider' +import {FormContainer} from './FormContainer' +import {FormError} from './FormError' type ServiceDescription = ComAtprotoServerDescribeServer.OutputSchema @@ -64,14 +57,11 @@ export const LoginForm = ({ const passwordInputRef = useRef(null) const {_} = useLingui() const {login} = useSessionApi() - const serverInputControl = useDialogControl() - const {gtMobile} = useBreakpoints() - const onPressSelectService = () => { - serverInputControl.open() + const onPressSelectService = React.useCallback(() => { Keyboard.dismiss() track('Signin:PressedSelectService') - } + }, [track]) const onPressNext = async () => { Keyboard.dismiss() @@ -131,171 +121,138 @@ export const LoginForm = ({ const isReady = !!serviceDescription && !!identifier && !!password return ( - - - Sign in}> + + + Hosting provider + + - - - - Hosting provider - + + + + Account + + + + { + passwordInputRef.current?.focus() + }} + blurOnSubmit={false} // prevents flickering due to onSubmitEditing going to next field + value={identifier} + onChangeText={str => + setIdentifier((str || '').toLowerCase().trim()) + } + editable={!isProcessing} + accessibilityHint={_( + msg`Input the username or email address you used at signup`, + )} + /> + + + + + + - - {toNiceDomain(serviceUrl)} - - - + t.atoms.bg_contrast_100, + {marginLeft: 'auto', left: 6, padding: 6}, + a.z_10, + ]}> + + Forgot? + - - - - Account - - - - { - passwordInputRef.current?.focus() - }} - blurOnSubmit={false} // prevents flickering due to onSubmitEditing going to next field - value={identifier} - onChangeText={str => - setIdentifier((str || '').toLowerCase().trim()) - } - editable={!isProcessing} - accessibilityHint={_( - msg`Input the username or email address you used at signup`, - )} - /> - - - - - - - - - Forgot? - - - - - {error ? ( - - - - {error} - - - ) : undefined} - + + + + + + + {!serviceDescription && error ? ( - - {!serviceDescription && error ? ( - - ) : !serviceDescription ? ( - <> - - - Connecting... - - - ) : isProcessing ? ( + ) : !serviceDescription ? ( + <> - ) : isReady ? ( - - ) : undefined} - + + Connecting... + + + ) : isProcessing ? ( + + ) : isReady ? ( + + ) : undefined} - + ) } diff --git a/src/screens/Login/PasswordUpdatedForm.tsx b/src/screens/Login/PasswordUpdatedForm.tsx new file mode 100644 index 0000000000..218cab5392 --- /dev/null +++ b/src/screens/Login/PasswordUpdatedForm.tsx @@ -0,0 +1,49 @@ +import React, {useEffect} from 'react' +import {View} from 'react-native' +import {useAnalytics} from 'lib/analytics/analytics' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {FormContainer} from './FormContainer' +import {Button, ButtonText} from '#/components/Button' +import {Text} from '#/components/Typography' +import {atoms as a, useBreakpoints} from '#/alf' + +export const PasswordUpdatedForm = ({ + onPressNext, +}: { + onPressNext: () => void +}) => { + const {screen} = useAnalytics() + const {_} = useLingui() + const {gtMobile} = useBreakpoints() + + useEffect(() => { + screen('Signin:PasswordUpdatedForm') + }, [screen]) + + return ( + + + Password updated! + + + You can now sign in with your new password. + + + + + + ) +} diff --git a/src/screens/Login/SetNewPasswordForm.tsx b/src/screens/Login/SetNewPasswordForm.tsx new file mode 100644 index 0000000000..2685ad5ee8 --- /dev/null +++ b/src/screens/Login/SetNewPasswordForm.tsx @@ -0,0 +1,189 @@ +import React, {useState, useEffect} from 'react' +import {ActivityIndicator, View} from 'react-native' +import {BskyAgent} from '@atproto/api' +import {useAnalytics} from 'lib/analytics/analytics' + +import {isNetworkError} from 'lib/strings/errors' +import {cleanError} from 'lib/strings/errors' +import {checkAndFormatResetCode} from 'lib/strings/password' +import {logger} from '#/logger' +import {Trans, msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {FormContainer} from './FormContainer' +import {Text} from '#/components/Typography' +import * as TextField from '#/components/forms/TextField' +import {Lock_Stroke2_Corner0_Rounded as Lock} from '#/components/icons/Lock' +import {Ticket_Stroke2_Corner0_Rounded as Ticket} from '#/components/icons/Ticket' +import {Button, ButtonText} from '#/components/Button' +import {useTheme, atoms as a} from '#/alf' +import {FormError} from './FormError' + +export const SetNewPasswordForm = ({ + error, + serviceUrl, + setError, + onPressBack, + onPasswordSet, +}: { + error: string + serviceUrl: string + setError: (v: string) => void + onPressBack: () => void + onPasswordSet: () => void +}) => { + const {screen} = useAnalytics() + const {_} = useLingui() + const t = useTheme() + + useEffect(() => { + screen('Signin:SetNewPasswordForm') + }, [screen]) + + const [isProcessing, setIsProcessing] = useState(false) + const [resetCode, setResetCode] = useState('') + const [password, setPassword] = useState('') + + const onPressNext = async () => { + onPasswordSet() + if (Math.random() > 0) return + // Check that the code is correct. We do this again just incase the user enters the code after their pw and we + // don't get to call onBlur first + const formattedCode = checkAndFormatResetCode(resetCode) + // TODO Better password strength check + if (!formattedCode || !password) { + setError( + _( + msg`You have entered an invalid code. It should look like XXXXX-XXXXX.`, + ), + ) + return + } + + setError('') + setIsProcessing(true) + + try { + const agent = new BskyAgent({service: serviceUrl}) + await agent.com.atproto.server.resetPassword({ + token: formattedCode, + password, + }) + onPasswordSet() + } catch (e: any) { + const errMsg = e.toString() + logger.warn('Failed to set new password', {error: e}) + setIsProcessing(false) + if (isNetworkError(e)) { + setError( + 'Unable to contact your service. Please check your Internet connection.', + ) + } else { + setError(cleanError(errMsg)) + } + } + } + + const onBlur = () => { + const formattedCode = checkAndFormatResetCode(resetCode) + if (!formattedCode) { + setError( + _( + msg`You have entered an invalid code. It should look like XXXXX-XXXXX.`, + ), + ) + return + } + setResetCode(formattedCode) + } + + return ( + Set new password}> + + + You will receive an email with a "reset code." Enter that code here, + then enter your new password. + + + + + Reset code + + + setError('')} + onBlur={onBlur} + editable={!isProcessing} + accessibilityHint={_( + msg`Input code sent to your email for password reset`, + )} + /> + + + + + New password + + + + + + + + + + {isProcessing ? ( + + ) : ( + + )} + {isProcessing ? ( + + Updating... + + ) : undefined} + + + ) +} diff --git a/src/screens/Login/index.tsx b/src/screens/Login/index.tsx index 028a497d28..10edb3eb60 100644 --- a/src/screens/Login/index.tsx +++ b/src/screens/Login/index.tsx @@ -13,9 +13,9 @@ import {msg} from '@lingui/macro' import {logger} from '#/logger' import {atoms as a} from '#/alf' import {ChooseAccountForm} from './ChooseAccountForm' -import {ForgotPasswordForm} from '#/view/com/auth/login/ForgotPasswordForm' -import {SetNewPasswordForm} from '#/view/com/auth/login/SetNewPasswordForm' -import {PasswordUpdatedForm} from '#/view/com/auth/login/PasswordUpdatedForm' +import {ForgotPasswordForm} from '#/screens/Login/ForgotPasswordForm' +import {SetNewPasswordForm} from '#/screens/Login/SetNewPasswordForm' +import {PasswordUpdatedForm} from '#/screens/Login/PasswordUpdatedForm' import {LoginForm} from '#/screens/Login/LoginForm' enum Forms { diff --git a/src/view/com/auth/login/ForgotPasswordForm.tsx b/src/view/com/auth/login/ForgotPasswordForm.tsx deleted file mode 100644 index 322da2b8fd..0000000000 --- a/src/view/com/auth/login/ForgotPasswordForm.tsx +++ /dev/null @@ -1,228 +0,0 @@ -import React, {useState, useEffect} from 'react' -import { - ActivityIndicator, - Keyboard, - TextInput, - TouchableOpacity, - View, -} from 'react-native' -import { - FontAwesomeIcon, - FontAwesomeIconStyle, -} from '@fortawesome/react-native-fontawesome' -import {ComAtprotoServerDescribeServer} from '@atproto/api' -import * as EmailValidator from 'email-validator' -import {BskyAgent} from '@atproto/api' -import {useAnalytics} from 'lib/analytics/analytics' -import {Text} from '../../util/text/Text' -import {s} from 'lib/styles' -import {toNiceDomain} from 'lib/strings/url-helpers' -import {isNetworkError} from 'lib/strings/errors' -import {usePalette} from 'lib/hooks/usePalette' -import {useTheme} from 'lib/ThemeContext' -import {cleanError} from 'lib/strings/errors' -import {logger} from '#/logger' -import {Trans, msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {styles} from './styles' -import {useDialogControl} from '#/components/Dialog' - -import {ServerInputDialog} from '../server-input' - -type ServiceDescription = ComAtprotoServerDescribeServer.OutputSchema - -export const ForgotPasswordForm = ({ - error, - serviceUrl, - serviceDescription, - setError, - setServiceUrl, - onPressBack, - onEmailSent, -}: { - error: string - serviceUrl: string - serviceDescription: ServiceDescription | undefined - setError: (v: string) => void - setServiceUrl: (v: string) => void - onPressBack: () => void - onEmailSent: () => void -}) => { - const pal = usePalette('default') - const theme = useTheme() - const [isProcessing, setIsProcessing] = useState(false) - const [email, setEmail] = useState('') - const {screen} = useAnalytics() - const {_} = useLingui() - const serverInputControl = useDialogControl() - - useEffect(() => { - screen('Signin:ForgotPassword') - }, [screen]) - - const onPressSelectService = React.useCallback(() => { - serverInputControl.open() - Keyboard.dismiss() - }, [serverInputControl]) - - const onPressNext = async () => { - if (!EmailValidator.validate(email)) { - return setError(_(msg`Your email appears to be invalid.`)) - } - - setError('') - setIsProcessing(true) - - try { - const agent = new BskyAgent({service: serviceUrl}) - await agent.com.atproto.server.requestPasswordReset({email}) - onEmailSent() - } catch (e: any) { - const errMsg = e.toString() - logger.warn('Failed to request password reset', {error: e}) - setIsProcessing(false) - if (isNetworkError(e)) { - setError( - _( - msg`Unable to contact your service. Please check your Internet connection.`, - ), - ) - } else { - setError(cleanError(errMsg)) - } - } - } - - return ( - <> - - - - Reset password - - - - Enter the email you used to create your account. We'll send you a - "reset code" so you can set a new password. - - - - - - - {toNiceDomain(serviceUrl)} - - - - - - - - - - - {error ? ( - - - - - - {error} - - - ) : undefined} - - - - Back - - - - {!serviceDescription || isProcessing ? ( - - ) : !email ? ( - - Next - - ) : ( - - - Next - - - )} - {!serviceDescription || isProcessing ? ( - - Processing... - - ) : undefined} - - - - - - Already have a code? - - - - - - ) -} diff --git a/src/view/com/auth/login/PasswordUpdatedForm.tsx b/src/view/com/auth/login/PasswordUpdatedForm.tsx deleted file mode 100644 index 71f750b141..0000000000 --- a/src/view/com/auth/login/PasswordUpdatedForm.tsx +++ /dev/null @@ -1,48 +0,0 @@ -import React, {useEffect} from 'react' -import {TouchableOpacity, View} from 'react-native' -import {useAnalytics} from 'lib/analytics/analytics' -import {Text} from '../../util/text/Text' -import {s} from 'lib/styles' -import {usePalette} from 'lib/hooks/usePalette' -import {styles} from './styles' -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' - -export const PasswordUpdatedForm = ({ - onPressNext, -}: { - onPressNext: () => void -}) => { - const {screen} = useAnalytics() - const pal = usePalette('default') - const {_} = useLingui() - - useEffect(() => { - screen('Signin:PasswordUpdatedForm') - }, [screen]) - - return ( - <> - - - Password updated! - - - You can now sign in with your new password. - - - - - - Okay - - - - - - ) -} diff --git a/src/view/com/auth/login/SetNewPasswordForm.tsx b/src/view/com/auth/login/SetNewPasswordForm.tsx deleted file mode 100644 index 6d1584c86c..0000000000 --- a/src/view/com/auth/login/SetNewPasswordForm.tsx +++ /dev/null @@ -1,211 +0,0 @@ -import React, {useState, useEffect} from 'react' -import { - ActivityIndicator, - TextInput, - TouchableOpacity, - View, -} from 'react-native' -import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' -import {BskyAgent} from '@atproto/api' -import {useAnalytics} from 'lib/analytics/analytics' -import {Text} from '../../util/text/Text' -import {s} from 'lib/styles' -import {isNetworkError} from 'lib/strings/errors' -import {usePalette} from 'lib/hooks/usePalette' -import {useTheme} from 'lib/ThemeContext' -import {cleanError} from 'lib/strings/errors' -import {checkAndFormatResetCode} from 'lib/strings/password' -import {logger} from '#/logger' -import {styles} from './styles' -import {Trans, msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' - -export const SetNewPasswordForm = ({ - error, - serviceUrl, - setError, - onPressBack, - onPasswordSet, -}: { - error: string - serviceUrl: string - setError: (v: string) => void - onPressBack: () => void - onPasswordSet: () => void -}) => { - const pal = usePalette('default') - const theme = useTheme() - const {screen} = useAnalytics() - const {_} = useLingui() - - useEffect(() => { - screen('Signin:SetNewPasswordForm') - }, [screen]) - - const [isProcessing, setIsProcessing] = useState(false) - const [resetCode, setResetCode] = useState('') - const [password, setPassword] = useState('') - - const onPressNext = async () => { - // Check that the code is correct. We do this again just incase the user enters the code after their pw and we - // don't get to call onBlur first - const formattedCode = checkAndFormatResetCode(resetCode) - // TODO Better password strength check - if (!formattedCode || !password) { - setError( - _( - msg`You have entered an invalid code. It should look like XXXXX-XXXXX.`, - ), - ) - return - } - - setError('') - setIsProcessing(true) - - try { - const agent = new BskyAgent({service: serviceUrl}) - await agent.com.atproto.server.resetPassword({ - token: formattedCode, - password, - }) - onPasswordSet() - } catch (e: any) { - const errMsg = e.toString() - logger.warn('Failed to set new password', {error: e}) - setIsProcessing(false) - if (isNetworkError(e)) { - setError( - 'Unable to contact your service. Please check your Internet connection.', - ) - } else { - setError(cleanError(errMsg)) - } - } - } - - const onBlur = () => { - const formattedCode = checkAndFormatResetCode(resetCode) - if (!formattedCode) { - setError( - _( - msg`You have entered an invalid code. It should look like XXXXX-XXXXX.`, - ), - ) - return - } - setResetCode(formattedCode) - } - - return ( - <> - - - Set new password - - - - You will receive an email with a "reset code." Enter that code here, - then enter your new password. - - - - - - setError('')} - onBlur={onBlur} - editable={!isProcessing} - accessible={true} - accessibilityLabel={_(msg`Reset code`)} - accessibilityHint={_( - msg`Input code sent to your email for password reset`, - )} - /> - - - - - - - {error ? ( - - - - - - {error} - - - ) : undefined} - - - - Back - - - - {isProcessing ? ( - - ) : !resetCode || !password ? ( - - Next - - ) : ( - - - Next - - - )} - {isProcessing ? ( - - Updating... - - ) : undefined} - - - - ) -} diff --git a/src/view/com/auth/login/styles.ts b/src/view/com/auth/login/styles.ts deleted file mode 100644 index 9dccc2803b..0000000000 --- a/src/view/com/auth/login/styles.ts +++ /dev/null @@ -1,118 +0,0 @@ -import {StyleSheet} from 'react-native' -import {colors} from 'lib/styles' -import {isWeb} from '#/platform/detection' - -export const styles = StyleSheet.create({ - screenTitle: { - marginBottom: 10, - marginHorizontal: 20, - }, - instructions: { - marginBottom: 20, - marginHorizontal: 20, - }, - group: { - borderWidth: 1, - borderRadius: 10, - marginBottom: 20, - marginHorizontal: 20, - }, - groupLabel: { - paddingHorizontal: 20, - paddingBottom: 5, - }, - groupContent: { - borderTopWidth: 1, - flexDirection: 'row', - alignItems: 'center', - }, - noTopBorder: { - borderTopWidth: 0, - }, - groupContentIcon: { - marginLeft: 10, - }, - account: { - borderTopWidth: 1, - paddingHorizontal: 20, - paddingVertical: 4, - }, - accountLast: { - borderBottomWidth: 1, - marginBottom: 20, - paddingVertical: 8, - }, - textInput: { - flex: 1, - width: '100%', - paddingVertical: 10, - paddingHorizontal: 12, - fontSize: 17, - letterSpacing: 0.25, - fontWeight: '400', - borderRadius: 10, - }, - textInputInnerBtn: { - flexDirection: 'row', - alignItems: 'center', - paddingVertical: 6, - paddingHorizontal: 8, - marginHorizontal: 6, - }, - textBtn: { - flexDirection: 'row', - flex: 1, - alignItems: 'center', - }, - textBtnLabel: { - flex: 1, - paddingVertical: 10, - paddingHorizontal: 12, - }, - textBtnFakeInnerBtn: { - flexDirection: 'row', - alignItems: 'center', - borderRadius: 6, - paddingVertical: 6, - paddingHorizontal: 8, - marginHorizontal: 6, - }, - accountText: { - flex: 1, - flexDirection: 'row', - alignItems: 'baseline', - paddingVertical: 10, - }, - accountTextOther: { - paddingLeft: 12, - }, - error: { - backgroundColor: colors.red4, - flexDirection: 'row', - alignItems: 'center', - marginTop: -5, - marginHorizontal: 20, - marginBottom: 15, - borderRadius: 8, - paddingHorizontal: 8, - paddingVertical: 8, - }, - errorIcon: { - borderWidth: 1, - borderColor: colors.white, - color: colors.white, - borderRadius: 30, - width: 16, - height: 16, - alignItems: 'center', - justifyContent: 'center', - marginRight: 5, - }, - dimmed: {opacity: 0.5}, - - maxHeight: { - // @ts-ignore web only -prf - maxHeight: isWeb ? '100vh' : undefined, - height: !isWeb ? '100%' : undefined, - }, -}) From 7d69570a44d38278233f17f74a2239edd8ed81de Mon Sep 17 00:00:00 2001 From: Samuel Newman Date: Fri, 15 Mar 2024 13:53:57 +0000 Subject: [PATCH 013/222] run ticket through svgomg --- assets/icons/ticket_stroke2_corner0_rounded.svg | 2 +- src/components/icons/Ticket.tsx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/assets/icons/ticket_stroke2_corner0_rounded.svg b/assets/icons/ticket_stroke2_corner0_rounded.svg index 184addc8e8..a45a90ae5f 100644 --- a/assets/icons/ticket_stroke2_corner0_rounded.svg +++ b/assets/icons/ticket_stroke2_corner0_rounded.svg @@ -1 +1 @@ - \ No newline at end of file + diff --git a/src/components/icons/Ticket.tsx b/src/components/icons/Ticket.tsx index 0df6b81204..1a8059c2a1 100644 --- a/src/components/icons/Ticket.tsx +++ b/src/components/icons/Ticket.tsx @@ -1,5 +1,5 @@ import {createSinglePathSVG} from './TEMPLATE' export const Ticket_Stroke2_Corner0_Rounded = createSinglePathSVG({ - path: 'M4 5.5a.5.5 0 0 0-.5.5v2.535a.5.5 0 0 0 .25.433A3.498 3.498 0 0 1 5.5 12a3.498 3.498 0 0 1-1.75 3.032.5.5 0 0 0-.25.433V18a.5.5 0 0 0 .5.5h16a.5.5 0 0 0 .5-.5v-2.535a.5.5 0 0 0-.25-.433A3.498 3.498 0 0 1 18.5 12c0-1.296.704-2.426 1.75-3.032a.5.5 0 0 0 .25-.433V6a.5.5 0 0 0-.5-.5H4ZM2.5 6A1.5 1.5 0 0 1 4 4.5h16A1.5 1.5 0 0 1 21.5 6v3.17a.5.5 0 0 1-.333.472 2.501 2.501 0 0 0 0 4.716.5.5 0 0 1 .333.471V18a1.5 1.5 0 0 1-1.5 1.5H4A1.5 1.5 0 0 1 2.5 18v-3.17a.5.5 0 0 1 .333-.472 2.501 2.501 0 0 0 0-4.716.5.5 0 0 1-.333-.471V6Zm12 2a.5.5 0 1 1 1 0 .5.5 0 0 1-1 0Zm0 4a.5.5 0 1 1 1 0 .5.5 0 0 1-1 0Zm0 4a.5.5 0 1 1 1 0 .5.5 0 0 1-1 0Z', + path: 'M4 5.5a.5.5 0 0 0-.5.5v2.535a.5.5 0 0 0 .25.433A3.498 3.498 0 0 1 5.5 12a3.498 3.498 0 0 1-1.75 3.032.5.5 0 0 0-.25.433V18a.5.5 0 0 0 .5.5h16a.5.5 0 0 0 .5-.5v-2.535a.5.5 0 0 0-.25-.433A3.498 3.498 0 0 1 18.5 12a3.5 3.5 0 0 1 1.75-3.032.5.5 0 0 0 .25-.433V6a.5.5 0 0 0-.5-.5H4ZM2.5 6A1.5 1.5 0 0 1 4 4.5h16A1.5 1.5 0 0 1 21.5 6v3.17a.5.5 0 0 1-.333.472 2.501 2.501 0 0 0 0 4.716.5.5 0 0 1 .333.471V18a1.5 1.5 0 0 1-1.5 1.5H4A1.5 1.5 0 0 1 2.5 18v-3.17a.5.5 0 0 1 .333-.472 2.501 2.501 0 0 0 0-4.716.5.5 0 0 1-.333-.471V6Zm12 2a.5.5 0 1 1 1 0 .5.5 0 0 1-1 0Zm0 4a.5.5 0 1 1 1 0 .5.5 0 0 1-1 0Zm0 4a.5.5 0 1 1 1 0 .5.5 0 0 1-1 0Z', }) From e31fcb1a6d8820fdbd05b34aa169839214b7a240 Mon Sep 17 00:00:00 2001 From: Samuel Newman Date: Fri, 15 Mar 2024 13:54:23 +0000 Subject: [PATCH 014/222] reenable set new password button --- src/screens/Login/SetNewPasswordForm.tsx | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/screens/Login/SetNewPasswordForm.tsx b/src/screens/Login/SetNewPasswordForm.tsx index 2685ad5ee8..8fbd798c88 100644 --- a/src/screens/Login/SetNewPasswordForm.tsx +++ b/src/screens/Login/SetNewPasswordForm.tsx @@ -44,8 +44,6 @@ export const SetNewPasswordForm = ({ const [password, setPassword] = useState('') const onPressNext = async () => { - onPasswordSet() - if (Math.random() > 0) return // Check that the code is correct. We do this again just incase the user enters the code after their pw and we // don't get to call onBlur first const formattedCode = checkAndFormatResetCode(resetCode) From 0f67be362751f4f65bfca473691c27acb816e05c Mon Sep 17 00:00:00 2001 From: Samuel Newman Date: Fri, 15 Mar 2024 14:21:15 +0000 Subject: [PATCH 015/222] animate transitions on web only --- src/screens/Login/ScreenTransition.tsx | 10 ++++++++++ src/screens/Login/ScreenTransition.web.tsx | 1 + src/screens/Login/index.tsx | 9 ++------- 3 files changed, 13 insertions(+), 7 deletions(-) create mode 100644 src/screens/Login/ScreenTransition.tsx create mode 100644 src/screens/Login/ScreenTransition.web.tsx diff --git a/src/screens/Login/ScreenTransition.tsx b/src/screens/Login/ScreenTransition.tsx new file mode 100644 index 0000000000..ab0a223678 --- /dev/null +++ b/src/screens/Login/ScreenTransition.tsx @@ -0,0 +1,10 @@ +import React from 'react' +import Animated, {FadeInRight, FadeOutLeft} from 'react-native-reanimated' + +export function ScreenTransition({children}: {children: React.ReactNode}) { + return ( + + {children} + + ) +} diff --git a/src/screens/Login/ScreenTransition.web.tsx b/src/screens/Login/ScreenTransition.web.tsx new file mode 100644 index 0000000000..4583720aa8 --- /dev/null +++ b/src/screens/Login/ScreenTransition.web.tsx @@ -0,0 +1 @@ +export {Fragment as ScreenTransition} from 'react' diff --git a/src/screens/Login/index.tsx b/src/screens/Login/index.tsx index 10edb3eb60..da392569a7 100644 --- a/src/screens/Login/index.tsx +++ b/src/screens/Login/index.tsx @@ -2,7 +2,6 @@ import React from 'react' import {KeyboardAvoidingView} from 'react-native' import {useAnalytics} from '#/lib/analytics/analytics' import {useLingui} from '@lingui/react' -import Animated, {FadeInRight, FadeOutLeft} from 'react-native-reanimated' import {LoggedOutLayout} from '#/view/com/util/layouts/LoggedOutLayout' import {SessionAccount, useSession} from '#/state/session' @@ -17,6 +16,7 @@ import {ForgotPasswordForm} from '#/screens/Login/ForgotPasswordForm' import {SetNewPasswordForm} from '#/screens/Login/SetNewPasswordForm' import {PasswordUpdatedForm} from '#/screens/Login/PasswordUpdatedForm' import {LoginForm} from '#/screens/Login/LoginForm' +import {ScreenTransition} from './ScreenTransition' enum Forms { Login, @@ -161,12 +161,7 @@ export const Login = ({onPressBack}: {onPressBack: () => void}) => { return ( - - {content} - + {content} ) From 273fe3e8e9f3ba1807d9f5163c02db9db58b0c22 Mon Sep 17 00:00:00 2001 From: Samuel Newman Date: Fri, 15 Mar 2024 14:21:38 +0000 Subject: [PATCH 016/222] scrollview persist taps, autoFocus code --- src/screens/Login/FormContainer.tsx | 3 ++- src/screens/Login/SetNewPasswordForm.tsx | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/screens/Login/FormContainer.tsx b/src/screens/Login/FormContainer.tsx index a08aa05b0f..cd17d06d7f 100644 --- a/src/screens/Login/FormContainer.tsx +++ b/src/screens/Login/FormContainer.tsx @@ -29,7 +29,8 @@ export function FormContainer({ return ( + style={[styles.maxHeight, contentContainerStyle]} + keyboardShouldPersistTaps="handled"> {title && !gtMobile && ( diff --git a/src/screens/Login/SetNewPasswordForm.tsx b/src/screens/Login/SetNewPasswordForm.tsx index 8fbd798c88..0bfe722449 100644 --- a/src/screens/Login/SetNewPasswordForm.tsx +++ b/src/screens/Login/SetNewPasswordForm.tsx @@ -113,6 +113,7 @@ export const SetNewPasswordForm = ({ testID="resetCodeInput" label={_(msg`Looks like XXXXX-XXXXX`)} autoCapitalize="none" + autoFocus={true} autoCorrect={false} autoComplete="off" value={resetCode} From d2a11f3344149a299372f0a7dcd01de9f58ef9a1 Mon Sep 17 00:00:00 2001 From: Samuel Newman Date: Fri, 15 Mar 2024 22:08:06 +0000 Subject: [PATCH 017/222] translate error --- src/screens/Login/SetNewPasswordForm.tsx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/screens/Login/SetNewPasswordForm.tsx b/src/screens/Login/SetNewPasswordForm.tsx index 0bfe722449..be07324833 100644 --- a/src/screens/Login/SetNewPasswordForm.tsx +++ b/src/screens/Login/SetNewPasswordForm.tsx @@ -73,7 +73,9 @@ export const SetNewPasswordForm = ({ setIsProcessing(false) if (isNetworkError(e)) { setError( - 'Unable to contact your service. Please check your Internet connection.', + _( + msg`Unable to contact your service. Please check your Internet connection.`, + ), ) } else { setError(cleanError(errMsg)) From 08d12d9a3df1fa062ecc4c67a0a2f686eba4c7c3 Mon Sep 17 00:00:00 2001 From: Samuel Newman Date: Tue, 19 Mar 2024 15:28:06 +0000 Subject: [PATCH 018/222] move FormError to components/forms --- src/{screens/Login => components/forms}/FormError.tsx | 0 src/screens/Login/ForgotPasswordForm.tsx | 2 +- src/screens/Login/LoginForm.tsx | 2 +- src/screens/Login/SetNewPasswordForm.tsx | 2 +- 4 files changed, 3 insertions(+), 3 deletions(-) rename src/{screens/Login => components/forms}/FormError.tsx (100%) diff --git a/src/screens/Login/FormError.tsx b/src/components/forms/FormError.tsx similarity index 100% rename from src/screens/Login/FormError.tsx rename to src/components/forms/FormError.tsx diff --git a/src/screens/Login/ForgotPasswordForm.tsx b/src/screens/Login/ForgotPasswordForm.tsx index fa674155ab..ab9d025365 100644 --- a/src/screens/Login/ForgotPasswordForm.tsx +++ b/src/screens/Login/ForgotPasswordForm.tsx @@ -17,7 +17,7 @@ import {logger} from '#/logger' import {Button, ButtonText} from '#/components/Button' import {Text} from '#/components/Typography' import {FormContainer} from './FormContainer' -import {FormError} from './FormError' +import {FormError} from '#/components/forms/FormError' type ServiceDescription = ComAtprotoServerDescribeServer.OutputSchema diff --git a/src/screens/Login/LoginForm.tsx b/src/screens/Login/LoginForm.tsx index 5801552811..ee47aa41d3 100644 --- a/src/screens/Login/LoginForm.tsx +++ b/src/screens/Login/LoginForm.tsx @@ -24,7 +24,7 @@ import {At_Stroke2_Corner0_Rounded as At} from '#/components/icons/At' import {Lock_Stroke2_Corner0_Rounded as Lock} from '#/components/icons/Lock' import {HostingProvider} from '#/components/forms/HostingProvider' import {FormContainer} from './FormContainer' -import {FormError} from './FormError' +import {FormError} from '#/components/forms/FormError' type ServiceDescription = ComAtprotoServerDescribeServer.OutputSchema diff --git a/src/screens/Login/SetNewPasswordForm.tsx b/src/screens/Login/SetNewPasswordForm.tsx index be07324833..678440cf47 100644 --- a/src/screens/Login/SetNewPasswordForm.tsx +++ b/src/screens/Login/SetNewPasswordForm.tsx @@ -16,7 +16,7 @@ import {Lock_Stroke2_Corner0_Rounded as Lock} from '#/components/icons/Lock' import {Ticket_Stroke2_Corner0_Rounded as Ticket} from '#/components/icons/Ticket' import {Button, ButtonText} from '#/components/Button' import {useTheme, atoms as a} from '#/alf' -import {FormError} from './FormError' +import {FormError} from '#/components/forms/FormError' export const SetNewPasswordForm = ({ error, From 49a392bfb34b91ba971f32cb25e41b0491c45fc2 Mon Sep 17 00:00:00 2001 From: Samuel Newman Date: Tue, 19 Mar 2024 15:29:25 +0000 Subject: [PATCH 019/222] rm useless function wrap --- src/screens/Login/index.tsx | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/screens/Login/index.tsx b/src/screens/Login/index.tsx index da392569a7..8dee061858 100644 --- a/src/screens/Login/index.tsx +++ b/src/screens/Login/index.tsx @@ -85,7 +85,6 @@ export const Login = ({onPressBack}: {onPressBack: () => void}) => { } }, [serviceError, serviceUrl, _]) - const onPressRetryConnect = () => refetchService() const onPressForgotPassword = () => { track('Signin:PressedForgotPassword') setCurrentForm(Forms.ForgotPassword) @@ -109,7 +108,7 @@ export const Login = ({onPressBack}: {onPressBack: () => void}) => { setServiceUrl={setServiceUrl} onPressBack={onPressBack} onPressForgotPassword={onPressForgotPassword} - onPressRetryConnect={onPressRetryConnect} + onPressRetryConnect={refetchService} /> ) break From b6903419a1112bae5397a398756e46a46afcf65f Mon Sep 17 00:00:00 2001 From: Samuel Newman Date: Tue, 19 Mar 2024 15:31:00 +0000 Subject: [PATCH 020/222] simplify gotoForm --- src/screens/Login/index.tsx | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/screens/Login/index.tsx b/src/screens/Login/index.tsx index 8dee061858..f7a0e29e95 100644 --- a/src/screens/Login/index.tsx +++ b/src/screens/Login/index.tsx @@ -65,7 +65,7 @@ export const Login = ({onPressBack}: {onPressBack: () => void}) => { setCurrentForm(Forms.Login) } - const gotoForm = (form: Forms) => () => { + const gotoForm = (form: Forms) => { setError('') setCurrentForm(form) } @@ -132,8 +132,8 @@ export const Login = ({onPressBack}: {onPressBack: () => void}) => { serviceDescription={serviceDescription} setError={setError} setServiceUrl={setServiceUrl} - onPressBack={gotoForm(Forms.Login)} - onEmailSent={gotoForm(Forms.SetNewPassword)} + onPressBack={() => gotoForm(Forms.Login)} + onEmailSent={() => gotoForm(Forms.SetNewPassword)} /> ) break @@ -145,15 +145,17 @@ export const Login = ({onPressBack}: {onPressBack: () => void}) => { error={error} serviceUrl={serviceUrl} setError={setError} - onPressBack={gotoForm(Forms.ForgotPassword)} - onPasswordSet={gotoForm(Forms.PasswordUpdated)} + onPressBack={() => gotoForm(Forms.ForgotPassword)} + onPasswordSet={() => gotoForm(Forms.PasswordUpdated)} /> ) break case Forms.PasswordUpdated: title = _(msg`Password updated`) description = _(msg`You can now sign in with your new password.`) - content = + content = ( + gotoForm(Forms.Login)} /> + ) break } From bd8d8fb9f1454ad40b267e8a4a5717eddc0a46a6 Mon Sep 17 00:00:00 2001 From: Samuel Newman Date: Tue, 19 Mar 2024 16:13:15 +0000 Subject: [PATCH 021/222] change error to warn --- .eslintrc.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index bade064475..6165517f77 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -18,7 +18,7 @@ module.exports = { 'react/no-unescaped-entities': 0, 'react-native/no-inline-styles': 0, 'simple-import-sort/imports': [ - 'error', + 'warn', { groups: [ // Side effect imports. @@ -52,7 +52,7 @@ module.exports = { ], }, ], - 'simple-import-sort/exports': 'error', + 'simple-import-sort/exports': 'warn', }, ignorePatterns: [ '**/__mocks__/*.ts', From a1c4f19731878f7026d398d28e475bbeb7de824a Mon Sep 17 00:00:00 2001 From: Hailey Date: Tue, 19 Mar 2024 12:47:46 -0700 Subject: [PATCH 022/222] Use ALF for signup flow, improve a11y of signup (#3151) * Use ALF for signup flow, improve a11y of signup * adjust padding * rm log * org imports * clarify allowance of hyphens Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com> * fix a few accessibility items * Standardise date input across platforms (#3223) * make the date input consistent across platforms * integrate into new signup form * rm log * add transitions * show correct # of steps * use `FormError` * animate buttons * use `ScreenTransition` * fix android text overflow via flex -> flex_1 * change button color * (android) make date input the same height as others * fix deps * fix deps --------- Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com> Co-authored-by: Samuel Newman --- .../calendar_stroke2_corner0_rounded.svg | 1 + .../envelope_stroke2_corner0_rounded.svg | 1 + assets/icons/lock_stroke2_corner0_rounded.svg | 1 + .../icons/pencil_stroke2_corner0_rounded.svg | 1 + .../forms/DateField/index.android.tsx | 73 +--- .../forms/DateField/index.shared.tsx | 99 ++++++ src/components/forms/DateField/index.tsx | 59 +++- src/components/forms/DateField/index.web.tsx | 4 + src/components/forms/DateField/types.ts | 1 + src/components/forms/TextField.tsx | 6 +- src/components/icons/Calendar.tsx | 5 + src/components/icons/Envelope.tsx | 5 + src/lib/strings/handles.ts | 2 + .../Signup/StepCaptcha.tsx} | 84 ++--- src/screens/Signup/StepHandle.tsx | 134 ++++++++ src/screens/Signup/StepInfo.tsx | 145 ++++++++ src/screens/Signup/index.tsx | 225 ++++++++++++ src/screens/Signup/state.ts | 320 ++++++++++++++++++ src/view/com/auth/LoggedOut.tsx | 4 +- src/view/com/auth/create/CaptchaWebView.tsx | 14 +- src/view/com/auth/create/CreateAccount.tsx | 230 ------------- src/view/com/auth/create/Policies.tsx | 14 +- src/view/com/auth/create/Step1.tsx | 261 -------------- src/view/com/auth/create/Step2.tsx | 140 -------- src/view/com/auth/create/StepHeader.tsx | 44 --- 25 files changed, 1064 insertions(+), 809 deletions(-) create mode 100644 assets/icons/calendar_stroke2_corner0_rounded.svg create mode 100644 assets/icons/envelope_stroke2_corner0_rounded.svg create mode 100644 assets/icons/lock_stroke2_corner0_rounded.svg create mode 100644 assets/icons/pencil_stroke2_corner0_rounded.svg create mode 100644 src/components/forms/DateField/index.shared.tsx create mode 100644 src/components/icons/Calendar.tsx create mode 100644 src/components/icons/Envelope.tsx rename src/{view/com/auth/create/Step3.tsx => screens/Signup/StepCaptcha.tsx} (53%) create mode 100644 src/screens/Signup/StepHandle.tsx create mode 100644 src/screens/Signup/StepInfo.tsx create mode 100644 src/screens/Signup/index.tsx create mode 100644 src/screens/Signup/state.ts delete mode 100644 src/view/com/auth/create/CreateAccount.tsx delete mode 100644 src/view/com/auth/create/Step1.tsx delete mode 100644 src/view/com/auth/create/Step2.tsx delete mode 100644 src/view/com/auth/create/StepHeader.tsx diff --git a/assets/icons/calendar_stroke2_corner0_rounded.svg b/assets/icons/calendar_stroke2_corner0_rounded.svg new file mode 100644 index 0000000000..703f389dba --- /dev/null +++ b/assets/icons/calendar_stroke2_corner0_rounded.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/envelope_stroke2_corner0_rounded.svg b/assets/icons/envelope_stroke2_corner0_rounded.svg new file mode 100644 index 0000000000..c3ab45980b --- /dev/null +++ b/assets/icons/envelope_stroke2_corner0_rounded.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/lock_stroke2_corner0_rounded.svg b/assets/icons/lock_stroke2_corner0_rounded.svg new file mode 100644 index 0000000000..8b094ba5eb --- /dev/null +++ b/assets/icons/lock_stroke2_corner0_rounded.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/pencil_stroke2_corner0_rounded.svg b/assets/icons/pencil_stroke2_corner0_rounded.svg new file mode 100644 index 0000000000..7341989894 --- /dev/null +++ b/assets/icons/pencil_stroke2_corner0_rounded.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/components/forms/DateField/index.android.tsx b/src/components/forms/DateField/index.android.tsx index 451810a5ea..35c2459f07 100644 --- a/src/components/forms/DateField/index.android.tsx +++ b/src/components/forms/DateField/index.android.tsx @@ -1,19 +1,12 @@ import React from 'react' -import {View, Pressable} from 'react-native' -import {useTheme, atoms} from '#/alf' -import {Text} from '#/components/Typography' -import {useInteractionState} from '#/components/hooks/useInteractionState' +import {useTheme} from '#/alf' import * as TextField from '#/components/forms/TextField' -import {CalendarDays_Stroke2_Corner0_Rounded as CalendarDays} from '#/components/icons/CalendarDays' - import {DateFieldProps} from '#/components/forms/DateField/types' -import { - localizeDate, - toSimpleDateString, -} from '#/components/forms/DateField/utils' +import {toSimpleDateString} from '#/components/forms/DateField/utils' import DatePicker from 'react-native-date-picker' import {isAndroid} from 'platform/detection' +import {DateFieldButton} from './index.shared' export * as utils from '#/components/forms/DateField/utils' export const Label = TextField.Label @@ -24,18 +17,10 @@ export function DateField({ label, isInvalid, testID, + accessibilityHint, }: DateFieldProps) { const t = useTheme() const [open, setOpen] = React.useState(false) - const { - state: pressed, - onIn: onPressIn, - onOut: onPressOut, - } = useInteractionState() - const {state: focused, onIn: onFocus, onOut: onBlur} = useInteractionState() - - const {chromeFocus, chromeError, chromeErrorHover} = - TextField.useSharedInputStyles() const onChangeInternal = React.useCallback( (date: Date) => { @@ -47,45 +32,23 @@ export function DateField({ [onChangeDate, setOpen], ) + const onPress = React.useCallback(() => { + setOpen(true) + }, []) + const onCancel = React.useCallback(() => { setOpen(false) }, []) return ( - - setOpen(true)} - onPressIn={onPressIn} - onPressOut={onPressOut} - onFocus={onFocus} - onBlur={onBlur} - style={[ - { - paddingTop: 16, - paddingBottom: 16, - borderColor: 'transparent', - borderWidth: 2, - }, - atoms.flex_row, - atoms.flex_1, - atoms.w_full, - atoms.px_lg, - atoms.rounded_sm, - t.atoms.bg_contrast_50, - focused || pressed ? chromeFocus : {}, - isInvalid ? chromeError : {}, - isInvalid && (focused || pressed) ? chromeErrorHover : {}, - ]}> - - - - {localizeDate(value)} - - + <> + {open && ( )} - + ) } diff --git a/src/components/forms/DateField/index.shared.tsx b/src/components/forms/DateField/index.shared.tsx new file mode 100644 index 0000000000..29b3e8cb6d --- /dev/null +++ b/src/components/forms/DateField/index.shared.tsx @@ -0,0 +1,99 @@ +import React from 'react' +import {View, Pressable} from 'react-native' + +import {atoms as a, android, useTheme, web} from '#/alf' +import {Text} from '#/components/Typography' +import {useInteractionState} from '#/components/hooks/useInteractionState' +import * as TextField from '#/components/forms/TextField' +import {CalendarDays_Stroke2_Corner0_Rounded as CalendarDays} from '#/components/icons/CalendarDays' +import {localizeDate} from './utils' + +// looks like a TextField.Input, but is just a button. It'll do something different on each platform on press +// iOS: open a dialog with an inline date picker +// Android: open the date picker modal + +export function DateFieldButton({ + label, + value, + onPress, + isInvalid, + accessibilityHint, +}: { + label: string + value: string + onPress: () => void + isInvalid?: boolean + accessibilityHint?: string +}) { + const t = useTheme() + + const { + state: pressed, + onIn: onPressIn, + onOut: onPressOut, + } = useInteractionState() + const { + state: hovered, + onIn: onHoverIn, + onOut: onHoverOut, + } = useInteractionState() + const {state: focused, onIn: onFocus, onOut: onBlur} = useInteractionState() + + const {chromeHover, chromeFocus, chromeError, chromeErrorHover} = + TextField.useSharedInputStyles() + + return ( + + + + + {localizeDate(value)} + + + + ) +} diff --git a/src/components/forms/DateField/index.tsx b/src/components/forms/DateField/index.tsx index 49e47a01e3..22fa3a9f50 100644 --- a/src/components/forms/DateField/index.tsx +++ b/src/components/forms/DateField/index.tsx @@ -1,11 +1,16 @@ import React from 'react' import {View} from 'react-native' -import {useTheme, atoms} from '#/alf' +import {useTheme, atoms as a} from '#/alf' import * as TextField from '#/components/forms/TextField' import {toSimpleDateString} from '#/components/forms/DateField/utils' import {DateFieldProps} from '#/components/forms/DateField/types' import DatePicker from 'react-native-date-picker' +import * as Dialog from '#/components/Dialog' +import {DateFieldButton} from './index.shared' +import {Button, ButtonText} from '#/components/Button' +import {Trans, msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' export * as utils from '#/components/forms/DateField/utils' export const Label = TextField.Label @@ -22,8 +27,12 @@ export function DateField({ onChangeDate, testID, label, + isInvalid, + accessibilityHint, }: DateFieldProps) { + const {_} = useLingui() const t = useTheme() + const control = Dialog.useDialogControl() const onChangeInternal = React.useCallback( (date: Date | undefined) => { @@ -36,17 +45,43 @@ export function DateField({ ) return ( - - + - + + + + + + + + + + + + ) } diff --git a/src/components/forms/DateField/index.web.tsx b/src/components/forms/DateField/index.web.tsx index 32f38a5d16..a3aa302f92 100644 --- a/src/components/forms/DateField/index.web.tsx +++ b/src/components/forms/DateField/index.web.tsx @@ -2,6 +2,7 @@ import React from 'react' import {TextInput, TextInputProps, StyleSheet} from 'react-native' // @ts-ignore import {unstable_createElement} from 'react-native-web' +import {CalendarDays_Stroke2_Corner0_Rounded as CalendarDays} from '#/components/icons/CalendarDays' import * as TextField from '#/components/forms/TextField' import {toSimpleDateString} from '#/components/forms/DateField/utils' @@ -37,6 +38,7 @@ export function DateField({ label, isInvalid, testID, + accessibilityHint, }: DateFieldProps) { const handleOnChange = React.useCallback( (e: any) => { @@ -52,12 +54,14 @@ export function DateField({ return ( + {}} testID={testID} + accessibilityHint={accessibilityHint} /> ) diff --git a/src/components/forms/DateField/types.ts b/src/components/forms/DateField/types.ts index 129f5672d4..5400cf9037 100644 --- a/src/components/forms/DateField/types.ts +++ b/src/components/forms/DateField/types.ts @@ -4,4 +4,5 @@ export type DateFieldProps = { label: string isInvalid?: boolean testID?: string + accessibilityHint?: string } diff --git a/src/components/forms/TextField.tsx b/src/components/forms/TextField.tsx index 3cffe5b2b6..376883c9dd 100644 --- a/src/components/forms/TextField.tsx +++ b/src/components/forms/TextField.tsx @@ -126,8 +126,8 @@ export function useSharedInputStyles() { export type InputProps = Omit & { label: string - value: string - onChangeText: (value: string) => void + value?: string + onChangeText?: (value: string) => void isInvalid?: boolean inputRef?: React.RefObject } @@ -277,7 +277,7 @@ export function Icon({icon: Comp}: {icon: React.ComponentType}) { = 3, totalLength: fullHandle.length <= 253, } diff --git a/src/view/com/auth/create/Step3.tsx b/src/screens/Signup/StepCaptcha.tsx similarity index 53% rename from src/view/com/auth/create/Step3.tsx rename to src/screens/Signup/StepCaptcha.tsx index 53fdfdde81..c4181e5523 100644 --- a/src/view/com/auth/create/Step3.tsx +++ b/src/screens/Signup/StepCaptcha.tsx @@ -1,57 +1,39 @@ import React from 'react' import {ActivityIndicator, StyleSheet, View} from 'react-native' -import { - CreateAccountState, - CreateAccountDispatch, - useSubmitCreateAccount, -} from './state' -import {StepHeader} from './StepHeader' -import {ErrorMessage} from 'view/com/util/error/ErrorMessage' -import {isWeb} from 'platform/detection' import {msg} from '@lingui/macro' import {useLingui} from '@lingui/react' - import {nanoid} from 'nanoid/non-secure' +import {useSignupContext, useSubmitSignup} from '#/screens/Signup/state' import {CaptchaWebView} from 'view/com/auth/create/CaptchaWebView' -import {useTheme} from 'lib/ThemeContext' import {createFullHandle} from 'lib/strings/handles' +import {isWeb} from 'platform/detection' +import {atoms as a, useTheme} from '#/alf' +import {FormError} from '#/components/forms/FormError' +import {ScreenTransition} from '#/screens/Login/ScreenTransition' const CAPTCHA_PATH = '/gate/signup' -export function Step3({ - uiState, - uiDispatch, -}: { - uiState: CreateAccountState - uiDispatch: CreateAccountDispatch -}) { +export function StepCaptcha() { const {_} = useLingui() const theme = useTheme() - const submit = useSubmitCreateAccount(uiState, uiDispatch) + const {state, dispatch} = useSignupContext() + const submit = useSubmitSignup({state, dispatch}) const [completed, setCompleted] = React.useState(false) const stateParam = React.useMemo(() => nanoid(15), []) const url = React.useMemo(() => { - const newUrl = new URL(uiState.serviceUrl) + const newUrl = new URL(state.serviceUrl) newUrl.pathname = CAPTCHA_PATH newUrl.searchParams.set( 'handle', - createFullHandle(uiState.handle, uiState.userDomain), + createFullHandle(state.handle, state.userDomain), ) newUrl.searchParams.set('state', stateParam) - newUrl.searchParams.set('colorScheme', theme.colorScheme) - - console.log(newUrl) + newUrl.searchParams.set('colorScheme', theme.name) return newUrl.href - }, [ - uiState.serviceUrl, - uiState.handle, - uiState.userDomain, - stateParam, - theme.colorScheme, - ]) + }, [state.serviceUrl, state.handle, state.userDomain, stateParam, theme.name]) const onSuccess = React.useCallback( (code: string) => { @@ -62,33 +44,31 @@ export function Step3({ ) const onError = React.useCallback(() => { - uiDispatch({ - type: 'set-error', + dispatch({ + type: 'setError', value: _(msg`Error receiving captcha response.`), }) - }, [_, uiDispatch]) + }, [_, dispatch]) return ( - - - - {!completed ? ( - - ) : ( - - )} + + + + {!completed ? ( + + ) : ( + + )} + + - - {uiState.error ? ( - - ) : undefined} - + ) } diff --git a/src/screens/Signup/StepHandle.tsx b/src/screens/Signup/StepHandle.tsx new file mode 100644 index 0000000000..e0a79e8fb3 --- /dev/null +++ b/src/screens/Signup/StepHandle.tsx @@ -0,0 +1,134 @@ +import React from 'react' +import {View} from 'react-native' +import {useFocusEffect} from '@react-navigation/native' +import {useLingui} from '@lingui/react' +import {msg, Trans} from '@lingui/macro' +import {TimesLarge_Stroke2_Corner0_Rounded as Times} from '#/components/icons/Times' +import {Check_Stroke2_Corner0_Rounded as Check} from '#/components/icons/Check' +import {At_Stroke2_Corner0_Rounded as At} from '#/components/icons/At' +import * as TextField from '#/components/forms/TextField' +import {useSignupContext} from '#/screens/Signup/state' +import {Text} from '#/components/Typography' +import {atoms as a, useTheme} from '#/alf' +import { + createFullHandle, + IsValidHandle, + validateHandle, +} from 'lib/strings/handles' +import {ScreenTransition} from '#/screens/Login/ScreenTransition' + +export function StepHandle() { + const {_} = useLingui() + const t = useTheme() + const {state, dispatch} = useSignupContext() + + const [validCheck, setValidCheck] = React.useState({ + handleChars: false, + hyphenStartOrEnd: false, + frontLength: false, + totalLength: true, + overall: false, + }) + + useFocusEffect( + React.useCallback(() => { + console.log('run') + setValidCheck(validateHandle(state.handle, state.userDomain)) + }, [state.handle, state.userDomain]), + ) + + const onHandleChange = React.useCallback( + (value: string) => { + if (state.error) { + dispatch({type: 'setError', value: ''}) + } + + dispatch({ + type: 'setHandle', + value, + }) + }, + [dispatch, state.error], + ) + + return ( + + + + + + + + + + Your full handle will be{' '} + + @{createFullHandle(state.handle, state.userDomain)} + + + + + {state.error ? ( + + + {state.error} + + ) : undefined} + {validCheck.hyphenStartOrEnd ? ( + + + + Only contains letters, numbers, and hyphens + + + ) : ( + + + + Doesn't begin or end with a hyphen + + + )} + + + {!validCheck.totalLength ? ( + + No longer than 253 characters + + ) : ( + + At least 3 characters + + )} + + + + + ) +} + +function IsValidIcon({valid}: {valid: boolean}) { + const t = useTheme() + if (!valid) { + return + } + return +} diff --git a/src/screens/Signup/StepInfo.tsx b/src/screens/Signup/StepInfo.tsx new file mode 100644 index 0000000000..30a31884a3 --- /dev/null +++ b/src/screens/Signup/StepInfo.tsx @@ -0,0 +1,145 @@ +import React from 'react' +import {View} from 'react-native' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {atoms as a} from '#/alf' +import * as TextField from '#/components/forms/TextField' +import {Envelope_Stroke2_Corner0_Rounded as Envelope} from '#/components/icons/Envelope' +import {Lock_Stroke2_Corner0_Rounded as Lock} from '#/components/icons/Lock' +import {Ticket_Stroke2_Corner0_Rounded as Ticket} from '#/components/icons/Ticket' +import {is13, is18, useSignupContext} from '#/screens/Signup/state' +import * as DateField from '#/components/forms/DateField' +import {logger} from '#/logger' +import {Loader} from '#/components/Loader' +import {Policies} from 'view/com/auth/create/Policies' +import {HostingProvider} from '#/components/forms/HostingProvider' +import {FormError} from '#/components/forms/FormError' +import {ScreenTransition} from '#/screens/Login/ScreenTransition' + +function sanitizeDate(date: Date): Date { + if (!date || date.toString() === 'Invalid Date') { + logger.error(`Create account: handled invalid date for birthDate`, { + hasDate: !!date, + }) + return new Date() + } + return date +} + +export function StepInfo() { + const {_} = useLingui() + const {state, dispatch} = useSignupContext() + + return ( + + + + + + Hosting provider + + + dispatch({type: 'setServiceUrl', value: v}) + } + /> + + {state.isLoading ? ( + + + + ) : state.serviceDescription ? ( + <> + {state.serviceDescription.inviteCodeRequired && ( + + + Invite code + + + + { + dispatch({ + type: 'setInviteCode', + value: value.trim(), + }) + }} + label={_(msg`Required for this provider`)} + defaultValue={state.inviteCode} + autoCapitalize="none" + autoComplete="email" + keyboardType="email-address" + /> + + + )} + + + Email + + + + { + dispatch({ + type: 'setEmail', + value: value.trim(), + }) + }} + label={_(msg`Enter your email address`)} + defaultValue={state.email} + autoCapitalize="none" + autoComplete="email" + keyboardType="email-address" + /> + + + + + Password + + + + { + dispatch({ + type: 'setPassword', + value, + }) + }} + label={_(msg`Choose your password`)} + defaultValue={state.password} + secureTextEntry + autoComplete="new-password" + /> + + + + + Your birth date + + { + dispatch({ + type: 'setDateOfBirth', + value: sanitizeDate(new Date(date)), + }) + }} + label={_(msg`Date of birth`)} + accessibilityHint={_(msg`Select your date of birth`)} + /> + + + + ) : undefined} + + + ) +} diff --git a/src/screens/Signup/index.tsx b/src/screens/Signup/index.tsx new file mode 100644 index 0000000000..b1acbbdf02 --- /dev/null +++ b/src/screens/Signup/index.tsx @@ -0,0 +1,225 @@ +import React from 'react' +import {ScrollView, View} from 'react-native' +import {useLingui} from '@lingui/react' +import {msg, Trans} from '@lingui/macro' +import { + initialState, + reducer, + SignupContext, + SignupStep, + useSubmitSignup, +} from '#/screens/Signup/state' +import {StepInfo} from '#/screens/Signup/StepInfo' +import {StepHandle} from '#/screens/Signup/StepHandle' +import {StepCaptcha} from '#/screens/Signup/StepCaptcha' +import {atoms as a, useTheme} from '#/alf' +import {Button, ButtonText} from '#/components/Button' +import {Text} from '#/components/Typography' +import {LoggedOutLayout} from 'view/com/util/layouts/LoggedOutLayout' +import {FEEDBACK_FORM_URL} from 'lib/constants' +import {InlineLink} from '#/components/Link' +import {useServiceQuery} from 'state/queries/service' +import {getAgent} from 'state/session' +import {createFullHandle} from 'lib/strings/handles' +import {useAnalytics} from 'lib/analytics/analytics' + +export function Signup({onPressBack}: {onPressBack: () => void}) { + const {_} = useLingui() + const t = useTheme() + const {screen} = useAnalytics() + const [state, dispatch] = React.useReducer(reducer, initialState) + const submit = useSubmitSignup({state, dispatch}) + + const { + data: serviceInfo, + isFetching, + isError, + refetch, + } = useServiceQuery(state.serviceUrl) + + React.useEffect(() => { + screen('CreateAccount') + }, [screen]) + + React.useEffect(() => { + if (isFetching) { + dispatch({type: 'setIsLoading', value: true}) + } else if (!isFetching) { + dispatch({type: 'setIsLoading', value: false}) + } + }, [isFetching]) + + React.useEffect(() => { + if (isError) { + dispatch({type: 'setServiceDescription', value: undefined}) + dispatch({ + type: 'setError', + value: _( + msg`Unable to contact your service. Please check your Internet connection.`, + ), + }) + } else if (serviceInfo) { + dispatch({type: 'setServiceDescription', value: serviceInfo}) + dispatch({type: 'setError', value: ''}) + } + }, [_, serviceInfo, isError]) + + const onNextPress = React.useCallback(async () => { + if (state.activeStep === SignupStep.HANDLE) { + try { + dispatch({type: 'setIsLoading', value: true}) + + const res = await getAgent().resolveHandle({ + handle: createFullHandle(state.handle, state.userDomain), + }) + + if (res.data.did) { + dispatch({ + type: 'setError', + value: _(msg`That handle is already taken.`), + }) + return + } + } catch (e) { + // Don't have to handle + } finally { + dispatch({type: 'setIsLoading', value: false}) + } + } + + // phoneVerificationRequired is actually whether a captcha is required + if ( + state.activeStep === SignupStep.HANDLE && + !state.serviceDescription?.phoneVerificationRequired + ) { + submit() + return + } + + dispatch({type: 'next'}) + }, [ + _, + state.activeStep, + state.handle, + state.serviceDescription?.phoneVerificationRequired, + state.userDomain, + submit, + ]) + + const onBackPress = React.useCallback(() => { + if (state.activeStep !== SignupStep.INFO) { + dispatch({type: 'prev'}) + } else { + onPressBack() + } + }, [onPressBack, state.activeStep]) + + return ( + + + + + + + Step {state.activeStep + 1} of{' '} + {state.serviceDescription && + !state.serviceDescription.phoneVerificationRequired + ? '2' + : '3'} + + + {state.activeStep === SignupStep.INFO ? ( + Your account + ) : state.activeStep === SignupStep.HANDLE ? ( + Your user handle + ) : ( + Complete the challenge + )} + + + + {state.activeStep === SignupStep.INFO ? ( + + ) : state.activeStep === SignupStep.HANDLE ? ( + + ) : ( + + )} + + + + + {state.activeStep !== SignupStep.CAPTCHA && ( + <> + {isError ? ( + + ) : ( + + )} + + )} + + + + Having trouble?{' '} + + Contact support + + + + + + + + ) +} diff --git a/src/screens/Signup/state.ts b/src/screens/Signup/state.ts new file mode 100644 index 0000000000..1ae43612ed --- /dev/null +++ b/src/screens/Signup/state.ts @@ -0,0 +1,320 @@ +import React, {useCallback} from 'react' +import {LayoutAnimation} from 'react-native' +import * as EmailValidator from 'email-validator' +import {useLingui} from '@lingui/react' +import {msg} from '@lingui/macro' +import {cleanError} from 'lib/strings/errors' +import { + ComAtprotoServerCreateAccount, + ComAtprotoServerDescribeServer, +} from '@atproto/api' + +import {logger} from '#/logger' +import {DEFAULT_SERVICE, IS_PROD_SERVICE} from 'lib/constants' +import {createFullHandle, validateHandle} from 'lib/strings/handles' +import {getAge} from 'lib/strings/time' +import {useSessionApi} from 'state/session' +import { + DEFAULT_PROD_FEEDS, + usePreferencesSetBirthDateMutation, + useSetSaveFeedsMutation, +} from 'state/queries/preferences' +import {useOnboardingDispatch} from 'state/shell' + +export type ServiceDescription = ComAtprotoServerDescribeServer.OutputSchema + +const DEFAULT_DATE = new Date(Date.now() - 60e3 * 60 * 24 * 365 * 20) // default to 20 years ago + +export enum SignupStep { + INFO, + HANDLE, + CAPTCHA, +} + +export type SignupState = { + hasPrev: boolean + canNext: boolean + activeStep: SignupStep + + serviceUrl: string + serviceDescription?: ServiceDescription + userDomain: string + dateOfBirth: Date + email: string + password: string + inviteCode: string + handle: string + + error: string + isLoading: boolean +} + +export type SignupAction = + | {type: 'prev'} + | {type: 'next'} + | {type: 'finish'} + | {type: 'setStep'; value: SignupStep} + | {type: 'setServiceUrl'; value: string} + | {type: 'setServiceDescription'; value: ServiceDescription | undefined} + | {type: 'setEmail'; value: string} + | {type: 'setPassword'; value: string} + | {type: 'setDateOfBirth'; value: Date} + | {type: 'setInviteCode'; value: string} + | {type: 'setHandle'; value: string} + | {type: 'setVerificationCode'; value: string} + | {type: 'setError'; value: string} + | {type: 'setCanNext'; value: boolean} + | {type: 'setIsLoading'; value: boolean} + +export const initialState: SignupState = { + hasPrev: false, + canNext: false, + activeStep: SignupStep.INFO, + + serviceUrl: DEFAULT_SERVICE, + serviceDescription: undefined, + userDomain: '', + dateOfBirth: DEFAULT_DATE, + email: '', + password: '', + handle: '', + inviteCode: '', + + error: '', + isLoading: false, +} + +export function is13(date: Date) { + return getAge(date) >= 13 +} + +export function is18(date: Date) { + return getAge(date) >= 18 +} + +export function reducer(s: SignupState, a: SignupAction): SignupState { + let next = {...s} + + switch (a.type) { + case 'prev': { + if (s.activeStep !== SignupStep.INFO) { + LayoutAnimation.configureNext(LayoutAnimation.Presets.easeInEaseOut) + next.activeStep-- + next.error = '' + } + break + } + case 'next': { + if (s.activeStep !== SignupStep.CAPTCHA) { + LayoutAnimation.configureNext(LayoutAnimation.Presets.easeInEaseOut) + next.activeStep++ + next.error = '' + } + break + } + case 'setStep': { + next.activeStep = a.value + break + } + case 'setServiceUrl': { + next.serviceUrl = a.value + break + } + case 'setServiceDescription': { + LayoutAnimation.configureNext(LayoutAnimation.Presets.easeInEaseOut) + + next.serviceDescription = a.value + next.userDomain = a.value?.availableUserDomains[0] ?? '' + next.isLoading = false + break + } + + case 'setEmail': { + next.email = a.value + break + } + case 'setPassword': { + next.password = a.value + break + } + case 'setDateOfBirth': { + next.dateOfBirth = a.value + break + } + case 'setInviteCode': { + next.inviteCode = a.value + break + } + case 'setHandle': { + next.handle = a.value + break + } + case 'setCanNext': { + next.canNext = a.value + break + } + case 'setIsLoading': { + next.isLoading = a.value + break + } + case 'setError': { + next.error = a.value + break + } + } + + next.hasPrev = next.activeStep !== SignupStep.INFO + + switch (next.activeStep) { + case SignupStep.INFO: { + const isValidEmail = EmailValidator.validate(next.email) + next.canNext = + !!(next.email && next.password && next.dateOfBirth) && + (!next.serviceDescription?.inviteCodeRequired || !!next.inviteCode) && + is13(next.dateOfBirth) && + isValidEmail + break + } + case SignupStep.HANDLE: { + next.canNext = + !!next.handle && validateHandle(next.handle, next.userDomain).overall + break + } + } + + logger.debug('signup', next) + + if (s.activeStep !== next.activeStep) { + logger.debug('signup: step changed', {activeStep: next.activeStep}) + } + + return next +} + +interface IContext { + state: SignupState + dispatch: React.Dispatch +} +export const SignupContext = React.createContext({} as IContext) +export const useSignupContext = () => React.useContext(SignupContext) + +export function useSubmitSignup({ + state, + dispatch, +}: { + state: SignupState + dispatch: (action: SignupAction) => void +}) { + const {_} = useLingui() + const {createAccount} = useSessionApi() + const {mutate: setBirthDate} = usePreferencesSetBirthDateMutation() + const {mutate: setSavedFeeds} = useSetSaveFeedsMutation() + const onboardingDispatch = useOnboardingDispatch() + + return useCallback( + async (verificationCode?: string) => { + if (!state.email) { + dispatch({type: 'setStep', value: SignupStep.INFO}) + return dispatch({ + type: 'setError', + value: _(msg`Please enter your email.`), + }) + } + if (!EmailValidator.validate(state.email)) { + dispatch({type: 'setStep', value: SignupStep.INFO}) + return dispatch({ + type: 'setError', + value: _(msg`Your email appears to be invalid.`), + }) + } + if (!state.password) { + dispatch({type: 'setStep', value: SignupStep.INFO}) + return dispatch({ + type: 'setError', + value: _(msg`Please choose your password.`), + }) + } + if (!state.handle) { + dispatch({type: 'setStep', value: SignupStep.HANDLE}) + return dispatch({ + type: 'setError', + value: _(msg`Please choose your handle.`), + }) + } + if ( + state.serviceDescription?.phoneVerificationRequired && + !verificationCode + ) { + dispatch({type: 'setStep', value: SignupStep.CAPTCHA}) + return dispatch({ + type: 'setError', + value: _(msg`Please complete the verification captcha.`), + }) + } + dispatch({type: 'setError', value: ''}) + dispatch({type: 'setIsLoading', value: true}) + + try { + onboardingDispatch({type: 'start'}) // start now to avoid flashing the wrong view + await createAccount({ + service: state.serviceUrl, + email: state.email, + handle: createFullHandle(state.handle, state.userDomain), + password: state.password, + inviteCode: state.inviteCode.trim(), + verificationCode: verificationCode, + }) + setBirthDate({birthDate: state.dateOfBirth}) + if (IS_PROD_SERVICE(state.serviceUrl)) { + setSavedFeeds(DEFAULT_PROD_FEEDS) + } + } catch (e: any) { + onboardingDispatch({type: 'skip'}) // undo starting the onboard + let errMsg = e.toString() + if (e instanceof ComAtprotoServerCreateAccount.InvalidInviteCodeError) { + dispatch({ + type: 'setError', + value: _( + msg`Invite code not accepted. Check that you input it correctly and try again.`, + ), + }) + dispatch({type: 'setStep', value: SignupStep.INFO}) + return + } + + if ([400, 429].includes(e.status)) { + logger.warn('Failed to create account', {message: e}) + } else { + logger.error(`Failed to create account (${e.status} status)`, { + message: e, + }) + } + + const error = cleanError(errMsg) + const isHandleError = error.toLowerCase().includes('handle') + + dispatch({type: 'setIsLoading', value: false}) + dispatch({type: 'setError', value: cleanError(errMsg)}) + dispatch({type: 'setStep', value: isHandleError ? 2 : 1}) + } finally { + dispatch({type: 'setIsLoading', value: false}) + } + }, + [ + state.email, + state.password, + state.handle, + state.serviceDescription?.phoneVerificationRequired, + state.serviceUrl, + state.userDomain, + state.inviteCode, + state.dateOfBirth, + dispatch, + _, + onboardingDispatch, + createAccount, + setBirthDate, + setSavedFeeds, + ], + ) +} diff --git a/src/view/com/auth/LoggedOut.tsx b/src/view/com/auth/LoggedOut.tsx index 58604ec9ee..b22bbb7fe4 100644 --- a/src/view/com/auth/LoggedOut.tsx +++ b/src/view/com/auth/LoggedOut.tsx @@ -7,7 +7,7 @@ import {useNavigation} from '@react-navigation/native' import {isIOS, isNative} from '#/platform/detection' import {Login} from '#/screens/Login' -import {CreateAccount} from '#/view/com/auth/create/CreateAccount' +import {Signup} from '#/screens/Signup' import {ErrorBoundary} from '#/view/com/util/ErrorBoundary' import {s} from '#/lib/styles' import {usePalette} from '#/lib/hooks/usePalette' @@ -148,7 +148,7 @@ export function LoggedOut({onDismiss}: {onDismiss?: () => void}) { /> ) : undefined} {screenState === ScreenState.S_CreateAccount ? ( - setScreenState(ScreenState.S_LoginOrCreateAccount) } diff --git a/src/view/com/auth/create/CaptchaWebView.tsx b/src/view/com/auth/create/CaptchaWebView.tsx index b0de8b4a4b..06b605e4da 100644 --- a/src/view/com/auth/create/CaptchaWebView.tsx +++ b/src/view/com/auth/create/CaptchaWebView.tsx @@ -2,7 +2,7 @@ import React from 'react' import {WebView, WebViewNavigation} from 'react-native-webview' import {ShouldStartLoadRequest} from 'react-native-webview/lib/WebViewTypes' import {StyleSheet} from 'react-native' -import {CreateAccountState} from 'view/com/auth/create/state' +import {SignupState} from '#/screens/Signup/state' const ALLOWED_HOSTS = [ 'bsky.social', @@ -17,24 +17,24 @@ const ALLOWED_HOSTS = [ export function CaptchaWebView({ url, stateParam, - uiState, + state, onSuccess, onError, }: { url: string stateParam: string - uiState?: CreateAccountState + state?: SignupState onSuccess: (code: string) => void onError: () => void }) { const redirectHost = React.useMemo(() => { - if (!uiState?.serviceUrl) return 'bsky.app' + if (!state?.serviceUrl) return 'bsky.app' - return uiState?.serviceUrl && - new URL(uiState?.serviceUrl).host === 'staging.bsky.dev' + return state?.serviceUrl && + new URL(state?.serviceUrl).host === 'staging.bsky.dev' ? 'staging.bsky.app' : 'bsky.app' - }, [uiState?.serviceUrl]) + }, [state?.serviceUrl]) const wasSuccessful = React.useRef(false) diff --git a/src/view/com/auth/create/CreateAccount.tsx b/src/view/com/auth/create/CreateAccount.tsx deleted file mode 100644 index d193802fe0..0000000000 --- a/src/view/com/auth/create/CreateAccount.tsx +++ /dev/null @@ -1,230 +0,0 @@ -import React from 'react' -import { - ActivityIndicator, - ScrollView, - StyleSheet, - TouchableOpacity, - View, -} from 'react-native' -import {useAnalytics} from 'lib/analytics/analytics' -import {Text} from '../../util/text/Text' -import {LoggedOutLayout} from 'view/com/util/layouts/LoggedOutLayout' -import {s} from 'lib/styles' -import {usePalette} from 'lib/hooks/usePalette' -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {useCreateAccount, useSubmitCreateAccount} from './state' -import {useServiceQuery} from '#/state/queries/service' -import {FEEDBACK_FORM_URL, HITSLOP_10} from '#/lib/constants' - -import {Step1} from './Step1' -import {Step2} from './Step2' -import {Step3} from './Step3' -import {useWebMediaQueries} from '#/lib/hooks/useWebMediaQueries' -import {TextLink} from '../../util/Link' -import {getAgent} from 'state/session' -import {createFullHandle, validateHandle} from 'lib/strings/handles' - -export function CreateAccount({onPressBack}: {onPressBack: () => void}) { - const {screen} = useAnalytics() - const pal = usePalette('default') - const {_} = useLingui() - const [uiState, uiDispatch] = useCreateAccount() - const {isTabletOrDesktop} = useWebMediaQueries() - const submit = useSubmitCreateAccount(uiState, uiDispatch) - - React.useEffect(() => { - screen('CreateAccount') - }, [screen]) - - // fetch service info - // = - - const { - data: serviceInfo, - isFetching: serviceInfoIsFetching, - error: serviceInfoError, - refetch: refetchServiceInfo, - } = useServiceQuery(uiState.serviceUrl) - - React.useEffect(() => { - if (serviceInfo) { - uiDispatch({type: 'set-service-description', value: serviceInfo}) - uiDispatch({type: 'set-error', value: ''}) - } else if (serviceInfoError) { - uiDispatch({ - type: 'set-error', - value: _( - msg`Unable to contact your service. Please check your Internet connection.`, - ), - }) - } - }, [_, uiDispatch, serviceInfo, serviceInfoError]) - - // event handlers - // = - - const onPressBackInner = React.useCallback(() => { - if (uiState.canBack) { - uiDispatch({type: 'back'}) - } else { - onPressBack() - } - }, [uiState, uiDispatch, onPressBack]) - - const onPressNext = React.useCallback(async () => { - if (!uiState.canNext) { - return - } - - if (uiState.step === 2) { - if (!validateHandle(uiState.handle, uiState.userDomain).overall) { - return - } - - uiDispatch({type: 'set-processing', value: true}) - try { - const res = await getAgent().resolveHandle({ - handle: createFullHandle(uiState.handle, uiState.userDomain), - }) - - if (res.data.did) { - uiDispatch({ - type: 'set-error', - value: _(msg`That handle is already taken.`), - }) - return - } - } catch (e) { - // Don't need to handle - } finally { - uiDispatch({type: 'set-processing', value: false}) - } - - if (!uiState.isCaptchaRequired) { - try { - await submit() - } catch { - // dont need to handle here - } - // We don't need to go to the next page if there wasn't a captcha required - return - } - } - - uiDispatch({type: 'next'}) - }, [ - uiState.canNext, - uiState.step, - uiState.isCaptchaRequired, - uiState.handle, - uiState.userDomain, - uiDispatch, - _, - submit, - ]) - - // rendering - // = - - return ( - - - - {uiState.step === 1 && ( - - )} - {uiState.step === 2 && ( - - )} - {uiState.step === 3 && ( - - )} - - - - - Back - - - - {uiState.canNext ? ( - - {uiState.isProcessing ? ( - - ) : ( - - Next - - )} - - ) : serviceInfoError ? ( - refetchServiceInfo()} - accessibilityRole="button" - accessibilityLabel={_(msg`Retry`)} - accessibilityHint="" - accessibilityLiveRegion="polite" - hitSlop={HITSLOP_10}> - - Retry - - - ) : serviceInfoIsFetching ? ( - <> - - - Connecting... - - - ) : undefined} - - - - - - Having trouble?{' '} - - - - - - - - - ) -} - -const styles = StyleSheet.create({ - stepContainer: { - paddingHorizontal: 20, - paddingVertical: 20, - }, -}) diff --git a/src/view/com/auth/create/Policies.tsx b/src/view/com/auth/create/Policies.tsx index 2c7d60818e..dc3c9c1749 100644 --- a/src/view/com/auth/create/Policies.tsx +++ b/src/view/com/auth/create/Policies.tsx @@ -1,5 +1,5 @@ import React from 'react' -import {StyleSheet, View} from 'react-native' +import {Linking, StyleSheet, View} from 'react-native' import { FontAwesomeIcon, FontAwesomeIconStyle, @@ -15,9 +15,11 @@ type ServiceDescription = ComAtprotoServerDescribeServer.OutputSchema export const Policies = ({ serviceDescription, needsGuardian, + under13, }: { serviceDescription: ServiceDescription needsGuardian: boolean + under13: boolean }) => { const pal = usePalette('default') if (!serviceDescription) { @@ -53,6 +55,7 @@ export const Policies = ({ href={tos} text="Terms of Service" style={[pal.link, s.underline]} + onPress={() => Linking.openURL(tos)} />, ) } @@ -63,6 +66,7 @@ export const Policies = ({ href={pp} text="Privacy Policy" style={[pal.link, s.underline]} + onPress={() => Linking.openURL(pp)} />, ) } @@ -81,12 +85,16 @@ export const Policies = ({ By creating an account you agree to the {els}. - {needsGuardian && ( + {under13 ? ( + + You must be 13 years of age or older to sign up. + + ) : needsGuardian ? ( If you are not yet an adult according to the laws of your country, your parent or legal guardian must read these Terms on your behalf. - )} + ) : undefined} ) } diff --git a/src/view/com/auth/create/Step1.tsx b/src/view/com/auth/create/Step1.tsx deleted file mode 100644 index 1f6852f8cc..0000000000 --- a/src/view/com/auth/create/Step1.tsx +++ /dev/null @@ -1,261 +0,0 @@ -import React from 'react' -import { - ActivityIndicator, - Keyboard, - StyleSheet, - TouchableOpacity, - View, -} from 'react-native' -import {CreateAccountState, CreateAccountDispatch, is18} from './state' -import {Text} from 'view/com/util/text/Text' -import {DateInput} from 'view/com/util/forms/DateInput' -import {StepHeader} from './StepHeader' -import {s} from 'lib/styles' -import {usePalette} from 'lib/hooks/usePalette' -import {TextInput} from '../util/TextInput' -import {Policies} from './Policies' -import {ErrorMessage} from 'view/com/util/error/ErrorMessage' -import {isWeb} from 'platform/detection' -import {Trans, msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {logger} from '#/logger' -import { - FontAwesomeIcon, - FontAwesomeIconStyle, -} from '@fortawesome/react-native-fontawesome' -import {useDialogControl} from '#/components/Dialog' - -import {ServerInputDialog} from '../server-input' -import {toNiceDomain} from '#/lib/strings/url-helpers' - -function sanitizeDate(date: Date): Date { - if (!date || date.toString() === 'Invalid Date') { - logger.error(`Create account: handled invalid date for birthDate`, { - hasDate: !!date, - }) - return new Date() - } - return date -} - -export function Step1({ - uiState, - uiDispatch, -}: { - uiState: CreateAccountState - uiDispatch: CreateAccountDispatch -}) { - const pal = usePalette('default') - const {_} = useLingui() - const serverInputControl = useDialogControl() - - const onPressSelectService = React.useCallback(() => { - serverInputControl.open() - Keyboard.dismiss() - }, [serverInputControl]) - - const birthDate = React.useMemo(() => { - return sanitizeDate(uiState.birthDate) - }, [uiState.birthDate]) - - return ( - - uiDispatch({type: 'set-service-url', value: url})} - /> - - - {uiState.error ? ( - - ) : undefined} - - - - Hosting provider - - - - - - - {toNiceDomain(uiState.serviceUrl)} - - - - - - - - - - {!uiState.serviceDescription ? ( - - ) : ( - <> - {uiState.isInviteCodeRequired && ( - - - Invite code - - uiDispatch({type: 'set-invite-code', value})} - accessibilityLabel={_(msg`Invite code`)} - accessibilityHint={_(msg`Input invite code to proceed`)} - autoCapitalize="none" - autoComplete="off" - autoCorrect={false} - autoFocus={true} - /> - - )} - - {!uiState.isInviteCodeRequired || uiState.inviteCode ? ( - <> - - - Email address - - uiDispatch({type: 'set-email', value})} - accessibilityLabel={_(msg`Email`)} - accessibilityHint={_(msg`Input email for Bluesky account`)} - accessibilityLabelledBy="email" - autoCapitalize="none" - autoComplete="email" - autoCorrect={false} - autoFocus={!uiState.isInviteCodeRequired} - /> - - - - - Password - - uiDispatch({type: 'set-password', value})} - accessibilityLabel={_(msg`Password`)} - accessibilityHint={_(msg`Set password`)} - accessibilityLabelledBy="password" - autoCapitalize="none" - autoComplete="new-password" - autoCorrect={false} - /> - - - - - Your birth date - - - uiDispatch({type: 'set-birth-date', value}) - } - buttonType="default-light" - buttonStyle={[pal.border, styles.dateInputButton]} - buttonLabelType="lg" - accessibilityLabel={_(msg`Birthday`)} - accessibilityHint={_(msg`Enter your birth date`)} - accessibilityLabelledBy="birthDate" - /> - - - {uiState.serviceDescription && ( - - )} - - ) : undefined} - - )} - - ) -} - -const styles = StyleSheet.create({ - error: { - borderRadius: 6, - marginBottom: 10, - }, - dateInputButton: { - borderWidth: 1, - borderRadius: 6, - paddingVertical: 14, - }, - // @ts-expect-error: Suppressing error due to incomplete `ViewStyle` type definition in react-native-web, missing `cursor` prop as discussed in https://github.com/necolas/react-native-web/issues/832. - touchable: { - ...(isWeb && {cursor: 'pointer'}), - }, -}) diff --git a/src/view/com/auth/create/Step2.tsx b/src/view/com/auth/create/Step2.tsx deleted file mode 100644 index 5c262977f1..0000000000 --- a/src/view/com/auth/create/Step2.tsx +++ /dev/null @@ -1,140 +0,0 @@ -import React from 'react' -import {View} from 'react-native' -import {CreateAccountState, CreateAccountDispatch} from './state' -import {Text} from 'view/com/util/text/Text' -import {StepHeader} from './StepHeader' -import {s} from 'lib/styles' -import {TextInput} from '../util/TextInput' -import { - createFullHandle, - IsValidHandle, - validateHandle, -} from 'lib/strings/handles' -import {usePalette} from 'lib/hooks/usePalette' -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {atoms as a, useTheme} from '#/alf' -import {Check_Stroke2_Corner0_Rounded as Check} from '#/components/icons/Check' -import {TimesLarge_Stroke2_Corner0_Rounded as Times} from '#/components/icons/Times' -import {useFocusEffect} from '@react-navigation/native' - -/** STEP 3: Your user handle - * @field User handle - */ -export function Step2({ - uiState, - uiDispatch, -}: { - uiState: CreateAccountState - uiDispatch: CreateAccountDispatch -}) { - const pal = usePalette('default') - const {_} = useLingui() - const t = useTheme() - - const [validCheck, setValidCheck] = React.useState({ - handleChars: false, - frontLength: false, - totalLength: true, - overall: false, - }) - - useFocusEffect( - React.useCallback(() => { - setValidCheck(validateHandle(uiState.handle, uiState.userDomain)) - - // Disabling this, because we only want to run this when we focus the screen - // eslint-disable-next-line react-hooks/exhaustive-deps - }, []), - ) - - const onHandleChange = React.useCallback( - (value: string) => { - if (uiState.error) { - uiDispatch({type: 'set-error', value: ''}) - } - - setValidCheck(validateHandle(value, uiState.userDomain)) - uiDispatch({type: 'set-handle', value}) - }, - [uiDispatch, uiState.error, uiState.userDomain], - ) - - return ( - - - - - - - Your full handle will be{' '} - - @{createFullHandle(uiState.handle, uiState.userDomain)} - - - - - {uiState.error ? ( - - - - {uiState.error} - - - ) : undefined} - - - - May only contain letters and numbers - - - - - {!validCheck.totalLength ? ( - - May not be longer than 253 characters - - ) : ( - - Must be at least 3 characters - - )} - - - - - ) -} - -function IsValidIcon({valid}: {valid: boolean}) { - const t = useTheme() - - if (!valid) { - return - } - - return -} diff --git a/src/view/com/auth/create/StepHeader.tsx b/src/view/com/auth/create/StepHeader.tsx deleted file mode 100644 index a98b392d8d..0000000000 --- a/src/view/com/auth/create/StepHeader.tsx +++ /dev/null @@ -1,44 +0,0 @@ -import React from 'react' -import {StyleSheet, View} from 'react-native' -import {Text} from 'view/com/util/text/Text' -import {usePalette} from 'lib/hooks/usePalette' -import {Trans} from '@lingui/macro' -import {CreateAccountState} from './state' - -export function StepHeader({ - uiState, - title, - children, -}: React.PropsWithChildren<{uiState: CreateAccountState; title: string}>) { - const pal = usePalette('default') - const numSteps = 3 - return ( - - - - {uiState.step === 3 ? ( - Last step! - ) : ( - - Step {uiState.step} of {numSteps} - - )} - - - - {title} - - - {children} - - ) -} - -const styles = StyleSheet.create({ - container: { - flexDirection: 'row', - justifyContent: 'space-between', - alignItems: 'center', - marginBottom: 20, - }, -}) From 10943b4ff469ab540a7f28647688a3fd3001d5b4 Mon Sep 17 00:00:00 2001 From: Samuel Newman Date: Tue, 19 Mar 2024 19:52:27 +0000 Subject: [PATCH 023/222] fix merge issue (double hook) --- src/components/Lists.tsx | 1 - 1 file changed, 1 deletion(-) diff --git a/src/components/Lists.tsx b/src/components/Lists.tsx index 8e4a58007c..d3e0720286 100644 --- a/src/components/Lists.tsx +++ b/src/components/Lists.tsx @@ -150,7 +150,6 @@ export function ListMaybePlaceholder({ const t = useTheme() const {_} = useLingui() const {gtMobile, gtTablet} = useBreakpoints() - const {_} = useLingui() if (!isLoading && isError) { return ( From b226f41560f2e78d9148ec6e034fb0c00e25422a Mon Sep 17 00:00:00 2001 From: Samuel Newman Date: Tue, 19 Mar 2024 20:56:13 +0000 Subject: [PATCH 024/222] use in-button spinner instead of activity indicator --- src/screens/Login/LoginForm.tsx | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/screens/Login/LoginForm.tsx b/src/screens/Login/LoginForm.tsx index ee47aa41d3..eddcc96780 100644 --- a/src/screens/Login/LoginForm.tsx +++ b/src/screens/Login/LoginForm.tsx @@ -16,7 +16,7 @@ import {isNetworkError} from 'lib/strings/errors' import {useSessionApi} from '#/state/session' import {cleanError} from 'lib/strings/errors' import {logger} from '#/logger' -import {Button, ButtonText} from '#/components/Button' +import {Button, ButtonIcon, ButtonText} from '#/components/Button' import {atoms as a, useTheme} from '#/alf' import {Text} from '#/components/Typography' import * as TextField from '#/components/forms/TextField' @@ -25,6 +25,7 @@ import {Lock_Stroke2_Corner0_Rounded as Lock} from '#/components/icons/Lock' import {HostingProvider} from '#/components/forms/HostingProvider' import {FormContainer} from './FormContainer' import {FormError} from '#/components/forms/FormError' +import {Loader} from '#/components/Loader' type ServiceDescription = ComAtprotoServerDescribeServer.OutputSchema @@ -64,6 +65,7 @@ export const LoginForm = ({ }, [track]) const onPressNext = async () => { + if (isProcessing) return Keyboard.dismiss() setError('') setIsProcessing(true) @@ -237,8 +239,6 @@ export const LoginForm = ({ Connecting... - ) : isProcessing ? ( - ) : isReady ? ( ) : undefined} From 8b5279ce15820b48b3557e49904bb736ca53e4d3 Mon Sep 17 00:00:00 2001 From: Samuel Newman Date: Tue, 19 Mar 2024 21:10:31 +0000 Subject: [PATCH 025/222] animate login spinner --- package.json | 3 ++- src/screens/Login/LoginForm.tsx | 3 +++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index 97fd91b03a..b664dd22a2 100644 --- a/package.json +++ b/package.json @@ -312,5 +312,6 @@ }, "lint-staged": { "*{.js,.jsx,.ts,.tsx}": "yarn eslint --fix" - } + }, + "packageManager": "yarn@1.22.19+sha1.4ba7fc5c6e704fce2066ecbfb0b0d8976fe62447" } diff --git a/src/screens/Login/LoginForm.tsx b/src/screens/Login/LoginForm.tsx index eddcc96780..e9620db5c5 100644 --- a/src/screens/Login/LoginForm.tsx +++ b/src/screens/Login/LoginForm.tsx @@ -2,6 +2,7 @@ import React, {useState, useRef} from 'react' import { ActivityIndicator, Keyboard, + LayoutAnimation, TextInput, TouchableOpacity, View, @@ -67,6 +68,7 @@ export const LoginForm = ({ const onPressNext = async () => { if (isProcessing) return Keyboard.dismiss() + LayoutAnimation.configureNext(LayoutAnimation.Presets.easeInEaseOut) setError('') setIsProcessing(true) @@ -101,6 +103,7 @@ export const LoginForm = ({ }) } catch (e: any) { const errMsg = e.toString() + LayoutAnimation.configureNext(LayoutAnimation.Presets.easeInEaseOut) setIsProcessing(false) if (errMsg.includes('Authentication Required')) { logger.debug('Failed to login due to invalid credentials', { From 793710b02bca33795df968b88e7340881d572fc7 Mon Sep 17 00:00:00 2001 From: Samuel Newman Date: Tue, 19 Mar 2024 21:14:51 +0000 Subject: [PATCH 026/222] rm package manager field --- package.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/package.json b/package.json index b664dd22a2..97fd91b03a 100644 --- a/package.json +++ b/package.json @@ -312,6 +312,5 @@ }, "lint-staged": { "*{.js,.jsx,.ts,.tsx}": "yarn eslint --fix" - }, - "packageManager": "yarn@1.22.19+sha1.4ba7fc5c6e704fce2066ecbfb0b0d8976fe62447" + } } From fd448a5fab2e5239abcf4504a1de24cb7aca700c Mon Sep 17 00:00:00 2001 From: Samuel Newman Date: Tue, 19 Mar 2024 21:28:18 +0000 Subject: [PATCH 027/222] rename pencil -> pencilLine and reexport --- assets/icons/pencilLine_stroke2_corner0_rounded.svg | 1 + assets/icons/pencil_stroke2_corner0_rounded.svg | 1 - src/components/forms/HostingProvider.tsx | 2 +- src/components/icons/Pencil.tsx | 4 ++-- 4 files changed, 4 insertions(+), 4 deletions(-) create mode 100644 assets/icons/pencilLine_stroke2_corner0_rounded.svg delete mode 100644 assets/icons/pencil_stroke2_corner0_rounded.svg diff --git a/assets/icons/pencilLine_stroke2_corner0_rounded.svg b/assets/icons/pencilLine_stroke2_corner0_rounded.svg new file mode 100644 index 0000000000..3ff2161d9c --- /dev/null +++ b/assets/icons/pencilLine_stroke2_corner0_rounded.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/pencil_stroke2_corner0_rounded.svg b/assets/icons/pencil_stroke2_corner0_rounded.svg deleted file mode 100644 index 7341989894..0000000000 --- a/assets/icons/pencil_stroke2_corner0_rounded.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/components/forms/HostingProvider.tsx b/src/components/forms/HostingProvider.tsx index df506b77c1..c8cd7263f8 100644 --- a/src/components/forms/HostingProvider.tsx +++ b/src/components/forms/HostingProvider.tsx @@ -4,7 +4,7 @@ import {TouchableOpacity, View} from 'react-native' import {isAndroid} from '#/platform/detection' import {atoms as a, useTheme} from '#/alf' import {Globe_Stroke2_Corner0_Rounded as Globe} from '#/components/icons/Globe' -import {Pencil_Stroke2_Corner0_Rounded as Pencil} from '#/components/icons/Pencil' +import {PencilLine_Stroke2_Corner0_Rounded as Pencil} from '#/components/icons/Pencil' import * as TextField from './TextField' import {useDialogControl} from '../Dialog' import {Text} from '../Typography' diff --git a/src/components/icons/Pencil.tsx b/src/components/icons/Pencil.tsx index 1b7fc17cf4..854d51a3b2 100644 --- a/src/components/icons/Pencil.tsx +++ b/src/components/icons/Pencil.tsx @@ -1,5 +1,5 @@ import {createSinglePathSVG} from './TEMPLATE' -export const Pencil_Stroke2_Corner0_Rounded = createSinglePathSVG({ - path: 'M13.586 1.5a2 2 0 0 1 2.828 0L19.5 4.586a2 2 0 0 1 0 2.828l-13 13A2 2 0 0 1 5.086 21H1a1 1 0 0 1-1-1v-4.086A2 2 0 0 1 .586 14.5l13-13ZM15 2.914l-13 13V19h3.086l13-13L15 2.914ZM11 20a1 1 0 0 1 1-1h7a1 1 0 1 1 0 2h-7a1 1 0 0 1-1-1Z', +export const PencilLine_Stroke2_Corner0_Rounded = createSinglePathSVG({ + path: 'M15.586 2.5a2 2 0 0 1 2.828 0L21.5 5.586a2 2 0 0 1 0 2.828l-13 13A2 2 0 0 1 7.086 22H3a1 1 0 0 1-1-1v-4.086a2 2 0 0 1 .586-1.414l13-13ZM17 3.914l-13 13V20h3.086l13-13L17 3.914ZM13 21a1 1 0 0 1 1-1h7a1 1 0 1 1 0 2h-7a1 1 0 0 1-1-1Z', }) From 717c53bea82cfe902af9d1ea17d43b4d8064de04 Mon Sep 17 00:00:00 2001 From: Samuel Newman Date: Tue, 19 Mar 2024 21:30:41 +0000 Subject: [PATCH 028/222] remove explicit height/width --- src/components/forms/HostingProvider.tsx | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/components/forms/HostingProvider.tsx b/src/components/forms/HostingProvider.tsx index c8cd7263f8..c0dd7218ed 100644 --- a/src/components/forms/HostingProvider.tsx +++ b/src/components/forms/HostingProvider.tsx @@ -57,11 +57,7 @@ export function HostingProvider({ t.atoms.bg_contrast_100, {marginLeft: 'auto', left: 6, padding: 6}, ]}> - + From 43be4f7d3d39894c5145ab1d75fe695c96c98c13 Mon Sep 17 00:00:00 2001 From: cdfzo Date: Tue, 19 Mar 2024 22:32:59 +0100 Subject: [PATCH 029/222] Fix typo in tagMenuSearchByUser (#3181) --- src/components/TagMenu/index.web.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/TagMenu/index.web.tsx b/src/components/TagMenu/index.web.tsx index b2f5c90756..4336223861 100644 --- a/src/components/TagMenu/index.web.tsx +++ b/src/components/TagMenu/index.web.tsx @@ -87,7 +87,7 @@ export function TagMenu({ author: authorHandle, }) }, - testID: 'tagMenuSeachByUser', + testID: 'tagMenuSearchByUser', icon: { ios: { name: 'magnifyingglass', From 8556016a69642477e497fb7d695521b01945febc Mon Sep 17 00:00:00 2001 From: Samuel Newman Date: Tue, 19 Mar 2024 21:37:12 +0000 Subject: [PATCH 030/222] remove textfield references from hosting provider --- src/components/forms/HostingProvider.tsx | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/components/forms/HostingProvider.tsx b/src/components/forms/HostingProvider.tsx index c0dd7218ed..80660b5804 100644 --- a/src/components/forms/HostingProvider.tsx +++ b/src/components/forms/HostingProvider.tsx @@ -5,7 +5,6 @@ import {isAndroid} from '#/platform/detection' import {atoms as a, useTheme} from '#/alf' import {Globe_Stroke2_Corner0_Rounded as Globe} from '#/components/icons/Globe' import {PencilLine_Stroke2_Corner0_Rounded as Pencil} from '#/components/icons/Pencil' -import * as TextField from './TextField' import {useDialogControl} from '../Dialog' import {Text} from '../Typography' import {ServerInputDialog} from '#/view/com/auth/server-input' @@ -49,7 +48,9 @@ export function HostingProvider({ t.atoms.bg_contrast_25, ]} onPress={onPressSelectService}> - + + + {toNiceDomain(serviceUrl)} - + From bdf77f8548dc62571ecb6c70b320b866360fbec1 Mon Sep 17 00:00:00 2001 From: Paul Frazee Date: Tue, 19 Mar 2024 14:43:00 -0700 Subject: [PATCH 031/222] Fix detection of !no-unauthenticated (#3279) --- src/components/moderation/ScreenHider.tsx | 3 ++- src/view/com/post-thread/PostThread.tsx | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/components/moderation/ScreenHider.tsx b/src/components/moderation/ScreenHider.tsx index 71ca85a926..4e3a9680f5 100644 --- a/src/components/moderation/ScreenHider.tsx +++ b/src/components/moderation/ScreenHider.tsx @@ -56,7 +56,8 @@ export function ScreenHider({ const isNoPwi = !!modui.blurs.find( cause => - cause.type === 'label' && cause.labelDef.id === '!no-unauthenticated', + cause.type === 'label' && + cause.labelDef.identifier === '!no-unauthenticated', ) return ( - cause.type === 'label' && cause.labelDef.id === '!no-unauthenticated', + cause.type === 'label' && + cause.labelDef.identifier === '!no-unauthenticated', ) }, [rootPost, moderationOpts]) From 2428d22368a96450f9a99b79a7e689a57e899a48 Mon Sep 17 00:00:00 2001 From: Samuel Newman Date: Tue, 19 Mar 2024 21:58:53 +0000 Subject: [PATCH 032/222] change hosting provider and forgot pw touchables to button --- src/components/forms/HostingProvider.tsx | 54 ++++++++++++++++-------- src/screens/Login/LoginForm.tsx | 12 +++--- 2 files changed, 43 insertions(+), 23 deletions(-) diff --git a/src/components/forms/HostingProvider.tsx b/src/components/forms/HostingProvider.tsx index 80660b5804..1653b0da41 100644 --- a/src/components/forms/HostingProvider.tsx +++ b/src/components/forms/HostingProvider.tsx @@ -1,5 +1,7 @@ import React from 'react' -import {TouchableOpacity, View} from 'react-native' +import {View} from 'react-native' +import {msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' import {isAndroid} from '#/platform/detection' import {atoms as a, useTheme} from '#/alf' @@ -9,6 +11,7 @@ import {useDialogControl} from '../Dialog' import {Text} from '../Typography' import {ServerInputDialog} from '#/view/com/auth/server-input' import {toNiceDomain} from '#/lib/strings/url-helpers' +import {Button} from '../Button' export function HostingProvider({ serviceUrl, @@ -21,6 +24,7 @@ export function HostingProvider({ }) { const serverInputControl = useDialogControl() const t = useTheme() + const {_} = useLingui() const onPressSelectService = React.useCallback(() => { serverInputControl.open() @@ -35,8 +39,11 @@ export function HostingProvider({ control={serverInputControl} onSelect={onSelectServiceUrl} /> - - - - - {toNiceDomain(serviceUrl)} - - - - + {({hovered}) => ( + <> + + + + {toNiceDomain(serviceUrl)} + + + + + )} + ) } diff --git a/src/screens/Login/LoginForm.tsx b/src/screens/Login/LoginForm.tsx index e9620db5c5..8c9ef3e271 100644 --- a/src/screens/Login/LoginForm.tsx +++ b/src/screens/Login/LoginForm.tsx @@ -4,7 +4,6 @@ import { Keyboard, LayoutAnimation, TextInput, - TouchableOpacity, View, } from 'react-native' import {ComAtprotoServerDescribeServer} from '@atproto/api' @@ -193,22 +192,23 @@ export const LoginForm = ({ : _(msg`Input the password tied to ${identifier}`) } /> - - + Forgot? - + From 1f02ed5d871a4b6675f3c344a4cae2aea26896b3 Mon Sep 17 00:00:00 2001 From: Samuel Newman Date: Tue, 19 Mar 2024 22:03:49 +0000 Subject: [PATCH 033/222] change choose account form to use Button + add hover styles --- src/screens/Login/ChooseAccountForm.tsx | 90 +++++++++++++++---------- 1 file changed, 54 insertions(+), 36 deletions(-) diff --git a/src/screens/Login/ChooseAccountForm.tsx b/src/screens/Login/ChooseAccountForm.tsx index 7a3a4555b2..4fcca5f520 100644 --- a/src/screens/Login/ChooseAccountForm.tsx +++ b/src/screens/Login/ChooseAccountForm.tsx @@ -1,5 +1,5 @@ import React from 'react' -import {TouchableOpacity, View} from 'react-native' +import {View} from 'react-native' import {Trans, msg} from '@lingui/macro' import {useLingui} from '@lingui/react' import flattenReactChildren from 'react-keyed-flatten-children' @@ -67,31 +67,42 @@ function AccountItem({ }, [account, onSelect]) return ( - - - - - - - - {profile?.displayName || account.handle}{' '} + label={ + isCurrentAccount + ? _(msg`Continue as ${account.handle} (currently signed in)`) + : _(msg`Sign in as ${account.handle}`) + }> + {({hovered}) => ( + + + + + + + {profile?.displayName || account.handle}{' '} + + {account.handle} - {account.handle} - - {isCurrentAccount ? ( - - ) : ( - - )} - - + {isCurrentAccount ? ( + + ) : ( + + )} + + )} + ) } export const ChooseAccountForm = ({ @@ -149,28 +160,35 @@ export const ChooseAccountForm = ({ isCurrentAccount={account.did === currentAccount?.did} /> ))} - onSelectAccount(undefined)} - accessibilityRole="button" - accessibilityLabel={_(msg`Login to account that is not listed`)} - accessibilityHint=""> - - + {({hovered}) => ( + - Other account - - - - + + Other account + + + + )} + From 49cd7e4bcf599c17c3e466cc9f483ec063e926c1 Mon Sep 17 00:00:00 2001 From: Samuel Newman Date: Tue, 19 Mar 2024 22:06:59 +0000 Subject: [PATCH 034/222] add pressed state and rm cloneElement --- src/screens/Login/ChooseAccountForm.tsx | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/src/screens/Login/ChooseAccountForm.tsx b/src/screens/Login/ChooseAccountForm.tsx index 4fcca5f520..dd807ba3a8 100644 --- a/src/screens/Login/ChooseAccountForm.tsx +++ b/src/screens/Login/ChooseAccountForm.tsx @@ -35,13 +35,7 @@ function Group({children}: {children: React.ReactNode}) { {i > 0 ? ( ) : null} - {React.cloneElement(child, { - // @ts-ignore - style: { - borderRadius: 0, - borderWidth: 0, - }, - })} + {child} ) : null })} @@ -77,14 +71,14 @@ function AccountItem({ ? _(msg`Continue as ${account.handle} (currently signed in)`) : _(msg`Sign in as ${account.handle}`) }> - {({hovered}) => ( + {({hovered, pressed}) => ( @@ -165,7 +159,7 @@ export const ChooseAccountForm = ({ style={[a.flex_1]} onPress={() => onSelectAccount(undefined)} label={_(msg`Login to account that is not listed`)}> - {({hovered}) => ( + {({hovered, pressed}) => ( Date: Tue, 19 Mar 2024 22:16:29 +0000 Subject: [PATCH 035/222] hog FormError --- src/components/forms/FormError.tsx | 25 ++++++++++--------------- 1 file changed, 10 insertions(+), 15 deletions(-) diff --git a/src/components/forms/FormError.tsx b/src/components/forms/FormError.tsx index 3c6a8649d9..05f2e58930 100644 --- a/src/components/forms/FormError.tsx +++ b/src/components/forms/FormError.tsx @@ -1,10 +1,9 @@ import React from 'react' -import {StyleSheet, View} from 'react-native' +import {View} from 'react-native' import {Warning_Stroke2_Corner0_Rounded as Warning} from '#/components/icons/Warning' import {Text} from '#/components/Typography' import {atoms as a, useTheme} from '#/alf' -import {colors} from '#/lib/styles' export function FormError({error}: {error?: string}) { const t = useTheme() @@ -12,7 +11,15 @@ export function FormError({error}: {error?: string}) { if (!error) return null return ( - + {error} @@ -20,15 +27,3 @@ export function FormError({error}: {error?: string}) { ) } - -const styles = StyleSheet.create({ - error: { - backgroundColor: colors.red4, - flexDirection: 'row', - alignItems: 'center', - marginBottom: 15, - borderRadius: 8, - paddingHorizontal: 8, - paddingVertical: 8, - }, -}) From a90566d86439a96509967f522069a4be729dfc1b Mon Sep 17 00:00:00 2001 From: Hailey Date: Tue, 19 Mar 2024 17:47:10 -0700 Subject: [PATCH 036/222] use different labels for `porn` and `sexual` (#3282) * use different labels for `porn` and `sexual` * newline --- src/lib/moderation/useModerationCauseDescription.ts | 6 +++++- src/view/com/posts/FeedErrorMessage.tsx | 8 ++++---- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/lib/moderation/useModerationCauseDescription.ts b/src/lib/moderation/useModerationCauseDescription.ts index 46771e9584..57b50d7779 100644 --- a/src/lib/moderation/useModerationCauseDescription.ts +++ b/src/lib/moderation/useModerationCauseDescription.ts @@ -118,11 +118,15 @@ export function useModerationCauseDescription( (labeler?.creator.handle ? '@' + labeler?.creator.handle : undefined) if (!source) { if (cause.label.src === BSKY_LABELER_DID) { - source = 'Bluesky Moderation' + source = 'Bluesky Moderation Service' } else { source = cause.label.src } } + if (def.identifier === 'porn' || def.identifier === 'sexual') { + strings.name = 'Adult Content' + } + return { icon: def.identifier === '!no-unauthenticated' diff --git a/src/view/com/posts/FeedErrorMessage.tsx b/src/view/com/posts/FeedErrorMessage.tsx index c52090f975..d4ca38d07e 100644 --- a/src/view/com/posts/FeedErrorMessage.tsx +++ b/src/view/com/posts/FeedErrorMessage.tsx @@ -46,7 +46,7 @@ export function FeedErrorMessage({ if ( typeof knownError !== 'undefined' && knownError !== KnownError.Unknown && - feedDesc.startsWith('feedgen') + (feedDesc.startsWith('feedgen') || knownError === KnownError.FeedNSFPublic) ) { return ( Date: Tue, 19 Mar 2024 17:54:40 -0700 Subject: [PATCH 037/222] Various e2e test fixes (#3284) * Just use the first picture every time * Add missing testIDs * Various test fixes * Use simplified link fetcher for e2e * Disable tests for now-n * Update test-env creation --- __e2e__/tests/curate-lists.test.ts | 4 +- __e2e__/tests/home-screen.test.ts | 2 +- ...nvites-and-text-verification.test.skip.ts} | 0 __e2e__/tests/profile-screen.test.ts | 8 ++-- ...test.ts => text-verification.test.skip.ts} | 12 ++--- jest/test-pds.ts | 36 +++++++++++++-- src/lib/media/picker.e2e.tsx | 3 +- .../com/composer/useExternalLinkFetch.e2e.ts | 45 +++++++++++++++++++ src/view/com/util/UserAvatar.tsx | 5 ++- src/view/com/util/UserBanner.tsx | 5 ++- 10 files changed, 101 insertions(+), 19 deletions(-) rename __e2e__/tests/{invites-and-text-verification.test.ts => invites-and-text-verification.test.skip.ts} (100%) rename __e2e__/tests/{text-verification.test.ts => text-verification.test.skip.ts} (93%) create mode 100644 src/view/com/composer/useExternalLinkFetch.e2e.ts diff --git a/__e2e__/tests/curate-lists.test.ts b/__e2e__/tests/curate-lists.test.ts index f188b154bb..2c44fa5df1 100644 --- a/__e2e__/tests/curate-lists.test.ts +++ b/__e2e__/tests/curate-lists.test.ts @@ -64,7 +64,7 @@ describe('Curate lists', () => { await element(by.text('Edit list details')).tap() await expect(element(by.id('createOrEditListModal'))).toBeVisible() await element(by.id('changeAvatarBtn')).tap() - await element(by.text('Library')).tap() + await element(by.text('Upload from Library')).tap() await sleep(3e3) await element(by.id('saveBtn')).tap() await expect(element(by.id('createOrEditListModal'))).not.toBeVisible() @@ -81,7 +81,7 @@ describe('Curate lists', () => { await element(by.text('Edit list details')).tap() await expect(element(by.id('createOrEditListModal'))).toBeVisible() await element(by.id('changeAvatarBtn')).tap() - await element(by.text('Remove')).tap() + await element(by.text('Remove Avatar')).tap() await element(by.id('saveBtn')).tap() await expect(element(by.id('createOrEditListModal'))).not.toBeVisible() await expect(element(by.id('userAvatarFallback'))).toExist() diff --git a/__e2e__/tests/home-screen.test.ts b/__e2e__/tests/home-screen.test.ts index ce7f1643bd..a83a34edc6 100644 --- a/__e2e__/tests/home-screen.test.ts +++ b/__e2e__/tests/home-screen.test.ts @@ -17,7 +17,7 @@ describe('Home screen', () => { it('Can go to feeds page using feeds button in tab bar', async () => { await element(by.id('homeScreenFeedTabs-Feeds ✨')).tap() - await expect(element(by.text('Discover new feeds'))).toBeVisible() + await expect(element(by.text('Discover New Feeds'))).toBeVisible() }) it('Feeds button disappears after pinning a feed', async () => { diff --git a/__e2e__/tests/invites-and-text-verification.test.ts b/__e2e__/tests/invites-and-text-verification.test.skip.ts similarity index 100% rename from __e2e__/tests/invites-and-text-verification.test.ts rename to __e2e__/tests/invites-and-text-verification.test.skip.ts diff --git a/__e2e__/tests/profile-screen.test.ts b/__e2e__/tests/profile-screen.test.ts index 7ff43642f9..13d0fa8efb 100644 --- a/__e2e__/tests/profile-screen.test.ts +++ b/__e2e__/tests/profile-screen.test.ts @@ -70,10 +70,10 @@ describe('Profile screen', () => { await element(by.id('profileHeaderEditProfileButton')).tap() await expect(element(by.id('editProfileModal'))).toBeVisible() await element(by.id('changeBannerBtn')).tap() - await element(by.text('Library')).tap() + await element(by.text('Upload from Library')).tap() await sleep(3e3) await element(by.id('changeAvatarBtn')).tap() - await element(by.text('Library')).tap() + await element(by.text('Upload from Library')).tap() await sleep(3e3) await element(by.id('editProfileSaveBtn')).tap() await expect(element(by.id('editProfileModal'))).not.toBeVisible() @@ -87,9 +87,9 @@ describe('Profile screen', () => { await element(by.id('profileHeaderEditProfileButton')).tap() await expect(element(by.id('editProfileModal'))).toBeVisible() await element(by.id('changeBannerBtn')).tap() - await element(by.text('Remove')).tap() + await element(by.text('Remove Banner')).tap() await element(by.id('changeAvatarBtn')).tap() - await element(by.text('Remove')).tap() + await element(by.text('Remove Avatar')).tap() await element(by.id('editProfileSaveBtn')).tap() await expect(element(by.id('editProfileModal'))).not.toBeVisible() await expect(element(by.id('userBannerFallback'))).toExist() diff --git a/__e2e__/tests/text-verification.test.ts b/__e2e__/tests/text-verification.test.skip.ts similarity index 93% rename from __e2e__/tests/text-verification.test.ts rename to __e2e__/tests/text-verification.test.skip.ts index 79b14aecaa..bd19e66b27 100644 --- a/__e2e__/tests/text-verification.test.ts +++ b/__e2e__/tests/text-verification.test.skip.ts @@ -12,6 +12,7 @@ describe('Create account', () => { }) it('I can create a new account with text verification', async () => { + console.log('SERVICE IS', service) await element(by.id('e2eOpenLoggedOutView')).tap() await element(by.id('createAccountButton')).tap() @@ -28,17 +29,18 @@ describe('Create account', () => { await device.takeScreenshot('4- entered account details') await element(by.id('nextBtn')).tap() + await element(by.id('handleInput')).typeText('text-verification-test') + await device.takeScreenshot('5- entered handle') + await element(by.id('nextBtn')).tap() + await element(by.id('phoneInput')).typeText('8042221111') await element(by.id('requestCodeBtn')).tap() - await device.takeScreenshot('5- requested code') + await device.takeScreenshot('6- requested code') await element(by.id('codeInput')).typeText('000000') - await device.takeScreenshot('6- entered code') + await device.takeScreenshot('7- entered code') await element(by.id('nextBtn')).tap() - await element(by.id('handleInput')).typeText('text-verification-test') - await device.takeScreenshot('7- entered handle') - await element(by.id('nextBtn')).tap() await expect(element(by.id('onboardingInterests'))).toBeVisible() diff --git a/jest/test-pds.ts b/jest/test-pds.ts index 51d9643947..b70a9abf08 100644 --- a/jest/test-pds.ts +++ b/jest/test-pds.ts @@ -72,6 +72,7 @@ export async function createServer( const phoneParams = phoneRequired ? { phoneVerificationRequired: true, + phoneVerificationProvider: 'twilio', twilioAccountSid: 'ACXXXXXXX', twilioAuthToken: 'AUTH', twilioServiceSid: 'VAXXXXXXXX', @@ -95,6 +96,35 @@ export async function createServer( }) mockTwilio(testNet.pds) + // add the test mod authority + if (!phoneRequired) { + const agent = new BskyAgent({service: pdsUrl}) + const res = await agent.api.com.atproto.server.createAccount({ + email: 'mod-authority@test.com', + handle: 'mod-authority.test', + password: 'hunter2', + }) + agent.api.setHeader('Authorization', `Bearer ${res.data.accessJwt}`) + await agent.api.app.bsky.actor.profile.create( + {repo: res.data.did}, + { + displayName: 'Dev-env Moderation', + description: `The pretend version of mod.bsky.app`, + }, + ) + + await agent.api.app.bsky.labeler.service.create( + {repo: res.data.did, rkey: 'self'}, + { + policies: { + labelValues: ['!hide', '!warn'], + labelValueDefinitions: [], + }, + createdAt: new Date().toISOString(), + }, + ) + } + const pic = fs.readFileSync( path.join(__dirname, '..', 'assets', 'default-avatar.png'), ) @@ -455,13 +485,13 @@ async function getPort(start = 3000) { } export const mockTwilio = (pds: TestPds) => { - if (!pds.ctx.twilio) return + if (!pds.ctx.phoneVerifier) return - pds.ctx.twilio.sendCode = async (_number: string) => { + pds.ctx.phoneVerifier.sendCode = async (_number: string) => { // do nothing } - pds.ctx.twilio.verifyCode = async (_number: string, code: string) => { + pds.ctx.phoneVerifier.verifyCode = async (_number: string, code: string) => { return code === '000000' } } diff --git a/src/lib/media/picker.e2e.tsx b/src/lib/media/picker.e2e.tsx index d7b6080417..31702ab227 100644 --- a/src/lib/media/picker.e2e.tsx +++ b/src/lib/media/picker.e2e.tsx @@ -3,7 +3,6 @@ import RNFS from 'react-native-fs' import {CropperOptions} from './types' import {compressIfNeeded} from './manip' -let _imageCounter = 0 async function getFile() { let files = await RNFS.readDir( RNFS.LibraryDirectoryPath.split('/') @@ -12,7 +11,7 @@ async function getFile() { .join('/'), ) files = files.filter(file => file.path.endsWith('.JPG')) - const file = files[_imageCounter++ % files.length] + const file = files[0] return await compressIfNeeded({ path: file.path, mime: 'image/jpeg', diff --git a/src/view/com/composer/useExternalLinkFetch.e2e.ts b/src/view/com/composer/useExternalLinkFetch.e2e.ts new file mode 100644 index 0000000000..ccf619db37 --- /dev/null +++ b/src/view/com/composer/useExternalLinkFetch.e2e.ts @@ -0,0 +1,45 @@ +import {useState, useEffect} from 'react' +import * as apilib from 'lib/api/index' +import {getLinkMeta} from 'lib/link-meta/link-meta' +import {ComposerOpts} from 'state/shell/composer' +import {getAgent} from '#/state/session' + +export function useExternalLinkFetch({}: { + setQuote: (opts: ComposerOpts['quote']) => void +}) { + const [extLink, setExtLink] = useState( + undefined, + ) + + useEffect(() => { + let aborted = false + const cleanup = () => { + aborted = true + } + if (!extLink) { + return cleanup + } + if (!extLink.meta) { + getLinkMeta(getAgent(), extLink.uri).then(meta => { + if (aborted) { + return + } + setExtLink({ + uri: extLink.uri, + isLoading: !!meta.image, + meta, + }) + }) + return cleanup + } + if (extLink.isLoading) { + setExtLink({ + ...extLink, + isLoading: false, // done + }) + } + return cleanup + }, [extLink]) + + return {extLink, setExtLink} +} diff --git a/src/view/com/util/UserAvatar.tsx b/src/view/com/util/UserAvatar.tsx index 8656c3f518..4beedbd5b4 100644 --- a/src/view/com/util/UserAvatar.tsx +++ b/src/view/com/util/UserAvatar.tsx @@ -298,7 +298,10 @@ let EditableUserAvatar = ({ {({props}) => ( - + {avatar ? ( {({props}) => ( - + {banner ? ( Date: Wed, 20 Mar 2024 00:56:31 +0000 Subject: [PATCH 038/222] [Statsig] Track feed refresh (#3283) --- src/lib/statsig/events.ts | 4 ++++ src/view/com/feeds/FeedPage.tsx | 9 +++++++++ src/view/com/posts/Feed.tsx | 8 ++++++-- 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/src/lib/statsig/events.ts b/src/lib/statsig/events.ts index b91a15ecb1..420c58ed29 100644 --- a/src/lib/statsig/events.ts +++ b/src/lib/statsig/events.ts @@ -9,6 +9,10 @@ export type LogEvents = { feedType: string itemCount: number } + 'feed:refresh': { + feedType: string + reason: 'pull-to-refresh' | 'soft-reset' | 'load-latest' + } 'post:create': { imageCount: number isReply: boolean diff --git a/src/view/com/feeds/FeedPage.tsx b/src/view/com/feeds/FeedPage.tsx index e6b5d1fb68..2d0736b096 100644 --- a/src/view/com/feeds/FeedPage.tsx +++ b/src/view/com/feeds/FeedPage.tsx @@ -22,6 +22,7 @@ import {listenSoftReset} from '#/state/events' import {truncateAndInvalidate} from '#/state/queries/util' import {TabState, getTabState, getRootNavigation} from '#/lib/routes/helpers' import {isNative} from '#/platform/detection' +import {logEvent} from '#/lib/statsig/statsig' const POLL_FREQ = 60e3 // 60sec @@ -68,6 +69,10 @@ export function FeedPage({ scrollToTop() truncateAndInvalidate(queryClient, FEED_RQKEY(feed)) setHasNew(false) + logEvent('feed:refresh', { + feedType: feed.split('|')[0], + reason: 'soft-reset', + }) } }, [navigation, isPageFocused, scrollToTop, queryClient, feed, setHasNew]) @@ -89,6 +94,10 @@ export function FeedPage({ scrollToTop() truncateAndInvalidate(queryClient, FEED_RQKEY(feed)) setHasNew(false) + logEvent('feed:refresh', { + feedType: feed.split('|')[0], + reason: 'load-latest', + }) }, [scrollToTop, feed, queryClient, setHasNew]) return ( diff --git a/src/view/com/posts/Feed.tsx b/src/view/com/posts/Feed.tsx index b86646a4dc..8afcce94f2 100644 --- a/src/view/com/posts/Feed.tsx +++ b/src/view/com/posts/Feed.tsx @@ -90,6 +90,7 @@ let Feed = ({ const [isPTRing, setIsPTRing] = React.useState(false) const checkForNewRef = React.useRef<(() => void) | null>(null) const lastFetchRef = React.useRef(Date.now()) + const feedType = feed.split('|')[0] const opts = React.useMemo( () => ({enabled, ignoreFilterFor}), @@ -214,6 +215,10 @@ let Feed = ({ const onRefresh = React.useCallback(async () => { track('Feed:onRefresh') + logEvent('feed:refresh', { + feedType: feedType, + reason: 'pull-to-refresh', + }) setIsPTRing(true) try { await refetch() @@ -222,9 +227,8 @@ let Feed = ({ logger.error('Failed to refresh posts feed', {message: err}) } setIsPTRing(false) - }, [refetch, track, setIsPTRing, onHasNew]) + }, [refetch, track, setIsPTRing, onHasNew, feedType]) - const feedType = feed.split('|')[0] const onEndReached = React.useCallback(async () => { if (isFetching || !hasNextPage || isError) return From 2e2fae378af09682370e9b4ebf59d32cae1b848c Mon Sep 17 00:00:00 2001 From: Paul Frazee Date: Tue, 19 Mar 2024 20:21:25 -0700 Subject: [PATCH 039/222] Set keyboardDismisMode to interactive on the report dialog (#3288) --- src/components/Dialog/index.tsx | 8 ++++++-- src/components/Dialog/types.ts | 8 +++++++- src/components/ReportDialog/index.tsx | 4 +++- 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/src/components/Dialog/index.tsx b/src/components/Dialog/index.tsx index 0da2919c56..a85a1c4fd4 100644 --- a/src/components/Dialog/index.tsx +++ b/src/components/Dialog/index.tsx @@ -206,12 +206,16 @@ export function Inner({children, style}: DialogInnerProps) { ) } -export function ScrollableInner({children, style}: DialogInnerProps) { +export function ScrollableInner({ + children, + keyboardDismissMode, + style, +}: DialogInnerProps) { const insets = useSafeAreaInsets() return ( | DialogInnerPropsBase<{ label: string accessibilityLabelledBy?: undefined accessibilityDescribedBy?: undefined + keyboardDismissMode?: ScrollViewProps['keyboardDismissMode'] }> diff --git a/src/components/ReportDialog/index.tsx b/src/components/ReportDialog/index.tsx index f01ff3f3b1..6a7aa6ff25 100644 --- a/src/components/ReportDialog/index.tsx +++ b/src/components/ReportDialog/index.tsx @@ -37,7 +37,9 @@ function ReportDialogInner(props: ReportDialogProps) { const isLoading = useDelayedLoading(500, isLabelerLoading) return ( - + {isLoading ? ( From 6255e33b501c1cd8d0b1e741516f4ab54a84098d Mon Sep 17 00:00:00 2001 From: Paul Frazee Date: Tue, 19 Mar 2024 20:22:52 -0700 Subject: [PATCH 040/222] Run intl:extract --- src/locale/locales/ca/messages.po | 2550 ++++++++++++++++------- src/locale/locales/de/messages.po | 2552 ++++++++++++++++------- src/locale/locales/en/messages.po | 2512 +++++++++++++++------- src/locale/locales/es/messages.po | 2536 ++++++++++++++++------- src/locale/locales/fi/messages.po | 2821 +++++++++++++++++-------- src/locale/locales/fr/messages.po | 2552 ++++++++++++++++------- src/locale/locales/hi/messages.po | 2530 ++++++++++++++++------- src/locale/locales/id/messages.po | 2545 ++++++++++++++++------- src/locale/locales/it/messages.po | 2871 ++++++++++++++++++-------- src/locale/locales/ja/messages.po | 2552 ++++++++++++++++------- src/locale/locales/ko/messages.po | 1094 ++++++---- src/locale/locales/pt-BR/messages.po | 2552 ++++++++++++++++------- src/locale/locales/uk/messages.po | 2553 ++++++++++++++++------- src/locale/locales/zh-CN/messages.po | 2554 ++++++++++++++++------- 14 files changed, 24599 insertions(+), 10175 deletions(-) diff --git a/src/locale/locales/ca/messages.po b/src/locale/locales/ca/messages.po index 0fd11dab60..a173614898 100644 --- a/src/locale/locales/ca/messages.po +++ b/src/locale/locales/ca/messages.po @@ -32,7 +32,7 @@ msgstr "(sense correu)" #~ msgid "{0} {purposeLabel} List" #~ msgstr "Llista {purposeLabel} {0}" -#: src/view/com/profile/ProfileHeader.tsx:593 +#: src/screens/Profile/Header/Metrics.tsx:45 msgid "{following} following" msgstr "{following} seguint" @@ -54,7 +54,7 @@ msgstr "{following} seguint" #~ msgid "{message}" #~ msgstr "{message}" -#: src/view/shell/Drawer.tsx:440 +#: src/view/shell/Drawer.tsx:443 msgid "{numUnreadNotifications} unread" msgstr "{numUnreadNotifications} no llegides" @@ -62,7 +62,11 @@ msgstr "{numUnreadNotifications} no llegides" msgid "<0/> members" msgstr "<0/> membres" -#: src/view/com/profile/ProfileHeader.tsx:595 +#: src/view/shell/Drawer.tsx:97 +msgid "<0>{0} following" +msgstr "" + +#: src/screens/Profile/Header/Metrics.tsx:46 msgid "<0>{following} <1>following" msgstr "<0>{following} <1>seguint" @@ -78,20 +82,20 @@ msgstr "<0>Segueix alguns<1>usuaris<2>recomanats" msgid "<0>Welcome to<1>Bluesky" msgstr "<0>Benvingut a<1>Bluesky" -#: src/view/com/profile/ProfileHeader.tsx:558 +#: src/screens/Profile/Header/Handle.tsx:42 msgid "⚠Invalid Handle" msgstr "⚠Identificador invàlid" #: src/view/com/util/moderation/LabelInfo.tsx:45 -msgid "A content warning has been applied to this {0}." -msgstr "S'ha aplicat una advertència de contingut a {0}." +#~ msgid "A content warning has been applied to this {0}." +#~ msgstr "S'ha aplicat una advertència de contingut a {0}." #: src/lib/hooks/useOTAUpdate.ts:16 -msgid "A new version of the app is available. Please update to continue using the app." -msgstr "Hi ha una nova versió d'aquesta aplicació. Actualitza-la per continuar." +#~ msgid "A new version of the app is available. Please update to continue using the app." +#~ msgstr "Hi ha una nova versió d'aquesta aplicació. Actualitza-la per continuar." #: src/view/com/util/ViewHeader.tsx:89 -#: src/view/screens/Search/Search.tsx:647 +#: src/view/screens/Search/Search.tsx:648 msgid "Access navigation links and settings" msgstr "Accedeix als enllaços de navegació i configuració" @@ -100,29 +104,38 @@ msgid "Access profile and other navigation links" msgstr "Accedeix al perfil i altres enllaços de navegació" #: src/view/com/modals/EditImage.tsx:299 -#: src/view/screens/Settings/index.tsx:451 +#: src/view/screens/Settings/index.tsx:466 msgid "Accessibility" msgstr "Accessibilitat" +#: src/components/moderation/LabelsOnMe.tsx:42 +msgid "account" +msgstr "" + #: src/view/com/auth/login/LoginForm.tsx:166 -#: src/view/screens/Settings/index.tsx:308 -#: src/view/screens/Settings/index.tsx:721 +#: src/view/screens/Settings/index.tsx:323 +#: src/view/screens/Settings/index.tsx:739 msgid "Account" msgstr "Compte" -#: src/view/com/profile/ProfileHeader.tsx:246 +#: src/view/com/profile/ProfileMenu.tsx:139 msgid "Account blocked" msgstr "Compte bloquejat" -#: src/view/com/profile/ProfileHeader.tsx:213 +#: src/view/com/profile/ProfileMenu.tsx:153 +msgid "Account followed" +msgstr "" + +#: src/view/com/profile/ProfileMenu.tsx:113 msgid "Account muted" msgstr "Compte silenciat" -#: src/view/com/modals/ModerationDetails.tsx:86 +#: src/components/moderation/ModerationDetailsDialog.tsx:94 +#: src/lib/moderation/useModerationCauseDescription.ts:91 msgid "Account Muted" msgstr "Compte silenciat" -#: src/view/com/modals/ModerationDetails.tsx:72 +#: src/components/moderation/ModerationDetailsDialog.tsx:83 msgid "Account Muted by List" msgstr "Compte silenciat per una llista" @@ -134,19 +147,24 @@ msgstr "Opcions del compte" msgid "Account removed from quick access" msgstr "Compte eliminat de l'accés ràpid" -#: src/view/com/profile/ProfileHeader.tsx:268 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:130 +#: src/view/com/profile/ProfileMenu.tsx:128 msgid "Account unblocked" msgstr "Compte desbloquejat" -#: src/view/com/profile/ProfileHeader.tsx:226 +#: src/view/com/profile/ProfileMenu.tsx:166 +msgid "Account unfollowed" +msgstr "" + +#: src/view/com/profile/ProfileMenu.tsx:102 msgid "Account unmuted" msgstr "Compte no silenciat" #: src/components/dialogs/MutedWords.tsx:165 #: src/view/com/auth/onboarding/RecommendedFeedsItem.tsx:150 -#: src/view/com/modals/ListAddRemoveUsers.tsx:264 +#: src/view/com/modals/ListAddRemoveUsers.tsx:268 #: src/view/com/modals/UserAddRemoveLists.tsx:219 -#: src/view/screens/ProfileList.tsx:813 +#: src/view/screens/ProfileList.tsx:827 msgid "Add" msgstr "Afegeix" @@ -154,12 +172,12 @@ msgstr "Afegeix" msgid "Add a content warning" msgstr "Afegeix una advertència de contingut" -#: src/view/screens/ProfileList.tsx:803 +#: src/view/screens/ProfileList.tsx:817 msgid "Add a user to this list" msgstr "Afegeix un usuari a aquesta llista" -#: src/view/screens/Settings/index.tsx:383 -#: src/view/screens/Settings/index.tsx:392 +#: src/view/screens/Settings/index.tsx:398 +#: src/view/screens/Settings/index.tsx:407 msgid "Add account" msgstr "Afegeix un compte" @@ -169,26 +187,26 @@ msgstr "Afegeix un compte" msgid "Add alt text" msgstr "Afegeix text alternatiu" -#: src/view/screens/AppPasswords.tsx:102 -#: src/view/screens/AppPasswords.tsx:143 -#: src/view/screens/AppPasswords.tsx:156 +#: src/view/screens/AppPasswords.tsx:104 +#: src/view/screens/AppPasswords.tsx:145 +#: src/view/screens/AppPasswords.tsx:158 msgid "Add App Password" msgstr "Afegeix una contrasenya d'aplicació" #: src/view/com/modals/report/InputIssueDetails.tsx:41 #: src/view/com/modals/report/Modal.tsx:191 -msgid "Add details" -msgstr "Afegeix detalls" +#~ msgid "Add details" +#~ msgstr "Afegeix detalls" #: src/view/com/modals/report/Modal.tsx:194 -msgid "Add details to report" -msgstr "Afegeix detalls a l'informe" +#~ msgid "Add details to report" +#~ msgstr "Afegeix detalls a l'informe" -#: src/view/com/composer/Composer.tsx:453 +#: src/view/com/composer/Composer.tsx:466 msgid "Add link card" msgstr "Afegeix una targeta a l'enllaç" -#: src/view/com/composer/Composer.tsx:458 +#: src/view/com/composer/Composer.tsx:471 msgid "Add link card:" msgstr "Afegeix una targeta a l'enllaç:" @@ -204,12 +222,12 @@ msgstr "" msgid "Add the following DNS record to your domain:" msgstr "Afegeix el següent registre DNS al teu domini:" -#: src/view/com/profile/ProfileHeader.tsx:310 +#: src/view/com/profile/ProfileMenu.tsx:263 +#: src/view/com/profile/ProfileMenu.tsx:266 msgid "Add to Lists" msgstr "Afegeix a les llistes" -#: src/view/com/feeds/FeedSourceCard.tsx:245 -#: src/view/screens/ProfileFeed.tsx:273 +#: src/view/com/feeds/FeedSourceCard.tsx:234 msgid "Add to my feeds" msgstr "Afegeix als meus canals" @@ -222,7 +240,7 @@ msgstr "Afegit" msgid "Added to list" msgstr "Afegit a la llista" -#: src/view/com/feeds/FeedSourceCard.tsx:127 +#: src/view/com/feeds/FeedSourceCard.tsx:108 msgid "Added to my feeds" msgstr "Afegit als meus canals" @@ -230,15 +248,21 @@ msgstr "Afegit als meus canals" msgid "Adjust the number of likes a reply must have to be shown in your feed." msgstr "Ajusta el nombre de m'agrades que hagi de tenir una resposta per aparèixer al teu canal." +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:117 #: src/view/com/modals/SelfLabel.tsx:75 msgid "Adult Content" msgstr "Contingut per a adults" #: src/view/com/modals/ContentFilteringSettings.tsx:141 -msgid "Adult content can only be enabled via the Web at <0/>." -msgstr "El contingut per a adults només es pot habilitar via web a <0/>." +#~ msgid "Adult content can only be enabled via the Web at <0/>." +#~ msgstr "El contingut per a adults només es pot habilitar via web a <0/>." -#: src/view/screens/Settings/index.tsx:664 +#: src/components/moderation/ModerationLabelPref.tsx:114 +msgid "Adult content is disabled." +msgstr "" + +#: src/screens/Moderation/index.tsx:377 +#: src/view/screens/Settings/index.tsx:680 msgid "Advanced" msgstr "Avançat" @@ -247,11 +271,11 @@ msgid "All the feeds you've saved, right in one place." msgstr "Tots els canals que has desat, en un sol lloc." #: src/view/com/auth/login/ForgotPasswordForm.tsx:221 -#: src/view/com/modals/ChangePassword.tsx:168 +#: src/view/com/modals/ChangePassword.tsx:170 msgid "Already have a code?" msgstr "Ja tens un codi?" -#: src/view/com/auth/login/ChooseAccountForm.tsx:98 +#: src/view/com/auth/login/ChooseAccountForm.tsx:102 msgid "Already signed in as @{0}" msgstr "Ja estàs registrat com a @{0}" @@ -275,12 +299,18 @@ msgstr "S'ha enviat un correu a {0}. Inclou un codi de confirmació que has d'en msgid "An email has been sent to your previous address, {0}. It includes a confirmation code which you can enter below." msgstr "S'ha enviat un correu a la teva adreça prèvia, {0}. Inclou un codi de confirmació que has d'entrar aquí sota." -#: src/view/com/profile/FollowButton.tsx:30 -#: src/view/com/profile/FollowButton.tsx:40 +#: src/lib/moderation/useReportOptions.ts:26 +msgid "An issue not included in these options" +msgstr "" + +#: src/view/com/profile/FollowButton.tsx:35 +#: src/view/com/profile/FollowButton.tsx:45 +#: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:188 +#: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:198 msgid "An issue occurred, please try again." msgstr "Hi ha hagut un problema, prova-ho de nou" -#: src/view/com/notifications/FeedItem.tsx:237 +#: src/view/com/notifications/FeedItem.tsx:240 #: src/view/com/threadgate/WhoCanReply.tsx:178 msgid "and" msgstr "i" @@ -289,11 +319,15 @@ msgstr "i" msgid "Animals" msgstr "Animals" +#: src/lib/moderation/useReportOptions.ts:31 +msgid "Anti-Social Behavior" +msgstr "" + #: src/view/screens/LanguageSettings.tsx:95 msgid "App Language" msgstr "Idioma de l'aplicació" -#: src/view/screens/AppPasswords.tsx:228 +#: src/view/screens/AppPasswords.tsx:223 msgid "App password deleted" msgstr "Contrasenya de l'aplicació esborrada" @@ -305,7 +339,7 @@ msgstr "La contrasenya de l'aplicació només pot estar formada per lletres, nú msgid "App Password names must be at least 4 characters long." msgstr "La contrasenya de l'aplicació ha de ser d'almenys 4 caràcters" -#: src/view/screens/Settings/index.tsx:675 +#: src/view/screens/Settings/index.tsx:691 msgid "App password settings" msgstr "Configuració de la contrasenya d'aplicació" @@ -313,52 +347,68 @@ msgstr "Configuració de la contrasenya d'aplicació" #~ msgid "App passwords" #~ msgstr "Contrasenyes de l'aplicació" -#: src/Navigation.tsx:239 -#: src/view/screens/AppPasswords.tsx:187 -#: src/view/screens/Settings/index.tsx:684 +#: src/Navigation.tsx:251 +#: src/view/screens/AppPasswords.tsx:189 +#: src/view/screens/Settings/index.tsx:700 msgid "App Passwords" msgstr "Contrasenyes de l'aplicació" +#: src/components/moderation/LabelsOnMeDialog.tsx:134 +#: src/components/moderation/LabelsOnMeDialog.tsx:137 +msgid "Appeal" +msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:202 +msgid "Appeal \"{0}\" label" +msgstr "" + #: src/view/com/util/forms/PostDropdownBtn.tsx:337 #: src/view/com/util/forms/PostDropdownBtn.tsx:346 -msgid "Appeal content warning" -msgstr "Advertència d'apel·lació sobre el contingut" +#~ msgid "Appeal content warning" +#~ msgstr "Advertència d'apel·lació sobre el contingut" #: src/view/com/modals/AppealLabel.tsx:65 -msgid "Appeal Content Warning" -msgstr "Advertència d'apel·lació sobre el contingut" +#~ msgid "Appeal Content Warning" +#~ msgstr "Advertència d'apel·lació sobre el contingut" #~ msgid "Appeal Decision" #~ msgstr "Decisión de apelación" +#: src/components/moderation/LabelsOnMeDialog.tsx:193 +msgid "Appeal submitted." +msgstr "" + #: src/view/com/util/moderation/LabelInfo.tsx:52 -msgid "Appeal this decision" -msgstr "Apel·la aquesta decisió" +#~ msgid "Appeal this decision" +#~ msgstr "Apel·la aquesta decisió" #: src/view/com/util/moderation/LabelInfo.tsx:56 -msgid "Appeal this decision." -msgstr "Apel·la aquesta decisió." +#~ msgid "Appeal this decision." +#~ msgstr "Apel·la aquesta decisió." -#: src/view/screens/Settings/index.tsx:466 +#: src/view/screens/Settings/index.tsx:481 msgid "Appearance" msgstr "Aparença" -#: src/view/screens/AppPasswords.tsx:224 +#: src/view/screens/AppPasswords.tsx:265 msgid "Are you sure you want to delete the app password \"{name}\"?" msgstr "Confirmes que vols eliminar la contrasenya de l'aplicació \"{name}\"?" -#: src/view/com/composer/Composer.tsx:150 +#: src/view/com/feeds/FeedSourceCard.tsx:280 +msgid "Are you sure you want to remove {0} from your feeds?" +msgstr "" + +#: src/view/com/composer/Composer.tsx:508 msgid "Are you sure you'd like to discard this draft?" msgstr "Confirmes que vols descartar aquest esborrany?" #: src/components/dialogs/MutedWords.tsx:282 -#: src/view/screens/ProfileList.tsx:365 msgid "Are you sure?" msgstr "Ho confirmes?" #: src/view/com/util/forms/PostDropdownBtn.tsx:322 -msgid "Are you sure? This cannot be undone." -msgstr "Ho confirmes? Aquesta acció no es pot desfer." +#~ msgid "Are you sure? This cannot be undone." +#~ msgstr "Ho confirmes? Aquesta acció no es pot desfer." #: src/view/com/composer/select-language/SuggestedLanguage.tsx:60 msgid "Are you writing in <0>{0}?" @@ -372,78 +422,86 @@ msgstr "Art" msgid "Artistic or non-erotic nudity." msgstr "Nuesa artística o no eròtica." +#: src/components/moderation/LabelsOnMeDialog.tsx:247 +#: src/components/moderation/LabelsOnMeDialog.tsx:248 +#: src/screens/Profile/Header/Shell.tsx:97 #: src/view/com/auth/create/CreateAccount.tsx:158 -#: src/view/com/auth/login/ChooseAccountForm.tsx:151 +#: src/view/com/auth/login/ChooseAccountForm.tsx:155 #: src/view/com/auth/login/ForgotPasswordForm.tsx:174 #: src/view/com/auth/login/LoginForm.tsx:259 #: src/view/com/auth/login/SetNewPasswordForm.tsx:179 -#: src/view/com/modals/report/InputIssueDetails.tsx:46 -#: src/view/com/post-thread/PostThread.tsx:472 -#: src/view/com/post-thread/PostThread.tsx:522 -#: src/view/com/post-thread/PostThread.tsx:530 -#: src/view/com/profile/ProfileHeader.tsx:649 #: src/view/com/util/ViewHeader.tsx:87 msgid "Back" msgstr "Endarrere" #: src/view/com/post-thread/PostThread.tsx:480 -msgctxt "action" -msgid "Back" -msgstr "Endarrere" +#~ msgctxt "action" +#~ msgid "Back" +#~ msgstr "Endarrere" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:136 msgid "Based on your interest in {interestsText}" msgstr "Segons els teus interessos en {interestsText}" -#: src/view/screens/Settings/index.tsx:523 +#: src/view/screens/Settings/index.tsx:538 msgid "Basics" msgstr "Conceptes bàsics" +#: src/components/dialogs/BirthDateSettings.tsx:107 #: src/view/com/auth/create/Step1.tsx:227 -#: src/view/com/modals/BirthDateSettings.tsx:73 msgid "Birthday" msgstr "Aniversari" -#: src/view/screens/Settings/index.tsx:340 +#: src/view/screens/Settings/index.tsx:355 msgid "Birthday:" msgstr "Aniversari:" -#: src/view/com/profile/ProfileHeader.tsx:239 -#: src/view/com/profile/ProfileHeader.tsx:346 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:278 +#: src/view/com/profile/ProfileMenu.tsx:361 +msgid "Block" +msgstr "" + +#: src/view/com/profile/ProfileMenu.tsx:300 +#: src/view/com/profile/ProfileMenu.tsx:307 msgid "Block Account" msgstr "Bloqueja el compte" -#: src/view/screens/ProfileList.tsx:556 +#: src/view/com/profile/ProfileMenu.tsx:344 +msgid "Block Account?" +msgstr "" + +#: src/view/screens/ProfileList.tsx:530 msgid "Block accounts" msgstr "Bloqueja comptes" -#: src/view/screens/ProfileList.tsx:506 +#: src/view/screens/ProfileList.tsx:478 +#: src/view/screens/ProfileList.tsx:634 msgid "Block list" msgstr "Bloqueja una llista" -#: src/view/screens/ProfileList.tsx:316 +#: src/view/screens/ProfileList.tsx:629 msgid "Block these accounts?" msgstr "Vols bloquejar aquests comptes?" #: src/view/screens/ProfileList.tsx:320 -msgid "Block this List" -msgstr "Bloqueja la llista" +#~ msgid "Block this List" +#~ msgstr "Bloqueja la llista" #: src/view/com/lists/ListCard.tsx:110 -#: src/view/com/util/post-embeds/QuoteEmbed.tsx:61 +#: src/view/com/util/post-embeds/QuoteEmbed.tsx:55 msgid "Blocked" msgstr "Bloquejada" -#: src/view/screens/Moderation.tsx:142 +#: src/screens/Moderation/index.tsx:269 msgid "Blocked accounts" msgstr "Comptes bloquejats" -#: src/Navigation.tsx:132 +#: src/Navigation.tsx:134 #: src/view/screens/ModerationBlockedAccounts.tsx:107 msgid "Blocked Accounts" msgstr "Comptes bloquejats" -#: src/view/com/profile/ProfileHeader.tsx:241 +#: src/view/com/profile/ProfileMenu.tsx:356 msgid "Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you." msgstr "Els comptes bloquejats no poden respondre cap fil teu, ni anomenar-te ni interactuar amb tu de cap manera." @@ -451,15 +509,23 @@ msgstr "Els comptes bloquejats no poden respondre cap fil teu, ni anomenar-te ni msgid "Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you. You will not see their content and they will be prevented from seeing yours." msgstr "Els comptes bloquejats no poden respondre a cap fil teu, ni anomenar-te ni interactuar amb tu de cap manera. No veuràs mai el seu contingut ni ells el teu." -#: src/view/com/post-thread/PostThread.tsx:324 +#: src/view/com/post-thread/PostThread.tsx:313 msgid "Blocked post." msgstr "Publicació bloquejada." -#: src/view/screens/ProfileList.tsx:318 +#: src/screens/Profile/Sections/Labels.tsx:153 +msgid "Blocking does not prevent this labeler from placing labels on your account." +msgstr "" + +#: src/view/screens/ProfileList.tsx:631 msgid "Blocking is public. Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you." msgstr "El bloqueig és públic. Els comptes bloquejats no poden respondre els teus fils, ni mencionar-te ni interactuar amb tu de cap manera." -#: src/view/com/auth/HomeLoggedOutCTA.tsx:93 +#: src/view/com/profile/ProfileMenu.tsx:353 +msgid "Blocking will not prevent labels from being applied on your account, but it will stop this account from replying in your threads or interacting with you." +msgstr "" + +#: src/view/com/auth/HomeLoggedOutCTA.tsx:97 #: src/view/com/auth/SplashScreen.web.tsx:133 msgid "Blog" msgstr "Blog" @@ -475,17 +541,17 @@ msgid "Bluesky is an open network where you can choose your hosting provider. Cu msgstr "Bluesky és una xarxa oberta on pots escollir el teu proveïdor d'allotjament. L'allotjament personalitzat està disponible en beta per a desenvolupadors" #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:80 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:80 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:82 msgid "Bluesky is flexible." msgstr "Bluesky és flexible." #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:69 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:69 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:71 msgid "Bluesky is open." msgstr "Bluesky és obert." #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:56 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:56 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:58 msgid "Bluesky is public." msgstr "Bluesky és públic." @@ -493,7 +559,7 @@ msgstr "Bluesky és públic." #~ msgid "Bluesky uses invites to build a healthier community. If you don't know anybody with an invite, you can sign up for the waitlist and we'll send one soon." #~ msgstr "Bluesky utilitza les invitacions per construir una comunitat saludable. Si no coneixes ningú amb invitacions, pots apuntar-te a la llista d'espera i te n'enviarem una aviat." -#: src/view/screens/Moderation.tsx:245 +#: src/screens/Moderation/index.tsx:535 msgid "Bluesky will not show your profile and posts to logged-out users. Other apps may not honor this request. This does not make your account private." msgstr "Bluesky no mostrarà el teu perfil ni les publicacions als usuaris que no estiguin registrats. Altres aplicacions poden no seguir aquesta demanda. Això no fa que el teu compte sigui privat." @@ -501,15 +567,23 @@ msgstr "Bluesky no mostrarà el teu perfil ni les publicacions als usuaris que n #~ msgid "Bluesky.Social" #~ msgstr "Bluesky.Social" +#: src/lib/moderation/useLabelBehaviorDescription.ts:53 +msgid "Blur images" +msgstr "" + +#: src/lib/moderation/useLabelBehaviorDescription.ts:51 +msgid "Blur images and filter from feeds" +msgstr "" + #: src/screens/Onboarding/index.tsx:33 msgid "Books" msgstr "Llibres" -#: src/view/screens/Settings/index.tsx:859 +#: src/view/screens/Settings/index.tsx:889 msgid "Build version {0} {1}" msgstr "Versió {0} {1}" -#: src/view/com/auth/HomeLoggedOutCTA.tsx:87 +#: src/view/com/auth/HomeLoggedOutCTA.tsx:91 #: src/view/com/auth/SplashScreen.web.tsx:128 msgid "Business" msgstr "Negocis" @@ -526,17 +600,23 @@ msgstr "per -" msgid "by {0}" msgstr "per {0}" +#: src/components/LabelingServiceCard/index.tsx:57 +msgid "By {0}" +msgstr "" + #: src/view/com/profile/ProfileSubpageHeader.tsx:161 msgid "by <0/>" msgstr "per <0/>" +#: src/view/com/auth/create/Policies.tsx:87 +msgid "By creating an account you agree to the {els}." +msgstr "" + #: src/view/com/profile/ProfileSubpageHeader.tsx:159 msgid "by you" msgstr "per tu" -#: src/view/com/composer/photos/OpenCameraBtn.tsx:60 -#: src/view/com/util/UserAvatar.tsx:224 -#: src/view/com/util/UserBanner.tsx:40 +#: src/view/com/composer/photos/OpenCameraBtn.tsx:77 msgid "Camera" msgstr "Càmera" @@ -544,28 +624,33 @@ msgstr "Càmera" msgid "Can only contain letters, numbers, spaces, dashes, and underscores. Must be at least 4 characters long, but no more than 32 characters long." msgstr "Només pot tenir lletres, números, espais, guions i guions baixos. Ha de tenir almenys 4 caràcters i no més de 32." -#: src/components/Prompt.tsx:101 -#: src/view/com/composer/Composer.tsx:307 -#: src/view/com/composer/Composer.tsx:312 +#: src/components/Menu/index.tsx:213 +#: src/components/Prompt.tsx:116 +#: src/components/Prompt.tsx:118 +#: src/components/TagMenu/index.tsx:268 +#: src/view/com/composer/Composer.tsx:316 +#: src/view/com/composer/Composer.tsx:321 #: src/view/com/modals/ChangeEmail.tsx:218 #: src/view/com/modals/ChangeEmail.tsx:220 -#: src/view/com/modals/ChangePassword.tsx:265 -#: src/view/com/modals/ChangePassword.tsx:268 +#: src/view/com/modals/ChangeHandle.tsx:153 +#: src/view/com/modals/ChangePassword.tsx:267 +#: src/view/com/modals/ChangePassword.tsx:270 #: src/view/com/modals/CreateOrEditList.tsx:355 +#: src/view/com/modals/crop-image/CropImage.web.tsx:137 #: src/view/com/modals/EditImage.tsx:323 #: src/view/com/modals/EditProfile.tsx:249 #: src/view/com/modals/InAppBrowserConsent.tsx:78 +#: src/view/com/modals/InAppBrowserConsent.tsx:80 #: src/view/com/modals/LinkWarning.tsx:87 +#: src/view/com/modals/LinkWarning.tsx:89 #: src/view/com/modals/Repost.tsx:87 #: src/view/com/modals/VerifyEmail.tsx:247 #: src/view/com/modals/VerifyEmail.tsx:253 -#: src/view/screens/Search/Search.tsx:716 -#: src/view/shell/desktop/Search.tsx:238 +#: src/view/screens/Search/Search.tsx:717 +#: src/view/shell/desktop/Search.tsx:239 msgid "Cancel" msgstr "Cancel·la" -#: src/view/com/modals/Confirm.tsx:88 -#: src/view/com/modals/Confirm.tsx:91 #: src/view/com/modals/CreateOrEditList.tsx:360 #: src/view/com/modals/DeleteAccount.tsx:156 #: src/view/com/modals/DeleteAccount.tsx:234 @@ -599,7 +684,7 @@ msgid "Cancel quote post" msgstr "Cancel·la la citació de la publicació" #: src/view/com/modals/ListAddRemoveUsers.tsx:87 -#: src/view/shell/desktop/Search.tsx:234 +#: src/view/shell/desktop/Search.tsx:235 msgid "Cancel search" msgstr "Cancel·la la cerca" @@ -607,21 +692,25 @@ msgstr "Cancel·la la cerca" #~ msgid "Cancel waitlist signup" #~ msgstr "Cancel·la la inscripció a la llista d'espera" -#: src/view/screens/Settings/index.tsx:334 +#: src/view/com/modals/LinkWarning.tsx:88 +msgid "Cancels opening the linked website" +msgstr "" + +#: src/view/screens/Settings/index.tsx:349 msgctxt "action" msgid "Change" msgstr "Canvia" -#: src/view/screens/Settings.tsx:306 -#~ msgid "Change" -#~ msgstr "Canvia" +#: src/view/com/modals/VerifyEmail.tsx:152 +msgid "Change" +msgstr "Canvia" -#: src/view/screens/Settings/index.tsx:696 +#: src/view/screens/Settings/index.tsx:712 msgid "Change handle" msgstr "Canvia l'identificador" #: src/view/com/modals/ChangeHandle.tsx:161 -#: src/view/screens/Settings/index.tsx:705 +#: src/view/screens/Settings/index.tsx:723 msgid "Change Handle" msgstr "Canvia l'identificador" @@ -629,11 +718,12 @@ msgstr "Canvia l'identificador" msgid "Change my email" msgstr "Canvia el meu correu" -#: src/view/screens/Settings/index.tsx:732 +#: src/view/screens/Settings/index.tsx:750 msgid "Change password" msgstr "Canvia la contrasenya" -#: src/view/screens/Settings/index.tsx:741 +#: src/view/com/modals/ChangePassword.tsx:141 +#: src/view/screens/Settings/index.tsx:761 msgid "Change Password" msgstr "Canvia la contrasenya" @@ -642,8 +732,8 @@ msgid "Change post language to {0}" msgstr "Canvia l'idioma de la publicació a {0}" #: src/view/screens/Settings/index.tsx:733 -msgid "Change your Bluesky password" -msgstr "Canvia la teva contrasenya de Bluesky" +#~ msgid "Change your Bluesky password" +#~ msgstr "Canvia la teva contrasenya de Bluesky" #: src/view/com/modals/ChangeEmail.tsx:109 msgid "Change Your Email" @@ -671,8 +761,8 @@ msgid "Choose \"Everybody\" or \"Nobody\"" msgstr "Tria \"Tothom\" or \"Ningú\"" #: src/view/screens/Settings/index.tsx:697 -msgid "Choose a new Bluesky username or create" -msgstr "Tria un nou nom d'usuari de Bluesky o crea'l" +#~ msgid "Choose a new Bluesky username or create" +#~ msgstr "Tria un nou nom d'usuari de Bluesky o crea'l" #: src/view/com/auth/server-input/index.tsx:79 msgid "Choose Service" @@ -683,7 +773,7 @@ msgid "Choose the algorithms that power your custom feeds." msgstr "Tria els algoritmes que alimentaran els teus canals personalitzats." #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:83 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:83 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:85 msgid "Choose the algorithms that power your experience with custom feeds." msgstr "Tria els algoritmes que potenciaran la teva experiència amb els canals personalitzats." @@ -695,29 +785,35 @@ msgstr "Tria els teus canals principals" msgid "Choose your password" msgstr "Tria la teva contrasenya" -#: src/view/screens/Settings/index.tsx:834 -#: src/view/screens/Settings/index.tsx:835 +#: src/view/screens/Settings/index.tsx:864 msgid "Clear all legacy storage data" msgstr "Esborra totes les dades antigues emmagatzemades" -#: src/view/screens/Settings/index.tsx:837 +#: src/view/screens/Settings/index.tsx:867 msgid "Clear all legacy storage data (restart after this)" msgstr "Esborra totes les dades antigues emmagatzemades (i després reinicia)" -#: src/view/screens/Settings/index.tsx:846 -#: src/view/screens/Settings/index.tsx:847 +#: src/view/screens/Settings/index.tsx:876 msgid "Clear all storage data" msgstr "Esborra totes les dades emmagatzemades" -#: src/view/screens/Settings/index.tsx:849 +#: src/view/screens/Settings/index.tsx:879 msgid "Clear all storage data (restart after this)" msgstr "Esborra totes les dades emmagatzemades (i després reinicia)" #: src/view/com/util/forms/SearchInput.tsx:88 -#: src/view/screens/Search/Search.tsx:697 +#: src/view/screens/Search/Search.tsx:698 msgid "Clear search query" msgstr "Esborra la cerca" +#: src/view/screens/Settings/index.tsx:865 +msgid "Clears all legacy storage data" +msgstr "" + +#: src/view/screens/Settings/index.tsx:877 +msgid "Clears all storage data" +msgstr "" + #: src/view/screens/Support.tsx:40 msgid "click here" msgstr "clica aquí" @@ -734,8 +830,8 @@ msgstr "" msgid "Climate" msgstr "Clima" -#: src/view/com/modals/ChangePassword.tsx:265 -#: src/view/com/modals/ChangePassword.tsx:268 +#: src/view/com/modals/ChangePassword.tsx:267 +#: src/view/com/modals/ChangePassword.tsx:270 msgid "Close" msgstr "Tanca" @@ -748,27 +844,28 @@ msgstr "Tanca el diàleg actiu" msgid "Close alert" msgstr "Tanca l'advertència" -#: src/view/com/util/BottomSheetCustomBackdrop.tsx:33 +#: src/view/com/util/BottomSheetCustomBackdrop.tsx:36 msgid "Close bottom drawer" msgstr "Tanca el calaix inferior" -#: src/view/com/lightbox/ImageViewing/components/ImageDefaultHeader.tsx:26 +#: src/view/com/lightbox/ImageViewing/components/ImageDefaultHeader.tsx:36 msgid "Close image" msgstr "Tanca la imatge" -#: src/view/com/lightbox/Lightbox.web.tsx:119 +#: src/view/com/lightbox/Lightbox.web.tsx:129 msgid "Close image viewer" msgstr "Tanca el visor d'imatges" -#: src/view/shell/index.web.tsx:51 +#: src/view/shell/index.web.tsx:55 msgid "Close navigation footer" msgstr "Tanca el peu de la navegació" +#: src/components/Menu/index.tsx:207 #: src/components/TagMenu/index.tsx:262 msgid "Close this dialog" msgstr "" -#: src/view/shell/index.web.tsx:52 +#: src/view/shell/index.web.tsx:56 msgid "Closes bottom navigation bar" msgstr "Tanca la barra de navegació inferior" @@ -776,15 +873,15 @@ msgstr "Tanca la barra de navegació inferior" msgid "Closes password update alert" msgstr "Tanca l'alerta d'actualització de contrasenya" -#: src/view/com/composer/Composer.tsx:309 +#: src/view/com/composer/Composer.tsx:318 msgid "Closes post composer and discards post draft" msgstr "Tanca l'editor de la publicació i descarta l'esborrany" -#: src/view/com/lightbox/ImageViewing/components/ImageDefaultHeader.tsx:27 +#: src/view/com/lightbox/ImageViewing/components/ImageDefaultHeader.tsx:37 msgid "Closes viewer for header image" msgstr "Tanca la visualització de la imatge de la capçalera" -#: src/view/com/notifications/FeedItem.tsx:318 +#: src/view/com/notifications/FeedItem.tsx:321 msgid "Collapses list of users for a given notification" msgstr "Plega la llista d'usuaris per una notificació concreta" @@ -796,7 +893,7 @@ msgstr "Comèdia" msgid "Comics" msgstr "Còmics" -#: src/Navigation.tsx:229 +#: src/Navigation.tsx:241 #: src/view/screens/CommunityGuidelines.tsx:32 msgid "Community Guidelines" msgstr "Directrius de la comunitat" @@ -809,7 +906,7 @@ msgstr "Finalitza el registre i comença a utilitzar el teu compte" msgid "Complete the challenge" msgstr "" -#: src/view/com/composer/Composer.tsx:424 +#: src/view/com/composer/Composer.tsx:437 msgid "Compose posts up to {MAX_GRAPHEME_LENGTH} characters in length" msgstr "Crea publicacions de fins a {MAX_GRAPHEME_LENGTH} caràcters" @@ -817,12 +914,18 @@ msgstr "Crea publicacions de fins a {MAX_GRAPHEME_LENGTH} caràcters" msgid "Compose reply" msgstr "Redacta una resposta" -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:67 +#: src/components/moderation/GlobalModerationLabelPref.tsx:69 +#: src/components/moderation/ModerationLabelPref.tsx:149 +#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:81 msgid "Configure content filtering setting for category: {0}" msgstr "Configura els filtres de continguts per la categoria: {0}" -#: src/components/Prompt.tsx:124 -#: src/view/com/modals/AppealLabel.tsx:98 +#: src/components/moderation/ModerationLabelPref.tsx:116 +msgid "Configured in <0>moderation settings." +msgstr "" + +#: src/components/Prompt.tsx:152 +#: src/components/Prompt.tsx:155 #: src/view/com/modals/SelfLabel.tsx:154 #: src/view/com/modals/VerifyEmail.tsx:231 #: src/view/com/modals/VerifyEmail.tsx:233 @@ -833,9 +936,9 @@ msgstr "Confirma" #: src/view/com/modals/Confirm.tsx:75 #: src/view/com/modals/Confirm.tsx:78 -msgctxt "action" -msgid "Confirm" -msgstr "Confirma" +#~ msgctxt "action" +#~ msgid "Confirm" +#~ msgstr "Confirma" #: src/view/com/modals/ChangeEmail.tsx:193 #: src/view/com/modals/ChangeEmail.tsx:195 @@ -851,10 +954,19 @@ msgid "Confirm delete account" msgstr "Confirma l'eliminació del compte" #: src/view/com/modals/ContentFilteringSettings.tsx:156 -msgid "Confirm your age to enable adult content." -msgstr "Confirma la teva edat per habilitar el contingut per a adults" +#~ msgid "Confirm your age to enable adult content." +#~ msgstr "Confirma la teva edat per habilitar el contingut per a adults" + +#: src/screens/Moderation/index.tsx:303 +msgid "Confirm your age:" +msgstr "" + +#: src/screens/Moderation/index.tsx:294 +msgid "Confirm your birthdate" +msgstr "" #: src/view/com/modals/ChangeEmail.tsx:157 +#: src/view/com/modals/DeleteAccount.tsx:176 #: src/view/com/modals/DeleteAccount.tsx:182 #: src/view/com/modals/VerifyEmail.tsx:165 msgid "Confirmation code" @@ -873,25 +985,40 @@ msgstr "Connectant…" msgid "Contact support" msgstr "Contacta amb suport" +#: src/components/moderation/LabelsOnMe.tsx:42 +msgid "content" +msgstr "" + +#: src/lib/moderation/useGlobalLabelStrings.ts:18 +msgid "Content Blocked" +msgstr "" + #: src/view/screens/Moderation.tsx:83 -msgid "Content filtering" -msgstr "Filtre de contingut" +#~ msgid "Content filtering" +#~ msgstr "Filtre de contingut" #: src/view/com/modals/ContentFilteringSettings.tsx:44 -msgid "Content Filtering" -msgstr "Filtre de contingut" +#~ msgid "Content Filtering" +#~ msgstr "Filtre de contingut" + +#: src/screens/Moderation/index.tsx:287 +msgid "Content filters" +msgstr "" #: src/view/com/modals/lang-settings/ContentLanguagesSettings.tsx:74 #: src/view/screens/LanguageSettings.tsx:278 msgid "Content Languages" msgstr "Idiomes del contingut" -#: src/view/com/modals/ModerationDetails.tsx:65 +#: src/components/moderation/ModerationDetailsDialog.tsx:76 +#: src/lib/moderation/useModerationCauseDescription.ts:75 msgid "Content Not Available" msgstr "Contingut no disponible" -#: src/view/com/modals/ModerationDetails.tsx:33 -#: src/view/com/util/moderation/ScreenHider.tsx:78 +#: src/components/moderation/ModerationDetailsDialog.tsx:47 +#: src/components/moderation/ScreenHider.tsx:100 +#: src/lib/moderation/useGlobalLabelStrings.ts:22 +#: src/lib/moderation/useModerationCauseDescription.ts:38 msgid "Content Warning" msgstr "Advertència del contingut" @@ -899,19 +1026,24 @@ msgstr "Advertència del contingut" msgid "Content warnings" msgstr "Advertències del contingut" +#: src/components/Menu/index.web.tsx:84 +msgid "Context menu backdrop, click to close the menu." +msgstr "" + #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:170 #: src/screens/Onboarding/StepFollowingFeed.tsx:153 #: src/screens/Onboarding/StepInterests/index.tsx:248 -#: src/screens/Onboarding/StepModeration/index.tsx:118 +#: src/screens/Onboarding/StepModeration/index.tsx:102 #: src/screens/Onboarding/StepTopicalFeeds.tsx:114 #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:148 #: src/view/com/auth/onboarding/RecommendedFollows.tsx:209 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:96 msgid "Continue" msgstr "Continua" #: src/screens/Onboarding/StepFollowingFeed.tsx:150 #: src/screens/Onboarding/StepInterests/index.tsx:245 -#: src/screens/Onboarding/StepModeration/index.tsx:115 +#: src/screens/Onboarding/StepModeration/index.tsx:99 #: src/screens/Onboarding/StepTopicalFeeds.tsx:111 msgid "Continue to next step" msgstr "Continua" @@ -933,13 +1065,14 @@ msgstr "Cuina" msgid "Copied" msgstr "Copiat" -#: src/view/screens/Settings/index.tsx:241 +#: src/view/screens/Settings/index.tsx:247 msgid "Copied build version to clipboard" msgstr "Número de versió copiat en memòria" #: src/view/com/modals/AddAppPasswords.tsx:76 +#: src/view/com/modals/ChangeHandle.tsx:327 #: src/view/com/modals/InviteCodes.tsx:152 -#: src/view/com/util/forms/PostDropdownBtn.tsx:161 +#: src/view/com/util/forms/PostDropdownBtn.tsx:158 msgid "Copied to clipboard" msgstr "Copiat en memòria" @@ -951,34 +1084,38 @@ msgstr "Copia la contrasenya d'aplicació" msgid "Copy" msgstr "Copia" -#: src/view/screens/ProfileList.tsx:418 +#: src/view/com/modals/ChangeHandle.tsx:481 +msgid "Copy {0}" +msgstr "" + +#: src/view/screens/ProfileList.tsx:388 msgid "Copy link to list" msgstr "Copia l'enllaç a la llista" -#: src/view/com/util/forms/PostDropdownBtn.tsx:231 +#: src/view/com/util/forms/PostDropdownBtn.tsx:228 #: src/view/com/util/forms/PostDropdownBtn.tsx:237 msgid "Copy link to post" msgstr "Copia l'enllaç a la publicació" #: src/view/com/profile/ProfileHeader.tsx:295 -msgid "Copy link to profile" -msgstr "Copia l'enllaç al perfil" +#~ msgid "Copy link to profile" +#~ msgstr "Copia l'enllaç al perfil" -#: src/view/com/util/forms/PostDropdownBtn.tsx:223 -#: src/view/com/util/forms/PostDropdownBtn.tsx:225 +#: src/view/com/util/forms/PostDropdownBtn.tsx:220 +#: src/view/com/util/forms/PostDropdownBtn.tsx:222 msgid "Copy post text" msgstr "Copia el text de la publicació" -#: src/Navigation.tsx:234 +#: src/Navigation.tsx:246 #: src/view/screens/CopyrightPolicy.tsx:29 msgid "Copyright Policy" msgstr "Política de drets d'autor" -#: src/view/screens/ProfileFeed.tsx:97 +#: src/view/screens/ProfileFeed.tsx:102 msgid "Could not load feed" msgstr "No es pot carregar el canal" -#: src/view/screens/ProfileList.tsx:893 +#: src/view/screens/ProfileList.tsx:907 msgid "Could not load list" msgstr "No es pot carregar la llista" @@ -986,13 +1123,13 @@ msgstr "No es pot carregar la llista" #~ msgid "Country" #~ msgstr "País" -#: src/view/com/auth/HomeLoggedOutCTA.tsx:62 -#: src/view/com/auth/SplashScreen.tsx:71 +#: src/view/com/auth/HomeLoggedOutCTA.tsx:64 +#: src/view/com/auth/SplashScreen.tsx:73 #: src/view/com/auth/SplashScreen.web.tsx:81 msgid "Create a new account" msgstr "Crea un nou compte" -#: src/view/screens/Settings/index.tsx:384 +#: src/view/screens/Settings/index.tsx:399 msgid "Create a new Bluesky account" msgstr "Crea un nou compte de Bluesky" @@ -1009,19 +1146,23 @@ msgstr "Crea una contrasenya d'aplicació" msgid "Create new account" msgstr "Crea un nou compte" -#: src/view/screens/AppPasswords.tsx:249 +#: src/components/ReportDialog/SelectReportOptionView.tsx:94 +msgid "Create report for {0}" +msgstr "" + +#: src/view/screens/AppPasswords.tsx:246 msgid "Created {0}" msgstr "Creat {0}" #: src/view/screens/ProfileFeed.tsx:616 -msgid "Created by <0/>" -msgstr "Creat per <0/>" +#~ msgid "Created by <0/>" +#~ msgstr "Creat per <0/>" #: src/view/screens/ProfileFeed.tsx:614 -msgid "Created by you" -msgstr "Creat per tu" +#~ msgid "Created by you" +#~ msgstr "Creat per tu" -#: src/view/com/composer/Composer.tsx:455 +#: src/view/com/composer/Composer.tsx:468 msgid "Creates a card with a thumbnail. The card links to {url}" msgstr "Crea una targeta amb una minuatura. La targeta enllaça a {url}" @@ -1051,8 +1192,8 @@ msgstr "Personalitza el contingut dels llocs externs" #~ msgid "Danger Zone" #~ msgstr "Zona de perill" -#: src/view/screens/Settings/index.tsx:485 -#: src/view/screens/Settings/index.tsx:511 +#: src/view/screens/Settings/index.tsx:500 +#: src/view/screens/Settings/index.tsx:526 msgid "Dark" msgstr "Fosc" @@ -1060,15 +1201,25 @@ msgstr "Fosc" msgid "Dark mode" msgstr "Mode fosc" -#: src/view/screens/Settings/index.tsx:498 +#: src/view/screens/Settings/index.tsx:513 msgid "Dark Theme" msgstr "Tema fosc" +#: src/view/screens/Settings/index.tsx:837 +msgid "Debug Moderation" +msgstr "" + #: src/view/screens/Debug.tsx:83 msgid "Debug panel" msgstr "Panell de depuració" -#: src/view/screens/Settings/index.tsx:772 +#: src/view/com/util/forms/PostDropdownBtn.tsx:319 +#: src/view/screens/AppPasswords.tsx:268 +#: src/view/screens/ProfileList.tsx:613 +msgid "Delete" +msgstr "" + +#: src/view/screens/Settings/index.tsx:792 msgid "Delete account" msgstr "Elimina el compte" @@ -1076,13 +1227,15 @@ msgstr "Elimina el compte" msgid "Delete Account" msgstr "Elimina el compte" -#: src/view/screens/AppPasswords.tsx:222 -#: src/view/screens/AppPasswords.tsx:242 +#: src/view/screens/AppPasswords.tsx:239 msgid "Delete app password" msgstr "Elimina la contrasenya d'aplicació" -#: src/view/screens/ProfileList.tsx:364 -#: src/view/screens/ProfileList.tsx:445 +#: src/view/screens/AppPasswords.tsx:263 +msgid "Delete app password?" +msgstr "" + +#: src/view/screens/ProfileList.tsx:415 msgid "Delete List" msgstr "Elimina la llista" @@ -1094,24 +1247,28 @@ msgstr "Elimina el meu compte" #~ msgid "Delete my account…" #~ msgstr "Elimina el meu compte…" -#: src/view/screens/Settings/index.tsx:784 +#: src/view/screens/Settings/index.tsx:804 msgid "Delete My Account…" msgstr "Elimina el meu compte…" -#: src/view/com/util/forms/PostDropdownBtn.tsx:317 -#: src/view/com/util/forms/PostDropdownBtn.tsx:326 +#: src/view/com/util/forms/PostDropdownBtn.tsx:302 +#: src/view/com/util/forms/PostDropdownBtn.tsx:304 msgid "Delete post" msgstr "Elimina la publicació" -#: src/view/com/util/forms/PostDropdownBtn.tsx:321 +#: src/view/screens/ProfileList.tsx:608 +msgid "Delete this list?" +msgstr "" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:314 msgid "Delete this post?" msgstr "Vols eliminar aquesta publicació?" -#: src/view/com/util/post-embeds/QuoteEmbed.tsx:70 +#: src/view/com/util/post-embeds/QuoteEmbed.tsx:64 msgid "Deleted" msgstr "Eliminat" -#: src/view/com/post-thread/PostThread.tsx:316 +#: src/view/com/post-thread/PostThread.tsx:305 msgid "Deleted post." msgstr "Publicació eliminada." @@ -1130,23 +1287,35 @@ msgstr "Descripció" #~ msgid "Developer Tools" #~ msgstr "Eines de desenvolupador" -#: src/view/com/composer/Composer.tsx:218 +#: src/view/com/composer/Composer.tsx:217 msgid "Did you want to say anything?" msgstr "Vols dir alguna cosa?" -#: src/view/screens/Settings/index.tsx:504 +#: src/view/screens/Settings/index.tsx:519 msgid "Dim" msgstr "Tènue" -#: src/view/com/composer/Composer.tsx:151 +#: src/lib/moderation/useLabelBehaviorDescription.ts:32 +#: src/lib/moderation/useLabelBehaviorDescription.ts:42 +#: src/lib/moderation/useLabelBehaviorDescription.ts:68 +#: src/screens/Moderation/index.tsx:343 +msgid "Disabled" +msgstr "" + +#: src/view/com/composer/Composer.tsx:510 msgid "Discard" msgstr "Descarta" #: src/view/com/composer/Composer.tsx:145 -msgid "Discard draft" -msgstr "Descarta l'esborrany" +#~ msgid "Discard draft" +#~ msgstr "Descarta l'esborrany" + +#: src/view/com/composer/Composer.tsx:507 +msgid "Discard draft?" +msgstr "" -#: src/view/screens/Moderation.tsx:226 +#: src/screens/Moderation/index.tsx:520 +#: src/screens/Moderation/index.tsx:524 msgid "Discourage apps from showing my account to logged-out users" msgstr "Evita que les aplicacions mostrin el meu compte als usuaris no connectats" @@ -1171,7 +1340,19 @@ msgstr "Nom mostrat" msgid "Display Name" msgstr "Nom mostrat" -#: src/view/com/modals/ChangeHandle.tsx:487 +#: src/view/com/modals/ChangeHandle.tsx:398 +msgid "DNS Panel" +msgstr "" + +#: src/lib/moderation/useGlobalLabelStrings.ts:39 +msgid "Does not include nudity." +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:482 +msgid "Domain Value" +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:489 msgid "Domain verified!" msgstr "Domini verificat!" @@ -1192,19 +1373,19 @@ msgctxt "action" msgid "Done" msgstr "Fet" +#: src/components/dialogs/BirthDateSettings.tsx:119 +#: src/components/dialogs/BirthDateSettings.tsx:125 #: src/view/com/auth/server-input/index.tsx:165 #: src/view/com/auth/server-input/index.tsx:166 #: src/view/com/modals/AddAppPasswords.tsx:226 #: src/view/com/modals/AltImage.tsx:139 -#: src/view/com/modals/ContentFilteringSettings.tsx:88 -#: src/view/com/modals/ContentFilteringSettings.tsx:96 #: src/view/com/modals/crop-image/CropImage.web.tsx:152 #: src/view/com/modals/InviteCodes.tsx:80 #: src/view/com/modals/InviteCodes.tsx:123 #: src/view/com/modals/ListAddRemoveUsers.tsx:142 #: src/view/screens/PreferencesFollowingFeed.tsx:311 -#: src/view/screens/Settings/ExportCarDialog.tsx:93 #: src/view/screens/Settings/ExportCarDialog.tsx:94 +#: src/view/screens/Settings/ExportCarDialog.tsx:95 msgid "Done" msgstr "Fet" @@ -1217,8 +1398,8 @@ msgid "Double tap to sign in" msgstr "Fes doble toc per iniciar la sessió" #: src/view/screens/Settings/index.tsx:755 -msgid "Download Bluesky account data (repository)" -msgstr "Descarrega les dades del compte de Bluesky (repositori)" +#~ msgid "Download Bluesky account data (repository)" +#~ msgstr "Descarrega les dades del compte de Bluesky (repositori)" #: src/view/screens/Settings/ExportCarDialog.tsx:59 #: src/view/screens/Settings/ExportCarDialog.tsx:63 @@ -1229,18 +1410,30 @@ msgstr "Descarrega el fitxer CAR" msgid "Drop to add images" msgstr "Deixa anar per afegir imatges" -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:111 +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:120 msgid "Due to Apple policies, adult content can only be enabled on the web after completing sign up." msgstr "Degut a les polítiques d'Apple, el contingut per a adults només es pot habilitar a la web després de registrar-se" +#: src/view/com/modals/ChangeHandle.tsx:257 +msgid "e.g. alice" +msgstr "" + #: src/view/com/modals/EditProfile.tsx:185 msgid "e.g. Alice Roberts" msgstr "p.ex. Jordi Guix" +#: src/view/com/modals/ChangeHandle.tsx:381 +msgid "e.g. alice.com" +msgstr "" + #: src/view/com/modals/EditProfile.tsx:203 msgid "e.g. Artist, dog-lover, and avid reader." msgstr "p.ex. Artista, amant dels gossos i amant de la lectura." +#: src/lib/moderation/useGlobalLabelStrings.ts:43 +msgid "E.g. artistic nudes." +msgstr "" + #: src/view/com/modals/CreateOrEditList.tsx:283 msgid "e.g. Great Posters" msgstr "p.ex. Gent interessant" @@ -1266,12 +1459,17 @@ msgctxt "action" msgid "Edit" msgstr "Edita" +#: src/view/com/util/UserAvatar.tsx:299 +#: src/view/com/util/UserBanner.tsx:85 +msgid "Edit avatar" +msgstr "" + #: src/view/com/composer/photos/Gallery.tsx:144 #: src/view/com/modals/EditImage.tsx:207 msgid "Edit image" msgstr "Edita la imatge" -#: src/view/screens/ProfileList.tsx:433 +#: src/view/screens/ProfileList.tsx:403 msgid "Edit list details" msgstr "Edita els detalls de la llista" @@ -1279,7 +1477,7 @@ msgstr "Edita els detalls de la llista" msgid "Edit Moderation List" msgstr "Edita la llista de moderació" -#: src/Navigation.tsx:244 +#: src/Navigation.tsx:256 #: src/view/screens/Feeds.tsx:434 #: src/view/screens/SavedFeeds.tsx:84 msgid "Edit My Feeds" @@ -1289,11 +1487,13 @@ msgstr "Edita els meus canals" msgid "Edit my profile" msgstr "Edita el meu perfil" -#: src/view/com/profile/ProfileHeader.tsx:418 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:172 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:161 msgid "Edit profile" msgstr "Edita el perfil" -#: src/view/com/profile/ProfileHeader.tsx:423 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:175 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:164 msgid "Edit Profile" msgstr "Edita el perfil" @@ -1342,7 +1542,7 @@ msgstr "Correu actualitzat" msgid "Email verified" msgstr "Correu verificat" -#: src/view/screens/Settings/index.tsx:312 +#: src/view/screens/Settings/index.tsx:327 msgid "Email:" msgstr "Correu:" @@ -1350,12 +1550,16 @@ msgstr "Correu:" msgid "Enable {0} only" msgstr "Habilita només {0}" -#: src/view/com/modals/ContentFilteringSettings.tsx:167 +#: src/screens/Moderation/index.tsx:331 +msgid "Enable adult content" +msgstr "" + +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:94 msgid "Enable Adult Content" msgstr "Habilita el contingut per a adults" -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:76 -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:77 +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:78 +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:79 msgid "Enable adult content in your feeds" msgstr "Habilita veure el contingut per adults als teus canals" @@ -1371,7 +1575,11 @@ msgstr "Habilita reproductors de contingut per" msgid "Enable this setting to only see replies between people you follow." msgstr "Activa aquesta opció per veure només les respostes entre els comptes que segueixes." -#: src/view/screens/Profile.tsx:455 +#: src/screens/Moderation/index.tsx:341 +msgid "Enabled" +msgstr "" + +#: src/screens/Profile/Sections/Feed.tsx:84 msgid "End of feed" msgstr "Fi del canal" @@ -1392,7 +1600,7 @@ msgstr "Entra el codi de confirmació" #~ msgid "Enter the address of your provider:" #~ msgstr "Introdueix l'adreça del teu proveïdor:" -#: src/view/com/modals/ChangePassword.tsx:151 +#: src/view/com/modals/ChangePassword.tsx:153 msgid "Enter the code you received to change your password." msgstr "Introdueix el codi que has rebut per canviar la teva contrasenya." @@ -1404,8 +1612,8 @@ msgstr "Introdueix el domini que vols utilitzar" msgid "Enter the email you used to create your account. We'll send you a \"reset code\" so you can set a new password." msgstr "Introdueix el correu que vas fer servir per crear el teu compte. T'enviarem un \"codi de restabliment\" perquè puguis posar una nova contrasenya." +#: src/components/dialogs/BirthDateSettings.tsx:108 #: src/view/com/auth/create/Step1.tsx:228 -#: src/view/com/modals/BirthDateSettings.tsx:74 msgid "Enter your birth date" msgstr "Introdueix la teva data de naixement" @@ -1445,16 +1653,28 @@ msgstr "Error:" msgid "Everybody" msgstr "Tothom" +#: src/lib/moderation/useReportOptions.ts:66 +msgid "Excessive mentions or replies" +msgstr "" + +#: src/view/com/modals/DeleteAccount.tsx:231 +msgid "Exits account deletion process" +msgstr "" + #: src/view/com/modals/ChangeHandle.tsx:150 msgid "Exits handle change process" msgstr "Surt del procés de canvi d'identificador" -#: src/view/com/lightbox/Lightbox.web.tsx:120 +#: src/view/com/modals/crop-image/CropImage.web.tsx:135 +msgid "Exits image cropping process" +msgstr "" + +#: src/view/com/lightbox/Lightbox.web.tsx:130 msgid "Exits image view" msgstr "Surt de la visualització de la imatge" #: src/view/com/modals/ListAddRemoveUsers.tsx:88 -#: src/view/shell/desktop/Search.tsx:235 +#: src/view/shell/desktop/Search.tsx:236 msgid "Exits inputting search query" msgstr "Surt de la cerca" @@ -1462,7 +1682,7 @@ msgstr "Surt de la cerca" #~ msgid "Exits signing up for waitlist with {email}" #~ msgstr "Surt de la llista d'espera amb el correu {email}" -#: src/view/com/lightbox/Lightbox.web.tsx:163 +#: src/view/com/lightbox/Lightbox.web.tsx:183 msgid "Expand alt text" msgstr "Expandeix el text alternatiu" @@ -1471,12 +1691,20 @@ msgstr "Expandeix el text alternatiu" msgid "Expand or collapse the full post you are replying to" msgstr "Expandeix o replega la publicació completa a la qual estàs responent" -#: src/view/screens/Settings/index.tsx:753 +#: src/lib/moderation/useGlobalLabelStrings.ts:47 +msgid "Explicit or potentially disturbing media." +msgstr "" + +#: src/lib/moderation/useGlobalLabelStrings.ts:35 +msgid "Explicit sexual images." +msgstr "" + +#: src/view/screens/Settings/index.tsx:773 msgid "Export my data" msgstr "Exporta les meves dades" #: src/view/screens/Settings/ExportCarDialog.tsx:44 -#: src/view/screens/Settings/index.tsx:764 +#: src/view/screens/Settings/index.tsx:784 msgid "Export My Data" msgstr "Exporta les meves dades" @@ -1489,13 +1717,13 @@ msgstr "Contingut extern" msgid "External media may allow websites to collect information about you and your device. No information is sent or requested until you press the \"play\" button." msgstr "El contingut extern pot permetre que algunes webs recullin informació sobre tu i el teu dispositiu. No s'envia ni es demana cap informació fins que premis el botó \"reproduir\"." -#: src/Navigation.tsx:263 +#: src/Navigation.tsx:275 #: src/view/screens/PreferencesExternalEmbeds.tsx:52 -#: src/view/screens/Settings/index.tsx:657 +#: src/view/screens/Settings/index.tsx:673 msgid "External Media Preferences" msgstr "Preferència del contingut extern" -#: src/view/screens/Settings/index.tsx:648 +#: src/view/screens/Settings/index.tsx:664 msgid "External media settings" msgstr "Configuració del contingut extern" @@ -1508,7 +1736,7 @@ msgstr "No s'ha pogut crear la contrasenya d'aplicació" msgid "Failed to create the list. Check your internet connection and try again." msgstr "No s'ha pogut crear la llista. Comprova la teva connexió a internet i torna-ho a provar." -#: src/view/com/util/forms/PostDropdownBtn.tsx:128 +#: src/view/com/util/forms/PostDropdownBtn.tsx:125 msgid "Failed to delete post, please try again" msgstr "No s'ha pogut esborrar la publicació, torna-ho a provar" @@ -1517,11 +1745,15 @@ msgstr "No s'ha pogut esborrar la publicació, torna-ho a provar" msgid "Failed to load recommended feeds" msgstr "Error en carregar els canals recomanats" -#: src/Navigation.tsx:194 +#: src/view/com/lightbox/Lightbox.tsx:83 +msgid "Failed to save image: {0}" +msgstr "" + +#: src/Navigation.tsx:196 msgid "Feed" msgstr "Canal" -#: src/view/com/feeds/FeedSourceCard.tsx:231 +#: src/view/com/feeds/FeedSourceCard.tsx:218 msgid "Feed by {0}" msgstr "Canal per {0}" @@ -1534,18 +1766,18 @@ msgstr "Canal fora de línia" #~ msgstr "Preferències del canal" #: src/view/shell/desktop/RightNav.tsx:61 -#: src/view/shell/Drawer.tsx:311 +#: src/view/shell/Drawer.tsx:314 msgid "Feedback" msgstr "Comentaris" -#: src/Navigation.tsx:452 +#: src/Navigation.tsx:464 #: src/view/screens/Feeds.tsx:419 #: src/view/screens/Feeds.tsx:524 -#: src/view/screens/Profile.tsx:184 -#: src/view/shell/bottom-bar/BottomBar.tsx:181 -#: src/view/shell/desktop/LeftNav.tsx:342 -#: src/view/shell/Drawer.tsx:476 -#: src/view/shell/Drawer.tsx:477 +#: src/view/screens/Profile.tsx:192 +#: src/view/shell/bottom-bar/BottomBar.tsx:183 +#: src/view/shell/desktop/LeftNav.tsx:346 +#: src/view/shell/Drawer.tsx:479 +#: src/view/shell/Drawer.tsx:480 msgid "Feeds" msgstr "Canals" @@ -1561,6 +1793,14 @@ msgstr "Els canals són algoritmes personalitzats creats per usuaris que coneixe msgid "Feeds can be topical as well!" msgstr "Els canals també poden ser d'actualitat!" +#: src/view/com/modals/ChangeHandle.tsx:482 +msgid "File Contents" +msgstr "" + +#: src/lib/moderation/useLabelBehaviorDescription.ts:66 +msgid "Filter from feeds" +msgstr "" + #: src/screens/Onboarding/StepFinished.tsx:151 msgid "Finalizing" msgstr "Finalitzant" @@ -1571,15 +1811,15 @@ msgstr "Finalitzant" msgid "Find accounts to follow" msgstr "Troba comptes per seguir" -#: src/view/screens/Search/Search.tsx:440 +#: src/view/screens/Search/Search.tsx:441 msgid "Find users on Bluesky" msgstr "Troba usuaris a Bluesky" -#: src/view/screens/Search/Search.tsx:438 +#: src/view/screens/Search/Search.tsx:439 msgid "Find users with the search tool on the right" msgstr "Troba usuaris amb l'eina de cerca de la dreta" -#: src/view/com/auth/onboarding/RecommendedFollowsItem.tsx:150 +#: src/view/com/auth/onboarding/RecommendedFollowsItem.tsx:155 msgid "Finding similar accounts..." msgstr "Troba comptes similars…" @@ -1613,22 +1853,29 @@ msgid "Flip vertically" msgstr "Gira verticalment" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:181 -#: src/view/com/post-thread/PostThreadFollowBtn.tsx:136 -#: src/view/com/profile/ProfileHeader.tsx:513 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:229 +#: src/view/com/auth/onboarding/RecommendedFollowsItem.tsx:141 +#: src/view/com/post-thread/PostThreadFollowBtn.tsx:139 +#: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:246 msgid "Follow" msgstr "Segueix" -#: src/view/com/profile/FollowButton.tsx:64 +#: src/view/com/profile/FollowButton.tsx:69 msgctxt "action" msgid "Follow" msgstr "Segueix" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:58 -#: src/view/com/post-thread/PostThreadFollowBtn.tsx:122 -#: src/view/com/profile/ProfileHeader.tsx:504 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:214 +#: src/view/com/post-thread/PostThreadFollowBtn.tsx:125 msgid "Follow {0}" msgstr "Segueix {0}" +#: src/view/com/profile/ProfileMenu.tsx:242 +#: src/view/com/profile/ProfileMenu.tsx:253 +msgid "Follow Account" +msgstr "" + #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:179 msgid "Follow All" msgstr "Segueix-los a tots" @@ -1641,7 +1888,7 @@ msgstr "Segueix els comptes seleccionats i continua" msgid "Follow some users to get started. We can recommend you more users based on who you find interesting." msgstr "Segueix a alguns usuaris per començar. Te'n podem recomanar més basant-nos en els que trobes interessants." -#: src/view/com/profile/ProfileCard.tsx:194 +#: src/view/com/profile/ProfileCard.tsx:216 msgid "Followed by {0}" msgstr "Seguit per {0}" @@ -1653,10 +1900,11 @@ msgstr "Usuaris seguits" msgid "Followed users only" msgstr "Només els usuaris seguits" -#: src/view/com/notifications/FeedItem.tsx:166 +#: src/view/com/notifications/FeedItem.tsx:170 msgid "followed you" msgstr "et segueix" +#: src/view/com/profile/ProfileFollowers.tsx:109 #: src/view/screens/ProfileFollowers.tsx:25 msgid "Followers" msgstr "Seguidors" @@ -1665,25 +1913,30 @@ msgstr "Seguidors" #~ msgid "following" #~ msgstr "seguint" -#: src/view/com/post-thread/PostThreadFollowBtn.tsx:136 -#: src/view/com/profile/ProfileHeader.tsx:495 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:227 +#: src/view/com/post-thread/PostThreadFollowBtn.tsx:139 +#: src/view/com/profile/ProfileFollows.tsx:108 #: src/view/screens/ProfileFollows.tsx:25 msgid "Following" msgstr "Seguint" -#: src/view/com/profile/ProfileHeader.tsx:149 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:89 msgid "Following {0}" msgstr "Seguint {0}" -#: src/Navigation.tsx:250 +#: src/view/screens/Settings/index.tsx:549 +msgid "Following feed preferences" +msgstr "" + +#: src/Navigation.tsx:262 #: src/view/com/home/HomeHeaderLayout.web.tsx:50 #: src/view/com/home/HomeHeaderLayoutMobile.tsx:84 #: src/view/screens/PreferencesFollowingFeed.tsx:104 -#: src/view/screens/Settings/index.tsx:543 +#: src/view/screens/Settings/index.tsx:558 msgid "Following Feed Preferences" msgstr "" -#: src/view/com/profile/ProfileHeader.tsx:546 +#: src/screens/Profile/Header/Handle.tsx:24 msgid "Follows you" msgstr "Et segueix" @@ -1716,12 +1969,16 @@ msgstr "He oblidat la contrasenya" msgid "Forgot Password" msgstr "He oblidat la contrasenya" +#: src/lib/moderation/useReportOptions.ts:52 +msgid "Frequently Posts Unwanted Content" +msgstr "" + #: src/screens/Hashtag.tsx:108 #: src/screens/Hashtag.tsx:148 msgid "From @{sanitizedAuthor}" msgstr "" -#: src/view/com/posts/FeedItem.tsx:189 +#: src/view/com/posts/FeedItem.tsx:179 msgctxt "from-feed" msgid "From <0/>" msgstr "De <0/>" @@ -1735,27 +1992,46 @@ msgstr "Galeria" msgid "Get Started" msgstr "Comença" +#: src/lib/moderation/useReportOptions.ts:37 +msgid "Glaring violations of law or terms of service" +msgstr "" + +#: src/components/moderation/ScreenHider.tsx:144 +#: src/components/moderation/ScreenHider.tsx:153 #: src/view/com/auth/LoggedOut.tsx:81 #: src/view/com/auth/LoggedOut.tsx:82 -#: src/view/com/util/moderation/ScreenHider.tsx:123 -#: src/view/shell/desktop/LeftNav.tsx:104 +#: src/view/screens/NotFound.tsx:55 +#: src/view/screens/ProfileFeed.tsx:111 +#: src/view/screens/ProfileList.tsx:916 +#: src/view/shell/desktop/LeftNav.tsx:108 msgid "Go back" msgstr "Ves enrere" -#: src/view/screens/ProfileFeed.tsx:106 -#: src/view/screens/ProfileFeed.tsx:111 -#: src/view/screens/ProfileList.tsx:902 -#: src/view/screens/ProfileList.tsx:907 +#: src/screens/Profile/ErrorState.tsx:62 +#: src/screens/Profile/ErrorState.tsx:66 +#: src/view/screens/NotFound.tsx:54 +#: src/view/screens/ProfileFeed.tsx:116 +#: src/view/screens/ProfileList.tsx:921 msgid "Go Back" msgstr "Ves enrere" +#: src/components/ReportDialog/SelectReportOptionView.tsx:74 +#: src/components/ReportDialog/SubmitView.tsx:104 #: src/screens/Onboarding/Layout.tsx:104 #: src/screens/Onboarding/Layout.tsx:193 msgid "Go back to previous step" msgstr "Ves al pas anterior" -#: src/view/screens/Search/Search.tsx:747 -#: src/view/shell/desktop/Search.tsx:262 +#: src/view/screens/NotFound.tsx:55 +msgid "Go home" +msgstr "" + +#: src/view/screens/NotFound.tsx:54 +msgid "Go Home" +msgstr "" + +#: src/view/screens/Search/Search.tsx:748 +#: src/view/shell/desktop/Search.tsx:263 msgid "Go to @{queryMaybeHandle}" msgstr "Vés a @{queryMaybeHandle}" @@ -1763,15 +2039,23 @@ msgstr "Vés a @{queryMaybeHandle}" #: src/view/com/auth/login/ForgotPasswordForm.tsx:218 #: src/view/com/auth/login/LoginForm.tsx:288 #: src/view/com/auth/login/SetNewPasswordForm.tsx:195 -#: src/view/com/modals/ChangePassword.tsx:165 +#: src/view/com/modals/ChangePassword.tsx:167 msgid "Go to next" msgstr "Ves al següent" +#: src/lib/moderation/useGlobalLabelStrings.ts:46 +msgid "Graphic Media" +msgstr "" + #: src/view/com/modals/ChangeHandle.tsx:265 msgid "Handle" msgstr "Identificador" -#: src/Navigation.tsx:270 +#: src/lib/moderation/useReportOptions.ts:32 +msgid "Harassment, trolling, or intolerance" +msgstr "" + +#: src/Navigation.tsx:282 msgid "Hashtag" msgstr "" @@ -1788,7 +2072,7 @@ msgid "Having trouble?" msgstr "Tens problemes?" #: src/view/shell/desktop/RightNav.tsx:90 -#: src/view/shell/Drawer.tsx:321 +#: src/view/shell/Drawer.tsx:324 msgid "Help" msgstr "Ajuda" @@ -1808,40 +2092,45 @@ msgstr "Aquí tens uns quants canals d'actualitat basats en els teus interesos: msgid "Here is your app password." msgstr "Aquí tens la teva contrasenya d'aplicació." -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:41 -#: src/view/com/modals/ContentFilteringSettings.tsx:251 -#: src/view/com/util/moderation/ContentHider.tsx:105 -#: src/view/com/util/moderation/PostHider.tsx:108 +#: src/components/moderation/ContentHider.tsx:115 +#: src/components/moderation/GlobalModerationLabelPref.tsx:43 +#: src/components/moderation/PostHider.tsx:107 +#: src/lib/moderation/useLabelBehaviorDescription.ts:15 +#: src/lib/moderation/useLabelBehaviorDescription.ts:20 +#: src/lib/moderation/useLabelBehaviorDescription.ts:25 +#: src/lib/moderation/useLabelBehaviorDescription.ts:30 +#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:52 +#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:76 +#: src/view/com/util/forms/PostDropdownBtn.tsx:328 msgid "Hide" msgstr "Amaga" -#: src/view/com/modals/ContentFilteringSettings.tsx:224 -#: src/view/com/notifications/FeedItem.tsx:326 +#: src/view/com/notifications/FeedItem.tsx:329 msgctxt "action" msgid "Hide" msgstr "Amaga" #: src/view/com/util/forms/PostDropdownBtn.tsx:276 -#: src/view/com/util/forms/PostDropdownBtn.tsx:287 +#: src/view/com/util/forms/PostDropdownBtn.tsx:278 msgid "Hide post" msgstr "Amaga l'entrada" -#: src/view/com/util/moderation/ContentHider.tsx:67 -#: src/view/com/util/moderation/PostHider.tsx:61 +#: src/components/moderation/ContentHider.tsx:67 +#: src/components/moderation/PostHider.tsx:64 msgid "Hide the content" msgstr "Amaga el contingut" -#: src/view/com/util/forms/PostDropdownBtn.tsx:280 +#: src/view/com/util/forms/PostDropdownBtn.tsx:325 msgid "Hide this post?" msgstr "Vols amagar aquesta entrada?" -#: src/view/com/notifications/FeedItem.tsx:316 +#: src/view/com/notifications/FeedItem.tsx:319 msgid "Hide user list" msgstr "Amaga la llista d'usuaris" #: src/view/com/profile/ProfileHeader.tsx:487 -msgid "Hides posts from {0} in your feed" -msgstr "Amaga les publicacions de {0} al teu canal" +#~ msgid "Hides posts from {0} in your feed" +#~ msgstr "Amaga les publicacions de {0} al teu canal" #: src/view/com/posts/FeedErrorMessage.tsx:111 msgid "Hmm, some kind of issue occurred when contacting the feed server. Please let the feed owner know about this issue." @@ -1863,11 +2152,19 @@ msgstr "El servidor del canal ha donat una resposta incorrecta. Avisa al propiet msgid "Hmm, we're having trouble finding this feed. It may have been deleted." msgstr "Tenim problemes per trobar aquest canal. Potser ha estat eliminat." -#: src/Navigation.tsx:442 -#: src/view/shell/bottom-bar/BottomBar.tsx:137 -#: src/view/shell/desktop/LeftNav.tsx:306 -#: src/view/shell/Drawer.tsx:398 -#: src/view/shell/Drawer.tsx:399 +#: src/screens/Moderation/index.tsx:61 +msgid "Hmmmm, it seems we're having trouble loading this data. See below for more details. If this issue persists, please contact us." +msgstr "" + +#: src/screens/Profile/ErrorState.tsx:31 +msgid "Hmmmm, we couldn't load that moderation service." +msgstr "" + +#: src/Navigation.tsx:454 +#: src/view/shell/bottom-bar/BottomBar.tsx:139 +#: src/view/shell/desktop/LeftNav.tsx:310 +#: src/view/shell/Drawer.tsx:401 +#: src/view/shell/Drawer.tsx:402 msgid "Home" msgstr "Inici" @@ -1878,8 +2175,13 @@ msgstr "Inici" #~ msgid "Home Feed Preferences" #~ msgstr "Preferències dels canals a l'inici" +#: src/view/com/modals/ChangeHandle.tsx:421 +msgid "Host:" +msgstr "" + #: src/view/com/auth/create/Step1.tsx:75 #: src/view/com/auth/login/ForgotPasswordForm.tsx:120 +#: src/view/com/modals/ChangeHandle.tsx:280 msgid "Hosting provider" msgstr "Proveïdor d'allotjament" @@ -1904,7 +2206,7 @@ msgstr "Tinc un codi de confirmació" msgid "I have my own domain" msgstr "Tinc el meu propi domini" -#: src/view/com/lightbox/Lightbox.web.tsx:165 +#: src/view/com/lightbox/Lightbox.web.tsx:185 msgid "If alt text is long, toggles alt text expanded state" msgstr "Si el text alternatiu és llarg, canvia l'estat expandit del text alternatiu" @@ -1912,10 +2214,26 @@ msgstr "Si el text alternatiu és llarg, canvia l'estat expandit del text altern msgid "If none are selected, suitable for all ages." msgstr "Si no en selecciones cap, és apropiat per a totes les edats." -#: src/view/com/modals/ChangePassword.tsx:146 +#: src/view/com/auth/create/Policies.tsx:91 +msgid "If you are not yet an adult according to the laws of your country, your parent or legal guardian must read these Terms on your behalf." +msgstr "" + +#: src/view/screens/ProfileList.tsx:610 +msgid "If you delete this list, you won't be able to recover it." +msgstr "" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:316 +msgid "If you remove this post, you won't be able to recover it." +msgstr "" + +#: src/view/com/modals/ChangePassword.tsx:148 msgid "If you want to change your password, we will send you a code to verify that this is your account." msgstr "Si vols canviar la contrasenya t'enviarem un codi per verificar que aquest compte és teu." +#: src/lib/moderation/useReportOptions.ts:36 +msgid "Illegal and Urgent" +msgstr "" + #: src/view/com/util/images/Gallery.tsx:38 msgid "Image" msgstr "Imatge" @@ -1926,8 +2244,12 @@ msgstr "Text alternatiu de la imatge" #: src/view/com/util/UserAvatar.tsx:311 #: src/view/com/util/UserBanner.tsx:118 -msgid "Image options" -msgstr "Opcions de la imatge" +#~ msgid "Image options" +#~ msgstr "Opcions de la imatge" + +#: src/lib/moderation/useReportOptions.ts:47 +msgid "Impersonation or false claims about identity or affiliation" +msgstr "" #: src/view/com/auth/login/SetNewPasswordForm.tsx:138 msgid "Input code sent to your email for password reset" @@ -1981,11 +2303,15 @@ msgstr "Introdueix el nom d'usuari o correu que vas utilitzar per registrar-te" msgid "Input your password" msgstr "Introdueix la teva contrasenya" +#: src/view/com/modals/ChangeHandle.tsx:390 +msgid "Input your preferred hosting provider" +msgstr "" + #: src/view/com/auth/create/Step2.tsx:80 msgid "Input your user handle" msgstr "Introdueix el teu identificador d'usuari" -#: src/view/com/post-thread/PostThreadItem.tsx:226 +#: src/view/com/post-thread/PostThreadItem.tsx:221 msgid "Invalid or unsupported post record" msgstr "Registre de publicació no vàlid o no admès" @@ -2026,7 +2352,7 @@ msgstr "Codis d'invitació: 1 disponible" msgid "It shows posts from the people you follow as they happen." msgstr "Mostra les publicacions de les persones que segueixes cronològicament." -#: src/view/com/auth/HomeLoggedOutCTA.tsx:99 +#: src/view/com/auth/HomeLoggedOutCTA.tsx:103 #: src/view/com/auth/SplashScreen.web.tsx:138 msgid "Jobs" msgstr "Feines" @@ -2048,20 +2374,52 @@ msgstr "Feines" msgid "Journalism" msgstr "Periodisme" +#: src/components/moderation/LabelsOnMe.tsx:59 +msgid "label has been placed on this {labelTarget}" +msgstr "" + +#: src/components/moderation/ContentHider.tsx:144 +msgid "Labeled by {0}." +msgstr "" + +#: src/components/moderation/ContentHider.tsx:142 +msgid "Labeled by the author." +msgstr "" + +#: src/view/screens/Profile.tsx:186 +msgid "Labels" +msgstr "" + +#: src/screens/Profile/Sections/Labels.tsx:143 +msgid "Labels are annotations on users and content. They can be used to hide, warn, and categorize the network." +msgstr "" + +#: src/components/moderation/LabelsOnMe.tsx:61 +msgid "labels have been placed on this {labelTarget}" +msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:63 +msgid "Labels on your account" +msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:65 +msgid "Labels on your content" +msgstr "" + #: src/view/com/composer/select-language/SelectLangBtn.tsx:104 msgid "Language selection" msgstr "Tria l'idioma" -#: src/view/screens/Settings/index.tsx:594 +#: src/view/screens/Settings/index.tsx:610 msgid "Language settings" msgstr "Configuració d'idioma" -#: src/Navigation.tsx:142 +#: src/Navigation.tsx:144 #: src/view/screens/LanguageSettings.tsx:89 msgid "Language Settings" msgstr "Configuració d'idioma" -#: src/view/screens/Settings/index.tsx:603 +#: src/view/screens/Settings/index.tsx:619 msgid "Languages" msgstr "Idiomes" @@ -2070,27 +2428,31 @@ msgid "Last step!" msgstr "Últim pas" #: src/view/com/util/moderation/ContentHider.tsx:103 -msgid "Learn more" -msgstr "Més informació" +#~ msgid "Learn more" +#~ msgstr "Més informació" -#: src/view/com/util/moderation/PostAlerts.tsx:47 -#: src/view/com/util/moderation/ProfileHeaderAlerts.tsx:65 -#: src/view/com/util/moderation/ScreenHider.tsx:104 +#: src/components/moderation/ScreenHider.tsx:129 msgid "Learn More" msgstr "Més informació" -#: src/view/com/util/moderation/ContentHider.tsx:85 -#: src/view/com/util/moderation/PostAlerts.tsx:40 -#: src/view/com/util/moderation/PostHider.tsx:78 -#: src/view/com/util/moderation/ProfileHeaderAlerts.tsx:49 -#: src/view/com/util/moderation/ScreenHider.tsx:101 +#: src/components/moderation/ContentHider.tsx:65 +#: src/components/moderation/ContentHider.tsx:128 +msgid "Learn more about the moderation applied to this content." +msgstr "" + +#: src/components/moderation/PostHider.tsx:85 +#: src/components/moderation/ScreenHider.tsx:126 msgid "Learn more about this warning" msgstr "Més informació d'aquesta advertència" -#: src/view/screens/Moderation.tsx:262 +#: src/screens/Moderation/index.tsx:551 msgid "Learn more about what is public on Bluesky." msgstr "Més informació sobre què és públic a Bluesky." +#: src/components/moderation/ContentHider.tsx:152 +msgid "Learn more." +msgstr "" + #: src/view/com/modals/lang-settings/ContentLanguagesSettings.tsx:82 msgid "Leave them all unchecked to see any language." msgstr "Deixa'ls tots sense marcar per veure tots els idiomes." @@ -2103,7 +2465,7 @@ msgstr "Sortint de Bluesky" msgid "left to go." msgstr "queda." -#: src/view/screens/Settings/index.tsx:278 +#: src/view/screens/Settings/index.tsx:292 msgid "Legacy storage cleared, you need to restart the app now." msgstr "L'emmagatzematge heretat s'ha esborrat, cal que reinicieu l'aplicació ara." @@ -2118,39 +2480,49 @@ msgstr "Som-hi!" #: src/view/com/util/UserAvatar.tsx:248 #: src/view/com/util/UserBanner.tsx:62 -msgid "Library" -msgstr "Biblioteca" +#~ msgid "Library" +#~ msgstr "Biblioteca" -#: src/view/screens/Settings/index.tsx:479 +#: src/view/screens/Settings/index.tsx:494 msgid "Light" msgstr "Clar" -#: src/view/com/util/post-ctrls/PostCtrls.tsx:182 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:185 msgid "Like" msgstr "M'agrada" -#: src/view/screens/ProfileFeed.tsx:591 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:257 +#: src/view/screens/ProfileFeed.tsx:572 msgid "Like this feed" msgstr "Fes m'agrada a aquest canal" -#: src/Navigation.tsx:199 +#: src/components/LikesDialog.tsx:87 +#: src/Navigation.tsx:201 +#: src/Navigation.tsx:206 msgid "Liked by" msgstr "Li ha agradat a" +#: src/screens/Profile/ProfileLabelerLikedBy.tsx:42 #: src/view/screens/PostLikedBy.tsx:27 #: src/view/screens/ProfileFeedLikedBy.tsx:27 msgid "Liked By" msgstr "Li ha agradat a" -#: src/view/com/feeds/FeedSourceCard.tsx:279 +#: src/view/com/feeds/FeedSourceCard.tsx:268 msgid "Liked by {0} {1}" msgstr "Li ha agradat a {0} {1}" -#: src/view/screens/ProfileFeed.tsx:606 +#: src/components/LabelingServiceCard/index.tsx:72 +msgid "Liked by {count} {0}" +msgstr "" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:277 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:291 +#: src/view/screens/ProfileFeed.tsx:587 msgid "Liked by {likeCount} {0}" msgstr "Li ha agradat a {likeCount} {0}" -#: src/view/com/notifications/FeedItem.tsx:170 +#: src/view/com/notifications/FeedItem.tsx:174 msgid "liked your custom feed" msgstr "els hi ha agradat el teu canal personalitzat" @@ -2158,19 +2530,19 @@ msgstr "els hi ha agradat el teu canal personalitzat" #~ msgid "liked your custom feed{0}" #~ msgstr "i ha agradat el teu canal personalitzat{0}" -#: src/view/com/notifications/FeedItem.tsx:155 +#: src/view/com/notifications/FeedItem.tsx:159 msgid "liked your post" msgstr "li ha agradat la teva publicació" -#: src/view/screens/Profile.tsx:183 +#: src/view/screens/Profile.tsx:191 msgid "Likes" msgstr "M'agrades" -#: src/view/com/post-thread/PostThreadItem.tsx:183 +#: src/view/com/post-thread/PostThreadItem.tsx:182 msgid "Likes on this post" msgstr "M'agrades a aquesta publicació" -#: src/Navigation.tsx:168 +#: src/Navigation.tsx:170 msgid "List" msgstr "Llista" @@ -2178,15 +2550,15 @@ msgstr "Llista" msgid "List Avatar" msgstr "Avatar de la llista" -#: src/view/screens/ProfileList.tsx:324 +#: src/view/screens/ProfileList.tsx:311 msgid "List blocked" msgstr "Llista bloquejada" -#: src/view/com/feeds/FeedSourceCard.tsx:233 +#: src/view/com/feeds/FeedSourceCard.tsx:220 msgid "List by {0}" msgstr "Llista per {0}" -#: src/view/screens/ProfileList.tsx:378 +#: src/view/screens/ProfileList.tsx:355 msgid "List deleted" msgstr "Llista eliminada" @@ -2198,39 +2570,40 @@ msgstr "Llista silenciada" msgid "List Name" msgstr "Nom de la llista" -#: src/view/screens/ProfileList.tsx:343 +#: src/view/screens/ProfileList.tsx:325 msgid "List unblocked" msgstr "Llista desbloquejada" -#: src/view/screens/ProfileList.tsx:302 +#: src/view/screens/ProfileList.tsx:297 msgid "List unmuted" msgstr "Llista no silenciada" -#: src/Navigation.tsx:112 -#: src/view/screens/Profile.tsx:185 -#: src/view/shell/desktop/LeftNav.tsx:379 -#: src/view/shell/Drawer.tsx:492 -#: src/view/shell/Drawer.tsx:493 +#: src/Navigation.tsx:114 +#: src/view/screens/Profile.tsx:187 +#: src/view/screens/Profile.tsx:193 +#: src/view/shell/desktop/LeftNav.tsx:383 +#: src/view/shell/Drawer.tsx:495 +#: src/view/shell/Drawer.tsx:496 msgid "Lists" msgstr "Llistes" #: src/view/com/post-thread/PostThread.tsx:333 #: src/view/com/post-thread/PostThread.tsx:341 -msgid "Load more posts" -msgstr "Carrega més publicacions" +#~ msgid "Load more posts" +#~ msgstr "Carrega més publicacions" #: src/view/screens/Notifications.tsx:159 msgid "Load new notifications" msgstr "Carrega noves notificacions" -#: src/view/com/feeds/FeedPage.tsx:115 -#: src/view/screens/Profile.tsx:440 +#: src/screens/Profile/Sections/Feed.tsx:70 +#: src/view/com/feeds/FeedPage.tsx:124 #: src/view/screens/ProfileFeed.tsx:495 -#: src/view/screens/ProfileList.tsx:681 +#: src/view/screens/ProfileList.tsx:695 msgid "Load new posts" msgstr "Carrega noves publicacions" -#: src/view/com/composer/text-input/mobile/Autocomplete.tsx:95 +#: src/view/com/composer/text-input/mobile/Autocomplete.tsx:99 msgid "Loading..." msgstr "Carregant…" @@ -2238,7 +2611,7 @@ msgstr "Carregant…" #~ msgid "Local dev server" #~ msgstr "Servidor de desenvolupament local" -#: src/Navigation.tsx:209 +#: src/Navigation.tsx:221 msgid "Log" msgstr "Registre" @@ -2249,11 +2622,11 @@ msgstr "Registre" msgid "Log out" msgstr "Desconnecta" -#: src/view/screens/Moderation.tsx:155 +#: src/screens/Moderation/index.tsx:444 msgid "Logged-out visibility" msgstr "Visibilitat pels usuaris no connectats" -#: src/view/com/auth/login/ChooseAccountForm.tsx:133 +#: src/view/com/auth/login/ChooseAccountForm.tsx:137 msgid "Login to account that is not listed" msgstr "Accedeix a un compte que no està llistat" @@ -2276,7 +2649,7 @@ msgstr "" msgid "May only contain letters and numbers" msgstr "" -#: src/view/screens/Profile.tsx:182 +#: src/view/screens/Profile.tsx:190 msgid "Media" msgstr "Contingut" @@ -2289,7 +2662,7 @@ msgid "Mentioned users" msgstr "Usuaris mencionats" #: src/view/com/util/ViewHeader.tsx:87 -#: src/view/screens/Search/Search.tsx:646 +#: src/view/screens/Search/Search.tsx:647 msgid "Menu" msgstr "Menú" @@ -2297,31 +2670,39 @@ msgstr "Menú" #~ msgid "Message from server" #~ msgstr "Missatge del servidor" -#: src/view/com/posts/FeedErrorMessage.tsx:197 +#: src/view/com/posts/FeedErrorMessage.tsx:192 msgid "Message from server: {0}" msgstr "Missatge del servidor: {0}" -#: src/Navigation.tsx:117 -#: src/view/screens/Moderation.tsx:66 -#: src/view/screens/Settings/index.tsx:625 -#: src/view/shell/desktop/LeftNav.tsx:397 -#: src/view/shell/Drawer.tsx:511 -#: src/view/shell/Drawer.tsx:512 +#: src/lib/moderation/useReportOptions.ts:45 +msgid "Misleading Account" +msgstr "" + +#: src/Navigation.tsx:119 +#: src/screens/Moderation/index.tsx:106 +#: src/view/screens/Settings/index.tsx:641 +#: src/view/shell/desktop/LeftNav.tsx:401 +#: src/view/shell/Drawer.tsx:514 +#: src/view/shell/Drawer.tsx:515 msgid "Moderation" msgstr "Moderació" +#: src/components/moderation/ModerationDetailsDialog.tsx:113 +msgid "Moderation details" +msgstr "" + #: src/view/com/lists/ListCard.tsx:93 #: src/view/com/modals/UserAddRemoveLists.tsx:206 msgid "Moderation list by {0}" msgstr "Llista de moderació per {0}" -#: src/view/screens/ProfileList.tsx:775 +#: src/view/screens/ProfileList.tsx:789 msgid "Moderation list by <0/>" msgstr "Llista de moderació per <0/>" #: src/view/com/lists/ListCard.tsx:91 #: src/view/com/modals/UserAddRemoveLists.tsx:204 -#: src/view/screens/ProfileList.tsx:773 +#: src/view/screens/ProfileList.tsx:787 msgid "Moderation list by you" msgstr "Llista de moderació teva" @@ -2333,30 +2714,41 @@ msgstr "S'ha creat la llista de moderació" msgid "Moderation list updated" msgstr "S'ha actualitzat la llista de moderació" -#: src/view/screens/Moderation.tsx:114 +#: src/screens/Moderation/index.tsx:245 msgid "Moderation lists" msgstr "Llistes de moderació" -#: src/Navigation.tsx:122 +#: src/Navigation.tsx:124 #: src/view/screens/ModerationModlists.tsx:58 msgid "Moderation Lists" msgstr "Llistes de moderació" -#: src/view/screens/Settings/index.tsx:619 +#: src/view/screens/Settings/index.tsx:635 msgid "Moderation settings" msgstr "Configuració de moderació" -#: src/view/com/modals/ModerationDetails.tsx:35 +#: src/Navigation.tsx:216 +msgid "Moderation states" +msgstr "" + +#: src/screens/Moderation/index.tsx:217 +msgid "Moderation tools" +msgstr "" + +#: src/components/moderation/ModerationDetailsDialog.tsx:49 +#: src/lib/moderation/useModerationCauseDescription.ts:40 msgid "Moderator has chosen to set a general warning on the content." msgstr "El moderador ha decidit establir un advertiment general sobre el contingut" +#: src/view/com/post-thread/PostThreadItem.tsx:541 +msgid "More" +msgstr "" + #: src/view/shell/desktop/Feeds.tsx:65 msgid "More feeds" msgstr "Més canals" -#: src/view/com/profile/ProfileHeader.tsx:523 -#: src/view/screens/ProfileFeed.tsx:363 -#: src/view/screens/ProfileList.tsx:617 +#: src/view/screens/ProfileList.tsx:599 msgid "More options" msgstr "Més opcions" @@ -2380,11 +2772,12 @@ msgstr "" msgid "Mute {truncatedTag}" msgstr "" -#: src/view/com/profile/ProfileHeader.tsx:327 +#: src/view/com/profile/ProfileMenu.tsx:279 +#: src/view/com/profile/ProfileMenu.tsx:286 msgid "Mute Account" msgstr "Silenciar el compte" -#: src/view/screens/ProfileList.tsx:544 +#: src/view/screens/ProfileList.tsx:518 msgid "Mute accounts" msgstr "Silencia els comptes" @@ -2404,17 +2797,18 @@ msgstr "" msgid "Mute in text & tags" msgstr "" -#: src/view/screens/ProfileList.tsx:491 +#: src/view/screens/ProfileList.tsx:461 +#: src/view/screens/ProfileList.tsx:624 msgid "Mute list" msgstr "Silencia la llista" -#: src/view/screens/ProfileList.tsx:275 +#: src/view/screens/ProfileList.tsx:619 msgid "Mute these accounts?" msgstr "Vols silenciar aquests comptes?" #: src/view/screens/ProfileList.tsx:279 -msgid "Mute this List" -msgstr "Silencia aquesta llista" +#~ msgid "Mute this List" +#~ msgstr "Silencia aquesta llista" #: src/components/dialogs/MutedWords.tsx:127 msgid "Mute this word in post text and tags" @@ -2438,11 +2832,11 @@ msgstr "" msgid "Muted" msgstr "Silenciada" -#: src/view/screens/Moderation.tsx:128 +#: src/screens/Moderation/index.tsx:257 msgid "Muted accounts" msgstr "Comptes silenciats" -#: src/Navigation.tsx:127 +#: src/Navigation.tsx:129 #: src/view/screens/ModerationMutedAccounts.tsx:107 msgid "Muted Accounts" msgstr "Comptes silenciats" @@ -2451,15 +2845,20 @@ msgstr "Comptes silenciats" msgid "Muted accounts have their posts removed from your feed and from your notifications. Mutes are completely private." msgstr "Les publicacions dels comptes silenciats seran eliminats del teu canal i de les teves notificacions. Silenciar comptes és completament privat." -#: src/view/screens/Moderation.tsx:100 +#: src/lib/moderation/useModerationCauseDescription.ts:85 +msgid "Muted by \"{0}\"" +msgstr "" + +#: src/screens/Moderation/index.tsx:233 msgid "Muted words & tags" msgstr "" -#: src/view/screens/ProfileList.tsx:277 +#: src/view/screens/ProfileList.tsx:621 msgid "Muting is private. Muted accounts can interact with you, but you will not see their posts or receive notifications from them." msgstr "Silenciar és privat. Els comptes silenciats poden interactuar amb tu, però tu no veuràs les seves publicacions ni rebràs notificacions seves." -#: src/view/com/modals/BirthDateSettings.tsx:56 +#: src/components/dialogs/BirthDateSettings.tsx:35 +#: src/components/dialogs/BirthDateSettings.tsx:38 msgid "My Birthday" msgstr "El meu aniversari" @@ -2471,13 +2870,17 @@ msgstr "Els meus canals" msgid "My Profile" msgstr "El meu perfil" -#: src/view/screens/Settings/index.tsx:582 +#: src/view/screens/Settings/index.tsx:592 +msgid "My saved feeds" +msgstr "" + +#: src/view/screens/Settings/index.tsx:598 msgid "My Saved Feeds" msgstr "Els meus canals desats" #: src/view/com/auth/server-input/index.tsx:118 -msgid "my-server.com" -msgstr "el-meu-servidor.com" +#~ msgid "my-server.com" +#~ msgstr "el-meu-servidor.com" #: src/view/com/modals/AddAppPasswords.tsx:179 #: src/view/com/modals/CreateOrEditList.tsx:290 @@ -2488,6 +2891,12 @@ msgstr "Nom" msgid "Name is required" msgstr "Es requereix un nom" +#: src/lib/moderation/useReportOptions.ts:57 +#: src/lib/moderation/useReportOptions.ts:78 +#: src/lib/moderation/useReportOptions.ts:86 +msgid "Name or Description Violates Community Standards" +msgstr "" + #: src/screens/Onboarding/index.tsx:25 msgid "Nature" msgstr "Natura" @@ -2496,7 +2905,7 @@ msgstr "Natura" #: src/view/com/auth/login/ForgotPasswordForm.tsx:219 #: src/view/com/auth/login/LoginForm.tsx:289 #: src/view/com/auth/login/SetNewPasswordForm.tsx:196 -#: src/view/com/modals/ChangePassword.tsx:166 +#: src/view/com/modals/ChangePassword.tsx:168 msgid "Navigates to the next screen" msgstr "Navega a la pantalla següent" @@ -2504,13 +2913,17 @@ msgstr "Navega a la pantalla següent" msgid "Navigates to your profile" msgstr "Navega al teu perfil" +#: src/components/ReportDialog/SelectReportOptionView.tsx:124 +msgid "Need to report a copyright violation?" +msgstr "" + #: src/view/com/modals/EmbedConsent.tsx:107 #: src/view/com/modals/EmbedConsent.tsx:123 msgid "Never load embeds from {0}" msgstr "No carreguis mai les incrustacions de {0} " #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:72 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:72 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:74 msgid "Never lose access to your followers and data." msgstr "No perdis mai accés als teus seguidors ni a les teves dades." @@ -2519,7 +2932,11 @@ msgid "Never lose access to your followers or data." msgstr "No perdis mai accés als teus seguidors i les teves dades." #: src/components/dialogs/MutedWords.tsx:293 -msgid "Nevermind" +#~ msgid "Nevermind" +#~ msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:520 +msgid "Nevermind, create a handle for me" msgstr "" #: src/view/screens/Lists.tsx:76 @@ -2536,29 +2953,30 @@ msgid "New Moderation List" msgstr "Nova llista de moderació" #: src/view/com/auth/login/SetNewPasswordForm.tsx:150 +#: src/view/com/modals/ChangePassword.tsx:212 msgid "New password" msgstr "Nova contrasenya" -#: src/view/com/modals/ChangePassword.tsx:215 +#: src/view/com/modals/ChangePassword.tsx:217 msgid "New Password" msgstr "Nova contrasenya" -#: src/view/com/feeds/FeedPage.tsx:126 +#: src/view/com/feeds/FeedPage.tsx:135 msgctxt "action" msgid "New post" msgstr "Nova publicació" #: src/view/screens/Feeds.tsx:555 #: src/view/screens/Notifications.tsx:168 -#: src/view/screens/Profile.tsx:382 +#: src/view/screens/Profile.tsx:450 #: src/view/screens/ProfileFeed.tsx:433 -#: src/view/screens/ProfileList.tsx:196 -#: src/view/screens/ProfileList.tsx:224 -#: src/view/shell/desktop/LeftNav.tsx:248 +#: src/view/screens/ProfileList.tsx:199 +#: src/view/screens/ProfileList.tsx:227 +#: src/view/shell/desktop/LeftNav.tsx:252 msgid "New post" msgstr "Nova publicació" -#: src/view/shell/desktop/LeftNav.tsx:258 +#: src/view/shell/desktop/LeftNav.tsx:262 msgctxt "action" msgid "New Post" msgstr "Nova publicació" @@ -2586,8 +3004,8 @@ msgstr "Notícies" #: src/view/com/auth/login/SetNewPasswordForm.tsx:187 #: src/view/com/auth/login/SetNewPasswordForm.tsx:198 #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:79 -#: src/view/com/modals/ChangePassword.tsx:251 #: src/view/com/modals/ChangePassword.tsx:253 +#: src/view/com/modals/ChangePassword.tsx:255 msgid "Next" msgstr "Següent" @@ -2596,7 +3014,7 @@ msgctxt "action" msgid "Next" msgstr "Següent" -#: src/view/com/lightbox/Lightbox.web.tsx:149 +#: src/view/com/lightbox/Lightbox.web.tsx:169 msgid "Next image" msgstr "Següent imatge" @@ -2609,12 +3027,16 @@ msgstr "Següent imatge" msgid "No" msgstr "No" -#: src/view/screens/ProfileFeed.tsx:584 -#: src/view/screens/ProfileList.tsx:755 +#: src/view/screens/ProfileFeed.tsx:561 +#: src/view/screens/ProfileList.tsx:769 msgid "No description" msgstr "Cap descripció" -#: src/view/com/profile/ProfileHeader.tsx:170 +#: src/view/com/modals/ChangeHandle.tsx:406 +msgid "No DNS Panel" +msgstr "" + +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:111 msgid "No longer following {0}" msgstr "Ja no segueixes a {0}" @@ -2622,12 +3044,12 @@ msgstr "Ja no segueixes a {0}" msgid "No notifications yet!" msgstr "Encara no tens cap notificació" -#: src/view/com/composer/text-input/mobile/Autocomplete.tsx:97 -#: src/view/com/composer/text-input/web/Autocomplete.tsx:191 +#: src/view/com/composer/text-input/mobile/Autocomplete.tsx:101 +#: src/view/com/composer/text-input/web/Autocomplete.tsx:195 msgid "No result" msgstr "Cap resultat" -#: src/components/Lists.tsx:192 +#: src/components/Lists.tsx:189 msgid "No results found" msgstr "" @@ -2636,8 +3058,8 @@ msgid "No results found for \"{query}\"" msgstr "No s'han trobat resultats per \"{query}\"" #: src/view/com/modals/ListAddRemoveUsers.tsx:127 -#: src/view/screens/Search/Search.tsx:281 -#: src/view/screens/Search/Search.tsx:309 +#: src/view/screens/Search/Search.tsx:282 +#: src/view/screens/Search/Search.tsx:310 msgid "No results found for {query}" msgstr "No s'han trobat resultats per {query}" @@ -2649,12 +3071,21 @@ msgstr "No, gràcies" msgid "Nobody" msgstr "Ningú" +#: src/components/LikedByList.tsx:102 +#: src/components/LikesDialog.tsx:99 +msgid "Nobody has liked this yet. Maybe you should be the first!" +msgstr "" + +#: src/lib/moderation/useGlobalLabelStrings.ts:42 +msgid "Non-sexual Nudity" +msgstr "" + #: src/view/com/modals/SelfLabel.tsx:135 msgid "Not Applicable." msgstr "No aplicable." -#: src/Navigation.tsx:107 -#: src/view/screens/Profile.tsx:106 +#: src/Navigation.tsx:109 +#: src/view/screens/Profile.tsx:97 msgid "Not Found" msgstr "No s'ha trobat" @@ -2663,17 +3094,22 @@ msgstr "No s'ha trobat" msgid "Not right now" msgstr "Ara mateix no" -#: src/view/screens/Moderation.tsx:252 +#: src/view/com/profile/ProfileMenu.tsx:368 +#: src/view/com/util/forms/PostDropdownBtn.tsx:342 +msgid "Note about sharing" +msgstr "" + +#: src/screens/Moderation/index.tsx:542 msgid "Note: Bluesky is an open and public network. This setting only limits the visibility of your content on the Bluesky app and website, and other apps may not respect this setting. Your content may still be shown to logged-out users by other apps and websites." msgstr "Nota: Bluesky és una xarxa oberta i pública. Aquesta configuració tan sols limita el teu contingut a l'aplicació de Bluesky i a la web, altres aplicacions poden no respectar-ho. El teu contingut pot ser mostrat a usuaris no connectats per altres aplicacions i webs." -#: src/Navigation.tsx:457 +#: src/Navigation.tsx:469 #: src/view/screens/Notifications.tsx:124 #: src/view/screens/Notifications.tsx:148 -#: src/view/shell/bottom-bar/BottomBar.tsx:205 -#: src/view/shell/desktop/LeftNav.tsx:361 -#: src/view/shell/Drawer.tsx:435 -#: src/view/shell/Drawer.tsx:436 +#: src/view/shell/bottom-bar/BottomBar.tsx:207 +#: src/view/shell/desktop/LeftNav.tsx:365 +#: src/view/shell/Drawer.tsx:438 +#: src/view/shell/Drawer.tsx:439 msgid "Notifications" msgstr "Notificacions" @@ -2681,7 +3117,15 @@ msgstr "Notificacions" msgid "Nudity" msgstr "Nuesa" -#: src/view/com/util/ErrorBoundary.tsx:35 +#: src/lib/moderation/useReportOptions.ts:71 +msgid "Nudity or pornography not labeled as such" +msgstr "" + +#: src/lib/moderation/useLabelBehaviorDescription.ts:11 +msgid "Off" +msgstr "" + +#: src/view/com/util/ErrorBoundary.tsx:49 msgid "Oh no!" msgstr "Ostres!" @@ -2689,6 +3133,10 @@ msgstr "Ostres!" msgid "Oh no! Something went wrong." msgstr "Ostres! Alguna cosa ha fallat." +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:127 +msgid "OK" +msgstr "" + #: src/view/com/auth/login/PasswordUpdatedForm.tsx:41 msgid "Okay" msgstr "D'acord" @@ -2697,11 +3145,11 @@ msgstr "D'acord" msgid "Oldest replies first" msgstr "Respostes més antigues primer" -#: src/view/screens/Settings/index.tsx:234 +#: src/view/screens/Settings/index.tsx:240 msgid "Onboarding reset" msgstr "Restableix la incorporació" -#: src/view/com/composer/Composer.tsx:382 +#: src/view/com/composer/Composer.tsx:391 msgid "One or more images is missing alt text." msgstr "Falta el text alternatiu a una o més imatges." @@ -2709,13 +3157,13 @@ msgstr "Falta el text alternatiu a una o més imatges." msgid "Only {0} can reply." msgstr "Només {0} poden respondre." -#: src/components/Lists.tsx:82 +#: src/components/Lists.tsx:83 msgid "Oops, something went wrong!" msgstr "" -#: src/components/Lists.tsx:188 -#: src/view/screens/AppPasswords.tsx:65 -#: src/view/screens/Profile.tsx:106 +#: src/components/Lists.tsx:157 +#: src/view/screens/AppPasswords.tsx:67 +#: src/view/screens/Profile.tsx:97 msgid "Oops!" msgstr "Ostres!" @@ -2724,34 +3172,47 @@ msgid "Open" msgstr "Obre" #: src/view/screens/Moderation.tsx:75 -msgid "Open content filtering settings" -msgstr "" +#~ msgid "Open content filtering settings" +#~ msgstr "" -#: src/view/com/composer/Composer.tsx:477 -#: src/view/com/composer/Composer.tsx:478 +#: src/view/com/composer/Composer.tsx:490 +#: src/view/com/composer/Composer.tsx:491 msgid "Open emoji picker" msgstr "Obre el selector d'emojis" -#: src/view/screens/Settings/index.tsx:712 +#: src/view/screens/ProfileFeed.tsx:299 +msgid "Open feed options menu" +msgstr "" + +#: src/view/screens/Settings/index.tsx:730 msgid "Open links with in-app browser" msgstr "Obre els enllaços al navegador de l'aplicació" -#: src/view/screens/Moderation.tsx:92 -msgid "Open muted words settings" +#: src/screens/Moderation/index.tsx:229 +msgid "Open muted words and tags settings" msgstr "" +#: src/view/screens/Moderation.tsx:92 +#~ msgid "Open muted words settings" +#~ msgstr "" + #: src/view/com/home/HomeHeaderLayoutMobile.tsx:50 msgid "Open navigation" msgstr "Obre la navegació" -#: src/view/com/util/forms/PostDropdownBtn.tsx:175 +#: src/view/com/util/forms/PostDropdownBtn.tsx:183 msgid "Open post options menu" msgstr "" -#: src/view/screens/Settings/index.tsx:804 +#: src/view/screens/Settings/index.tsx:824 +#: src/view/screens/Settings/index.tsx:834 msgid "Open storybook page" msgstr "Obre la pàgina d'historial" +#: src/view/screens/Settings/index.tsx:812 +msgid "Open system log" +msgstr "" + #: src/view/com/util/forms/DropdownButton.tsx:154 msgid "Opens {numItems} options" msgstr "Obre {numItems} opcions" @@ -2760,11 +3221,11 @@ msgstr "Obre {numItems} opcions" msgid "Opens additional details for a debug entry" msgstr "Obre detalls adicionals per una entrada de depuració" -#: src/view/com/notifications/FeedItem.tsx:349 +#: src/view/com/notifications/FeedItem.tsx:353 msgid "Opens an expanded list of users in this notification" msgstr "Obre una llista expandida d'usuaris en aquesta notificació" -#: src/view/com/composer/photos/OpenCameraBtn.tsx:61 +#: src/view/com/composer/photos/OpenCameraBtn.tsx:78 msgid "Opens camera on device" msgstr "Obre la càmera del dispositiu" @@ -2772,7 +3233,7 @@ msgstr "Obre la càmera del dispositiu" msgid "Opens composer" msgstr "Obre el compositor" -#: src/view/screens/Settings/index.tsx:595 +#: src/view/screens/Settings/index.tsx:611 msgid "Opens configurable language settings" msgstr "Obre la configuració d'idioma" @@ -2781,20 +3242,30 @@ msgid "Opens device photo gallery" msgstr "Obre la galeria fotogràfica del dispositiu" #: src/view/com/profile/ProfileHeader.tsx:420 -msgid "Opens editor for profile display name, avatar, background image, and description" -msgstr "Obre l'editor del perfil per editar el nom, avatar, imatge de fons i descripció" +#~ msgid "Opens editor for profile display name, avatar, background image, and description" +#~ msgstr "Obre l'editor del perfil per editar el nom, avatar, imatge de fons i descripció" -#: src/view/screens/Settings/index.tsx:649 +#: src/view/screens/Settings/index.tsx:665 msgid "Opens external embeds settings" msgstr "Obre la configuració per les incrustacions externes" +#: src/view/com/auth/HomeLoggedOutCTA.tsx:56 +#: src/view/com/auth/SplashScreen.tsx:70 +msgid "Opens flow to create a new Bluesky account" +msgstr "" + +#: src/view/com/auth/HomeLoggedOutCTA.tsx:74 +#: src/view/com/auth/SplashScreen.tsx:83 +msgid "Opens flow to sign into your existing Bluesky account" +msgstr "" + #: src/view/com/profile/ProfileHeader.tsx:575 -msgid "Opens followers list" -msgstr "Obre la llista de seguidors" +#~ msgid "Opens followers list" +#~ msgstr "Obre la llista de seguidors" #: src/view/com/profile/ProfileHeader.tsx:594 -msgid "Opens following list" -msgstr "Obre la llista de seguits" +#~ msgid "Opens following list" +#~ msgstr "Obre la llista de seguits" #: src/view/screens/Settings.tsx:412 #~ msgid "Opens invite code list" @@ -2804,15 +3275,35 @@ msgstr "Obre la llista de seguits" msgid "Opens list of invite codes" msgstr "Obre la llista de codis d'invitació" +#: src/view/screens/Settings/index.tsx:794 +msgid "Opens modal for account deletion confirmation. Requires email code" +msgstr "" + #: src/view/screens/Settings/index.tsx:774 -msgid "Opens modal for account deletion confirmation. Requires email code." -msgstr "Obre el modal per confirmar l'eliminació del compte. Requereix un codi de correu" +#~ msgid "Opens modal for account deletion confirmation. Requires email code." +#~ msgstr "Obre el modal per confirmar l'eliminació del compte. Requereix un codi de correu" + +#: src/view/screens/Settings/index.tsx:752 +msgid "Opens modal for changing your Bluesky password" +msgstr "" + +#: src/view/screens/Settings/index.tsx:714 +msgid "Opens modal for choosing a new Bluesky handle" +msgstr "" + +#: src/view/screens/Settings/index.tsx:775 +msgid "Opens modal for downloading your Bluesky account data (repository)" +msgstr "" + +#: src/view/screens/Settings/index.tsx:966 +msgid "Opens modal for email verification" +msgstr "" #: src/view/com/modals/ChangeHandle.tsx:281 msgid "Opens modal for using custom domain" msgstr "Obre el modal per a utilitzar un domini personalitzat" -#: src/view/screens/Settings/index.tsx:620 +#: src/view/screens/Settings/index.tsx:636 msgid "Opens moderation settings" msgstr "Obre la configuració de la moderació" @@ -2825,27 +3316,40 @@ msgstr "Obre el formulari de restabliment de la contrasenya" msgid "Opens screen to edit Saved Feeds" msgstr "Obre pantalla per editar els canals desats" -#: src/view/screens/Settings/index.tsx:576 +#: src/view/screens/Settings/index.tsx:593 msgid "Opens screen with all saved feeds" msgstr "Obre la pantalla amb tots els canals desats" +#: src/view/screens/Settings/index.tsx:692 +msgid "Opens the app password settings" +msgstr "" + #: src/view/screens/Settings/index.tsx:676 -msgid "Opens the app password settings page" -msgstr "Obre la pàgina de configuració de les contrasenyes d'aplicació" +#~ msgid "Opens the app password settings page" +#~ msgstr "Obre la pàgina de configuració de les contrasenyes d'aplicació" + +#: src/view/screens/Settings/index.tsx:550 +msgid "Opens the Following feed preferences" +msgstr "" #: src/view/screens/Settings/index.tsx:535 -msgid "Opens the home feed preferences" -msgstr "Obre les preferències de canals de l'inici" +#~ msgid "Opens the home feed preferences" +#~ msgstr "Obre les preferències de canals de l'inici" -#: src/view/screens/Settings/index.tsx:805 +#: src/view/com/modals/LinkWarning.tsx:76 +msgid "Opens the linked website" +msgstr "" + +#: src/view/screens/Settings/index.tsx:825 +#: src/view/screens/Settings/index.tsx:835 msgid "Opens the storybook page" msgstr "Obre la pàgina de l'historial" -#: src/view/screens/Settings/index.tsx:793 +#: src/view/screens/Settings/index.tsx:813 msgid "Opens the system log page" msgstr "Obre la pàgina de registres del sistema" -#: src/view/screens/Settings/index.tsx:556 +#: src/view/screens/Settings/index.tsx:571 msgid "Opens the threads preferences" msgstr "Obre les preferències dels fils de debat" @@ -2853,11 +3357,19 @@ msgstr "Obre les preferències dels fils de debat" msgid "Option {0} of {numItems}" msgstr "Opció {0} de {numItems}" +#: src/components/ReportDialog/SubmitView.tsx:162 +msgid "Optionally provide additional information below:" +msgstr "" + #: src/view/com/modals/Threadgate.tsx:89 msgid "Or combine these options:" msgstr "O combina aquestes opcions:" -#: src/view/com/auth/login/ChooseAccountForm.tsx:138 +#: src/lib/moderation/useReportOptions.ts:25 +msgid "Other" +msgstr "" + +#: src/view/com/auth/login/ChooseAccountForm.tsx:142 msgid "Other account" msgstr "Un altre compte" @@ -2869,7 +3381,7 @@ msgstr "Un altre compte" msgid "Other..." msgstr "Un altre…" -#: src/components/Lists.tsx:194 +#: src/components/Lists.tsx:190 #: src/view/screens/NotFound.tsx:45 msgid "Page not found" msgstr "Pàgina no trobada" @@ -2880,12 +3392,18 @@ msgstr "Pàgina no trobada" #: src/view/com/auth/create/Step1.tsx:191 #: src/view/com/auth/create/Step1.tsx:201 +#: src/view/com/auth/login/LoginForm.tsx:210 #: src/view/com/auth/login/LoginForm.tsx:226 #: src/view/com/auth/login/SetNewPasswordForm.tsx:161 +#: src/view/com/modals/DeleteAccount.tsx:195 #: src/view/com/modals/DeleteAccount.tsx:202 msgid "Password" msgstr "Contrasenya" +#: src/view/com/modals/ChangePassword.tsx:142 +msgid "Password Changed" +msgstr "" + #: src/view/com/auth/login/Login.tsx:157 msgid "Password updated" msgstr "Contrasenya actualitzada" @@ -2894,11 +3412,11 @@ msgstr "Contrasenya actualitzada" msgid "Password updated!" msgstr "Contrasenya actualitzada!" -#: src/Navigation.tsx:162 +#: src/Navigation.tsx:164 msgid "People followed by @{0}" msgstr "Persones seguides per @{0}" -#: src/Navigation.tsx:155 +#: src/Navigation.tsx:157 msgid "People following @{0}" msgstr "Persones seguint a @{0}" @@ -2922,11 +3440,15 @@ msgstr "Mascotes" msgid "Pictures meant for adults." msgstr "Imatges destinades a adults." -#: src/view/screens/ProfileFeed.tsx:354 -#: src/view/screens/ProfileList.tsx:581 +#: src/view/screens/ProfileFeed.tsx:291 +#: src/view/screens/ProfileList.tsx:563 msgid "Pin to home" msgstr "Fixa a l'inici" +#: src/view/screens/ProfileFeed.tsx:294 +msgid "Pin to Home" +msgstr "" + #: src/view/screens/SavedFeeds.tsx:88 msgid "Pinned Feeds" msgstr "Canals de notícies fixats" @@ -2992,10 +3514,14 @@ msgstr "Introdueix el teu correu." msgid "Please enter your password as well:" msgstr "Introdueix la teva contrasenya també:" +#: src/components/moderation/LabelsOnMeDialog.tsx:222 +msgid "Please explain why you think this label was incorrectly applied by {0}" +msgstr "" + #: src/view/com/modals/AppealLabel.tsx:72 #: src/view/com/modals/AppealLabel.tsx:75 -msgid "Please tell us why you think this content warning was incorrectly applied!" -msgstr "Digues-nos per què creus que s'ha aplicat incorrectament l'advertència de contingut." +#~ msgid "Please tell us why you think this content warning was incorrectly applied!" +#~ msgstr "Digues-nos per què creus que s'ha aplicat incorrectament l'advertència de contingut." #~ msgid "Please tell us why you think this decision was incorrect." #~ msgstr "Por favor, dinos por qué crees que esta decisión fue incorrecta." @@ -3004,7 +3530,7 @@ msgstr "Digues-nos per què creus que s'ha aplicat incorrectament l'advertència msgid "Please Verify Your Email" msgstr "Verifica el teu correu" -#: src/view/com/composer/Composer.tsx:222 +#: src/view/com/composer/Composer.tsx:221 msgid "Please wait for your link card to finish loading" msgstr "Espera que es generi la targeta de l'enllaç" @@ -3016,13 +3542,17 @@ msgstr "Política" msgid "Porn" msgstr "Pornografia" -#: src/view/com/composer/Composer.tsx:357 -#: src/view/com/composer/Composer.tsx:365 +#: src/lib/moderation/useGlobalLabelStrings.ts:34 +msgid "Pornography" +msgstr "" + +#: src/view/com/composer/Composer.tsx:366 +#: src/view/com/composer/Composer.tsx:374 msgctxt "action" msgid "Post" msgstr "Publica" -#: src/view/com/post-thread/PostThread.tsx:303 +#: src/view/com/post-thread/PostThread.tsx:292 msgctxt "description" msgid "Post" msgstr "Publicació" @@ -3037,20 +3567,30 @@ msgstr "Publicació" msgid "Post by {0}" msgstr "Publicació per {0}" -#: src/Navigation.tsx:174 -#: src/Navigation.tsx:181 -#: src/Navigation.tsx:188 +#: src/Navigation.tsx:176 +#: src/Navigation.tsx:183 +#: src/Navigation.tsx:190 msgid "Post by @{0}" msgstr "Publicació per @{0}" -#: src/view/com/util/forms/PostDropdownBtn.tsx:108 +#: src/view/com/util/forms/PostDropdownBtn.tsx:105 msgid "Post deleted" msgstr "Publicació eliminada" -#: src/view/com/post-thread/PostThread.tsx:462 +#: src/view/com/post-thread/PostThread.tsx:157 msgid "Post hidden" msgstr "Publicació oculta" +#: src/components/moderation/ModerationDetailsDialog.tsx:98 +#: src/lib/moderation/useModerationCauseDescription.ts:99 +msgid "Post Hidden by Muted Word" +msgstr "" + +#: src/components/moderation/ModerationDetailsDialog.tsx:101 +#: src/lib/moderation/useModerationCauseDescription.ts:108 +msgid "Post Hidden by You" +msgstr "" + #: src/view/com/composer/select-language/SelectLangBtn.tsx:87 msgid "Post language" msgstr "Idioma de la publicació" @@ -3059,7 +3599,8 @@ msgstr "Idioma de la publicació" msgid "Post Languages" msgstr "Idiomes de les publicacions" -#: src/view/com/post-thread/PostThread.tsx:514 +#: src/view/com/post-thread/PostThread.tsx:152 +#: src/view/com/post-thread/PostThread.tsx:164 msgid "Post not found" msgstr "Publicació no trobada" @@ -3067,7 +3608,7 @@ msgstr "Publicació no trobada" msgid "posts" msgstr "" -#: src/view/screens/Profile.tsx:180 +#: src/view/screens/Profile.tsx:188 msgid "Posts" msgstr "Publicacions" @@ -3083,7 +3624,11 @@ msgstr "Publicacions amagades" msgid "Potentially Misleading Link" msgstr "Enllaç potencialment enganyós" -#: src/view/com/lightbox/Lightbox.web.tsx:135 +#: src/components/Lists.tsx:88 +msgid "Press to retry" +msgstr "" + +#: src/view/com/lightbox/Lightbox.web.tsx:150 msgid "Previous image" msgstr "Imatge anterior" @@ -3095,15 +3640,16 @@ msgstr "Idioma principal" msgid "Prioritize Your Follows" msgstr "Prioritza els usuaris que segueixes" -#: src/view/screens/Settings/index.tsx:632 +#: src/view/screens/Settings/index.tsx:648 #: src/view/shell/desktop/RightNav.tsx:72 msgid "Privacy" msgstr "Privacitat" -#: src/Navigation.tsx:219 +#: src/Navigation.tsx:231 +#: src/view/com/auth/create/Policies.tsx:69 #: src/view/screens/PrivacyPolicy.tsx:29 -#: src/view/screens/Settings/index.tsx:891 -#: src/view/shell/Drawer.tsx:262 +#: src/view/screens/Settings/index.tsx:921 +#: src/view/shell/Drawer.tsx:265 msgid "Privacy Policy" msgstr "Política de privacitat" @@ -3111,11 +3657,16 @@ msgstr "Política de privacitat" msgid "Processing..." msgstr "Processant…" -#: src/view/shell/bottom-bar/BottomBar.tsx:247 -#: src/view/shell/desktop/LeftNav.tsx:415 +#: src/view/screens/DebugMod.tsx:888 +#: src/view/screens/Profile.tsx:340 +msgid "profile" +msgstr "" + +#: src/view/shell/bottom-bar/BottomBar.tsx:251 +#: src/view/shell/desktop/LeftNav.tsx:419 #: src/view/shell/Drawer.tsx:70 -#: src/view/shell/Drawer.tsx:546 -#: src/view/shell/Drawer.tsx:547 +#: src/view/shell/Drawer.tsx:549 +#: src/view/shell/Drawer.tsx:550 msgid "Profile" msgstr "Perfil" @@ -3123,7 +3674,7 @@ msgstr "Perfil" msgid "Profile updated" msgstr "Perfil actualitzat" -#: src/view/screens/Settings/index.tsx:949 +#: src/view/screens/Settings/index.tsx:979 msgid "Protect your account by verifying your email." msgstr "Protegeix el teu compte verificant el teu correu." @@ -3139,11 +3690,11 @@ msgstr "Llistes d'usuaris per silenciar o bloquejar en massa, públiques i per c msgid "Public, shareable lists which can drive feeds." msgstr "Llistes que poden nodrir canals, públiques i per compartir." -#: src/view/com/composer/Composer.tsx:342 +#: src/view/com/composer/Composer.tsx:351 msgid "Publish post" msgstr "Publica" -#: src/view/com/composer/Composer.tsx:342 +#: src/view/com/composer/Composer.tsx:351 msgid "Publish reply" msgstr "Publica la resposta" @@ -3173,6 +3724,10 @@ msgstr "Aleatori (també conegut com \"Poster's Roulette\")" msgid "Ratios" msgstr "Proporcions" +#: src/view/screens/Search/Search.tsx:776 +msgid "Recent Searches" +msgstr "" + #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:116 msgid "Recommended Feeds" msgstr "Canals recomanats" @@ -3181,36 +3736,50 @@ msgstr "Canals recomanats" msgid "Recommended Users" msgstr "Usuaris recomanats" -#: src/components/dialogs/MutedWords.tsx:298 -#: src/view/com/modals/ListAddRemoveUsers.tsx:264 +#: src/components/dialogs/MutedWords.tsx:287 +#: src/view/com/feeds/FeedSourceCard.tsx:283 +#: src/view/com/modals/ListAddRemoveUsers.tsx:268 #: src/view/com/modals/SelfLabel.tsx:83 #: src/view/com/modals/UserAddRemoveLists.tsx:219 -#: src/view/com/util/UserAvatar.tsx:285 -#: src/view/com/util/UserBanner.tsx:91 +#: src/view/com/posts/FeedErrorMessage.tsx:204 msgid "Remove" msgstr "Elimina" #: src/view/com/feeds/FeedSourceCard.tsx:108 -msgid "Remove {0} from my feeds?" -msgstr "Vols eliminar {0} dels teus canals?" +#~ msgid "Remove {0} from my feeds?" +#~ msgstr "Vols eliminar {0} dels teus canals?" #: src/view/com/util/AccountDropdownBtn.tsx:22 msgid "Remove account" msgstr "Elimina el compte" -#: src/view/com/posts/FeedErrorMessage.tsx:131 -#: src/view/com/posts/FeedErrorMessage.tsx:166 +#: src/view/com/util/UserAvatar.tsx:358 +msgid "Remove Avatar" +msgstr "" + +#: src/view/com/util/UserBanner.tsx:148 +msgid "Remove Banner" +msgstr "" + +#: src/view/com/posts/FeedErrorMessage.tsx:160 msgid "Remove feed" msgstr "Elimina el canal" -#: src/view/com/feeds/FeedSourceCard.tsx:107 -#: src/view/com/feeds/FeedSourceCard.tsx:169 -#: src/view/com/feeds/FeedSourceCard.tsx:174 -#: src/view/com/feeds/FeedSourceCard.tsx:245 -#: src/view/screens/ProfileFeed.tsx:273 +#: src/view/com/posts/FeedErrorMessage.tsx:201 +msgid "Remove feed?" +msgstr "" + +#: src/view/com/feeds/FeedSourceCard.tsx:173 +#: src/view/com/feeds/FeedSourceCard.tsx:233 +#: src/view/screens/ProfileFeed.tsx:334 +#: src/view/screens/ProfileFeed.tsx:340 msgid "Remove from my feeds" msgstr "Elimina dels meus canals" +#: src/view/com/feeds/FeedSourceCard.tsx:278 +msgid "Remove from my feeds?" +msgstr "" + #: src/view/com/composer/photos/Gallery.tsx:167 msgid "Remove image" msgstr "Elimina la imatge" @@ -3219,7 +3788,7 @@ msgstr "Elimina la imatge" msgid "Remove image preview" msgstr "Elimina la visualització prèvia de la imatge" -#: src/components/dialogs/MutedWords.tsx:343 +#: src/components/dialogs/MutedWords.tsx:330 msgid "Remove mute word from your list" msgstr "" @@ -3228,28 +3797,35 @@ msgid "Remove repost" msgstr "Elimina la republicació" #: src/view/com/feeds/FeedSourceCard.tsx:175 -msgid "Remove this feed from my feeds?" -msgstr "Vols eliminar aquest canal dels meus canals?" +#~ msgid "Remove this feed from my feeds?" +#~ msgstr "Vols eliminar aquest canal dels meus canals?" + +#: src/view/com/posts/FeedErrorMessage.tsx:202 +msgid "Remove this feed from your saved feeds" +msgstr "" #: src/view/com/posts/FeedErrorMessage.tsx:132 -msgid "Remove this feed from your saved feeds?" -msgstr "Vols eliminar aquest canal dels teus canals desats?" +#~ msgid "Remove this feed from your saved feeds?" +#~ msgstr "Vols eliminar aquest canal dels teus canals desats?" #: src/view/com/modals/ListAddRemoveUsers.tsx:199 #: src/view/com/modals/UserAddRemoveLists.tsx:152 msgid "Removed from list" msgstr "Elimina de la llista" -#: src/view/com/feeds/FeedSourceCard.tsx:113 -#: src/view/com/feeds/FeedSourceCard.tsx:180 +#: src/view/com/feeds/FeedSourceCard.tsx:121 msgid "Removed from my feeds" msgstr "Eliminat dels meus canals" +#: src/view/screens/ProfileFeed.tsx:208 +msgid "Removed from your feeds" +msgstr "" + #: src/view/com/composer/ExternalEmbed.tsx:71 msgid "Removes default thumbnail from {0}" msgstr "Elimina la miniatura per defecte de {0}" -#: src/view/screens/Profile.tsx:181 +#: src/view/screens/Profile.tsx:189 msgid "Replies" msgstr "Respostes" @@ -3257,7 +3833,7 @@ msgstr "Respostes" msgid "Replies to this thread are disabled" msgstr "Les respostes a aquest fil de debat estan deshabilitades" -#: src/view/com/composer/Composer.tsx:355 +#: src/view/com/composer/Composer.tsx:364 msgctxt "action" msgid "Reply" msgstr "Respon" @@ -3266,34 +3842,55 @@ msgstr "Respon" msgid "Reply Filters" msgstr "Filtres de resposta" -#: src/view/com/post/Post.tsx:167 -#: src/view/com/posts/FeedItem.tsx:287 +#: src/view/com/post/Post.tsx:166 +#: src/view/com/posts/FeedItem.tsx:280 msgctxt "description" msgid "Reply to <0/>" msgstr "Resposta a <0/>" #: src/view/com/modals/report/Modal.tsx:166 -msgid "Report {collectionName}" -msgstr "Informa de {collectionName}" +#~ msgid "Report {collectionName}" +#~ msgstr "Informa de {collectionName}" -#: src/view/com/profile/ProfileHeader.tsx:361 +#: src/view/com/profile/ProfileMenu.tsx:319 +#: src/view/com/profile/ProfileMenu.tsx:322 msgid "Report Account" msgstr "Informa del compte" -#: src/view/screens/ProfileFeed.tsx:293 +#: src/view/screens/ProfileFeed.tsx:351 +#: src/view/screens/ProfileFeed.tsx:353 msgid "Report feed" msgstr "Informa del canal" -#: src/view/screens/ProfileList.tsx:459 +#: src/view/screens/ProfileList.tsx:429 msgid "Report List" msgstr "Informa de la llista" -#: src/view/com/modals/report/SendReportButton.tsx:37 -#: src/view/com/util/forms/PostDropdownBtn.tsx:301 -#: src/view/com/util/forms/PostDropdownBtn.tsx:309 +#: src/view/com/util/forms/PostDropdownBtn.tsx:292 +#: src/view/com/util/forms/PostDropdownBtn.tsx:294 msgid "Report post" msgstr "Informa de la publicació" +#: src/components/ReportDialog/SelectReportOptionView.tsx:43 +msgid "Report this content" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:56 +msgid "Report this feed" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:53 +msgid "Report this list" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:50 +msgid "Report this post" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:47 +msgid "Report this user" +msgstr "" + #: src/view/com/modals/Repost.tsx:43 #: src/view/com/modals/Repost.tsx:48 #: src/view/com/modals/Repost.tsx:53 @@ -3319,7 +3916,7 @@ msgstr "Republica o cita la publicació" msgid "Reposted By" msgstr "Republicat per" -#: src/view/com/posts/FeedItem.tsx:207 +#: src/view/com/posts/FeedItem.tsx:197 msgid "Reposted by {0}" msgstr "Republicat per {0}" @@ -3327,15 +3924,15 @@ msgstr "Republicat per {0}" #~ msgid "Reposted by {0})" #~ msgstr "Republicada per {0}" -#: src/view/com/posts/FeedItem.tsx:224 +#: src/view/com/posts/FeedItem.tsx:214 msgid "Reposted by <0/>" msgstr "Republicada per <0/>" -#: src/view/com/notifications/FeedItem.tsx:162 +#: src/view/com/notifications/FeedItem.tsx:166 msgid "reposted your post" msgstr "ha republicat la teva publicació" -#: src/view/com/post-thread/PostThreadItem.tsx:188 +#: src/view/com/post-thread/PostThreadItem.tsx:187 msgid "Reposts of this post" msgstr "Republicacions d'aquesta publicació" @@ -3348,12 +3945,12 @@ msgstr "Demana un canvi" #~ msgid "Request code" #~ msgstr "Demana un codi" -#: src/view/com/modals/ChangePassword.tsx:239 #: src/view/com/modals/ChangePassword.tsx:241 +#: src/view/com/modals/ChangePassword.tsx:243 msgid "Request Code" msgstr "Demana un codi" -#: src/view/screens/Settings/index.tsx:456 +#: src/view/screens/Settings/index.tsx:471 msgid "Require alt text before posting" msgstr "Requereix un text alternatiu abans de publicar" @@ -3363,18 +3960,20 @@ msgstr "Requerit per aquest proveïdor" #: src/view/com/auth/login/SetNewPasswordForm.tsx:124 #: src/view/com/auth/login/SetNewPasswordForm.tsx:136 +#: src/view/com/modals/ChangePassword.tsx:185 msgid "Reset code" msgstr "Codi de restabliment" -#: src/view/com/modals/ChangePassword.tsx:190 +#: src/view/com/modals/ChangePassword.tsx:192 msgid "Reset Code" msgstr "Codi de restabliment" #: src/view/screens/Settings/index.tsx:824 -msgid "Reset onboarding" -msgstr "Restableix la incorporació" +#~ msgid "Reset onboarding" +#~ msgstr "Restableix la incorporació" -#: src/view/screens/Settings/index.tsx:827 +#: src/view/screens/Settings/index.tsx:854 +#: src/view/screens/Settings/index.tsx:857 msgid "Reset onboarding state" msgstr "Restableix l'estat de la incorporació" @@ -3383,18 +3982,19 @@ msgid "Reset password" msgstr "Restableix la contrasenya" #: src/view/screens/Settings/index.tsx:814 -msgid "Reset preferences" -msgstr "Restableix les preferències" +#~ msgid "Reset preferences" +#~ msgstr "Restableix les preferències" -#: src/view/screens/Settings/index.tsx:817 +#: src/view/screens/Settings/index.tsx:844 +#: src/view/screens/Settings/index.tsx:847 msgid "Reset preferences state" msgstr "Restableix l'estat de les preferències" -#: src/view/screens/Settings/index.tsx:825 +#: src/view/screens/Settings/index.tsx:855 msgid "Resets the onboarding state" msgstr "Restableix l'estat de la incorporació" -#: src/view/screens/Settings/index.tsx:815 +#: src/view/screens/Settings/index.tsx:845 msgid "Resets the preferences state" msgstr "Restableix l'estat de les preferències" @@ -3407,6 +4007,7 @@ msgstr "Torna a intentar iniciar sessió" msgid "Retries the last action, which errored out" msgstr "Torna a intentar l'última acció, que ha donat error" +#: src/components/Lists.tsx:98 #: src/screens/Onboarding/StepInterests/index.tsx:221 #: src/screens/Onboarding/StepInterests/index.tsx:224 #: src/view/com/auth/create/CreateAccount.tsx:181 @@ -3422,10 +4023,19 @@ msgstr "Torna-ho a provar" #~ msgid "Retry." #~ msgstr "Torna-ho a provar" -#: src/view/screens/ProfileList.tsx:903 +#: src/view/screens/ProfileList.tsx:917 msgid "Return to previous page" msgstr "Torna a la pàgina anterior" +#: src/view/screens/NotFound.tsx:59 +msgid "Returns to home page" +msgstr "" + +#: src/view/screens/NotFound.tsx:58 +#: src/view/screens/ProfileFeed.tsx:112 +msgid "Returns to previous page" +msgstr "" + #: src/view/shell/desktop/RightNav.tsx:55 #~ msgid "SANDBOX. Posts and accounts are not permanent." #~ msgstr "ENTORN DE PROVES. Les publicacions i els comptes no són permanents." @@ -3436,12 +4046,10 @@ msgctxt "action" msgid "Save" msgstr "Desa" -#: src/view/com/modals/BirthDateSettings.tsx:94 -#: src/view/com/modals/BirthDateSettings.tsx:97 +#: src/components/dialogs/BirthDateSettings.tsx:125 #: src/view/com/modals/ChangeHandle.tsx:173 #: src/view/com/modals/CreateOrEditList.tsx:337 #: src/view/com/modals/EditProfile.tsx:224 -#: src/view/screens/ProfileFeed.tsx:346 msgid "Save" msgstr "Desa" @@ -3449,6 +4057,10 @@ msgstr "Desa" msgid "Save alt text" msgstr "Desa el text alternatiu" +#: src/components/dialogs/BirthDateSettings.tsx:119 +msgid "Save birthday" +msgstr "" + #: src/view/com/modals/EditProfile.tsx:232 msgid "Save Changes" msgstr "Desa els canvis" @@ -3461,10 +4073,23 @@ msgstr "Desa el canvi d'identificador" msgid "Save image crop" msgstr "Desa la imatge retallada" +#: src/view/screens/ProfileFeed.tsx:335 +#: src/view/screens/ProfileFeed.tsx:341 +msgid "Save to my feeds" +msgstr "" + #: src/view/screens/SavedFeeds.tsx:122 msgid "Saved Feeds" msgstr "Canals desats" +#: src/view/com/lightbox/Lightbox.tsx:81 +msgid "Saved to your camera roll." +msgstr "" + +#: src/view/screens/ProfileFeed.tsx:212 +msgid "Saved to your feeds" +msgstr "" + #: src/view/com/modals/EditProfile.tsx:225 msgid "Saves any changes to your profile" msgstr "Desa qualsevol canvi al teu perfil" @@ -3473,33 +4098,37 @@ msgstr "Desa qualsevol canvi al teu perfil" msgid "Saves handle change to {handle}" msgstr "Desa el canvi d'identificador a {handle}" +#: src/view/com/modals/crop-image/CropImage.web.tsx:145 +msgid "Saves image crop settings" +msgstr "" + #: src/screens/Onboarding/index.tsx:36 msgid "Science" msgstr "Ciència" -#: src/view/screens/ProfileList.tsx:859 +#: src/view/screens/ProfileList.tsx:873 msgid "Scroll to top" msgstr "Desplaça't cap a dalt" -#: src/Navigation.tsx:447 +#: src/Navigation.tsx:459 #: src/view/com/auth/LoggedOut.tsx:122 #: src/view/com/modals/ListAddRemoveUsers.tsx:75 #: src/view/com/util/forms/SearchInput.tsx:67 #: src/view/com/util/forms/SearchInput.tsx:79 -#: src/view/screens/Search/Search.tsx:419 -#: src/view/screens/Search/Search.tsx:668 -#: src/view/screens/Search/Search.tsx:686 -#: src/view/shell/bottom-bar/BottomBar.tsx:159 -#: src/view/shell/desktop/LeftNav.tsx:324 -#: src/view/shell/desktop/Search.tsx:214 -#: src/view/shell/desktop/Search.tsx:223 -#: src/view/shell/Drawer.tsx:362 -#: src/view/shell/Drawer.tsx:363 +#: src/view/screens/Search/Search.tsx:420 +#: src/view/screens/Search/Search.tsx:669 +#: src/view/screens/Search/Search.tsx:687 +#: src/view/shell/bottom-bar/BottomBar.tsx:161 +#: src/view/shell/desktop/LeftNav.tsx:328 +#: src/view/shell/desktop/Search.tsx:215 +#: src/view/shell/desktop/Search.tsx:224 +#: src/view/shell/Drawer.tsx:365 +#: src/view/shell/Drawer.tsx:366 msgid "Search" msgstr "Cerca" -#: src/view/screens/Search/Search.tsx:735 -#: src/view/shell/desktop/Search.tsx:255 +#: src/view/screens/Search/Search.tsx:736 +#: src/view/shell/desktop/Search.tsx:256 msgid "Search for \"{query}\"" msgstr "Cerca per \"{query}\"" @@ -3573,6 +4202,14 @@ msgstr "Selecciona {item}" msgid "Select from an existing account" msgstr "Selecciona d'un compte existent" +#: src/view/screens/LanguageSettings.tsx:299 +msgid "Select languages" +msgstr "" + +#: src/components/ReportDialog/SelectLabelerView.tsx:32 +msgid "Select moderator" +msgstr "" + #: src/view/com/util/Selector.tsx:107 msgid "Select option {i} of {numItems}" msgstr "Selecciona l'opció {i} de {numItems}" @@ -3586,6 +4223,10 @@ msgstr "Selecciona el servei" msgid "Select some accounts below to follow" msgstr "Selecciona alguns d'aquests comptes per seguir-los" +#: src/components/ReportDialog/SubmitView.tsx:135 +msgid "Select the moderation service(s) to report to" +msgstr "" + #: src/view/com/auth/server-input/index.tsx:82 msgid "Select the service that hosts your data." msgstr "Selecciona el servei que allotja les teves dades." @@ -3594,7 +4235,7 @@ msgstr "Selecciona el servei que allotja les teves dades." msgid "Select topical feeds to follow from the list below" msgstr "Selecciona els canals d'actualitat per seguir d'aquesta llista" -#: src/screens/Onboarding/StepModeration/index.tsx:75 +#: src/screens/Onboarding/StepModeration/index.tsx:62 msgid "Select what you want to see (or not see), and we’ll handle the rest." msgstr "Selecciona què vols veure (o què no vols veure) i nosaltres farem la resta." @@ -3603,8 +4244,12 @@ msgid "Select which languages you want your subscribed feeds to include. If none msgstr "Selecciona quins idiomes vols que incloguin els canals a què estàs subscrit. Si no en selecciones cap, es mostraran tots." #: src/view/screens/LanguageSettings.tsx:98 -msgid "Select your app language for the default text to display in the app" -msgstr "Selecciona l'idioma de l'aplicació perquè el text predeterminat es mostri en aquesta" +#~ msgid "Select your app language for the default text to display in the app" +#~ msgstr "Selecciona l'idioma de l'aplicació perquè el text predeterminat es mostri en aquesta" + +#: src/view/screens/LanguageSettings.tsx:98 +msgid "Select your app language for the default text to display in the app." +msgstr "" #: src/screens/Onboarding/StepInterests/index.tsx:196 msgid "Select your interests from the options below" @@ -3644,14 +4289,23 @@ msgstr "Envia correu" #~ msgid "Send Email" #~ msgstr "Envia correu" -#: src/view/shell/Drawer.tsx:295 -#: src/view/shell/Drawer.tsx:316 +#: src/view/shell/Drawer.tsx:298 +#: src/view/shell/Drawer.tsx:319 msgid "Send feedback" msgstr "Envia comentari" +#: src/components/ReportDialog/SubmitView.tsx:214 +#: src/components/ReportDialog/SubmitView.tsx:218 +msgid "Send report" +msgstr "" + #: src/view/com/modals/report/SendReportButton.tsx:45 -msgid "Send Report" -msgstr "Envia informe" +#~ msgid "Send Report" +#~ msgstr "Envia informe" + +#: src/components/ReportDialog/SelectLabelerView.tsx:46 +msgid "Send report to {0}" +msgstr "" #: src/view/com/modals/DeleteAccount.tsx:133 msgid "Sends email with confirmation code for account deletion" @@ -3662,34 +4316,38 @@ msgid "Server address" msgstr "Adreça del servidor" #: src/view/com/modals/ContentFilteringSettings.tsx:311 -msgid "Set {value} for {labelGroup} content moderation policy" -msgstr "Estableix {value} per a la política de moderació de contingut {labelGroup}" +#~ msgid "Set {value} for {labelGroup} content moderation policy" +#~ msgstr "Estableix {value} per a la política de moderació de contingut {labelGroup}" #: src/view/com/modals/ContentFilteringSettings.tsx:160 #: src/view/com/modals/ContentFilteringSettings.tsx:179 -msgctxt "action" -msgid "Set Age" -msgstr "Estableix l'edat" +#~ msgctxt "action" +#~ msgid "Set Age" +#~ msgstr "Estableix l'edat" + +#: src/screens/Moderation/index.tsx:306 +msgid "Set birthdate" +msgstr "" #: src/view/screens/Settings/index.tsx:488 -msgid "Set color theme to dark" -msgstr "Estableix el tema de colors a fosc" +#~ msgid "Set color theme to dark" +#~ msgstr "Estableix el tema de colors a fosc" #: src/view/screens/Settings/index.tsx:481 -msgid "Set color theme to light" -msgstr "Estableix el tema de colors a clar" +#~ msgid "Set color theme to light" +#~ msgstr "Estableix el tema de colors a clar" #: src/view/screens/Settings/index.tsx:475 -msgid "Set color theme to system setting" -msgstr "Estableix el tema de colors a la configuració del sistema" +#~ msgid "Set color theme to system setting" +#~ msgstr "Estableix el tema de colors a la configuració del sistema" #: src/view/screens/Settings/index.tsx:514 -msgid "Set dark theme to the dark theme" -msgstr "Posa el tema fosc" +#~ msgid "Set dark theme to the dark theme" +#~ msgstr "Posa el tema fosc" #: src/view/screens/Settings/index.tsx:507 -msgid "Set dark theme to the dim theme" -msgstr "Posa el tema fosc al tema atenuat" +#~ msgid "Set dark theme to the dim theme" +#~ msgstr "Posa el tema fosc al tema atenuat" #: src/view/com/auth/login/SetNewPasswordForm.tsx:104 msgid "Set new password" @@ -3731,6 +4389,26 @@ msgstr "Configura el teu compte" msgid "Sets Bluesky username" msgstr "Estableix un nom d'usuari de Bluesky" +#: src/view/screens/Settings/index.tsx:503 +msgid "Sets color theme to dark" +msgstr "" + +#: src/view/screens/Settings/index.tsx:496 +msgid "Sets color theme to light" +msgstr "" + +#: src/view/screens/Settings/index.tsx:490 +msgid "Sets color theme to system setting" +msgstr "" + +#: src/view/screens/Settings/index.tsx:529 +msgid "Sets dark theme to the dark theme" +msgstr "" + +#: src/view/screens/Settings/index.tsx:522 +msgid "Sets dark theme to the dim theme" +msgstr "" + #: src/view/com/auth/login/ForgotPasswordForm.tsx:157 msgid "Sets email for password reset" msgstr "Estableix un correu per restablir la contrasenya" @@ -3739,16 +4417,28 @@ msgstr "Estableix un correu per restablir la contrasenya" msgid "Sets hosting provider for password reset" msgstr "Estableix un proveïdor d'allotjament per restablir la contrasenya" +#: src/view/com/modals/crop-image/CropImage.web.tsx:123 +msgid "Sets image aspect ratio to square" +msgstr "" + +#: src/view/com/modals/crop-image/CropImage.web.tsx:113 +msgid "Sets image aspect ratio to tall" +msgstr "" + +#: src/view/com/modals/crop-image/CropImage.web.tsx:103 +msgid "Sets image aspect ratio to wide" +msgstr "" + #: src/view/com/auth/create/Step1.tsx:97 #: src/view/com/auth/login/LoginForm.tsx:151 msgid "Sets server for the Bluesky client" msgstr "Estableix el servidor pel cient de Bluesky" -#: src/Navigation.tsx:137 -#: src/view/screens/Settings/index.tsx:294 -#: src/view/shell/desktop/LeftNav.tsx:433 -#: src/view/shell/Drawer.tsx:567 -#: src/view/shell/Drawer.tsx:568 +#: src/Navigation.tsx:139 +#: src/view/screens/Settings/index.tsx:309 +#: src/view/shell/desktop/LeftNav.tsx:437 +#: src/view/shell/Drawer.tsx:570 +#: src/view/shell/Drawer.tsx:571 msgid "Settings" msgstr "Configuració" @@ -3756,28 +4446,39 @@ msgstr "Configuració" msgid "Sexual activity or erotic nudity." msgstr "Activitat sexual o nu eròtic." +#: src/lib/moderation/useGlobalLabelStrings.ts:38 +msgid "Sexually Suggestive" +msgstr "" + #: src/view/com/lightbox/Lightbox.tsx:141 msgctxt "action" msgid "Share" msgstr "Comparteix" -#: src/view/com/profile/ProfileHeader.tsx:295 -#: src/view/com/util/forms/PostDropdownBtn.tsx:231 +#: src/view/com/profile/ProfileMenu.tsx:215 +#: src/view/com/profile/ProfileMenu.tsx:224 +#: src/view/com/util/forms/PostDropdownBtn.tsx:228 #: src/view/com/util/forms/PostDropdownBtn.tsx:237 -#: src/view/com/util/post-ctrls/PostCtrls.tsx:215 -#: src/view/screens/ProfileList.tsx:418 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:218 +#: src/view/screens/ProfileList.tsx:388 msgid "Share" msgstr "Comparteix" -#: src/view/screens/ProfileFeed.tsx:305 +#: src/view/com/profile/ProfileMenu.tsx:373 +#: src/view/com/util/forms/PostDropdownBtn.tsx:347 +msgid "Share anyway" +msgstr "" + +#: src/view/screens/ProfileFeed.tsx:361 +#: src/view/screens/ProfileFeed.tsx:363 msgid "Share feed" msgstr "Comparteix el canal" -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:43 -#: src/view/com/modals/ContentFilteringSettings.tsx:266 -#: src/view/com/util/moderation/ContentHider.tsx:107 -#: src/view/com/util/moderation/PostHider.tsx:108 -#: src/view/screens/Settings/index.tsx:344 +#: src/components/moderation/ContentHider.tsx:115 +#: src/components/moderation/GlobalModerationLabelPref.tsx:45 +#: src/components/moderation/PostHider.tsx:107 +#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:54 +#: src/view/screens/Settings/index.tsx:359 msgid "Show" msgstr "Mostra" @@ -3785,21 +4486,31 @@ msgstr "Mostra" msgid "Show all replies" msgstr "Mostra totes les respostes" -#: src/view/com/util/moderation/ScreenHider.tsx:132 +#: src/components/moderation/ScreenHider.tsx:162 +#: src/components/moderation/ScreenHider.tsx:165 msgid "Show anyway" msgstr "Mostra igualment" +#: src/lib/moderation/useLabelBehaviorDescription.ts:27 +#: src/lib/moderation/useLabelBehaviorDescription.ts:63 +msgid "Show badge" +msgstr "" + +#: src/lib/moderation/useLabelBehaviorDescription.ts:61 +msgid "Show badge and filter from feeds" +msgstr "" + #: src/view/com/modals/EmbedConsent.tsx:87 msgid "Show embeds from {0}" msgstr "Mostra els incrustats de {0}" -#: src/view/com/profile/ProfileHeader.tsx:459 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:193 msgid "Show follows similar to {0}" msgstr "Mostra seguidors semblants a {0}" -#: src/view/com/post-thread/PostThreadItem.tsx:538 -#: src/view/com/post/Post.tsx:198 -#: src/view/com/posts/FeedItem.tsx:363 +#: src/view/com/post-thread/PostThreadItem.tsx:507 +#: src/view/com/post/Post.tsx:201 +#: src/view/com/posts/FeedItem.tsx:355 msgid "Show More" msgstr "Mostra més" @@ -3851,40 +4562,48 @@ msgstr "Mostra republicacions" msgid "Show reposts in Following" msgstr "Mostra les republicacions al canal Seguint" -#: src/view/com/util/moderation/ContentHider.tsx:67 -#: src/view/com/util/moderation/PostHider.tsx:61 +#: src/components/moderation/ContentHider.tsx:68 +#: src/components/moderation/PostHider.tsx:64 msgid "Show the content" msgstr "Mostra el contingut" -#: src/view/com/notifications/FeedItem.tsx:347 +#: src/view/com/notifications/FeedItem.tsx:351 msgid "Show users" msgstr "Mostra usuaris" +#: src/lib/moderation/useLabelBehaviorDescription.ts:58 +msgid "Show warning" +msgstr "" + +#: src/lib/moderation/useLabelBehaviorDescription.ts:56 +msgid "Show warning and filter from feeds" +msgstr "" + #: src/view/com/profile/ProfileHeader.tsx:462 -msgid "Shows a list of users similar to this user." -msgstr "Mostra una llista d'usuaris semblants a aquest" +#~ msgid "Shows a list of users similar to this user." +#~ msgstr "Mostra una llista d'usuaris semblants a aquest" -#: src/view/com/post-thread/PostThreadFollowBtn.tsx:124 -#: src/view/com/profile/ProfileHeader.tsx:506 +#: src/view/com/post-thread/PostThreadFollowBtn.tsx:127 msgid "Shows posts from {0} in your feed" msgstr "Mostra les publicacions de {0} al teu canal" -#: src/view/com/auth/HomeLoggedOutCTA.tsx:70 +#: src/view/com/auth/HomeLoggedOutCTA.tsx:72 #: src/view/com/auth/login/Login.tsx:98 -#: src/view/com/auth/SplashScreen.tsx:79 -#: src/view/shell/bottom-bar/BottomBar.tsx:285 -#: src/view/shell/bottom-bar/BottomBar.tsx:286 -#: src/view/shell/bottom-bar/BottomBar.tsx:288 +#: src/view/com/auth/SplashScreen.tsx:81 +#: src/view/shell/bottom-bar/BottomBar.tsx:289 +#: src/view/shell/bottom-bar/BottomBar.tsx:290 +#: src/view/shell/bottom-bar/BottomBar.tsx:292 #: src/view/shell/bottom-bar/BottomBarWeb.tsx:178 #: src/view/shell/bottom-bar/BottomBarWeb.tsx:179 #: src/view/shell/bottom-bar/BottomBarWeb.tsx:181 #: src/view/shell/NavSignupCard.tsx:58 #: src/view/shell/NavSignupCard.tsx:59 +#: src/view/shell/NavSignupCard.tsx:61 msgid "Sign in" msgstr "Inicia sessió" -#: src/view/com/auth/HomeLoggedOutCTA.tsx:78 -#: src/view/com/auth/SplashScreen.tsx:82 +#: src/view/com/auth/HomeLoggedOutCTA.tsx:82 +#: src/view/com/auth/SplashScreen.tsx:86 #: src/view/com/auth/SplashScreen.web.tsx:91 msgid "Sign In" msgstr "Inicia sessió" @@ -3893,7 +4612,7 @@ msgstr "Inicia sessió" msgid "Sign in as {0}" msgstr "Inicia sessió com a {0}" -#: src/view/com/auth/login/ChooseAccountForm.tsx:118 +#: src/view/com/auth/login/ChooseAccountForm.tsx:122 #: src/view/com/auth/login/Login.tsx:116 msgid "Sign in as..." msgstr "Inicia sessió com a …" @@ -3902,16 +4621,16 @@ msgstr "Inicia sessió com a …" msgid "Sign into" msgstr "Inicia sessió en" -#: src/view/com/modals/SwitchAccount.tsx:64 -#: src/view/com/modals/SwitchAccount.tsx:69 -#: src/view/screens/Settings/index.tsx:100 -#: src/view/screens/Settings/index.tsx:103 +#: src/view/com/modals/SwitchAccount.tsx:68 +#: src/view/com/modals/SwitchAccount.tsx:73 +#: src/view/screens/Settings/index.tsx:105 +#: src/view/screens/Settings/index.tsx:108 msgid "Sign out" msgstr "Tanca sessió" -#: src/view/shell/bottom-bar/BottomBar.tsx:275 -#: src/view/shell/bottom-bar/BottomBar.tsx:276 -#: src/view/shell/bottom-bar/BottomBar.tsx:278 +#: src/view/shell/bottom-bar/BottomBar.tsx:279 +#: src/view/shell/bottom-bar/BottomBar.tsx:280 +#: src/view/shell/bottom-bar/BottomBar.tsx:282 #: src/view/shell/bottom-bar/BottomBarWeb.tsx:168 #: src/view/shell/bottom-bar/BottomBarWeb.tsx:169 #: src/view/shell/bottom-bar/BottomBarWeb.tsx:171 @@ -3925,25 +4644,26 @@ msgstr "Registra't" msgid "Sign up or sign in to join the conversation" msgstr "Registra't o inicia sessió per unir-te a la conversa" -#: src/view/com/util/moderation/ScreenHider.tsx:76 +#: src/components/moderation/ScreenHider.tsx:98 +#: src/lib/moderation/useGlobalLabelStrings.ts:28 msgid "Sign-in Required" msgstr "Es requereix iniciar sessió" -#: src/view/screens/Settings/index.tsx:355 +#: src/view/screens/Settings/index.tsx:370 msgid "Signed in as" msgstr "S'ha iniciat sessió com a" -#: src/view/com/auth/login/ChooseAccountForm.tsx:103 +#: src/view/com/auth/login/ChooseAccountForm.tsx:107 msgid "Signed in as @{0}" msgstr "Sha iniciat sessió com a @{0}" -#: src/view/com/modals/SwitchAccount.tsx:66 +#: src/view/com/modals/SwitchAccount.tsx:70 msgid "Signs {0} out of Bluesky" msgstr "Tanca la sessió de Bluesky de {0}" #: src/screens/Onboarding/StepInterests/index.tsx:235 #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:195 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:33 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:35 msgid "Skip" msgstr "Salta aquest pas" @@ -3963,15 +4683,21 @@ msgstr "Desenvolupament de programari" #~ msgid "Something went wrong and we're not sure what." #~ msgstr "Alguna cosa ha fallat i no estem segurs de què." -#: src/components/Lists.tsx:203 -msgid "Something went wrong!" +#: src/components/ReportDialog/index.tsx:52 +#: src/screens/Moderation/index.tsx:116 +#: src/screens/Profile/Sections/Labels.tsx:77 +msgid "Something went wrong, please try again." msgstr "" +#: src/components/Lists.tsx:203 +#~ msgid "Something went wrong!" +#~ msgstr "" + #: src/view/com/modals/Waitlist.tsx:51 #~ msgid "Something went wrong. Check your email and try again." #~ msgstr "Alguna cosa ha fallat. Comprova el teu correu i torna-ho a provar." -#: src/App.native.tsx:66 +#: src/App.native.tsx:71 msgid "Sorry! Your session expired. Please log in again." msgstr "La teva sessió ha caducat. Torna a inciar-la." @@ -3983,6 +4709,18 @@ msgstr "Ordena les respostes" msgid "Sort replies to the same post by:" msgstr "Ordena les respostes a la mateixa publicació per:" +#: src/components/moderation/LabelsOnMeDialog.tsx:147 +msgid "Source:" +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:65 +msgid "Spam" +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:53 +msgid "Spam; excessive mentions or replies" +msgstr "" + #: src/screens/Onboarding/index.tsx:30 msgid "Sports" msgstr "Esports" @@ -3995,7 +4733,7 @@ msgstr "Quadrat" #~ msgid "Staging" #~ msgstr "Posada en escena" -#: src/view/screens/Settings/index.tsx:871 +#: src/view/screens/Settings/index.tsx:901 msgid "Status page" msgstr "Pàgina d'estat" @@ -4003,37 +4741,50 @@ msgstr "Pàgina d'estat" msgid "Step {0} of {numSteps}" msgstr "Pas {0} de {numSteps}" -#: src/view/screens/Settings/index.tsx:274 +#: src/view/screens/Settings/index.tsx:288 msgid "Storage cleared, you need to restart the app now." msgstr "L'emmagatzematge s'ha esborrat, cal que reinicieu l'aplicació ara." -#: src/Navigation.tsx:204 -#: src/view/screens/Settings/index.tsx:807 +#: src/Navigation.tsx:211 +#: src/view/screens/Settings/index.tsx:827 msgid "Storybook" msgstr "Historial" -#: src/view/com/modals/AppealLabel.tsx:101 +#: src/components/moderation/LabelsOnMeDialog.tsx:256 +#: src/components/moderation/LabelsOnMeDialog.tsx:257 msgid "Submit" msgstr "Envia" -#: src/view/screens/ProfileList.tsx:608 +#: src/view/screens/ProfileList.tsx:590 msgid "Subscribe" msgstr "Subscriure's" +#: src/screens/Profile/Sections/Labels.tsx:181 +msgid "Subscribe to @{0} to use these labels:" +msgstr "" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:222 +msgid "Subscribe to Labeler" +msgstr "" + #: src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx:173 #: src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx:308 msgid "Subscribe to the {0} feed" msgstr "Subscriu-te al canal {0}" -#: src/view/screens/ProfileList.tsx:604 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:185 +msgid "Subscribe to this labeler" +msgstr "" + +#: src/view/screens/ProfileList.tsx:586 msgid "Subscribe to this list" msgstr "Subscriure's a la llista" -#: src/view/screens/Search/Search.tsx:374 +#: src/view/screens/Search/Search.tsx:375 msgid "Suggested Follows" msgstr "Usuaris suggerits per seguir" -#: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:64 +#: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:65 msgid "Suggested for you" msgstr "Suggeriments per tu" @@ -4041,7 +4792,7 @@ msgstr "Suggeriments per tu" msgid "Suggestive" msgstr "Suggerent" -#: src/Navigation.tsx:214 +#: src/Navigation.tsx:226 #: src/view/screens/Support.tsx:30 #: src/view/screens/Support.tsx:33 msgid "Support" @@ -4051,29 +4802,29 @@ msgstr "Suport" #~ msgid "Swipe up to see more" #~ msgstr "Llisca cap amunt per veure'n més" -#: src/view/com/modals/SwitchAccount.tsx:117 +#: src/view/com/modals/SwitchAccount.tsx:121 msgid "Switch Account" msgstr "Canvia el compte" -#: src/view/com/modals/SwitchAccount.tsx:97 -#: src/view/screens/Settings/index.tsx:130 +#: src/view/com/modals/SwitchAccount.tsx:101 +#: src/view/screens/Settings/index.tsx:135 msgid "Switch to {0}" msgstr "Canvia a {0}" -#: src/view/com/modals/SwitchAccount.tsx:98 -#: src/view/screens/Settings/index.tsx:131 +#: src/view/com/modals/SwitchAccount.tsx:102 +#: src/view/screens/Settings/index.tsx:136 msgid "Switches the account you are logged in to" msgstr "Canvia en compte amb el que tens iniciada la sessió" -#: src/view/screens/Settings/index.tsx:472 +#: src/view/screens/Settings/index.tsx:487 msgid "System" msgstr "Sistema" -#: src/view/screens/Settings/index.tsx:795 +#: src/view/screens/Settings/index.tsx:815 msgid "System log" msgstr "Registres del sistema" -#: src/components/dialogs/MutedWords.tsx:337 +#: src/components/dialogs/MutedWords.tsx:324 msgid "tag" msgstr "" @@ -4101,30 +4852,49 @@ msgstr "Tecnologia" msgid "Terms" msgstr "Condicions" -#: src/Navigation.tsx:224 -#: src/view/screens/Settings/index.tsx:885 +#: src/Navigation.tsx:236 +#: src/view/com/auth/create/Policies.tsx:59 +#: src/view/screens/Settings/index.tsx:915 #: src/view/screens/TermsOfService.tsx:29 -#: src/view/shell/Drawer.tsx:256 +#: src/view/shell/Drawer.tsx:259 msgid "Terms of Service" msgstr "Condicions del servei" -#: src/components/dialogs/MutedWords.tsx:337 +#: src/lib/moderation/useReportOptions.ts:58 +#: src/lib/moderation/useReportOptions.ts:79 +#: src/lib/moderation/useReportOptions.ts:87 +msgid "Terms used violate community standards" +msgstr "" + +#: src/components/dialogs/MutedWords.tsx:324 msgid "text" msgstr "" -#: src/view/com/modals/AppealLabel.tsx:70 -#: src/view/com/modals/report/InputIssueDetails.tsx:51 +#: src/components/moderation/LabelsOnMeDialog.tsx:220 msgid "Text input field" msgstr "Camp d'introducció de text" +#: src/components/ReportDialog/SubmitView.tsx:78 +msgid "Thank you. Your report has been sent." +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:466 +msgid "That contains the following:" +msgstr "" + #: src/view/com/auth/create/CreateAccount.tsx:94 msgid "That handle is already taken." msgstr "" -#: src/view/com/profile/ProfileHeader.tsx:263 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:274 +#: src/view/com/profile/ProfileMenu.tsx:349 msgid "The account will be able to interact with you after unblocking." msgstr "El compte podrà interactuar amb tu després del desbloqueig." +#: src/components/moderation/ModerationDetailsDialog.tsx:128 +msgid "the author" +msgstr "" + #: src/view/screens/CommunityGuidelines.tsx:36 msgid "The Community Guidelines have been moved to <0/>" msgstr "Les directrius de la comunitat han estat traslladades a <0/>" @@ -4133,11 +4903,20 @@ msgstr "Les directrius de la comunitat han estat traslladades a <0/>" msgid "The Copyright Policy has been moved to <0/>" msgstr "La política de drets d'autoria ha estat traslladada a <0/>" +#: src/components/moderation/LabelsOnMeDialog.tsx:49 +msgid "The following labels were applied to your account." +msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:50 +msgid "The following labels were applied to your content." +msgstr "" + #: src/screens/Onboarding/Layout.tsx:60 msgid "The following steps will help customize your Bluesky experience." msgstr "Els següents passos t'ajudaran a personalitzar la teva experiència a Bluesky." -#: src/view/com/post-thread/PostThread.tsx:517 +#: src/view/com/post-thread/PostThread.tsx:153 +#: src/view/com/post-thread/PostThread.tsx:165 msgid "The post may have been deleted." msgstr "És possible que la publicació s'hagi esborrat." @@ -4161,20 +4940,21 @@ msgstr "Les condicions del servei han estat traslladades a " msgid "There are many feeds to try:" msgstr "Hi ha molts canals per provar:" -#: src/view/screens/ProfileFeed.tsx:550 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:113 +#: src/view/screens/ProfileFeed.tsx:543 msgid "There was an an issue contacting the server, please check your internet connection and try again." msgstr "Hi ha hagut un problema per contactar amb el servidor, comprova la teva connexió a internet i torna-ho a provar" -#: src/view/com/posts/FeedErrorMessage.tsx:139 +#: src/view/com/posts/FeedErrorMessage.tsx:138 msgid "There was an an issue removing this feed. Please check your internet connection and try again." msgstr "Hi ha hagut un problema per eliminar aquest canal, comprova la teva connexió a internet i torna-ho a provar" -#: src/view/screens/ProfileFeed.tsx:210 +#: src/view/screens/ProfileFeed.tsx:217 msgid "There was an an issue updating your feeds, please check your internet connection and try again." msgstr "Hi ha hagut un problema per actualitzar els teus canals, comprova la teva connexió a internet i torna-ho a provar" -#: src/view/screens/ProfileFeed.tsx:237 -#: src/view/screens/ProfileList.tsx:267 +#: src/view/screens/ProfileFeed.tsx:244 +#: src/view/screens/ProfileList.tsx:275 #: src/view/screens/SavedFeeds.tsx:209 #: src/view/screens/SavedFeeds.tsx:231 #: src/view/screens/SavedFeeds.tsx:252 @@ -4183,9 +4963,8 @@ msgstr "Hi ha hagut un problema per contactar amb el servidor" #: src/view/com/auth/onboarding/RecommendedFeedsItem.tsx:57 #: src/view/com/auth/onboarding/RecommendedFeedsItem.tsx:66 -#: src/view/com/feeds/FeedSourceCard.tsx:115 -#: src/view/com/feeds/FeedSourceCard.tsx:129 -#: src/view/com/feeds/FeedSourceCard.tsx:183 +#: src/view/com/feeds/FeedSourceCard.tsx:110 +#: src/view/com/feeds/FeedSourceCard.tsx:123 msgid "There was an issue contacting your server" msgstr "Hi ha hagut un problema per contactar amb el teu servidor" @@ -4193,7 +4972,7 @@ msgstr "Hi ha hagut un problema per contactar amb el teu servidor" msgid "There was an issue fetching notifications. Tap here to try again." msgstr "Hi ha hagut un problema en obtenir les notificacions. Toca aquí per tornar-ho a provar." -#: src/view/com/posts/Feed.tsx:265 +#: src/view/com/posts/Feed.tsx:283 msgid "There was an issue fetching posts. Tap here to try again." msgstr "Hi ha hagut un problema en obtenir les notificacions. Toca aquí per tornar-ho a provar." @@ -4206,34 +4985,40 @@ msgstr "Hi ha hagut un problema en obtenir la llista. Toca aquí per tornar-ho a msgid "There was an issue fetching your lists. Tap here to try again." msgstr "Hi ha hagut un problema en obtenir les teves llistes. Toca aquí per tornar-ho a provar." -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:63 -#: src/view/com/modals/ContentFilteringSettings.tsx:126 +#: src/components/ReportDialog/SubmitView.tsx:83 +msgid "There was an issue sending your report. Please check your internet connection." +msgstr "" + +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:65 msgid "There was an issue syncing your preferences with the server" msgstr "Hi ha hagut un problema en sincronitzar les teves preferències amb el servidor" -#: src/view/screens/AppPasswords.tsx:66 +#: src/view/screens/AppPasswords.tsx:68 msgid "There was an issue with fetching your app passwords" msgstr "Hi ha hagut un problema en obtenir les teves contrasenyes d'aplicació" -#: src/view/com/post-thread/PostThreadFollowBtn.tsx:93 -#: src/view/com/post-thread/PostThreadFollowBtn.tsx:105 -#: src/view/com/profile/ProfileHeader.tsx:157 -#: src/view/com/profile/ProfileHeader.tsx:178 -#: src/view/com/profile/ProfileHeader.tsx:217 -#: src/view/com/profile/ProfileHeader.tsx:230 -#: src/view/com/profile/ProfileHeader.tsx:250 -#: src/view/com/profile/ProfileHeader.tsx:272 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:98 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:120 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:134 +#: src/view/com/post-thread/PostThreadFollowBtn.tsx:96 +#: src/view/com/post-thread/PostThreadFollowBtn.tsx:108 +#: src/view/com/profile/ProfileMenu.tsx:106 +#: src/view/com/profile/ProfileMenu.tsx:117 +#: src/view/com/profile/ProfileMenu.tsx:132 +#: src/view/com/profile/ProfileMenu.tsx:143 +#: src/view/com/profile/ProfileMenu.tsx:157 +#: src/view/com/profile/ProfileMenu.tsx:170 msgid "There was an issue! {0}" msgstr "Hi ha hagut un problema! {0}" #: src/view/screens/ProfileList.tsx:288 -#: src/view/screens/ProfileList.tsx:307 -#: src/view/screens/ProfileList.tsx:329 -#: src/view/screens/ProfileList.tsx:348 +#: src/view/screens/ProfileList.tsx:302 +#: src/view/screens/ProfileList.tsx:316 +#: src/view/screens/ProfileList.tsx:330 msgid "There was an issue. Please check your internet connection and try again." msgstr "Hi ha hagut un problema. Comprova la teva connexió a internet i torna-ho a provar." -#: src/view/com/util/ErrorBoundary.tsx:36 +#: src/view/com/util/ErrorBoundary.tsx:51 msgid "There was an unexpected issue in the application. Please let us know if this happened to you!" msgstr "S'ha produït un problema inesperat a l'aplicació. Fes-nos saber si això t'ha passat a tu!" @@ -4252,19 +5037,32 @@ msgstr "Aquests són alguns comptes populars que et poden agradar:" #~ msgid "This {0} has been labeled." #~ msgstr "Aquest {0} ha estat etiquetat." -#: src/view/com/util/moderation/ScreenHider.tsx:88 +#: src/components/moderation/ScreenHider.tsx:117 msgid "This {screenDescription} has been flagged:" msgstr "Aquesta {screenDescription} ha estat etiquetada:" -#: src/view/com/util/moderation/ScreenHider.tsx:83 +#: src/components/moderation/ScreenHider.tsx:112 msgid "This account has requested that users sign in to view their profile." msgstr "Aquest compte ha sol·licitat que els usuaris estiguin registrats per veure el seu perfil." +#: src/components/moderation/LabelsOnMeDialog.tsx:205 +msgid "This appeal will be sent to <0>{0}." +msgstr "" + +#: src/lib/moderation/useGlobalLabelStrings.ts:19 +msgid "This content has been hidden by the moderators." +msgstr "" + +#: src/lib/moderation/useGlobalLabelStrings.ts:24 +msgid "This content has received a general warning from moderators." +msgstr "" + #: src/view/com/modals/EmbedConsent.tsx:68 msgid "This content is hosted by {0}. Do you want to enable external media?" msgstr "Aquest contingut està allotjat a {0}. Vols habilitat els continguts externs?" -#: src/view/com/modals/ModerationDetails.tsx:67 +#: src/components/moderation/ModerationDetailsDialog.tsx:78 +#: src/lib/moderation/useModerationCauseDescription.ts:77 msgid "This content is not available because one of the users involved has blocked the other." msgstr "Aquest contingut no està disponible degut a que un dels usuaris involucrats ha bloquejat a l'altre." @@ -4273,16 +5071,20 @@ msgid "This content is not viewable without a Bluesky account." msgstr "Aquest contingut no es pot veure sense un compte de Bluesky." #: src/view/screens/Settings/ExportCarDialog.tsx:75 -msgid "This feature is in beta. You can read more about repository exports in <0>this blogpost." -msgstr "Aquesta funcionalitat està en beta. En <0>aquesta entrada al blog tens més informació." +#~ msgid "This feature is in beta. You can read more about repository exports in <0>this blogpost." +#~ msgstr "Aquesta funcionalitat està en beta. En <0>aquesta entrada al blog tens més informació." + +#: src/view/screens/Settings/ExportCarDialog.tsx:75 +msgid "This feature is in beta. You can read more about repository exports in <0>this blogpost." +msgstr "" #: src/view/com/posts/FeedErrorMessage.tsx:114 msgid "This feed is currently receiving high traffic and is temporarily unavailable. Please try again later." msgstr "Aquest canal està rebent moltes visites actualment i està temporalment inactiu. Prova-ho més tard." -#: src/view/screens/Profile.tsx:420 +#: src/screens/Profile/Sections/Feed.tsx:50 #: src/view/screens/ProfileFeed.tsx:476 -#: src/view/screens/ProfileList.tsx:661 +#: src/view/screens/ProfileList.tsx:675 msgid "This feed is empty!" msgstr "Aquest canal està buit!" @@ -4290,7 +5092,7 @@ msgstr "Aquest canal està buit!" msgid "This feed is empty! You may need to follow more users or tune your language settings." msgstr "Aquest canal està buit! Necessites seguir més usuaris o modificar la teva configuració d'idiomes" -#: src/view/com/modals/BirthDateSettings.tsx:61 +#: src/components/dialogs/BirthDateSettings.tsx:41 msgid "This information is not shared with other users." msgstr "Aquesta informació no es comparteix amb altres usuaris." @@ -4302,14 +5104,26 @@ msgstr "Això és important si mai necessites canviar el teu correu o restablir #~ msgid "This is the service that keeps you online." #~ msgstr "Aquest és el servei que et manté connectat." +#: src/components/moderation/ModerationDetailsDialog.tsx:125 +msgid "This label was applied by {0}." +msgstr "" + +#: src/screens/Profile/Sections/Labels.tsx:168 +msgid "This labeler hasn't declared what labels it publishes, and may not be active." +msgstr "" + #: src/view/com/modals/LinkWarning.tsx:58 msgid "This link is taking you to the following website:" msgstr "Aquest enllaç et porta a la web:" -#: src/view/screens/ProfileList.tsx:839 +#: src/view/screens/ProfileList.tsx:853 msgid "This list is empty!" msgstr "Aquesta llista està buida!" +#: src/screens/Profile/ErrorState.tsx:40 +msgid "This moderation service is unavailable. See below for more details. If this issue persists, contact us." +msgstr "" + #: src/view/com/modals/AddAppPasswords.tsx:106 msgid "This name is already in use" msgstr "Aquest nom ja està en ús" @@ -4318,36 +5132,81 @@ msgstr "Aquest nom ja està en ús" msgid "This post has been deleted." msgstr "Aquesta publicació ha estat esborrada." -#: src/view/com/modals/ModerationDetails.tsx:62 +#: src/view/com/util/forms/PostDropdownBtn.tsx:344 +msgid "This post is only visible to logged-in users. It won't be visible to people who aren't logged in." +msgstr "" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:326 +msgid "This post will be hidden from feeds." +msgstr "" + +#: src/view/com/profile/ProfileMenu.tsx:370 +msgid "This profile is only visible to logged-in users. It won't be visible to people who aren't logged in." +msgstr "" + +#: src/view/com/auth/create/Policies.tsx:46 +msgid "This service has not provided terms of service or a privacy policy." +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:446 +msgid "This should create a domain record at:" +msgstr "" + +#: src/view/com/profile/ProfileFollowers.tsx:95 +msgid "This user doesn't have any followers." +msgstr "" + +#: src/components/moderation/ModerationDetailsDialog.tsx:73 +#: src/lib/moderation/useModerationCauseDescription.ts:68 msgid "This user has blocked you. You cannot view their content." msgstr "Aquest usuari t'ha bloquejat. No pots veure les seves publicacions." +#: src/lib/moderation/useGlobalLabelStrings.ts:30 +msgid "This user has requested that their content only be shown to signed-in users." +msgstr "" + #: src/view/com/modals/ModerationDetails.tsx:42 -msgid "This user is included in the <0/> list which you have blocked." -msgstr "Aquest usuari està inclós a la llista <0/> que tens bloquejada" +#~ msgid "This user is included in the <0/> list which you have blocked." +#~ msgstr "Aquest usuari està inclós a la llista <0/> que tens bloquejada" #: src/view/com/modals/ModerationDetails.tsx:74 -msgid "This user is included in the <0/> list which you have muted." -msgstr "Aquest usuari està inclòs a la llista <0/> que has silenciat." +#~ msgid "This user is included in the <0/> list which you have muted." +#~ msgstr "Aquest usuari està inclòs a la llista <0/> que has silenciat." + +#: src/components/moderation/ModerationDetailsDialog.tsx:56 +msgid "This user is included in the <0>{0} list which you have blocked." +msgstr "" + +#: src/components/moderation/ModerationDetailsDialog.tsx:85 +msgid "This user is included in the <0>{0} list which you have muted." +msgstr "" #: src/view/com/modals/ModerationDetails.tsx:74 #~ msgid "This user is included the <0/> list which you have muted." #~ msgstr "Aquest usuari està inclós a la llista <0/> que tens silenciada" +#: src/view/com/profile/ProfileFollows.tsx:94 +msgid "This user isn't following anyone." +msgstr "" + #: src/view/com/modals/SelfLabel.tsx:137 msgid "This warning is only available for posts with media attached." msgstr "Aquesta advertència només està disponible per publicacions amb contingut adjuntat." -#: src/components/dialogs/MutedWords.tsx:285 +#: src/components/dialogs/MutedWords.tsx:284 msgid "This will delete {0} from your muted words. You can always add it back later." msgstr "" #: src/view/com/util/forms/PostDropdownBtn.tsx:282 -msgid "This will hide this post from your feeds." -msgstr "Això amagarà aquesta publicació dels teus canals." +#~ msgid "This will hide this post from your feeds." +#~ msgstr "Això amagarà aquesta publicació dels teus canals." + +#: src/view/screens/Settings/index.tsx:570 +msgid "Thread preferences" +msgstr "" #: src/view/screens/PreferencesThreads.tsx:53 -#: src/view/screens/Settings/index.tsx:565 +#: src/view/screens/Settings/index.tsx:580 msgid "Thread Preferences" msgstr "Preferències dels fils de debat" @@ -4355,10 +5214,14 @@ msgstr "Preferències dels fils de debat" msgid "Threaded Mode" msgstr "Mode fils de debat" -#: src/Navigation.tsx:257 +#: src/Navigation.tsx:269 msgid "Threads Preferences" msgstr "Preferències dels fils de debat" +#: src/components/ReportDialog/SelectLabelerView.tsx:35 +msgid "To whom would you like to send this report?" +msgstr "" + #: src/components/dialogs/MutedWords.tsx:113 msgid "Toggle between muted word options." msgstr "" @@ -4367,14 +5230,18 @@ msgstr "" msgid "Toggle dropdown" msgstr "Commuta el menú desplegable" +#: src/screens/Moderation/index.tsx:334 +msgid "Toggle to enable or disable adult content" +msgstr "" + #: src/view/com/modals/EditImage.tsx:271 msgid "Transformations" msgstr "Transformacions" -#: src/view/com/post-thread/PostThreadItem.tsx:685 -#: src/view/com/post-thread/PostThreadItem.tsx:687 -#: src/view/com/util/forms/PostDropdownBtn.tsx:215 -#: src/view/com/util/forms/PostDropdownBtn.tsx:217 +#: src/view/com/post-thread/PostThreadItem.tsx:644 +#: src/view/com/post-thread/PostThreadItem.tsx:646 +#: src/view/com/util/forms/PostDropdownBtn.tsx:212 +#: src/view/com/util/forms/PostDropdownBtn.tsx:214 msgid "Translate" msgstr "Tradueix" @@ -4387,11 +5254,15 @@ msgstr "Torna-ho a provar" #~ msgid "Try again" #~ msgstr "Torna-ho a provar" -#: src/view/screens/ProfileList.tsx:506 +#: src/view/com/modals/ChangeHandle.tsx:429 +msgid "Type:" +msgstr "" + +#: src/view/screens/ProfileList.tsx:478 msgid "Un-block list" msgstr "Desbloqueja la llista" -#: src/view/screens/ProfileList.tsx:491 +#: src/view/screens/ProfileList.tsx:461 msgid "Un-mute list" msgstr "Deixa de silenciar la llista" @@ -4403,21 +5274,28 @@ msgstr "Deixa de silenciar la llista" msgid "Unable to contact your service. Please check your Internet connection." msgstr "No es pot contactar amb el teu servei. Comprova la teva connexió a internet." -#: src/view/com/profile/ProfileHeader.tsx:433 -#: src/view/screens/ProfileList.tsx:590 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:174 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:278 +#: src/view/com/profile/ProfileMenu.tsx:361 +#: src/view/screens/ProfileList.tsx:572 msgid "Unblock" msgstr "Desbloqueja" -#: src/view/com/profile/ProfileHeader.tsx:436 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:179 msgctxt "action" msgid "Unblock" msgstr "Desbloqueja" -#: src/view/com/profile/ProfileHeader.tsx:261 -#: src/view/com/profile/ProfileHeader.tsx:345 +#: src/view/com/profile/ProfileMenu.tsx:299 +#: src/view/com/profile/ProfileMenu.tsx:305 msgid "Unblock Account" msgstr "Desbloqueja el compte" +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:272 +#: src/view/com/profile/ProfileMenu.tsx:343 +msgid "Unblock Account?" +msgstr "" + #: src/view/com/modals/Repost.tsx:42 #: src/view/com/modals/Repost.tsx:55 #: src/view/com/util/post-ctrls/RepostButton.tsx:60 @@ -4425,25 +5303,39 @@ msgstr "Desbloqueja el compte" msgid "Undo repost" msgstr "Desfés la republicació" -#: src/view/com/profile/FollowButton.tsx:55 +#: src/view/com/auth/onboarding/RecommendedFollowsItem.tsx:141 +#: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:246 +msgid "Unfollow" +msgstr "" + +#: src/view/com/profile/FollowButton.tsx:60 msgctxt "action" msgid "Unfollow" msgstr "Deixa de seguir" -#: src/view/com/profile/ProfileHeader.tsx:485 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:213 msgid "Unfollow {0}" msgstr "Deixa de seguir a {0}" +#: src/view/com/profile/ProfileMenu.tsx:241 +#: src/view/com/profile/ProfileMenu.tsx:251 +msgid "Unfollow Account" +msgstr "" + #: src/view/com/auth/create/state.ts:262 msgid "Unfortunately, you do not meet the requirements to create an account." msgstr "No compleixes les condicions per crear un compte." -#: src/view/com/util/post-ctrls/PostCtrls.tsx:182 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:185 msgid "Unlike" msgstr "Desfés el m'agrada" +#: src/view/screens/ProfileFeed.tsx:572 +msgid "Unlike this feed" +msgstr "" + #: src/components/TagMenu/index.tsx:249 -#: src/view/screens/ProfileList.tsx:597 +#: src/view/screens/ProfileList.tsx:579 msgid "Unmute" msgstr "Deixa de silenciar" @@ -4451,7 +5343,8 @@ msgstr "Deixa de silenciar" msgid "Unmute {truncatedTag}" msgstr "" -#: src/view/com/profile/ProfileHeader.tsx:326 +#: src/view/com/profile/ProfileMenu.tsx:278 +#: src/view/com/profile/ProfileMenu.tsx:284 msgid "Unmute Account" msgstr "Deixa de silenciar el compte" @@ -4468,26 +5361,46 @@ msgstr "" msgid "Unmute thread" msgstr "Deixa de silenciar el fil de debat" -#: src/view/screens/ProfileFeed.tsx:354 -#: src/view/screens/ProfileList.tsx:581 +#: src/view/screens/ProfileFeed.tsx:294 +#: src/view/screens/ProfileList.tsx:563 msgid "Unpin" msgstr "Deixa de fixar" -#: src/view/screens/ProfileList.tsx:474 +#: src/view/screens/ProfileFeed.tsx:291 +msgid "Unpin from home" +msgstr "" + +#: src/view/screens/ProfileList.tsx:444 msgid "Unpin moderation list" msgstr "Desancora la llista de moderació" #: src/view/screens/ProfileFeed.tsx:346 -msgid "Unsave" -msgstr "No desis" +#~ msgid "Unsave" +#~ msgstr "No desis" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:220 +msgid "Unsubscribe" +msgstr "" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:184 +msgid "Unsubscribe from this labeler" +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:70 +msgid "Unwanted Sexual Content" +msgstr "" #: src/view/com/modals/UserAddRemoveLists.tsx:70 msgid "Update {displayName} in Lists" msgstr "Actualitza {displayName} a les Llistes" #: src/lib/hooks/useOTAUpdate.ts:15 -msgid "Update Available" -msgstr "Actualització disponible" +#~ msgid "Update Available" +#~ msgstr "Actualització disponible" + +#: src/view/com/modals/ChangeHandle.tsx:509 +msgid "Update to {handle}" +msgstr "" #: src/view/com/auth/login/SetNewPasswordForm.tsx:204 msgid "Updating..." @@ -4497,11 +5410,38 @@ msgstr "Actualitzant…" msgid "Upload a text file to:" msgstr "Puja un fitxer de text a:" -#: src/view/screens/AppPasswords.tsx:195 +#: src/view/com/util/UserAvatar.tsx:326 +#: src/view/com/util/UserAvatar.tsx:329 +#: src/view/com/util/UserBanner.tsx:116 +#: src/view/com/util/UserBanner.tsx:119 +msgid "Upload from Camera" +msgstr "" + +#: src/view/com/util/UserAvatar.tsx:343 +#: src/view/com/util/UserBanner.tsx:133 +msgid "Upload from Files" +msgstr "" + +#: src/view/com/util/UserAvatar.tsx:337 +#: src/view/com/util/UserAvatar.tsx:341 +#: src/view/com/util/UserBanner.tsx:127 +#: src/view/com/util/UserBanner.tsx:131 +msgid "Upload from Library" +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:409 +msgid "Use a file on your server" +msgstr "" + +#: src/view/screens/AppPasswords.tsx:197 msgid "Use app passwords to login to other Bluesky clients without giving full access to your account or password." msgstr "Utilitza les contrasenyes d'aplicació per iniciar sessió en altres clients de Bluesky, sense haver de donar accés total al teu compte o contrasenya." -#: src/view/com/modals/ChangeHandle.tsx:515 +#: src/view/com/modals/ChangeHandle.tsx:518 +msgid "Use bsky.social as hosting provider" +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:517 msgid "Use default provider" msgstr "Utilitza el proveïdor predeterminat" @@ -4515,6 +5455,10 @@ msgstr "Utilitza el navegador de l'aplicació" msgid "Use my default browser" msgstr "Utilitza el meu navegador predeterminat" +#: src/view/com/modals/ChangeHandle.tsx:401 +msgid "Use the DNS panel" +msgstr "" + #: src/view/com/modals/AddAppPasswords.tsx:155 msgid "Use this to sign into the other app along with your handle." msgstr "Utilitza-ho per iniciar sessió a l'altra aplicació, juntament amb el teu identificador." @@ -4527,15 +5471,24 @@ msgstr "Utilitza-ho per iniciar sessió a l'altra aplicació, juntament amb el t msgid "Used by:" msgstr "Utilitzat per:" -#: src/view/com/modals/ModerationDetails.tsx:54 +#: src/components/moderation/ModerationDetailsDialog.tsx:65 +#: src/lib/moderation/useModerationCauseDescription.ts:56 msgid "User Blocked" msgstr "Usuari bloquejat" -#: src/view/com/modals/ModerationDetails.tsx:40 +#: src/lib/moderation/useModerationCauseDescription.ts:48 +msgid "User Blocked by \"{0}\"" +msgstr "" + +#: src/components/moderation/ModerationDetailsDialog.tsx:54 msgid "User Blocked by List" msgstr "Usuari bloquejat per una llista" -#: src/view/com/modals/ModerationDetails.tsx:60 +#: src/lib/moderation/useModerationCauseDescription.ts:66 +msgid "User Blocking You" +msgstr "" + +#: src/components/moderation/ModerationDetailsDialog.tsx:71 msgid "User Blocks You" msgstr "L'usuari t'ha bloquejat" @@ -4548,13 +5501,13 @@ msgstr "Identificador d'usuari" msgid "User list by {0}" msgstr "Llista d'usuaris per {0}" -#: src/view/screens/ProfileList.tsx:763 +#: src/view/screens/ProfileList.tsx:777 msgid "User list by <0/>" msgstr "Llista d'usuaris feta per <0/>" #: src/view/com/lists/ListCard.tsx:83 #: src/view/com/modals/UserAddRemoveLists.tsx:196 -#: src/view/screens/ProfileList.tsx:761 +#: src/view/screens/ProfileList.tsx:775 msgid "User list by you" msgstr "Llista d'usaris feta per tu" @@ -4575,7 +5528,7 @@ msgstr "Llistes d'usuaris" msgid "Username or email address" msgstr "Nom d'usuari o correu" -#: src/view/screens/ProfileList.tsx:797 +#: src/view/screens/ProfileList.tsx:811 msgid "Users" msgstr "Usuaris" @@ -4587,19 +5540,31 @@ msgstr "usuaris seguits per <0/>" msgid "Users in \"{0}\"" msgstr "Usuaris a \"{0}\"" +#: src/components/LikesDialog.tsx:85 +msgid "Users that have liked this content or profile" +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:437 +msgid "Value:" +msgstr "" + #: src/view/com/auth/create/Step2.tsx:243 #~ msgid "Verification code" #~ msgstr "Codi de verificació" -#: src/view/screens/Settings/index.tsx:910 +#: src/view/com/modals/ChangeHandle.tsx:510 +msgid "Verify {0}" +msgstr "" + +#: src/view/screens/Settings/index.tsx:940 msgid "Verify email" msgstr "Verifica el correu" -#: src/view/screens/Settings/index.tsx:935 +#: src/view/screens/Settings/index.tsx:965 msgid "Verify my email" msgstr "Verifica el meu correu" -#: src/view/screens/Settings/index.tsx:944 +#: src/view/screens/Settings/index.tsx:974 msgid "Verify My Email" msgstr "Verifica el meu correu" @@ -4616,7 +5581,7 @@ msgstr "Verifica el teu correu" msgid "Video Games" msgstr "Videojocs" -#: src/view/com/profile/ProfileHeader.tsx:662 +#: src/screens/Profile/Header/Shell.tsx:110 msgid "View {0}'s avatar" msgstr "Veure l'avatar de {0}" @@ -4624,11 +5589,23 @@ msgstr "Veure l'avatar de {0}" msgid "View debug entry" msgstr "Veure el registre de depuració" -#: src/view/com/posts/FeedSlice.tsx:103 +#: src/components/ReportDialog/SelectReportOptionView.tsx:133 +msgid "View details" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:128 +msgid "View details for reporting a copyright violation" +msgstr "" + +#: src/view/com/posts/FeedSlice.tsx:99 msgid "View full thread" msgstr "Veure el fil de debat complet" -#: src/view/com/posts/FeedErrorMessage.tsx:172 +#: src/components/moderation/LabelsOnMe.tsx:51 +msgid "View information about these labels" +msgstr "" + +#: src/view/com/posts/FeedErrorMessage.tsx:166 msgid "View profile" msgstr "Veure el perfil" @@ -4636,15 +5613,34 @@ msgstr "Veure el perfil" msgid "View the avatar" msgstr "Veure l'avatar" +#: src/components/LabelingServiceCard/index.tsx:140 +msgid "View the labeling service provided by @{0}" +msgstr "" + +#: src/view/screens/ProfileFeed.tsx:584 +msgid "View users who like this feed" +msgstr "" + #: src/view/com/modals/LinkWarning.tsx:75 +#: src/view/com/modals/LinkWarning.tsx:77 msgid "Visit Site" msgstr "Visita el lloc web" -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:42 -#: src/view/com/modals/ContentFilteringSettings.tsx:259 +#: src/components/moderation/GlobalModerationLabelPref.tsx:44 +#: src/lib/moderation/useLabelBehaviorDescription.ts:17 +#: src/lib/moderation/useLabelBehaviorDescription.ts:22 +#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:53 msgid "Warn" msgstr "Adverteix" +#: src/lib/moderation/useLabelBehaviorDescription.ts:48 +msgid "Warn content" +msgstr "" + +#: src/lib/moderation/useLabelBehaviorDescription.ts:46 +msgid "Warn content and filter from feeds" +msgstr "" + #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:134 msgid "We also think you'll like \"For You\" by Skygaze:" msgstr "També creiem que t'agradarà el canal \"For You\" d'Skygaze:" @@ -4673,6 +5669,14 @@ msgstr "" msgid "We recommend our \"Discover\" feed:" msgstr "Et reomanem el nostre canal \"Discover\":" +#: src/components/dialogs/BirthDateSettings.tsx:52 +msgid "We were unable to load your birth date preferences. Please try again." +msgstr "" + +#: src/screens/Moderation/index.tsx:387 +msgid "We were unable to load your configured labelers at this time." +msgstr "" + #: src/screens/Onboarding/StepInterests/index.tsx:133 msgid "We weren't able to connect. Please try again to continue setting up your account. If it continues to fail, you can skip this flow." msgstr "No ens hem pogut connectar. Torna-ho a provar per continuar configurant el teu compte. Si continua fallant, pots ometre aquest flux." @@ -4682,8 +5686,8 @@ msgid "We will let you know when your account is ready." msgstr "T'informarem quan el teu compte estigui llest." #: src/view/com/modals/AppealLabel.tsx:48 -msgid "We'll look into your appeal promptly." -msgstr "Analitzarem la teva apel·lació ràpidament." +#~ msgid "We'll look into your appeal promptly." +#~ msgstr "Analitzarem la teva apel·lació ràpidament." #: src/screens/Onboarding/StepInterests/index.tsx:138 msgid "We'll use this to help customize your experience." @@ -4693,7 +5697,7 @@ msgstr "Ho farem servir per personalitzar la teva experiència." msgid "We're so excited to have you join us!" msgstr "Ens fa molta il·lusió que t'uneixis a nosaltres!" -#: src/view/screens/ProfileList.tsx:86 +#: src/view/screens/ProfileList.tsx:89 msgid "We're sorry, but we were unable to resolve this list. If this persists, please contact the list creator, @{handleOrDid}." msgstr "Ho sentim, però no hem pogut resoldre aquesta llista. Si això continua, posa't en contacte amb el creador de la llista, @{handleOrDid}." @@ -4701,16 +5705,20 @@ msgstr "Ho sentim, però no hem pogut resoldre aquesta llista. Si això continua msgid "We're sorry, but we weren't able to load your muted words at this time. Please try again." msgstr "" -#: src/view/screens/Search/Search.tsx:254 +#: src/view/screens/Search/Search.tsx:255 msgid "We're sorry, but your search could not be completed. Please try again in a few minutes." msgstr "Ens sap greu, però la teva cerca no s'ha pogut fer. Prova-ho d'aquí una estona." -#: src/components/Lists.tsx:211 +#: src/components/Lists.tsx:194 #: src/view/screens/NotFound.tsx:48 msgid "We're sorry! We can't find the page you were looking for." msgstr "Ens sap greu! No podem trobar la pàgina que estàs cercant." -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:46 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:319 +msgid "We're sorry! You can only subscribe to ten labelers, and you've reached your limit of ten." +msgstr "" + +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:48 msgid "Welcome to <0>Bluesky" msgstr "Benvingut a <0>Bluesky" @@ -4719,14 +5727,14 @@ msgid "What are your interests?" msgstr "Quins són els teus interesos?" #: src/view/com/modals/report/Modal.tsx:169 -msgid "What is the issue with this {collectionName}?" -msgstr "Quin problema hi ha amb {collectionName}?" +#~ msgid "What is the issue with this {collectionName}?" +#~ msgstr "Quin problema hi ha amb {collectionName}?" #~ msgid "What's next?" #~ msgstr "¿Qué sigue?" #: src/view/com/auth/SplashScreen.tsx:59 -#: src/view/com/composer/Composer.tsx:286 +#: src/view/com/composer/Composer.tsx:295 msgid "What's up?" msgstr "Què hi ha de nou" @@ -4743,16 +5751,36 @@ msgstr "Quins idiomes t'agradaria veure en els teus canals algorítmics?" msgid "Who can reply" msgstr "Qui hi pot respondre" +#: src/components/ReportDialog/SelectReportOptionView.tsx:44 +msgid "Why should this content be reviewed?" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:57 +msgid "Why should this feed be reviewed?" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:54 +msgid "Why should this list be reviewed?" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:51 +msgid "Why should this post be reviewed?" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:48 +msgid "Why should this user be reviewed?" +msgstr "" + #: src/view/com/modals/crop-image/CropImage.web.tsx:102 msgid "Wide" msgstr "Amplada" -#: src/view/com/composer/Composer.tsx:422 +#: src/view/com/composer/Composer.tsx:435 msgid "Write post" msgstr "Escriu una publicació" -#: src/view/com/composer/Composer.tsx:285 -#: src/view/com/composer/Prompt.tsx:33 +#: src/view/com/composer/Composer.tsx:294 +#: src/view/com/composer/Prompt.tsx:37 msgid "Write your reply" msgstr "Escriu la teva resposta" @@ -4778,6 +5806,10 @@ msgstr "Sí" msgid "You are in line." msgstr "Estàs a la cua." +#: src/view/com/profile/ProfileFollows.tsx:93 +msgid "You are not following anyone." +msgstr "" + #: src/view/com/posts/FollowingEmptyState.tsx:67 #: src/view/com/posts/FollowingEndOfFeed.tsx:68 msgid "You can also discover new Custom Feeds to follow." @@ -4796,6 +5828,10 @@ msgstr "Pots canviar aquests paràmetres més endavant." msgid "You can now sign in with your new password." msgstr "Ara pots iniciar sessió amb la nova contrasenya." +#: src/view/com/profile/ProfileFollowers.tsx:94 +msgid "You do not have any followers." +msgstr "" + #: src/view/com/modals/InviteCodes.tsx:66 msgid "You don't have any invite codes yet! We'll send you some when you've been on Bluesky for a little longer." msgstr "Encara no tens codis d'invitació! Te n'enviarem quan portis una mica més de temps a Bluesky." @@ -4812,11 +5848,13 @@ msgstr "No tens cap canal desat!" msgid "You don't have any saved feeds." msgstr "No tens cap canal desat." -#: src/view/com/post-thread/PostThread.tsx:465 +#: src/view/com/post-thread/PostThread.tsx:159 msgid "You have blocked the author or you have been blocked by the author." msgstr "Has bloquejat l'autor o has estat bloquejat per ell." -#: src/view/com/modals/ModerationDetails.tsx:56 +#: src/components/moderation/ModerationDetailsDialog.tsx:67 +#: src/lib/moderation/useModerationCauseDescription.ts:50 +#: src/lib/moderation/useModerationCauseDescription.ts:58 msgid "You have blocked this user. You cannot view their content." msgstr "Has bloquejat aquest usuari. No pots veure el seu contingut." @@ -4827,9 +5865,26 @@ msgstr "Has bloquejat aquest usuari. No pots veure el seu contingut." msgid "You have entered an invalid code. It should look like XXXXX-XXXXX." msgstr "Has entrat un codi invàlid. Hauria de ser tipus XXXXX-XXXXX." +#: src/lib/moderation/useModerationCauseDescription.ts:109 +msgid "You have hidden this post" +msgstr "" + +#: src/components/moderation/ModerationDetailsDialog.tsx:102 +msgid "You have hidden this post." +msgstr "" + +#: src/components/moderation/ModerationDetailsDialog.tsx:95 +#: src/lib/moderation/useModerationCauseDescription.ts:92 +msgid "You have muted this account." +msgstr "" + +#: src/lib/moderation/useModerationCauseDescription.ts:86 +msgid "You have muted this user" +msgstr "" + #: src/view/com/modals/ModerationDetails.tsx:87 -msgid "You have muted this user." -msgstr "Has silenciat aquest usuari." +#~ msgid "You have muted this user." +#~ msgstr "Has silenciat aquest usuari." #: src/view/com/feeds/ProfileFeedgens.tsx:136 msgid "You have no feeds." @@ -4841,34 +5896,50 @@ msgid "You have no lists." msgstr "No tens llistes." #: src/view/screens/ModerationBlockedAccounts.tsx:132 -msgid "You have not blocked any accounts yet. To block an account, go to their profile and selected \"Block account\" from the menu on their account." -msgstr "Encara no has bloquejat cap compte. Per fer-ho, vés al seu perfil i selecciona \"Bloqueja el compte\" en el menú del seu compte." +msgid "You have not blocked any accounts yet. To block an account, go to their profile and select \"Block account\" from the menu on their account." +msgstr "" -#: src/view/screens/AppPasswords.tsx:87 +#: src/view/screens/ModerationBlockedAccounts.tsx:132 +#~ msgid "You have not blocked any accounts yet. To block an account, go to their profile and selected \"Block account\" from the menu on their account." +#~ msgstr "Encara no has bloquejat cap compte. Per fer-ho, vés al seu perfil i selecciona \"Bloqueja el compte\" en el menú del seu compte." + +#: src/view/screens/AppPasswords.tsx:89 msgid "You have not created any app passwords yet. You can create one by pressing the button below." msgstr "Encara no has creat cap contrasenya d'aplicació. Pots fer-ho amb el botó d'aquí sota." #: src/view/screens/ModerationMutedAccounts.tsx:131 -msgid "You have not muted any accounts yet. To mute an account, go to their profile and selected \"Mute account\" from the menu on their account." -msgstr "Encara no has silenciat cap compte. Per fer-ho, vés al seu perfil i selecciona \"Silencia compte\" en el menú del seu compte." +msgid "You have not muted any accounts yet. To mute an account, go to their profile and select \"Mute account\" from the menu on their account." +msgstr "" + +#: src/view/screens/ModerationMutedAccounts.tsx:131 +#~ msgid "You have not muted any accounts yet. To mute an account, go to their profile and selected \"Mute account\" from the menu on their account." +#~ msgstr "Encara no has silenciat cap compte. Per fer-ho, vés al seu perfil i selecciona \"Silencia compte\" en el menú del seu compte." #: src/components/dialogs/MutedWords.tsx:250 msgid "You haven't muted any words or tags yet" msgstr "" +#: src/components/moderation/LabelsOnMeDialog.tsx:69 +msgid "You may appeal these labels if you feel they were placed in error." +msgstr "" + #: src/view/com/modals/ContentFilteringSettings.tsx:175 -msgid "You must be 18 or older to enable adult content." -msgstr "Has de tenir 18 anys o més per habilitar el contingut per a adults." +#~ msgid "You must be 18 or older to enable adult content." +#~ msgstr "Has de tenir 18 anys o més per habilitar el contingut per a adults." -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:103 +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:110 msgid "You must be 18 years or older to enable adult content" msgstr "Has de tenir 18 anys o més per habilitar el contingut per a adults" -#: src/view/com/util/forms/PostDropdownBtn.tsx:147 +#: src/components/ReportDialog/SubmitView.tsx:205 +msgid "You must select at least one labeler for a report" +msgstr "" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:144 msgid "You will no longer receive notifications for this thread" msgstr "Ja no rebràs més notificacions d'aquest debat" -#: src/view/com/util/forms/PostDropdownBtn.tsx:150 +#: src/view/com/util/forms/PostDropdownBtn.tsx:147 msgid "You will now receive notifications for this thread" msgstr "Ara rebràs notificacions d'aquest debat" @@ -4876,7 +5947,7 @@ msgstr "Ara rebràs notificacions d'aquest debat" msgid "You will receive an email with a \"reset code.\" Enter that code here, then enter your new password." msgstr "Rebràs un correu amb un \"codi de restabliment\". Introdueix aquí el codi i després la teva contrasenya nova." -#: src/screens/Onboarding/StepModeration/index.tsx:72 +#: src/screens/Onboarding/StepModeration/index.tsx:59 msgid "You're in control" msgstr "Tu tens el control" @@ -4890,6 +5961,11 @@ msgstr "Estàs a la cua" msgid "You're ready to go!" msgstr "Ja està tot llest!" +#: src/components/moderation/ModerationDetailsDialog.tsx:99 +#: src/lib/moderation/useModerationCauseDescription.ts:101 +msgid "You've chosen to hide a word or tag within this post." +msgstr "" + #: src/view/com/posts/FollowingEndOfFeed.tsx:48 msgid "You've reached the end of your feed! Find some more accounts to follow." msgstr "Has arribat al final del vostre cabal! Cerca alguns comptes més per seguir." @@ -4962,26 +6038,26 @@ msgstr "El teu identificador complet serà <0>@{0}" msgid "Your muted words" msgstr "" -#: src/view/com/modals/ChangePassword.tsx:155 +#: src/view/com/modals/ChangePassword.tsx:157 msgid "Your password has been changed successfully!" msgstr "S'ha canviat la teva contrasenya!" -#: src/view/com/composer/Composer.tsx:274 +#: src/view/com/composer/Composer.tsx:283 msgid "Your post has been published" msgstr "S'ha publicat" #: src/screens/Onboarding/StepFinished.tsx:105 #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:59 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:59 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:61 msgid "Your posts, likes, and blocks are public. Mutes are private." msgstr "Les teves publicacions, m'agrades i bloquejos són públics. Els comptes silenciats són privats." -#: src/view/com/modals/SwitchAccount.tsx:84 -#: src/view/screens/Settings/index.tsx:118 +#: src/view/com/modals/SwitchAccount.tsx:88 +#: src/view/screens/Settings/index.tsx:123 msgid "Your profile" msgstr "El teu perfil" -#: src/view/com/composer/Composer.tsx:273 +#: src/view/com/composer/Composer.tsx:282 msgid "Your reply has been published" msgstr "S'ha publicat a teva resposta" diff --git a/src/locale/locales/de/messages.po b/src/locale/locales/de/messages.po index 503d656eee..408e2aeda8 100644 --- a/src/locale/locales/de/messages.po +++ b/src/locale/locales/de/messages.po @@ -17,11 +17,11 @@ msgstr "" msgid "(no email)" msgstr "(keine E-Mail)" -#: src/view/com/profile/ProfileHeader.tsx:593 +#: src/screens/Profile/Header/Metrics.tsx:45 msgid "{following} following" msgstr "{following} folge ich" -#: src/view/shell/Drawer.tsx:440 +#: src/view/shell/Drawer.tsx:443 msgid "{numUnreadNotifications} unread" msgstr "{numUnreadNotifications} ungelesen" @@ -29,7 +29,11 @@ msgstr "{numUnreadNotifications} ungelesen" msgid "<0/> members" msgstr "<0/> Mitglieder" -#: src/view/com/profile/ProfileHeader.tsx:595 +#: src/view/shell/Drawer.tsx:97 +msgid "<0>{0} following" +msgstr "" + +#: src/screens/Profile/Header/Metrics.tsx:46 msgid "<0>{following} <1>following" msgstr "<0>{following} <1>folge ich" @@ -45,20 +49,20 @@ msgstr "<0>Folge einigen<1>empfohlenen<2>Nutzern" msgid "<0>Welcome to<1>Bluesky" msgstr "<0>Willkommen bei<1>Bluesky" -#: src/view/com/profile/ProfileHeader.tsx:558 +#: src/screens/Profile/Header/Handle.tsx:42 msgid "⚠Invalid Handle" msgstr "⚠Ungültiger Handle" #: src/view/com/util/moderation/LabelInfo.tsx:45 -msgid "A content warning has been applied to this {0}." -msgstr "Diese Seite wurde mit einer Inhaltswarnung versehen {0}." +#~ msgid "A content warning has been applied to this {0}." +#~ msgstr "Diese Seite wurde mit einer Inhaltswarnung versehen {0}." #: src/lib/hooks/useOTAUpdate.ts:16 -msgid "A new version of the app is available. Please update to continue using the app." -msgstr "Eine neue Version der App ist verfügbar. Bitte aktualisiere die App, um sie weiter nutzen zu können." +#~ msgid "A new version of the app is available. Please update to continue using the app." +#~ msgstr "Eine neue Version der App ist verfügbar. Bitte aktualisiere die App, um sie weiter nutzen zu können." #: src/view/com/util/ViewHeader.tsx:89 -#: src/view/screens/Search/Search.tsx:647 +#: src/view/screens/Search/Search.tsx:648 msgid "Access navigation links and settings" msgstr "Zugriff auf Navigationslinks und Einstellungen" @@ -67,29 +71,38 @@ msgid "Access profile and other navigation links" msgstr "Zugang zum Profil und anderen Navigationslinks" #: src/view/com/modals/EditImage.tsx:299 -#: src/view/screens/Settings/index.tsx:451 +#: src/view/screens/Settings/index.tsx:466 msgid "Accessibility" msgstr "Barrierefreiheit" +#: src/components/moderation/LabelsOnMe.tsx:42 +msgid "account" +msgstr "" + #: src/view/com/auth/login/LoginForm.tsx:166 -#: src/view/screens/Settings/index.tsx:308 -#: src/view/screens/Settings/index.tsx:721 +#: src/view/screens/Settings/index.tsx:323 +#: src/view/screens/Settings/index.tsx:739 msgid "Account" msgstr "Konto" -#: src/view/com/profile/ProfileHeader.tsx:246 +#: src/view/com/profile/ProfileMenu.tsx:139 msgid "Account blocked" msgstr "Konto blockiert" -#: src/view/com/profile/ProfileHeader.tsx:213 +#: src/view/com/profile/ProfileMenu.tsx:153 +msgid "Account followed" +msgstr "" + +#: src/view/com/profile/ProfileMenu.tsx:113 msgid "Account muted" msgstr "Konto stummgeschaltet" -#: src/view/com/modals/ModerationDetails.tsx:86 +#: src/components/moderation/ModerationDetailsDialog.tsx:94 +#: src/lib/moderation/useModerationCauseDescription.ts:91 msgid "Account Muted" msgstr "Konto Stummgeschaltet" -#: src/view/com/modals/ModerationDetails.tsx:72 +#: src/components/moderation/ModerationDetailsDialog.tsx:83 msgid "Account Muted by List" msgstr "Konto stummgeschaltet nach Liste" @@ -101,19 +114,24 @@ msgstr "Kontoeinstellungen" msgid "Account removed from quick access" msgstr "Konto aus dem Schnellzugriff entfernt" -#: src/view/com/profile/ProfileHeader.tsx:268 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:130 +#: src/view/com/profile/ProfileMenu.tsx:128 msgid "Account unblocked" msgstr "Konto entblockiert" -#: src/view/com/profile/ProfileHeader.tsx:226 +#: src/view/com/profile/ProfileMenu.tsx:166 +msgid "Account unfollowed" +msgstr "" + +#: src/view/com/profile/ProfileMenu.tsx:102 msgid "Account unmuted" msgstr "Konto Stummschaltung aufgehoben" #: src/components/dialogs/MutedWords.tsx:165 #: src/view/com/auth/onboarding/RecommendedFeedsItem.tsx:150 -#: src/view/com/modals/ListAddRemoveUsers.tsx:264 +#: src/view/com/modals/ListAddRemoveUsers.tsx:268 #: src/view/com/modals/UserAddRemoveLists.tsx:219 -#: src/view/screens/ProfileList.tsx:813 +#: src/view/screens/ProfileList.tsx:827 msgid "Add" msgstr "Hinzufügen" @@ -121,12 +139,12 @@ msgstr "Hinzufügen" msgid "Add a content warning" msgstr "Eine Inhaltswarnung hinzufügen" -#: src/view/screens/ProfileList.tsx:803 +#: src/view/screens/ProfileList.tsx:817 msgid "Add a user to this list" msgstr "Einen Nutzer zu dieser Liste hinzufügen" -#: src/view/screens/Settings/index.tsx:383 -#: src/view/screens/Settings/index.tsx:392 +#: src/view/screens/Settings/index.tsx:398 +#: src/view/screens/Settings/index.tsx:407 msgid "Add account" msgstr "Konto hinzufügen" @@ -136,26 +154,26 @@ msgstr "Konto hinzufügen" msgid "Add alt text" msgstr "Alt-Text hinzufügen" -#: src/view/screens/AppPasswords.tsx:102 -#: src/view/screens/AppPasswords.tsx:143 -#: src/view/screens/AppPasswords.tsx:156 +#: src/view/screens/AppPasswords.tsx:104 +#: src/view/screens/AppPasswords.tsx:145 +#: src/view/screens/AppPasswords.tsx:158 msgid "Add App Password" msgstr "App-Passwort hinzufügen" #: src/view/com/modals/report/InputIssueDetails.tsx:41 #: src/view/com/modals/report/Modal.tsx:191 -msgid "Add details" -msgstr "Details hinzufügen" +#~ msgid "Add details" +#~ msgstr "Details hinzufügen" #: src/view/com/modals/report/Modal.tsx:194 -msgid "Add details to report" -msgstr "Details zum Report hinzufügen" +#~ msgid "Add details to report" +#~ msgstr "Details zum Report hinzufügen" -#: src/view/com/composer/Composer.tsx:453 +#: src/view/com/composer/Composer.tsx:466 msgid "Add link card" msgstr "Link-Karte hinzufügen" -#: src/view/com/composer/Composer.tsx:458 +#: src/view/com/composer/Composer.tsx:471 msgid "Add link card:" msgstr "Link-Karte hinzufügen:" @@ -171,12 +189,12 @@ msgstr "Füge stummgeschaltete Wörter und Tags hinzu" msgid "Add the following DNS record to your domain:" msgstr "Füge den folgenden DNS-Eintrag zu deiner Domain hinzu:" -#: src/view/com/profile/ProfileHeader.tsx:310 +#: src/view/com/profile/ProfileMenu.tsx:263 +#: src/view/com/profile/ProfileMenu.tsx:266 msgid "Add to Lists" msgstr "Zu Listen hinzufügen" -#: src/view/com/feeds/FeedSourceCard.tsx:245 -#: src/view/screens/ProfileFeed.tsx:273 +#: src/view/com/feeds/FeedSourceCard.tsx:234 msgid "Add to my feeds" msgstr "Zu meinen Feeds hinzufügen" @@ -189,7 +207,7 @@ msgstr "Hinzugefügt" msgid "Added to list" msgstr "Zur Liste hinzugefügt" -#: src/view/com/feeds/FeedSourceCard.tsx:127 +#: src/view/com/feeds/FeedSourceCard.tsx:108 msgid "Added to my feeds" msgstr "Zu meinen Feeds hinzugefügt" @@ -197,15 +215,21 @@ msgstr "Zu meinen Feeds hinzugefügt" msgid "Adjust the number of likes a reply must have to be shown in your feed." msgstr "Passe die Anzahl der Likes an, die eine Antwort haben muss, um in deinem Feed angezeigt zu werden." +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:117 #: src/view/com/modals/SelfLabel.tsx:75 msgid "Adult Content" msgstr "Inhalt für Erwachsene" #: src/view/com/modals/ContentFilteringSettings.tsx:141 -msgid "Adult content can only be enabled via the Web at <0/>." -msgstr "Inhalte für Erwachsene können nur über das Web unter <0/> aktiviert werden." +#~ msgid "Adult content can only be enabled via the Web at <0/>." +#~ msgstr "Inhalte für Erwachsene können nur über das Web unter <0/> aktiviert werden." -#: src/view/screens/Settings/index.tsx:664 +#: src/components/moderation/ModerationLabelPref.tsx:114 +msgid "Adult content is disabled." +msgstr "" + +#: src/screens/Moderation/index.tsx:377 +#: src/view/screens/Settings/index.tsx:680 msgid "Advanced" msgstr "Erweitert" @@ -214,11 +238,11 @@ msgid "All the feeds you've saved, right in one place." msgstr "All deine gespeicherten Feeds an einem Ort." #: src/view/com/auth/login/ForgotPasswordForm.tsx:221 -#: src/view/com/modals/ChangePassword.tsx:168 +#: src/view/com/modals/ChangePassword.tsx:170 msgid "Already have a code?" msgstr "Hast du bereits einen Code?" -#: src/view/com/auth/login/ChooseAccountForm.tsx:98 +#: src/view/com/auth/login/ChooseAccountForm.tsx:102 msgid "Already signed in as @{0}" msgstr "Bereits angemeldet als @{0}" @@ -242,12 +266,18 @@ msgstr "Eine E-Mail wurde an {0} gesendet. Sie enthält einen Bestätigungscode, msgid "An email has been sent to your previous address, {0}. It includes a confirmation code which you can enter below." msgstr "Eine E-Mail wurde an deine vorherige Adresse {0} gesendet. Sie enthält einen Bestätigungscode, den du unten eingeben kannst." -#: src/view/com/profile/FollowButton.tsx:30 -#: src/view/com/profile/FollowButton.tsx:40 +#: src/lib/moderation/useReportOptions.ts:26 +msgid "An issue not included in these options" +msgstr "" + +#: src/view/com/profile/FollowButton.tsx:35 +#: src/view/com/profile/FollowButton.tsx:45 +#: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:188 +#: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:198 msgid "An issue occurred, please try again." msgstr "Es ist ein Problem aufgetreten, bitte versuche es erneut." -#: src/view/com/notifications/FeedItem.tsx:237 +#: src/view/com/notifications/FeedItem.tsx:240 #: src/view/com/threadgate/WhoCanReply.tsx:178 msgid "and" msgstr "und" @@ -256,11 +286,15 @@ msgstr "und" msgid "Animals" msgstr "Tiere" +#: src/lib/moderation/useReportOptions.ts:31 +msgid "Anti-Social Behavior" +msgstr "" + #: src/view/screens/LanguageSettings.tsx:95 msgid "App Language" msgstr "App-Sprache" -#: src/view/screens/AppPasswords.tsx:228 +#: src/view/screens/AppPasswords.tsx:223 msgid "App password deleted" msgstr "App-Passwort gelöscht" @@ -272,53 +306,69 @@ msgstr "App-Passwortnamen dürfen nur Buchstaben, Zahlen, Leerzeichen, Bindestri msgid "App Password names must be at least 4 characters long." msgstr "App-Passwortnamen müssen mindestens 4 Zeichen lang sein." -#: src/view/screens/Settings/index.tsx:675 +#: src/view/screens/Settings/index.tsx:691 msgid "App password settings" msgstr "App-Passwort-Einstellungen" -#: src/Navigation.tsx:239 -#: src/view/screens/AppPasswords.tsx:187 -#: src/view/screens/Settings/index.tsx:684 +#: src/Navigation.tsx:251 +#: src/view/screens/AppPasswords.tsx:189 +#: src/view/screens/Settings/index.tsx:700 msgid "App Passwords" msgstr "App-Passwörter" +#: src/components/moderation/LabelsOnMeDialog.tsx:134 +#: src/components/moderation/LabelsOnMeDialog.tsx:137 +msgid "Appeal" +msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:202 +msgid "Appeal \"{0}\" label" +msgstr "" + #: src/view/com/util/forms/PostDropdownBtn.tsx:337 #: src/view/com/util/forms/PostDropdownBtn.tsx:346 -msgid "Appeal content warning" -msgstr "Inhaltswarnungseinspruch" +#~ msgid "Appeal content warning" +#~ msgstr "Inhaltswarnungseinspruch" #: src/view/com/modals/AppealLabel.tsx:65 -msgid "Appeal Content Warning" -msgstr "Inhaltswarnungseinspruch" +#~ msgid "Appeal Content Warning" +#~ msgstr "Inhaltswarnungseinspruch" + +#: src/components/moderation/LabelsOnMeDialog.tsx:193 +msgid "Appeal submitted." +msgstr "" #: src/view/com/util/moderation/LabelInfo.tsx:52 -msgid "Appeal this decision" -msgstr "Einspruch gegen diese Entscheidung" +#~ msgid "Appeal this decision" +#~ msgstr "Einspruch gegen diese Entscheidung" #: src/view/com/util/moderation/LabelInfo.tsx:56 -msgid "Appeal this decision." -msgstr "Einspruch gegen diese Entscheidung." +#~ msgid "Appeal this decision." +#~ msgstr "Einspruch gegen diese Entscheidung." -#: src/view/screens/Settings/index.tsx:466 +#: src/view/screens/Settings/index.tsx:481 msgid "Appearance" msgstr "Erscheinungsbild" -#: src/view/screens/AppPasswords.tsx:224 +#: src/view/screens/AppPasswords.tsx:265 msgid "Are you sure you want to delete the app password \"{name}\"?" msgstr "Bist du sicher, dass du das App-Passwort \"{name}\" löschen möchtest?" -#: src/view/com/composer/Composer.tsx:150 +#: src/view/com/feeds/FeedSourceCard.tsx:280 +msgid "Are you sure you want to remove {0} from your feeds?" +msgstr "" + +#: src/view/com/composer/Composer.tsx:508 msgid "Are you sure you'd like to discard this draft?" msgstr "Bist du sicher, dass du diesen Entwurf verwerfen möchtest?" #: src/components/dialogs/MutedWords.tsx:282 -#: src/view/screens/ProfileList.tsx:365 msgid "Are you sure?" msgstr "Bist du sicher?" #: src/view/com/util/forms/PostDropdownBtn.tsx:322 -msgid "Are you sure? This cannot be undone." -msgstr "Bist du sicher? Dies kann nicht rückgängig gemacht werden." +#~ msgid "Are you sure? This cannot be undone." +#~ msgstr "Bist du sicher? Dies kann nicht rückgängig gemacht werden." #: src/view/com/composer/select-language/SuggestedLanguage.tsx:60 msgid "Are you writing in <0>{0}?" @@ -332,78 +382,86 @@ msgstr "Kunst" msgid "Artistic or non-erotic nudity." msgstr "Künstlerische oder nicht-erotische Nacktheit." +#: src/components/moderation/LabelsOnMeDialog.tsx:247 +#: src/components/moderation/LabelsOnMeDialog.tsx:248 +#: src/screens/Profile/Header/Shell.tsx:97 #: src/view/com/auth/create/CreateAccount.tsx:158 -#: src/view/com/auth/login/ChooseAccountForm.tsx:151 +#: src/view/com/auth/login/ChooseAccountForm.tsx:155 #: src/view/com/auth/login/ForgotPasswordForm.tsx:174 #: src/view/com/auth/login/LoginForm.tsx:259 #: src/view/com/auth/login/SetNewPasswordForm.tsx:179 -#: src/view/com/modals/report/InputIssueDetails.tsx:46 -#: src/view/com/post-thread/PostThread.tsx:472 -#: src/view/com/post-thread/PostThread.tsx:522 -#: src/view/com/post-thread/PostThread.tsx:530 -#: src/view/com/profile/ProfileHeader.tsx:649 #: src/view/com/util/ViewHeader.tsx:87 msgid "Back" msgstr "Zurück" #: src/view/com/post-thread/PostThread.tsx:480 -msgctxt "action" -msgid "Back" -msgstr "Zurück" +#~ msgctxt "action" +#~ msgid "Back" +#~ msgstr "Zurück" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:136 msgid "Based on your interest in {interestsText}" msgstr "Ausgehend von deinem Interesse an {interestsText}" -#: src/view/screens/Settings/index.tsx:523 +#: src/view/screens/Settings/index.tsx:538 msgid "Basics" msgstr "Grundlagen" +#: src/components/dialogs/BirthDateSettings.tsx:107 #: src/view/com/auth/create/Step1.tsx:227 -#: src/view/com/modals/BirthDateSettings.tsx:73 msgid "Birthday" msgstr "Geburtstag" -#: src/view/screens/Settings/index.tsx:340 +#: src/view/screens/Settings/index.tsx:355 msgid "Birthday:" msgstr "Geburtstag:" -#: src/view/com/profile/ProfileHeader.tsx:239 -#: src/view/com/profile/ProfileHeader.tsx:346 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:278 +#: src/view/com/profile/ProfileMenu.tsx:361 +msgid "Block" +msgstr "" + +#: src/view/com/profile/ProfileMenu.tsx:300 +#: src/view/com/profile/ProfileMenu.tsx:307 msgid "Block Account" msgstr "Konto blockieren" -#: src/view/screens/ProfileList.tsx:556 +#: src/view/com/profile/ProfileMenu.tsx:344 +msgid "Block Account?" +msgstr "" + +#: src/view/screens/ProfileList.tsx:530 msgid "Block accounts" msgstr "Konten blockieren" -#: src/view/screens/ProfileList.tsx:506 +#: src/view/screens/ProfileList.tsx:478 +#: src/view/screens/ProfileList.tsx:634 msgid "Block list" msgstr "Blockliste" -#: src/view/screens/ProfileList.tsx:316 +#: src/view/screens/ProfileList.tsx:629 msgid "Block these accounts?" msgstr "Diese Konten blockieren?" #: src/view/screens/ProfileList.tsx:320 -msgid "Block this List" -msgstr "Diese Liste blockieren" +#~ msgid "Block this List" +#~ msgstr "Diese Liste blockieren" #: src/view/com/lists/ListCard.tsx:110 -#: src/view/com/util/post-embeds/QuoteEmbed.tsx:61 +#: src/view/com/util/post-embeds/QuoteEmbed.tsx:55 msgid "Blocked" msgstr "Blockiert" -#: src/view/screens/Moderation.tsx:142 +#: src/screens/Moderation/index.tsx:269 msgid "Blocked accounts" msgstr "Blockierte Konten" -#: src/Navigation.tsx:132 +#: src/Navigation.tsx:134 #: src/view/screens/ModerationBlockedAccounts.tsx:107 msgid "Blocked Accounts" msgstr "Blockierte Konten" -#: src/view/com/profile/ProfileHeader.tsx:241 +#: src/view/com/profile/ProfileMenu.tsx:356 msgid "Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you." msgstr "Blockierte Konten können nicht in deinen Threads antworten, dich erwähnen oder anderweitig mit dir interagieren." @@ -411,15 +469,23 @@ msgstr "Blockierte Konten können nicht in deinen Threads antworten, dich erwäh msgid "Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you. You will not see their content and they will be prevented from seeing yours." msgstr "Blockierte Konten können nicht in deinen Threads antworten, dich erwähnen oder anderweitig mit dir interagieren. Du wirst ihre Inhalte nicht sehen und sie werden daran gehindert, deine zu sehen." -#: src/view/com/post-thread/PostThread.tsx:324 +#: src/view/com/post-thread/PostThread.tsx:313 msgid "Blocked post." msgstr "Gesperrter Beitrag." -#: src/view/screens/ProfileList.tsx:318 +#: src/screens/Profile/Sections/Labels.tsx:153 +msgid "Blocking does not prevent this labeler from placing labels on your account." +msgstr "" + +#: src/view/screens/ProfileList.tsx:631 msgid "Blocking is public. Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you." msgstr "Die Sperrung ist öffentlich. Gesperrte Konten können nicht in deinen Threads antworten, dich erwähnen oder anderweitig mit dir interagieren." -#: src/view/com/auth/HomeLoggedOutCTA.tsx:93 +#: src/view/com/profile/ProfileMenu.tsx:353 +msgid "Blocking will not prevent labels from being applied on your account, but it will stop this account from replying in your threads or interacting with you." +msgstr "" + +#: src/view/com/auth/HomeLoggedOutCTA.tsx:97 #: src/view/com/auth/SplashScreen.web.tsx:133 msgid "Blog" msgstr "Blog" @@ -435,33 +501,41 @@ msgid "Bluesky is an open network where you can choose your hosting provider. Cu msgstr "Bluesky ist ein offenes Netzwerk, in dem du deinen Hosting-Anbieter wählen kannst. Benutzerdefiniertes Hosting ist jetzt in der Beta-Phase für Entwickler verfügbar." #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:80 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:80 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:82 msgid "Bluesky is flexible." msgstr "Bluesky ist flexibel." #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:69 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:69 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:71 msgid "Bluesky is open." msgstr "Bluesky ist offen." #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:56 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:56 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:58 msgid "Bluesky is public." msgstr "Bluesky ist öffentlich." -#: src/view/screens/Moderation.tsx:245 +#: src/screens/Moderation/index.tsx:535 msgid "Bluesky will not show your profile and posts to logged-out users. Other apps may not honor this request. This does not make your account private." msgstr "Bluesky zeigt dein Profil und deine Beiträge nicht für abgemeldete Nutzer an. Andere Apps kommen dieser Aufforderung möglicherweise nicht nach." +#: src/lib/moderation/useLabelBehaviorDescription.ts:53 +msgid "Blur images" +msgstr "" + +#: src/lib/moderation/useLabelBehaviorDescription.ts:51 +msgid "Blur images and filter from feeds" +msgstr "" + #: src/screens/Onboarding/index.tsx:33 msgid "Books" msgstr "Bücher" -#: src/view/screens/Settings/index.tsx:859 +#: src/view/screens/Settings/index.tsx:889 msgid "Build version {0} {1}" msgstr "Build-Version {0} {1}" -#: src/view/com/auth/HomeLoggedOutCTA.tsx:87 +#: src/view/com/auth/HomeLoggedOutCTA.tsx:91 #: src/view/com/auth/SplashScreen.web.tsx:128 msgid "Business" msgstr "Business" @@ -474,17 +548,23 @@ msgstr "von —" msgid "by {0}" msgstr "von {0}" +#: src/components/LabelingServiceCard/index.tsx:57 +msgid "By {0}" +msgstr "" + #: src/view/com/profile/ProfileSubpageHeader.tsx:161 msgid "by <0/>" msgstr "von <0/>" +#: src/view/com/auth/create/Policies.tsx:87 +msgid "By creating an account you agree to the {els}." +msgstr "" + #: src/view/com/profile/ProfileSubpageHeader.tsx:159 msgid "by you" msgstr "von dir" -#: src/view/com/composer/photos/OpenCameraBtn.tsx:60 -#: src/view/com/util/UserAvatar.tsx:224 -#: src/view/com/util/UserBanner.tsx:40 +#: src/view/com/composer/photos/OpenCameraBtn.tsx:77 msgid "Camera" msgstr "Kamera" @@ -492,28 +572,33 @@ msgstr "Kamera" msgid "Can only contain letters, numbers, spaces, dashes, and underscores. Must be at least 4 characters long, but no more than 32 characters long." msgstr "Darf nur Buchstaben, Zahlen, Leerzeichen, Bindestriche und Unterstriche enthalten. Muss mindestens 4 Zeichen lang sein, darf aber nicht länger als 32 Zeichen sein." -#: src/components/Prompt.tsx:101 -#: src/view/com/composer/Composer.tsx:307 -#: src/view/com/composer/Composer.tsx:312 +#: src/components/Menu/index.tsx:213 +#: src/components/Prompt.tsx:116 +#: src/components/Prompt.tsx:118 +#: src/components/TagMenu/index.tsx:268 +#: src/view/com/composer/Composer.tsx:316 +#: src/view/com/composer/Composer.tsx:321 #: src/view/com/modals/ChangeEmail.tsx:218 #: src/view/com/modals/ChangeEmail.tsx:220 -#: src/view/com/modals/ChangePassword.tsx:265 -#: src/view/com/modals/ChangePassword.tsx:268 +#: src/view/com/modals/ChangeHandle.tsx:153 +#: src/view/com/modals/ChangePassword.tsx:267 +#: src/view/com/modals/ChangePassword.tsx:270 #: src/view/com/modals/CreateOrEditList.tsx:355 +#: src/view/com/modals/crop-image/CropImage.web.tsx:137 #: src/view/com/modals/EditImage.tsx:323 #: src/view/com/modals/EditProfile.tsx:249 #: src/view/com/modals/InAppBrowserConsent.tsx:78 +#: src/view/com/modals/InAppBrowserConsent.tsx:80 #: src/view/com/modals/LinkWarning.tsx:87 +#: src/view/com/modals/LinkWarning.tsx:89 #: src/view/com/modals/Repost.tsx:87 #: src/view/com/modals/VerifyEmail.tsx:247 #: src/view/com/modals/VerifyEmail.tsx:253 -#: src/view/screens/Search/Search.tsx:716 -#: src/view/shell/desktop/Search.tsx:238 +#: src/view/screens/Search/Search.tsx:717 +#: src/view/shell/desktop/Search.tsx:239 msgid "Cancel" msgstr "Abbrechen" -#: src/view/com/modals/Confirm.tsx:88 -#: src/view/com/modals/Confirm.tsx:91 #: src/view/com/modals/CreateOrEditList.tsx:360 #: src/view/com/modals/DeleteAccount.tsx:156 #: src/view/com/modals/DeleteAccount.tsx:234 @@ -543,21 +628,29 @@ msgid "Cancel quote post" msgstr "Beitrag zitieren abbrechen" #: src/view/com/modals/ListAddRemoveUsers.tsx:87 -#: src/view/shell/desktop/Search.tsx:234 +#: src/view/shell/desktop/Search.tsx:235 msgid "Cancel search" msgstr "Suche abbrechen" -#: src/view/screens/Settings/index.tsx:334 +#: src/view/com/modals/LinkWarning.tsx:88 +msgid "Cancels opening the linked website" +msgstr "" + +#: src/view/com/modals/VerifyEmail.tsx:152 +msgid "Change" +msgstr "" + +#: src/view/screens/Settings/index.tsx:349 msgctxt "action" msgid "Change" msgstr "Ändern" -#: src/view/screens/Settings/index.tsx:696 +#: src/view/screens/Settings/index.tsx:712 msgid "Change handle" msgstr "Handle ändern" #: src/view/com/modals/ChangeHandle.tsx:161 -#: src/view/screens/Settings/index.tsx:705 +#: src/view/screens/Settings/index.tsx:723 msgid "Change Handle" msgstr "Handle ändern" @@ -565,11 +658,12 @@ msgstr "Handle ändern" msgid "Change my email" msgstr "Meine E-Mail ändern" -#: src/view/screens/Settings/index.tsx:732 +#: src/view/screens/Settings/index.tsx:750 msgid "Change password" msgstr "Passwort ändern" -#: src/view/screens/Settings/index.tsx:741 +#: src/view/com/modals/ChangePassword.tsx:141 +#: src/view/screens/Settings/index.tsx:761 msgid "Change Password" msgstr "Passwort Ändern" @@ -578,8 +672,8 @@ msgid "Change post language to {0}" msgstr "Beitragssprache in {0} ändern" #: src/view/screens/Settings/index.tsx:733 -msgid "Change your Bluesky password" -msgstr "Ändere dein Bluesky-Passwort" +#~ msgid "Change your Bluesky password" +#~ msgstr "Ändere dein Bluesky-Passwort" #: src/view/com/modals/ChangeEmail.tsx:109 msgid "Change Your Email" @@ -607,8 +701,8 @@ msgid "Choose \"Everybody\" or \"Nobody\"" msgstr "Wähle \"Alle\" oder \"Niemand\"" #: src/view/screens/Settings/index.tsx:697 -msgid "Choose a new Bluesky username or create" -msgstr "Wähle oder erstelle einen neuen Bluesky-Benutzernamen" +#~ msgid "Choose a new Bluesky username or create" +#~ msgstr "Wähle oder erstelle einen neuen Bluesky-Benutzernamen" #: src/view/com/auth/server-input/index.tsx:79 msgid "Choose Service" @@ -619,7 +713,7 @@ msgid "Choose the algorithms that power your custom feeds." msgstr "Wähle die Algorithmen aus, welche deine benutzerdefinierten Feeds generieren." #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:83 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:83 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:85 msgid "Choose the algorithms that power your experience with custom feeds." msgstr "Wähle die Algorithmen aus, welche dein Erlebnis mit benutzerdefinierten Feeds unterstützen." @@ -631,29 +725,35 @@ msgstr "Wähle deine Haupt-Feeds" msgid "Choose your password" msgstr "Wähle dein Passwort" -#: src/view/screens/Settings/index.tsx:834 -#: src/view/screens/Settings/index.tsx:835 +#: src/view/screens/Settings/index.tsx:864 msgid "Clear all legacy storage data" msgstr "Alle alten Speicherdaten löschen" -#: src/view/screens/Settings/index.tsx:837 +#: src/view/screens/Settings/index.tsx:867 msgid "Clear all legacy storage data (restart after this)" msgstr "Alle alten Speicherdaten löschen (danach neu starten)" -#: src/view/screens/Settings/index.tsx:846 -#: src/view/screens/Settings/index.tsx:847 +#: src/view/screens/Settings/index.tsx:876 msgid "Clear all storage data" msgstr "Alle Speicherdaten löschen" -#: src/view/screens/Settings/index.tsx:849 +#: src/view/screens/Settings/index.tsx:879 msgid "Clear all storage data (restart after this)" msgstr "Alle Speicherdaten löschen (danach neu starten)" #: src/view/com/util/forms/SearchInput.tsx:88 -#: src/view/screens/Search/Search.tsx:697 +#: src/view/screens/Search/Search.tsx:698 msgid "Clear search query" msgstr "Suchanfrage löschen" +#: src/view/screens/Settings/index.tsx:865 +msgid "Clears all legacy storage data" +msgstr "" + +#: src/view/screens/Settings/index.tsx:877 +msgid "Clears all storage data" +msgstr "" + #: src/view/screens/Support.tsx:40 msgid "click here" msgstr "hier klicken" @@ -670,8 +770,8 @@ msgstr "Klicke hier, um das Tag-Menü für #{tag} zu öffnen" msgid "Climate" msgstr "Klima" -#: src/view/com/modals/ChangePassword.tsx:265 -#: src/view/com/modals/ChangePassword.tsx:268 +#: src/view/com/modals/ChangePassword.tsx:267 +#: src/view/com/modals/ChangePassword.tsx:270 msgid "Close" msgstr "Schließen" @@ -684,27 +784,28 @@ msgstr "Aktiven Dialog schließen" msgid "Close alert" msgstr "Meldung schließen" -#: src/view/com/util/BottomSheetCustomBackdrop.tsx:33 +#: src/view/com/util/BottomSheetCustomBackdrop.tsx:36 msgid "Close bottom drawer" msgstr "Untere Schublade schließen" -#: src/view/com/lightbox/ImageViewing/components/ImageDefaultHeader.tsx:26 +#: src/view/com/lightbox/ImageViewing/components/ImageDefaultHeader.tsx:36 msgid "Close image" msgstr "Bild schließen" -#: src/view/com/lightbox/Lightbox.web.tsx:119 +#: src/view/com/lightbox/Lightbox.web.tsx:129 msgid "Close image viewer" msgstr "Bildbetrachter schließen" -#: src/view/shell/index.web.tsx:51 +#: src/view/shell/index.web.tsx:55 msgid "Close navigation footer" msgstr "Fußzeile der Navigation schließen" +#: src/components/Menu/index.tsx:207 #: src/components/TagMenu/index.tsx:262 msgid "Close this dialog" msgstr "Diesen Dialog schließen" -#: src/view/shell/index.web.tsx:52 +#: src/view/shell/index.web.tsx:56 msgid "Closes bottom navigation bar" msgstr "Schließt die untere Navigationsleiste" @@ -712,15 +813,15 @@ msgstr "Schließt die untere Navigationsleiste" msgid "Closes password update alert" msgstr "Schließt die Kennwortaktualisierungsmeldung" -#: src/view/com/composer/Composer.tsx:309 +#: src/view/com/composer/Composer.tsx:318 msgid "Closes post composer and discards post draft" msgstr "Schließt den Beitragsverfasser und verwirft den Beitragsentwurf" -#: src/view/com/lightbox/ImageViewing/components/ImageDefaultHeader.tsx:27 +#: src/view/com/lightbox/ImageViewing/components/ImageDefaultHeader.tsx:37 msgid "Closes viewer for header image" msgstr "Schließt den Betrachter für das Banner" -#: src/view/com/notifications/FeedItem.tsx:318 +#: src/view/com/notifications/FeedItem.tsx:321 msgid "Collapses list of users for a given notification" msgstr "Klappt die Liste der Benutzer für eine bestimmte Meldung zusammen" @@ -732,7 +833,7 @@ msgstr "Komödie" msgid "Comics" msgstr "Comics" -#: src/Navigation.tsx:229 +#: src/Navigation.tsx:241 #: src/view/screens/CommunityGuidelines.tsx:32 msgid "Community Guidelines" msgstr "Community-Richtlinien" @@ -745,7 +846,7 @@ msgstr "Schließe das Onboarding ab und nutze dein Konto" msgid "Complete the challenge" msgstr "Beende die Herausforderung" -#: src/view/com/composer/Composer.tsx:424 +#: src/view/com/composer/Composer.tsx:437 msgid "Compose posts up to {MAX_GRAPHEME_LENGTH} characters in length" msgstr "Verfasse Beiträge mit einer Länge von bis zu {MAX_GRAPHEME_LENGTH} Zeichen" @@ -753,12 +854,18 @@ msgstr "Verfasse Beiträge mit einer Länge von bis zu {MAX_GRAPHEME_LENGTH} Zei msgid "Compose reply" msgstr "Antwort verfassen" -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:67 +#: src/components/moderation/GlobalModerationLabelPref.tsx:69 +#: src/components/moderation/ModerationLabelPref.tsx:149 +#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:81 msgid "Configure content filtering setting for category: {0}" msgstr "Inhaltsfilterungseinstellung der Kategorie {0} konfigurieren" -#: src/components/Prompt.tsx:124 -#: src/view/com/modals/AppealLabel.tsx:98 +#: src/components/moderation/ModerationLabelPref.tsx:116 +msgid "Configured in <0>moderation settings." +msgstr "" + +#: src/components/Prompt.tsx:152 +#: src/components/Prompt.tsx:155 #: src/view/com/modals/SelfLabel.tsx:154 #: src/view/com/modals/VerifyEmail.tsx:231 #: src/view/com/modals/VerifyEmail.tsx:233 @@ -769,9 +876,9 @@ msgstr "Bestätigen" #: src/view/com/modals/Confirm.tsx:75 #: src/view/com/modals/Confirm.tsx:78 -msgctxt "action" -msgid "Confirm" -msgstr "Bestätigen" +#~ msgctxt "action" +#~ msgid "Confirm" +#~ msgstr "Bestätigen" #: src/view/com/modals/ChangeEmail.tsx:193 #: src/view/com/modals/ChangeEmail.tsx:195 @@ -787,10 +894,19 @@ msgid "Confirm delete account" msgstr "Bestätige das Löschen des Kontos" #: src/view/com/modals/ContentFilteringSettings.tsx:156 -msgid "Confirm your age to enable adult content." -msgstr "Bestätige dein Alter, um Inhalte für Erwachsene zu aktivieren." +#~ msgid "Confirm your age to enable adult content." +#~ msgstr "Bestätige dein Alter, um Inhalte für Erwachsene zu aktivieren." + +#: src/screens/Moderation/index.tsx:303 +msgid "Confirm your age:" +msgstr "" + +#: src/screens/Moderation/index.tsx:294 +msgid "Confirm your birthdate" +msgstr "" #: src/view/com/modals/ChangeEmail.tsx:157 +#: src/view/com/modals/DeleteAccount.tsx:176 #: src/view/com/modals/DeleteAccount.tsx:182 #: src/view/com/modals/VerifyEmail.tsx:165 msgid "Confirmation code" @@ -805,25 +921,40 @@ msgstr "Verbinden..." msgid "Contact support" msgstr "Support kontaktieren" +#: src/components/moderation/LabelsOnMe.tsx:42 +msgid "content" +msgstr "" + +#: src/lib/moderation/useGlobalLabelStrings.ts:18 +msgid "Content Blocked" +msgstr "" + #: src/view/screens/Moderation.tsx:83 -msgid "Content filtering" -msgstr "Inhaltsfilterung" +#~ msgid "Content filtering" +#~ msgstr "Inhaltsfilterung" #: src/view/com/modals/ContentFilteringSettings.tsx:44 -msgid "Content Filtering" -msgstr "Inhaltsfilterung" +#~ msgid "Content Filtering" +#~ msgstr "Inhaltsfilterung" + +#: src/screens/Moderation/index.tsx:287 +msgid "Content filters" +msgstr "" #: src/view/com/modals/lang-settings/ContentLanguagesSettings.tsx:74 #: src/view/screens/LanguageSettings.tsx:278 msgid "Content Languages" msgstr "Inhaltssprachen" -#: src/view/com/modals/ModerationDetails.tsx:65 +#: src/components/moderation/ModerationDetailsDialog.tsx:76 +#: src/lib/moderation/useModerationCauseDescription.ts:75 msgid "Content Not Available" msgstr "Inhalt nicht verfügbar" -#: src/view/com/modals/ModerationDetails.tsx:33 -#: src/view/com/util/moderation/ScreenHider.tsx:78 +#: src/components/moderation/ModerationDetailsDialog.tsx:47 +#: src/components/moderation/ScreenHider.tsx:100 +#: src/lib/moderation/useGlobalLabelStrings.ts:22 +#: src/lib/moderation/useModerationCauseDescription.ts:38 msgid "Content Warning" msgstr "Inhaltswarnung" @@ -831,19 +962,24 @@ msgstr "Inhaltswarnung" msgid "Content warnings" msgstr "Inhaltswarnungen" +#: src/components/Menu/index.web.tsx:84 +msgid "Context menu backdrop, click to close the menu." +msgstr "" + #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:170 #: src/screens/Onboarding/StepFollowingFeed.tsx:153 #: src/screens/Onboarding/StepInterests/index.tsx:248 -#: src/screens/Onboarding/StepModeration/index.tsx:118 +#: src/screens/Onboarding/StepModeration/index.tsx:102 #: src/screens/Onboarding/StepTopicalFeeds.tsx:114 #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:148 #: src/view/com/auth/onboarding/RecommendedFollows.tsx:209 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:96 msgid "Continue" msgstr "Fortfahren" #: src/screens/Onboarding/StepFollowingFeed.tsx:150 #: src/screens/Onboarding/StepInterests/index.tsx:245 -#: src/screens/Onboarding/StepModeration/index.tsx:115 +#: src/screens/Onboarding/StepModeration/index.tsx:99 #: src/screens/Onboarding/StepTopicalFeeds.tsx:111 msgid "Continue to next step" msgstr "Weiter zum nächsten Schritt" @@ -865,13 +1001,14 @@ msgstr "Kochen" msgid "Copied" msgstr "Kopiert" -#: src/view/screens/Settings/index.tsx:241 +#: src/view/screens/Settings/index.tsx:247 msgid "Copied build version to clipboard" msgstr "Die Build-Version wurde in die Zwischenablage kopiert" #: src/view/com/modals/AddAppPasswords.tsx:76 +#: src/view/com/modals/ChangeHandle.tsx:327 #: src/view/com/modals/InviteCodes.tsx:152 -#: src/view/com/util/forms/PostDropdownBtn.tsx:161 +#: src/view/com/util/forms/PostDropdownBtn.tsx:158 msgid "Copied to clipboard" msgstr "In die Zwischenablage kopiert" @@ -883,44 +1020,48 @@ msgstr "Kopiert das App-Passwort" msgid "Copy" msgstr "Kopieren" -#: src/view/screens/ProfileList.tsx:418 +#: src/view/com/modals/ChangeHandle.tsx:481 +msgid "Copy {0}" +msgstr "" + +#: src/view/screens/ProfileList.tsx:388 msgid "Copy link to list" msgstr "Link zur Liste kopieren" -#: src/view/com/util/forms/PostDropdownBtn.tsx:231 +#: src/view/com/util/forms/PostDropdownBtn.tsx:228 #: src/view/com/util/forms/PostDropdownBtn.tsx:237 msgid "Copy link to post" msgstr "Link zum Beitrag kopieren" #: src/view/com/profile/ProfileHeader.tsx:295 -msgid "Copy link to profile" -msgstr "Link zum Profil kopieren" +#~ msgid "Copy link to profile" +#~ msgstr "Link zum Profil kopieren" -#: src/view/com/util/forms/PostDropdownBtn.tsx:223 -#: src/view/com/util/forms/PostDropdownBtn.tsx:225 +#: src/view/com/util/forms/PostDropdownBtn.tsx:220 +#: src/view/com/util/forms/PostDropdownBtn.tsx:222 msgid "Copy post text" msgstr "Beitragstext kopieren" -#: src/Navigation.tsx:234 +#: src/Navigation.tsx:246 #: src/view/screens/CopyrightPolicy.tsx:29 msgid "Copyright Policy" msgstr "Urheberrechtsbestimmungen" -#: src/view/screens/ProfileFeed.tsx:97 +#: src/view/screens/ProfileFeed.tsx:102 msgid "Could not load feed" msgstr "Feed konnte nicht geladen werden" -#: src/view/screens/ProfileList.tsx:893 +#: src/view/screens/ProfileList.tsx:907 msgid "Could not load list" msgstr "Liste konnte nicht geladen werden" -#: src/view/com/auth/HomeLoggedOutCTA.tsx:62 -#: src/view/com/auth/SplashScreen.tsx:71 +#: src/view/com/auth/HomeLoggedOutCTA.tsx:64 +#: src/view/com/auth/SplashScreen.tsx:73 #: src/view/com/auth/SplashScreen.web.tsx:81 msgid "Create a new account" msgstr "Ein neues Konto erstellen" -#: src/view/screens/Settings/index.tsx:384 +#: src/view/screens/Settings/index.tsx:399 msgid "Create a new Bluesky account" msgstr "Erstelle ein neues Bluesky-Konto" @@ -937,19 +1078,23 @@ msgstr "App-Passwort erstellen" msgid "Create new account" msgstr "Neues Konto erstellen" -#: src/view/screens/AppPasswords.tsx:249 +#: src/components/ReportDialog/SelectReportOptionView.tsx:94 +msgid "Create report for {0}" +msgstr "" + +#: src/view/screens/AppPasswords.tsx:246 msgid "Created {0}" msgstr "Erstellt {0}" #: src/view/screens/ProfileFeed.tsx:616 -msgid "Created by <0/>" -msgstr "Erstellt von <0/>" +#~ msgid "Created by <0/>" +#~ msgstr "Erstellt von <0/>" #: src/view/screens/ProfileFeed.tsx:614 -msgid "Created by you" -msgstr "Erstellt von dir" +#~ msgid "Created by you" +#~ msgstr "Erstellt von dir" -#: src/view/com/composer/Composer.tsx:455 +#: src/view/com/composer/Composer.tsx:468 msgid "Creates a card with a thumbnail. The card links to {url}" msgstr "Erzeugt eine Karte mit Vorschaubild und verlinkt auf {url}" @@ -975,8 +1120,8 @@ msgstr "Benutzerdefinierte Feeds, die von der Community erstellt wurden, bringen msgid "Customize media from external sites." msgstr "Passe die Einstellungen für Medien von externen Websites an." -#: src/view/screens/Settings/index.tsx:485 -#: src/view/screens/Settings/index.tsx:511 +#: src/view/screens/Settings/index.tsx:500 +#: src/view/screens/Settings/index.tsx:526 msgid "Dark" msgstr "Dunkel" @@ -984,15 +1129,25 @@ msgstr "Dunkel" msgid "Dark mode" msgstr "Dunkelmodus" -#: src/view/screens/Settings/index.tsx:498 +#: src/view/screens/Settings/index.tsx:513 msgid "Dark Theme" msgstr "Dunkles Thema" +#: src/view/screens/Settings/index.tsx:837 +msgid "Debug Moderation" +msgstr "" + #: src/view/screens/Debug.tsx:83 msgid "Debug panel" msgstr "Debug-Panel" -#: src/view/screens/Settings/index.tsx:772 +#: src/view/com/util/forms/PostDropdownBtn.tsx:319 +#: src/view/screens/AppPasswords.tsx:268 +#: src/view/screens/ProfileList.tsx:613 +msgid "Delete" +msgstr "" + +#: src/view/screens/Settings/index.tsx:792 msgid "Delete account" msgstr "Konto löschen" @@ -1000,13 +1155,15 @@ msgstr "Konto löschen" msgid "Delete Account" msgstr "Konto löschen" -#: src/view/screens/AppPasswords.tsx:222 -#: src/view/screens/AppPasswords.tsx:242 +#: src/view/screens/AppPasswords.tsx:239 msgid "Delete app password" msgstr "App-Passwort löschen" -#: src/view/screens/ProfileList.tsx:364 -#: src/view/screens/ProfileList.tsx:445 +#: src/view/screens/AppPasswords.tsx:263 +msgid "Delete app password?" +msgstr "" + +#: src/view/screens/ProfileList.tsx:415 msgid "Delete List" msgstr "Liste löschen" @@ -1014,24 +1171,28 @@ msgstr "Liste löschen" msgid "Delete my account" msgstr "Mein Konto löschen" -#: src/view/screens/Settings/index.tsx:784 +#: src/view/screens/Settings/index.tsx:804 msgid "Delete My Account…" msgstr "Mein Konto Löschen…" -#: src/view/com/util/forms/PostDropdownBtn.tsx:317 -#: src/view/com/util/forms/PostDropdownBtn.tsx:326 +#: src/view/com/util/forms/PostDropdownBtn.tsx:302 +#: src/view/com/util/forms/PostDropdownBtn.tsx:304 msgid "Delete post" msgstr "Beitrag löschen" -#: src/view/com/util/forms/PostDropdownBtn.tsx:321 +#: src/view/screens/ProfileList.tsx:608 +msgid "Delete this list?" +msgstr "" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:314 msgid "Delete this post?" msgstr "Diesen Beitrag löschen?" -#: src/view/com/util/post-embeds/QuoteEmbed.tsx:70 +#: src/view/com/util/post-embeds/QuoteEmbed.tsx:64 msgid "Deleted" msgstr "Gelöscht" -#: src/view/com/post-thread/PostThread.tsx:316 +#: src/view/com/post-thread/PostThread.tsx:305 msgid "Deleted post." msgstr "Gelöschter Beitrag." @@ -1042,23 +1203,35 @@ msgstr "Gelöschter Beitrag." msgid "Description" msgstr "Beschreibung" -#: src/view/com/composer/Composer.tsx:218 +#: src/view/com/composer/Composer.tsx:217 msgid "Did you want to say anything?" msgstr "Wolltest du etwas sagen?" -#: src/view/screens/Settings/index.tsx:504 +#: src/view/screens/Settings/index.tsx:519 msgid "Dim" msgstr "Dimmen" -#: src/view/com/composer/Composer.tsx:151 +#: src/lib/moderation/useLabelBehaviorDescription.ts:32 +#: src/lib/moderation/useLabelBehaviorDescription.ts:42 +#: src/lib/moderation/useLabelBehaviorDescription.ts:68 +#: src/screens/Moderation/index.tsx:343 +msgid "Disabled" +msgstr "" + +#: src/view/com/composer/Composer.tsx:510 msgid "Discard" msgstr "Verwerfen" #: src/view/com/composer/Composer.tsx:145 -msgid "Discard draft" -msgstr "Entwurf verwerfen" +#~ msgid "Discard draft" +#~ msgstr "Entwurf verwerfen" + +#: src/view/com/composer/Composer.tsx:507 +msgid "Discard draft?" +msgstr "" -#: src/view/screens/Moderation.tsx:226 +#: src/screens/Moderation/index.tsx:520 +#: src/screens/Moderation/index.tsx:524 msgid "Discourage apps from showing my account to logged-out users" msgstr "Apps daran hindern, abgemeldeten Nutzern mein Konto zu zeigen" @@ -1079,7 +1252,19 @@ msgstr "Anzeigename" msgid "Display Name" msgstr "Anzeigename" -#: src/view/com/modals/ChangeHandle.tsx:487 +#: src/view/com/modals/ChangeHandle.tsx:398 +msgid "DNS Panel" +msgstr "" + +#: src/lib/moderation/useGlobalLabelStrings.ts:39 +msgid "Does not include nudity." +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:482 +msgid "Domain Value" +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:489 msgid "Domain verified!" msgstr "Domain verifiziert!" @@ -1096,19 +1281,19 @@ msgctxt "action" msgid "Done" msgstr "Erledigt" +#: src/components/dialogs/BirthDateSettings.tsx:119 +#: src/components/dialogs/BirthDateSettings.tsx:125 #: src/view/com/auth/server-input/index.tsx:165 #: src/view/com/auth/server-input/index.tsx:166 #: src/view/com/modals/AddAppPasswords.tsx:226 #: src/view/com/modals/AltImage.tsx:139 -#: src/view/com/modals/ContentFilteringSettings.tsx:88 -#: src/view/com/modals/ContentFilteringSettings.tsx:96 #: src/view/com/modals/crop-image/CropImage.web.tsx:152 #: src/view/com/modals/InviteCodes.tsx:80 #: src/view/com/modals/InviteCodes.tsx:123 #: src/view/com/modals/ListAddRemoveUsers.tsx:142 #: src/view/screens/PreferencesFollowingFeed.tsx:311 -#: src/view/screens/Settings/ExportCarDialog.tsx:93 #: src/view/screens/Settings/ExportCarDialog.tsx:94 +#: src/view/screens/Settings/ExportCarDialog.tsx:95 msgid "Done" msgstr "Erledigt" @@ -1121,8 +1306,8 @@ msgid "Double tap to sign in" msgstr "Doppeltippen zum Anmelden" #: src/view/screens/Settings/index.tsx:755 -msgid "Download Bluesky account data (repository)" -msgstr "Öffnet ein Modal zum Herunterladen deiner Bluesky-Kontodaten (Kontodepot)" +#~ msgid "Download Bluesky account data (repository)" +#~ msgstr "Öffnet ein Modal zum Herunterladen deiner Bluesky-Kontodaten (Kontodepot)" #: src/view/screens/Settings/ExportCarDialog.tsx:59 #: src/view/screens/Settings/ExportCarDialog.tsx:63 @@ -1133,18 +1318,30 @@ msgstr "CAR-Datei herunterladen" msgid "Drop to add images" msgstr "Ablegen zum Hinzufügen von Bildern" -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:111 +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:120 msgid "Due to Apple policies, adult content can only be enabled on the web after completing sign up." msgstr "Aufgrund der Apple-Richtlinien können Inhalte für Erwachsene erst nach Abschluss der Registrierung auf der Website aktiviert werden." +#: src/view/com/modals/ChangeHandle.tsx:257 +msgid "e.g. alice" +msgstr "" + #: src/view/com/modals/EditProfile.tsx:185 msgid "e.g. Alice Roberts" msgstr "z.B. Alice Roberts" +#: src/view/com/modals/ChangeHandle.tsx:381 +msgid "e.g. alice.com" +msgstr "" + #: src/view/com/modals/EditProfile.tsx:203 msgid "e.g. Artist, dog-lover, and avid reader." msgstr "z.B. Künstlerin, Hundeliebhaberin und begeisterte Leserin." +#: src/lib/moderation/useGlobalLabelStrings.ts:43 +msgid "E.g. artistic nudes." +msgstr "" + #: src/view/com/modals/CreateOrEditList.tsx:283 msgid "e.g. Great Posters" msgstr "z.B. Große Poster" @@ -1170,12 +1367,17 @@ msgctxt "action" msgid "Edit" msgstr "Bearbeiten" +#: src/view/com/util/UserAvatar.tsx:299 +#: src/view/com/util/UserBanner.tsx:85 +msgid "Edit avatar" +msgstr "" + #: src/view/com/composer/photos/Gallery.tsx:144 #: src/view/com/modals/EditImage.tsx:207 msgid "Edit image" msgstr "Bild bearbeiten" -#: src/view/screens/ProfileList.tsx:433 +#: src/view/screens/ProfileList.tsx:403 msgid "Edit list details" msgstr "Details der Liste bearbeiten" @@ -1183,7 +1385,7 @@ msgstr "Details der Liste bearbeiten" msgid "Edit Moderation List" msgstr "Moderationsliste bearbeiten" -#: src/Navigation.tsx:244 +#: src/Navigation.tsx:256 #: src/view/screens/Feeds.tsx:434 #: src/view/screens/SavedFeeds.tsx:84 msgid "Edit My Feeds" @@ -1193,11 +1395,13 @@ msgstr "Meine Feeds bearbeiten" msgid "Edit my profile" msgstr "Mein Profil bearbeiten" -#: src/view/com/profile/ProfileHeader.tsx:418 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:172 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:161 msgid "Edit profile" msgstr "Profil bearbeiten" -#: src/view/com/profile/ProfileHeader.tsx:423 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:175 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:164 msgid "Edit Profile" msgstr "Profil bearbeiten" @@ -1246,7 +1450,7 @@ msgstr "E-Mail aktualisiert" msgid "Email verified" msgstr "E-Mail verifiziert" -#: src/view/screens/Settings/index.tsx:312 +#: src/view/screens/Settings/index.tsx:327 msgid "Email:" msgstr "E-Mail:" @@ -1254,12 +1458,16 @@ msgstr "E-Mail:" msgid "Enable {0} only" msgstr "Nur {0} aktivieren" -#: src/view/com/modals/ContentFilteringSettings.tsx:167 +#: src/screens/Moderation/index.tsx:331 +msgid "Enable adult content" +msgstr "" + +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:94 msgid "Enable Adult Content" msgstr "Inhalte für Erwachsene aktivieren" -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:76 -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:77 +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:78 +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:79 msgid "Enable adult content in your feeds" msgstr "Aktiviere Inhalte für Erwachsene in deinen Feeds" @@ -1275,7 +1483,11 @@ msgstr "Aktiviere Medienplayer für" msgid "Enable this setting to only see replies between people you follow." msgstr "Aktiviere diese Einstellung, um nur Antworten von Personen zu sehen, denen du folgst." -#: src/view/screens/Profile.tsx:455 +#: src/screens/Moderation/index.tsx:341 +msgid "Enabled" +msgstr "" + +#: src/screens/Profile/Sections/Feed.tsx:84 msgid "End of feed" msgstr "Ende des Feeds" @@ -1292,7 +1504,7 @@ msgstr "Gib ein Wort oder einen Tag ein" msgid "Enter Confirmation Code" msgstr "Bestätigungscode eingeben" -#: src/view/com/modals/ChangePassword.tsx:151 +#: src/view/com/modals/ChangePassword.tsx:153 msgid "Enter the code you received to change your password." msgstr "Gib den Code ein, welchen du erhalten hast, um dein Passwort zu ändern." @@ -1304,8 +1516,8 @@ msgstr "Gib die Domain ein, die du verwenden möchtest" msgid "Enter the email you used to create your account. We'll send you a \"reset code\" so you can set a new password." msgstr "Gib die E-Mail ein, die du zur Erstellung deines Kontos verwendet hast. Wir schicken dir einen \"Reset-Code\", damit du ein neues Passwort festlegen kannst." +#: src/components/dialogs/BirthDateSettings.tsx:108 #: src/view/com/auth/create/Step1.tsx:228 -#: src/view/com/modals/BirthDateSettings.tsx:74 msgid "Enter your birth date" msgstr "Gib dein Geburtsdatum ein" @@ -1337,20 +1549,32 @@ msgstr "Fehler:" msgid "Everybody" msgstr "Alle" +#: src/lib/moderation/useReportOptions.ts:66 +msgid "Excessive mentions or replies" +msgstr "" + +#: src/view/com/modals/DeleteAccount.tsx:231 +msgid "Exits account deletion process" +msgstr "" + #: src/view/com/modals/ChangeHandle.tsx:150 msgid "Exits handle change process" msgstr "Beendet den Prozess des Handle-Wechsels" -#: src/view/com/lightbox/Lightbox.web.tsx:120 +#: src/view/com/modals/crop-image/CropImage.web.tsx:135 +msgid "Exits image cropping process" +msgstr "" + +#: src/view/com/lightbox/Lightbox.web.tsx:130 msgid "Exits image view" msgstr "Beendet die Bildansicht" #: src/view/com/modals/ListAddRemoveUsers.tsx:88 -#: src/view/shell/desktop/Search.tsx:235 +#: src/view/shell/desktop/Search.tsx:236 msgid "Exits inputting search query" msgstr "Beendet die Eingabe der Suchanfrage" -#: src/view/com/lightbox/Lightbox.web.tsx:163 +#: src/view/com/lightbox/Lightbox.web.tsx:183 msgid "Expand alt text" msgstr "Alt-Text erweitern" @@ -1359,12 +1583,20 @@ msgstr "Alt-Text erweitern" msgid "Expand or collapse the full post you are replying to" msgstr "Erweitere oder reduziere den gesamten Beitrag, auf den du antwortest" -#: src/view/screens/Settings/index.tsx:753 +#: src/lib/moderation/useGlobalLabelStrings.ts:47 +msgid "Explicit or potentially disturbing media." +msgstr "" + +#: src/lib/moderation/useGlobalLabelStrings.ts:35 +msgid "Explicit sexual images." +msgstr "" + +#: src/view/screens/Settings/index.tsx:773 msgid "Export my data" msgstr "Exportiere meine Daten" #: src/view/screens/Settings/ExportCarDialog.tsx:44 -#: src/view/screens/Settings/index.tsx:764 +#: src/view/screens/Settings/index.tsx:784 msgid "Export My Data" msgstr "Exportiere meine Daten" @@ -1377,13 +1609,13 @@ msgstr "Externe Medien" msgid "External media may allow websites to collect information about you and your device. No information is sent or requested until you press the \"play\" button." msgstr "Externe Medien können es Websites ermöglichen, Informationen über dich und dein Gerät zu sammeln. Es werden keine Informationen gesendet oder angefordert, bis du die Schaltfläche \"Abspielen\" drückst." -#: src/Navigation.tsx:263 +#: src/Navigation.tsx:275 #: src/view/screens/PreferencesExternalEmbeds.tsx:52 -#: src/view/screens/Settings/index.tsx:657 +#: src/view/screens/Settings/index.tsx:673 msgid "External Media Preferences" msgstr "Externe Medienpräferenzen" -#: src/view/screens/Settings/index.tsx:648 +#: src/view/screens/Settings/index.tsx:664 msgid "External media settings" msgstr "Externe Medienpräferenzen" @@ -1396,7 +1628,7 @@ msgstr "Das App-Passwort konnte nicht erstellt werden." msgid "Failed to create the list. Check your internet connection and try again." msgstr "Die Liste konnte nicht erstellt werden. Überprüfe deine Internetverbindung und versuche es erneut." -#: src/view/com/util/forms/PostDropdownBtn.tsx:128 +#: src/view/com/util/forms/PostDropdownBtn.tsx:125 msgid "Failed to delete post, please try again" msgstr "Beitrag konnte nicht gelöscht werden, bitte versuche es erneut" @@ -1405,11 +1637,15 @@ msgstr "Beitrag konnte nicht gelöscht werden, bitte versuche es erneut" msgid "Failed to load recommended feeds" msgstr "Empfohlene Feeds konnten nicht geladen werden" -#: src/Navigation.tsx:194 +#: src/view/com/lightbox/Lightbox.tsx:83 +msgid "Failed to save image: {0}" +msgstr "" + +#: src/Navigation.tsx:196 msgid "Feed" msgstr "Feed" -#: src/view/com/feeds/FeedSourceCard.tsx:231 +#: src/view/com/feeds/FeedSourceCard.tsx:218 msgid "Feed by {0}" msgstr "Feed von {0}" @@ -1418,18 +1654,18 @@ msgid "Feed offline" msgstr "Feed offline" #: src/view/shell/desktop/RightNav.tsx:61 -#: src/view/shell/Drawer.tsx:311 +#: src/view/shell/Drawer.tsx:314 msgid "Feedback" msgstr "Feedback" -#: src/Navigation.tsx:452 +#: src/Navigation.tsx:464 #: src/view/screens/Feeds.tsx:419 #: src/view/screens/Feeds.tsx:524 -#: src/view/screens/Profile.tsx:184 -#: src/view/shell/bottom-bar/BottomBar.tsx:181 -#: src/view/shell/desktop/LeftNav.tsx:342 -#: src/view/shell/Drawer.tsx:476 -#: src/view/shell/Drawer.tsx:477 +#: src/view/screens/Profile.tsx:192 +#: src/view/shell/bottom-bar/BottomBar.tsx:183 +#: src/view/shell/desktop/LeftNav.tsx:346 +#: src/view/shell/Drawer.tsx:479 +#: src/view/shell/Drawer.tsx:480 msgid "Feeds" msgstr "Feeds" @@ -1445,6 +1681,14 @@ msgstr "Feeds sind benutzerdefinierte Algorithmen, die Nutzer mit ein wenig Prog msgid "Feeds can be topical as well!" msgstr "Die Feeds können auch auf einem Thema basieren!" +#: src/view/com/modals/ChangeHandle.tsx:482 +msgid "File Contents" +msgstr "" + +#: src/lib/moderation/useLabelBehaviorDescription.ts:66 +msgid "Filter from feeds" +msgstr "" + #: src/screens/Onboarding/StepFinished.tsx:151 msgid "Finalizing" msgstr "Abschließen" @@ -1455,15 +1699,15 @@ msgstr "Abschließen" msgid "Find accounts to follow" msgstr "Konten zum Folgen finden" -#: src/view/screens/Search/Search.tsx:440 +#: src/view/screens/Search/Search.tsx:441 msgid "Find users on Bluesky" msgstr "Nutzer auf Bluesky finden" -#: src/view/screens/Search/Search.tsx:438 +#: src/view/screens/Search/Search.tsx:439 msgid "Find users with the search tool on the right" msgstr "Finde Nutzer mit der Suchfunktion auf der rechten Seite" -#: src/view/com/auth/onboarding/RecommendedFollowsItem.tsx:150 +#: src/view/com/auth/onboarding/RecommendedFollowsItem.tsx:155 msgid "Finding similar accounts..." msgstr "Suche nach ähnlichen Konten..." @@ -1493,22 +1737,29 @@ msgid "Flip vertically" msgstr "Vertikal drehen" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:181 -#: src/view/com/post-thread/PostThreadFollowBtn.tsx:136 -#: src/view/com/profile/ProfileHeader.tsx:513 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:229 +#: src/view/com/auth/onboarding/RecommendedFollowsItem.tsx:141 +#: src/view/com/post-thread/PostThreadFollowBtn.tsx:139 +#: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:246 msgid "Follow" msgstr "Folgen" -#: src/view/com/profile/FollowButton.tsx:64 +#: src/view/com/profile/FollowButton.tsx:69 msgctxt "action" msgid "Follow" msgstr "Folgen" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:58 -#: src/view/com/post-thread/PostThreadFollowBtn.tsx:122 -#: src/view/com/profile/ProfileHeader.tsx:504 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:214 +#: src/view/com/post-thread/PostThreadFollowBtn.tsx:125 msgid "Follow {0}" msgstr "{0} folgen" +#: src/view/com/profile/ProfileMenu.tsx:242 +#: src/view/com/profile/ProfileMenu.tsx:253 +msgid "Follow Account" +msgstr "" + #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:179 msgid "Follow All" msgstr "Allen folgen" @@ -1521,7 +1772,7 @@ msgstr "Ausgewählten Konten folgen und mit dem nächsten Schritt fortfahren" msgid "Follow some users to get started. We can recommend you more users based on who you find interesting." msgstr "Folge einigen Nutzern, um loszulegen. Wir können dir weitere Nutzer empfehlen, je nachdem, wen du interessant findest." -#: src/view/com/profile/ProfileCard.tsx:194 +#: src/view/com/profile/ProfileCard.tsx:216 msgid "Followed by {0}" msgstr "Gefolgt von {0}" @@ -1533,33 +1784,39 @@ msgstr "Benutzer, denen ich folge" msgid "Followed users only" msgstr "Nur Benutzer, denen ich folge" -#: src/view/com/notifications/FeedItem.tsx:166 +#: src/view/com/notifications/FeedItem.tsx:170 msgid "followed you" msgstr "folgte dir" +#: src/view/com/profile/ProfileFollowers.tsx:109 #: src/view/screens/ProfileFollowers.tsx:25 msgid "Followers" msgstr "Follower" -#: src/view/com/post-thread/PostThreadFollowBtn.tsx:136 -#: src/view/com/profile/ProfileHeader.tsx:495 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:227 +#: src/view/com/post-thread/PostThreadFollowBtn.tsx:139 +#: src/view/com/profile/ProfileFollows.tsx:108 #: src/view/screens/ProfileFollows.tsx:25 msgid "Following" msgstr "Folge ich" -#: src/view/com/profile/ProfileHeader.tsx:149 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:89 msgid "Following {0}" msgstr "ich folge {0}" -#: src/Navigation.tsx:250 +#: src/view/screens/Settings/index.tsx:549 +msgid "Following feed preferences" +msgstr "" + +#: src/Navigation.tsx:262 #: src/view/com/home/HomeHeaderLayout.web.tsx:50 #: src/view/com/home/HomeHeaderLayoutMobile.tsx:84 #: src/view/screens/PreferencesFollowingFeed.tsx:104 -#: src/view/screens/Settings/index.tsx:543 +#: src/view/screens/Settings/index.tsx:558 msgid "Following Feed Preferences" msgstr "Following-Feed-Einstellungen" -#: src/view/com/profile/ProfileHeader.tsx:546 +#: src/screens/Profile/Header/Handle.tsx:24 msgid "Follows you" msgstr "Folgt dir" @@ -1592,12 +1849,16 @@ msgstr "Passwort vergessen" msgid "Forgot Password" msgstr "Passwort vergessen" +#: src/lib/moderation/useReportOptions.ts:52 +msgid "Frequently Posts Unwanted Content" +msgstr "" + #: src/screens/Hashtag.tsx:108 #: src/screens/Hashtag.tsx:148 msgid "From @{sanitizedAuthor}" msgstr "Von @{sanitizedAuthor}" -#: src/view/com/posts/FeedItem.tsx:189 +#: src/view/com/posts/FeedItem.tsx:179 msgctxt "from-feed" msgid "From <0/>" msgstr "Aus <0/>" @@ -1611,27 +1872,46 @@ msgstr "Galerie" msgid "Get Started" msgstr "Los geht's" +#: src/lib/moderation/useReportOptions.ts:37 +msgid "Glaring violations of law or terms of service" +msgstr "" + +#: src/components/moderation/ScreenHider.tsx:144 +#: src/components/moderation/ScreenHider.tsx:153 #: src/view/com/auth/LoggedOut.tsx:81 #: src/view/com/auth/LoggedOut.tsx:82 -#: src/view/com/util/moderation/ScreenHider.tsx:123 -#: src/view/shell/desktop/LeftNav.tsx:104 +#: src/view/screens/NotFound.tsx:55 +#: src/view/screens/ProfileFeed.tsx:111 +#: src/view/screens/ProfileList.tsx:916 +#: src/view/shell/desktop/LeftNav.tsx:108 msgid "Go back" msgstr "Gehe zurück" -#: src/view/screens/ProfileFeed.tsx:106 -#: src/view/screens/ProfileFeed.tsx:111 -#: src/view/screens/ProfileList.tsx:902 -#: src/view/screens/ProfileList.tsx:907 +#: src/screens/Profile/ErrorState.tsx:62 +#: src/screens/Profile/ErrorState.tsx:66 +#: src/view/screens/NotFound.tsx:54 +#: src/view/screens/ProfileFeed.tsx:116 +#: src/view/screens/ProfileList.tsx:921 msgid "Go Back" msgstr "Gehe zurück" +#: src/components/ReportDialog/SelectReportOptionView.tsx:74 +#: src/components/ReportDialog/SubmitView.tsx:104 #: src/screens/Onboarding/Layout.tsx:104 #: src/screens/Onboarding/Layout.tsx:193 msgid "Go back to previous step" msgstr "Zum vorherigen Schritt zurückkehren" -#: src/view/screens/Search/Search.tsx:747 -#: src/view/shell/desktop/Search.tsx:262 +#: src/view/screens/NotFound.tsx:55 +msgid "Go home" +msgstr "" + +#: src/view/screens/NotFound.tsx:54 +msgid "Go Home" +msgstr "" + +#: src/view/screens/Search/Search.tsx:748 +#: src/view/shell/desktop/Search.tsx:263 msgid "Go to @{queryMaybeHandle}" msgstr "Gehe zu @{queryMaybeHandle}" @@ -1639,15 +1919,23 @@ msgstr "Gehe zu @{queryMaybeHandle}" #: src/view/com/auth/login/ForgotPasswordForm.tsx:218 #: src/view/com/auth/login/LoginForm.tsx:288 #: src/view/com/auth/login/SetNewPasswordForm.tsx:195 -#: src/view/com/modals/ChangePassword.tsx:165 +#: src/view/com/modals/ChangePassword.tsx:167 msgid "Go to next" msgstr "Gehe zum nächsten" +#: src/lib/moderation/useGlobalLabelStrings.ts:46 +msgid "Graphic Media" +msgstr "" + #: src/view/com/modals/ChangeHandle.tsx:265 msgid "Handle" msgstr "Handle" -#: src/Navigation.tsx:270 +#: src/lib/moderation/useReportOptions.ts:32 +msgid "Harassment, trolling, or intolerance" +msgstr "" + +#: src/Navigation.tsx:282 msgid "Hashtag" msgstr "Hashtag" @@ -1660,7 +1948,7 @@ msgid "Having trouble?" msgstr "Hast du Probleme?" #: src/view/shell/desktop/RightNav.tsx:90 -#: src/view/shell/Drawer.tsx:321 +#: src/view/shell/Drawer.tsx:324 msgid "Help" msgstr "Hilfe" @@ -1680,40 +1968,45 @@ msgstr "Hier sind einige thematische Feeds, die auf deinen Interessen basieren: msgid "Here is your app password." msgstr "Hier ist dein App-Passwort." -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:41 -#: src/view/com/modals/ContentFilteringSettings.tsx:251 -#: src/view/com/util/moderation/ContentHider.tsx:105 -#: src/view/com/util/moderation/PostHider.tsx:108 +#: src/components/moderation/ContentHider.tsx:115 +#: src/components/moderation/GlobalModerationLabelPref.tsx:43 +#: src/components/moderation/PostHider.tsx:107 +#: src/lib/moderation/useLabelBehaviorDescription.ts:15 +#: src/lib/moderation/useLabelBehaviorDescription.ts:20 +#: src/lib/moderation/useLabelBehaviorDescription.ts:25 +#: src/lib/moderation/useLabelBehaviorDescription.ts:30 +#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:52 +#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:76 +#: src/view/com/util/forms/PostDropdownBtn.tsx:328 msgid "Hide" msgstr "Ausblenden" -#: src/view/com/modals/ContentFilteringSettings.tsx:224 -#: src/view/com/notifications/FeedItem.tsx:326 +#: src/view/com/notifications/FeedItem.tsx:329 msgctxt "action" msgid "Hide" msgstr "Ausblenden" #: src/view/com/util/forms/PostDropdownBtn.tsx:276 -#: src/view/com/util/forms/PostDropdownBtn.tsx:287 +#: src/view/com/util/forms/PostDropdownBtn.tsx:278 msgid "Hide post" msgstr "Beitrag ausblenden" -#: src/view/com/util/moderation/ContentHider.tsx:67 -#: src/view/com/util/moderation/PostHider.tsx:61 +#: src/components/moderation/ContentHider.tsx:67 +#: src/components/moderation/PostHider.tsx:64 msgid "Hide the content" msgstr "Den Inhalt ausblenden" -#: src/view/com/util/forms/PostDropdownBtn.tsx:280 +#: src/view/com/util/forms/PostDropdownBtn.tsx:325 msgid "Hide this post?" msgstr "Diesen Beitrag ausblenden?" -#: src/view/com/notifications/FeedItem.tsx:316 +#: src/view/com/notifications/FeedItem.tsx:319 msgid "Hide user list" msgstr "Benutzerliste ausblenden" #: src/view/com/profile/ProfileHeader.tsx:487 -msgid "Hides posts from {0} in your feed" -msgstr "Blendet Beiträge von {0} in Deinem Feed aus" +#~ msgid "Hides posts from {0} in your feed" +#~ msgstr "Blendet Beiträge von {0} in Deinem Feed aus" #: src/view/com/posts/FeedErrorMessage.tsx:111 msgid "Hmm, some kind of issue occurred when contacting the feed server. Please let the feed owner know about this issue." @@ -1735,16 +2028,29 @@ msgstr "Hmm, der Feed-Server hat eine schlechte Antwort gegeben. Bitte informier msgid "Hmm, we're having trouble finding this feed. It may have been deleted." msgstr "Hmm, wir haben Probleme, diesen Feed zu finden. Möglicherweise wurde er gelöscht." -#: src/Navigation.tsx:442 -#: src/view/shell/bottom-bar/BottomBar.tsx:137 -#: src/view/shell/desktop/LeftNav.tsx:306 -#: src/view/shell/Drawer.tsx:398 -#: src/view/shell/Drawer.tsx:399 +#: src/screens/Moderation/index.tsx:61 +msgid "Hmmmm, it seems we're having trouble loading this data. See below for more details. If this issue persists, please contact us." +msgstr "" + +#: src/screens/Profile/ErrorState.tsx:31 +msgid "Hmmmm, we couldn't load that moderation service." +msgstr "" + +#: src/Navigation.tsx:454 +#: src/view/shell/bottom-bar/BottomBar.tsx:139 +#: src/view/shell/desktop/LeftNav.tsx:310 +#: src/view/shell/Drawer.tsx:401 +#: src/view/shell/Drawer.tsx:402 msgid "Home" msgstr "Home" +#: src/view/com/modals/ChangeHandle.tsx:421 +msgid "Host:" +msgstr "" + #: src/view/com/auth/create/Step1.tsx:75 #: src/view/com/auth/login/ForgotPasswordForm.tsx:120 +#: src/view/com/modals/ChangeHandle.tsx:280 msgid "Hosting provider" msgstr "Hosting-Anbieter" @@ -1764,7 +2070,7 @@ msgstr "Ich habe einen Bestätigungscode" msgid "I have my own domain" msgstr "Ich habe meine eigene Domain" -#: src/view/com/lightbox/Lightbox.web.tsx:165 +#: src/view/com/lightbox/Lightbox.web.tsx:185 msgid "If alt text is long, toggles alt text expanded state" msgstr "Schaltet den erweiterten Status des Alt-Textes um, wenn dieser lang ist" @@ -1772,10 +2078,26 @@ msgstr "Schaltet den erweiterten Status des Alt-Textes um, wenn dieser lang ist" msgid "If none are selected, suitable for all ages." msgstr "Wenn keine ausgewählt werden, sind sie für alle Altersgruppen geeignet." -#: src/view/com/modals/ChangePassword.tsx:146 +#: src/view/com/auth/create/Policies.tsx:91 +msgid "If you are not yet an adult according to the laws of your country, your parent or legal guardian must read these Terms on your behalf." +msgstr "" + +#: src/view/screens/ProfileList.tsx:610 +msgid "If you delete this list, you won't be able to recover it." +msgstr "" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:316 +msgid "If you remove this post, you won't be able to recover it." +msgstr "" + +#: src/view/com/modals/ChangePassword.tsx:148 msgid "If you want to change your password, we will send you a code to verify that this is your account." msgstr "Wenn du dein Passwort ändern möchtest, senden wir dir einen Code, um zu bestätigen, dass es sich um dein Konto handelt." +#: src/lib/moderation/useReportOptions.ts:36 +msgid "Illegal and Urgent" +msgstr "" + #: src/view/com/util/images/Gallery.tsx:38 msgid "Image" msgstr "Bild" @@ -1786,8 +2108,12 @@ msgstr "Bild-Alt-Text" #: src/view/com/util/UserAvatar.tsx:311 #: src/view/com/util/UserBanner.tsx:118 -msgid "Image options" -msgstr "Bild-Optionen" +#~ msgid "Image options" +#~ msgstr "Bild-Optionen" + +#: src/lib/moderation/useReportOptions.ts:47 +msgid "Impersonation or false claims about identity or affiliation" +msgstr "" #: src/view/com/auth/login/SetNewPasswordForm.tsx:138 msgid "Input code sent to your email for password reset" @@ -1829,11 +2155,15 @@ msgstr "Benutzernamen oder E-Mail-Adresse eingeben, die du bei der Anmeldung ver msgid "Input your password" msgstr "Gib dein Passwort ein" +#: src/view/com/modals/ChangeHandle.tsx:390 +msgid "Input your preferred hosting provider" +msgstr "" + #: src/view/com/auth/create/Step2.tsx:80 msgid "Input your user handle" msgstr "Gib deinen Handle ein" -#: src/view/com/post-thread/PostThreadItem.tsx:226 +#: src/view/com/post-thread/PostThreadItem.tsx:221 msgid "Invalid or unsupported post record" msgstr "Ungültiger oder nicht unterstützter Beitragrekord" @@ -1866,7 +2196,7 @@ msgstr "Einladungscodes: 1 verfügbar" msgid "It shows posts from the people you follow as they happen." msgstr "Es zeigt die Beiträge der Personen an, denen du folgst, sobald sie erscheinen." -#: src/view/com/auth/HomeLoggedOutCTA.tsx:99 +#: src/view/com/auth/HomeLoggedOutCTA.tsx:103 #: src/view/com/auth/SplashScreen.web.tsx:138 msgid "Jobs" msgstr "Jobs" @@ -1875,20 +2205,52 @@ msgstr "Jobs" msgid "Journalism" msgstr "Journalismus" +#: src/components/moderation/LabelsOnMe.tsx:59 +msgid "label has been placed on this {labelTarget}" +msgstr "" + +#: src/components/moderation/ContentHider.tsx:144 +msgid "Labeled by {0}." +msgstr "" + +#: src/components/moderation/ContentHider.tsx:142 +msgid "Labeled by the author." +msgstr "" + +#: src/view/screens/Profile.tsx:186 +msgid "Labels" +msgstr "" + +#: src/screens/Profile/Sections/Labels.tsx:143 +msgid "Labels are annotations on users and content. They can be used to hide, warn, and categorize the network." +msgstr "" + +#: src/components/moderation/LabelsOnMe.tsx:61 +msgid "labels have been placed on this {labelTarget}" +msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:63 +msgid "Labels on your account" +msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:65 +msgid "Labels on your content" +msgstr "" + #: src/view/com/composer/select-language/SelectLangBtn.tsx:104 msgid "Language selection" msgstr "Sprachauswahl" -#: src/view/screens/Settings/index.tsx:594 +#: src/view/screens/Settings/index.tsx:610 msgid "Language settings" msgstr "Spracheinstellungen" -#: src/Navigation.tsx:142 +#: src/Navigation.tsx:144 #: src/view/screens/LanguageSettings.tsx:89 msgid "Language Settings" msgstr "Spracheinstellungen" -#: src/view/screens/Settings/index.tsx:603 +#: src/view/screens/Settings/index.tsx:619 msgid "Languages" msgstr "Sprachen" @@ -1897,27 +2259,31 @@ msgid "Last step!" msgstr "Letzter Schritt!" #: src/view/com/util/moderation/ContentHider.tsx:103 -msgid "Learn more" -msgstr "Mehr erfahren" +#~ msgid "Learn more" +#~ msgstr "Mehr erfahren" -#: src/view/com/util/moderation/PostAlerts.tsx:47 -#: src/view/com/util/moderation/ProfileHeaderAlerts.tsx:65 -#: src/view/com/util/moderation/ScreenHider.tsx:104 +#: src/components/moderation/ScreenHider.tsx:129 msgid "Learn More" msgstr "Mehr erfahren" -#: src/view/com/util/moderation/ContentHider.tsx:85 -#: src/view/com/util/moderation/PostAlerts.tsx:40 -#: src/view/com/util/moderation/PostHider.tsx:78 -#: src/view/com/util/moderation/ProfileHeaderAlerts.tsx:49 -#: src/view/com/util/moderation/ScreenHider.tsx:101 +#: src/components/moderation/ContentHider.tsx:65 +#: src/components/moderation/ContentHider.tsx:128 +msgid "Learn more about the moderation applied to this content." +msgstr "" + +#: src/components/moderation/PostHider.tsx:85 +#: src/components/moderation/ScreenHider.tsx:126 msgid "Learn more about this warning" msgstr "Erfahre mehr über diese Warnung" -#: src/view/screens/Moderation.tsx:262 +#: src/screens/Moderation/index.tsx:551 msgid "Learn more about what is public on Bluesky." msgstr "Erfahre mehr darüber, was auf Bluesky öffentlich ist." +#: src/components/moderation/ContentHider.tsx:152 +msgid "Learn more." +msgstr "" + #: src/view/com/modals/lang-settings/ContentLanguagesSettings.tsx:82 msgid "Leave them all unchecked to see any language." msgstr "Lass alle Kontrollkästchen deaktiviert, um alle Sprachen zu sehen." @@ -1930,7 +2296,7 @@ msgstr "Bluesky verlassen" msgid "left to go." msgstr "noch übrig." -#: src/view/screens/Settings/index.tsx:278 +#: src/view/screens/Settings/index.tsx:292 msgid "Legacy storage cleared, you need to restart the app now." msgstr "Der Legacy-Speicher wurde gelöscht, du musst die App jetzt neu starten." @@ -1945,55 +2311,65 @@ msgstr "Los geht's!" #: src/view/com/util/UserAvatar.tsx:248 #: src/view/com/util/UserBanner.tsx:62 -msgid "Library" -msgstr "Bibliothek" +#~ msgid "Library" +#~ msgstr "Bibliothek" -#: src/view/screens/Settings/index.tsx:479 +#: src/view/screens/Settings/index.tsx:494 msgid "Light" msgstr "Licht" -#: src/view/com/util/post-ctrls/PostCtrls.tsx:182 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:185 msgid "Like" msgstr "Liken" -#: src/view/screens/ProfileFeed.tsx:591 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:257 +#: src/view/screens/ProfileFeed.tsx:572 msgid "Like this feed" msgstr "Diesen Feed liken" -#: src/Navigation.tsx:199 +#: src/components/LikesDialog.tsx:87 +#: src/Navigation.tsx:201 +#: src/Navigation.tsx:206 msgid "Liked by" msgstr "Gelikt von" +#: src/screens/Profile/ProfileLabelerLikedBy.tsx:42 #: src/view/screens/PostLikedBy.tsx:27 #: src/view/screens/ProfileFeedLikedBy.tsx:27 msgid "Liked By" msgstr "Gelikt von" -#: src/view/com/feeds/FeedSourceCard.tsx:279 +#: src/view/com/feeds/FeedSourceCard.tsx:268 msgid "Liked by {0} {1}" msgstr "Von {0} {1} gelikt" -#: src/view/screens/ProfileFeed.tsx:606 +#: src/components/LabelingServiceCard/index.tsx:72 +msgid "Liked by {count} {0}" +msgstr "" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:277 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:291 +#: src/view/screens/ProfileFeed.tsx:587 msgid "Liked by {likeCount} {0}" msgstr "Von {likeCount} {0} gelikt" -#: src/view/com/notifications/FeedItem.tsx:170 +#: src/view/com/notifications/FeedItem.tsx:174 msgid "liked your custom feed" msgstr "hat deinen benutzerdefinierten Feed gelikt" -#: src/view/com/notifications/FeedItem.tsx:155 +#: src/view/com/notifications/FeedItem.tsx:159 msgid "liked your post" msgstr "hat deinen Beitrag gelikt" -#: src/view/screens/Profile.tsx:183 +#: src/view/screens/Profile.tsx:191 msgid "Likes" msgstr "Likes" -#: src/view/com/post-thread/PostThreadItem.tsx:183 +#: src/view/com/post-thread/PostThreadItem.tsx:182 msgid "Likes on this post" msgstr "Likes für diesen Beitrag" -#: src/Navigation.tsx:168 +#: src/Navigation.tsx:170 msgid "List" msgstr "Liste" @@ -2001,15 +2377,15 @@ msgstr "Liste" msgid "List Avatar" msgstr "Avatar auflisten" -#: src/view/screens/ProfileList.tsx:324 +#: src/view/screens/ProfileList.tsx:311 msgid "List blocked" msgstr "Liste blockiert" -#: src/view/com/feeds/FeedSourceCard.tsx:233 +#: src/view/com/feeds/FeedSourceCard.tsx:220 msgid "List by {0}" msgstr "Liste von {0}" -#: src/view/screens/ProfileList.tsx:378 +#: src/view/screens/ProfileList.tsx:355 msgid "List deleted" msgstr "Liste gelöscht" @@ -2021,43 +2397,44 @@ msgstr "Liste stummgeschaltet" msgid "List Name" msgstr "Name der Liste" -#: src/view/screens/ProfileList.tsx:343 +#: src/view/screens/ProfileList.tsx:325 msgid "List unblocked" msgstr "Liste entblockiert" -#: src/view/screens/ProfileList.tsx:302 +#: src/view/screens/ProfileList.tsx:297 msgid "List unmuted" msgstr "Listenstummschaltung aufgehoben" -#: src/Navigation.tsx:112 -#: src/view/screens/Profile.tsx:185 -#: src/view/shell/desktop/LeftNav.tsx:379 -#: src/view/shell/Drawer.tsx:492 -#: src/view/shell/Drawer.tsx:493 +#: src/Navigation.tsx:114 +#: src/view/screens/Profile.tsx:187 +#: src/view/screens/Profile.tsx:193 +#: src/view/shell/desktop/LeftNav.tsx:383 +#: src/view/shell/Drawer.tsx:495 +#: src/view/shell/Drawer.tsx:496 msgid "Lists" msgstr "Listen" #: src/view/com/post-thread/PostThread.tsx:333 #: src/view/com/post-thread/PostThread.tsx:341 -msgid "Load more posts" -msgstr "Mehr Beiträge laden" +#~ msgid "Load more posts" +#~ msgstr "Mehr Beiträge laden" #: src/view/screens/Notifications.tsx:159 msgid "Load new notifications" msgstr "Neue Mitteilungen laden" -#: src/view/com/feeds/FeedPage.tsx:115 -#: src/view/screens/Profile.tsx:440 +#: src/screens/Profile/Sections/Feed.tsx:70 +#: src/view/com/feeds/FeedPage.tsx:124 #: src/view/screens/ProfileFeed.tsx:495 -#: src/view/screens/ProfileList.tsx:681 +#: src/view/screens/ProfileList.tsx:695 msgid "Load new posts" msgstr "Neue Beiträge laden" -#: src/view/com/composer/text-input/mobile/Autocomplete.tsx:95 +#: src/view/com/composer/text-input/mobile/Autocomplete.tsx:99 msgid "Loading..." msgstr "Wird geladen..." -#: src/Navigation.tsx:209 +#: src/Navigation.tsx:221 msgid "Log" msgstr "Systemprotokoll" @@ -2068,11 +2445,11 @@ msgstr "Systemprotokoll" msgid "Log out" msgstr "Abmelden" -#: src/view/screens/Moderation.tsx:155 +#: src/screens/Moderation/index.tsx:444 msgid "Logged-out visibility" msgstr "Sichtbarkeit für abgemeldete Benutzer" -#: src/view/com/auth/login/ChooseAccountForm.tsx:133 +#: src/view/com/auth/login/ChooseAccountForm.tsx:137 msgid "Login to account that is not listed" msgstr "Anmeldung bei einem Konto, das nicht aufgelistet ist" @@ -2092,7 +2469,7 @@ msgstr "Darf nicht länger als 253 Zeichen sein" msgid "May only contain letters and numbers" msgstr "Darf nur Buchstaben und Zahlen enthalten" -#: src/view/screens/Profile.tsx:182 +#: src/view/screens/Profile.tsx:190 msgid "Media" msgstr "Medien" @@ -2105,35 +2482,43 @@ msgid "Mentioned users" msgstr "Erwähnte Benutzer" #: src/view/com/util/ViewHeader.tsx:87 -#: src/view/screens/Search/Search.tsx:646 +#: src/view/screens/Search/Search.tsx:647 msgid "Menu" msgstr "Menü" -#: src/view/com/posts/FeedErrorMessage.tsx:197 +#: src/view/com/posts/FeedErrorMessage.tsx:192 msgid "Message from server: {0}" msgstr "Nachricht vom Server: {0}" -#: src/Navigation.tsx:117 -#: src/view/screens/Moderation.tsx:66 -#: src/view/screens/Settings/index.tsx:625 -#: src/view/shell/desktop/LeftNav.tsx:397 -#: src/view/shell/Drawer.tsx:511 -#: src/view/shell/Drawer.tsx:512 +#: src/lib/moderation/useReportOptions.ts:45 +msgid "Misleading Account" +msgstr "" + +#: src/Navigation.tsx:119 +#: src/screens/Moderation/index.tsx:106 +#: src/view/screens/Settings/index.tsx:641 +#: src/view/shell/desktop/LeftNav.tsx:401 +#: src/view/shell/Drawer.tsx:514 +#: src/view/shell/Drawer.tsx:515 msgid "Moderation" msgstr "Moderation" +#: src/components/moderation/ModerationDetailsDialog.tsx:113 +msgid "Moderation details" +msgstr "" + #: src/view/com/lists/ListCard.tsx:93 #: src/view/com/modals/UserAddRemoveLists.tsx:206 msgid "Moderation list by {0}" msgstr "Moderationsliste von {0}" -#: src/view/screens/ProfileList.tsx:775 +#: src/view/screens/ProfileList.tsx:789 msgid "Moderation list by <0/>" msgstr "Moderationsliste von <0/>" #: src/view/com/lists/ListCard.tsx:91 #: src/view/com/modals/UserAddRemoveLists.tsx:204 -#: src/view/screens/ProfileList.tsx:773 +#: src/view/screens/ProfileList.tsx:787 msgid "Moderation list by you" msgstr "Moderationsliste von dir" @@ -2145,30 +2530,41 @@ msgstr "Moderationsliste erstellt" msgid "Moderation list updated" msgstr "Moderationsliste aktualisiert" -#: src/view/screens/Moderation.tsx:114 +#: src/screens/Moderation/index.tsx:245 msgid "Moderation lists" msgstr "Moderationslisten" -#: src/Navigation.tsx:122 +#: src/Navigation.tsx:124 #: src/view/screens/ModerationModlists.tsx:58 msgid "Moderation Lists" msgstr "Moderationslisten" -#: src/view/screens/Settings/index.tsx:619 +#: src/view/screens/Settings/index.tsx:635 msgid "Moderation settings" msgstr "Moderationseinstellungen" -#: src/view/com/modals/ModerationDetails.tsx:35 +#: src/Navigation.tsx:216 +msgid "Moderation states" +msgstr "" + +#: src/screens/Moderation/index.tsx:217 +msgid "Moderation tools" +msgstr "" + +#: src/components/moderation/ModerationDetailsDialog.tsx:49 +#: src/lib/moderation/useModerationCauseDescription.ts:40 msgid "Moderator has chosen to set a general warning on the content." msgstr "Der Moderator hat beschlossen, eine allgemeine Warnung vor dem Inhalt auszusprechen." +#: src/view/com/post-thread/PostThreadItem.tsx:541 +msgid "More" +msgstr "" + #: src/view/shell/desktop/Feeds.tsx:65 msgid "More feeds" msgstr "Mehr Feeds" -#: src/view/com/profile/ProfileHeader.tsx:523 -#: src/view/screens/ProfileFeed.tsx:363 -#: src/view/screens/ProfileList.tsx:617 +#: src/view/screens/ProfileList.tsx:599 msgid "More options" msgstr "Mehr Optionen" @@ -2188,11 +2584,12 @@ msgstr "Stummschalten" msgid "Mute {truncatedTag}" msgstr "{truncatedTag} stummschalten" -#: src/view/com/profile/ProfileHeader.tsx:327 +#: src/view/com/profile/ProfileMenu.tsx:279 +#: src/view/com/profile/ProfileMenu.tsx:286 msgid "Mute Account" msgstr "Konto stummschalten" -#: src/view/screens/ProfileList.tsx:544 +#: src/view/screens/ProfileList.tsx:518 msgid "Mute accounts" msgstr "Konten stummschalten" @@ -2208,17 +2605,18 @@ msgstr "Nur in Tags stummschalten" msgid "Mute in text & tags" msgstr "In Text und Tags stummschalten" -#: src/view/screens/ProfileList.tsx:491 +#: src/view/screens/ProfileList.tsx:461 +#: src/view/screens/ProfileList.tsx:624 msgid "Mute list" msgstr "Liste stummschalten" -#: src/view/screens/ProfileList.tsx:275 +#: src/view/screens/ProfileList.tsx:619 msgid "Mute these accounts?" msgstr "Diese Konten stummschalten?" #: src/view/screens/ProfileList.tsx:279 -msgid "Mute this List" -msgstr "Diese Liste stummschalten" +#~ msgid "Mute this List" +#~ msgstr "Diese Liste stummschalten" #: src/components/dialogs/MutedWords.tsx:127 msgid "Mute this word in post text and tags" @@ -2242,11 +2640,11 @@ msgstr "Wörter und Tags stummschalten" msgid "Muted" msgstr "Stummgeschaltet" -#: src/view/screens/Moderation.tsx:128 +#: src/screens/Moderation/index.tsx:257 msgid "Muted accounts" msgstr "Stummgeschaltete Konten" -#: src/Navigation.tsx:127 +#: src/Navigation.tsx:129 #: src/view/screens/ModerationMutedAccounts.tsx:107 msgid "Muted Accounts" msgstr "Stummgeschaltete Konten" @@ -2255,15 +2653,20 @@ msgstr "Stummgeschaltete Konten" msgid "Muted accounts have their posts removed from your feed and from your notifications. Mutes are completely private." msgstr "Bei stummgeschalteten Konten werden dazugehörige Beiträge aus deinem Feed und deinen Mitteilungen entfernt. Stummschaltungen sind völlig privat." -#: src/view/screens/Moderation.tsx:100 +#: src/lib/moderation/useModerationCauseDescription.ts:85 +msgid "Muted by \"{0}\"" +msgstr "" + +#: src/screens/Moderation/index.tsx:233 msgid "Muted words & tags" msgstr "Stummgeschaltete Wörter und Tags" -#: src/view/screens/ProfileList.tsx:277 +#: src/view/screens/ProfileList.tsx:621 msgid "Muting is private. Muted accounts can interact with you, but you will not see their posts or receive notifications from them." msgstr "Stummschaltung ist privat. Stummgeschaltete Konten können mit dir interagieren, aber du siehst ihre Beiträge nicht und erhältst keine Mitteilungen von ihnen." -#: src/view/com/modals/BirthDateSettings.tsx:56 +#: src/components/dialogs/BirthDateSettings.tsx:35 +#: src/components/dialogs/BirthDateSettings.tsx:38 msgid "My Birthday" msgstr "Mein Geburtstag" @@ -2275,13 +2678,17 @@ msgstr "Meine Feeds" msgid "My Profile" msgstr "Mein Profil" -#: src/view/screens/Settings/index.tsx:582 +#: src/view/screens/Settings/index.tsx:592 +msgid "My saved feeds" +msgstr "" + +#: src/view/screens/Settings/index.tsx:598 msgid "My Saved Feeds" msgstr "Meine gespeicherten Feeds" #: src/view/com/auth/server-input/index.tsx:118 -msgid "my-server.com" -msgstr "mein-server.de" +#~ msgid "my-server.com" +#~ msgstr "mein-server.de" #: src/view/com/modals/AddAppPasswords.tsx:179 #: src/view/com/modals/CreateOrEditList.tsx:290 @@ -2292,6 +2699,12 @@ msgstr "Name" msgid "Name is required" msgstr "Name ist erforderlich" +#: src/lib/moderation/useReportOptions.ts:57 +#: src/lib/moderation/useReportOptions.ts:78 +#: src/lib/moderation/useReportOptions.ts:86 +msgid "Name or Description Violates Community Standards" +msgstr "" + #: src/screens/Onboarding/index.tsx:25 msgid "Nature" msgstr "Natur" @@ -2300,7 +2713,7 @@ msgstr "Natur" #: src/view/com/auth/login/ForgotPasswordForm.tsx:219 #: src/view/com/auth/login/LoginForm.tsx:289 #: src/view/com/auth/login/SetNewPasswordForm.tsx:196 -#: src/view/com/modals/ChangePassword.tsx:166 +#: src/view/com/modals/ChangePassword.tsx:168 msgid "Navigates to the next screen" msgstr "Navigiert zum nächsten Bildschirm" @@ -2308,13 +2721,17 @@ msgstr "Navigiert zum nächsten Bildschirm" msgid "Navigates to your profile" msgstr "Navigiert zu Deinem Profil" +#: src/components/ReportDialog/SelectReportOptionView.tsx:124 +msgid "Need to report a copyright violation?" +msgstr "" + #: src/view/com/modals/EmbedConsent.tsx:107 #: src/view/com/modals/EmbedConsent.tsx:123 msgid "Never load embeds from {0}" msgstr "Lade niemals eingebettete Medien von {0}" #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:72 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:72 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:74 msgid "Never lose access to your followers and data." msgstr "Verliere nie den Zugriff auf deine Follower und Daten." @@ -2323,8 +2740,12 @@ msgid "Never lose access to your followers or data." msgstr "Verliere nie den Zugriff auf deine Follower oder Daten." #: src/components/dialogs/MutedWords.tsx:293 -msgid "Nevermind" -msgstr "Egal" +#~ msgid "Nevermind" +#~ msgstr "Egal" + +#: src/view/com/modals/ChangeHandle.tsx:520 +msgid "Nevermind, create a handle for me" +msgstr "" #: src/view/screens/Lists.tsx:76 msgctxt "action" @@ -2340,29 +2761,30 @@ msgid "New Moderation List" msgstr "Neue Moderationsliste" #: src/view/com/auth/login/SetNewPasswordForm.tsx:150 +#: src/view/com/modals/ChangePassword.tsx:212 msgid "New password" msgstr "Neues Passwort" -#: src/view/com/modals/ChangePassword.tsx:215 +#: src/view/com/modals/ChangePassword.tsx:217 msgid "New Password" msgstr "Neues Passwort" -#: src/view/com/feeds/FeedPage.tsx:126 +#: src/view/com/feeds/FeedPage.tsx:135 msgctxt "action" msgid "New post" msgstr "Neuer Beitrag" #: src/view/screens/Feeds.tsx:555 #: src/view/screens/Notifications.tsx:168 -#: src/view/screens/Profile.tsx:382 +#: src/view/screens/Profile.tsx:450 #: src/view/screens/ProfileFeed.tsx:433 -#: src/view/screens/ProfileList.tsx:196 -#: src/view/screens/ProfileList.tsx:224 -#: src/view/shell/desktop/LeftNav.tsx:248 +#: src/view/screens/ProfileList.tsx:199 +#: src/view/screens/ProfileList.tsx:227 +#: src/view/shell/desktop/LeftNav.tsx:252 msgid "New post" msgstr "Neuer Beitrag" -#: src/view/shell/desktop/LeftNav.tsx:258 +#: src/view/shell/desktop/LeftNav.tsx:262 msgctxt "action" msgid "New Post" msgstr "Neuer Beitrag" @@ -2386,8 +2808,8 @@ msgstr "Aktuelles" #: src/view/com/auth/login/SetNewPasswordForm.tsx:187 #: src/view/com/auth/login/SetNewPasswordForm.tsx:198 #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:79 -#: src/view/com/modals/ChangePassword.tsx:251 #: src/view/com/modals/ChangePassword.tsx:253 +#: src/view/com/modals/ChangePassword.tsx:255 msgid "Next" msgstr "Nächste" @@ -2396,7 +2818,7 @@ msgctxt "action" msgid "Next" msgstr "Nächste" -#: src/view/com/lightbox/Lightbox.web.tsx:149 +#: src/view/com/lightbox/Lightbox.web.tsx:169 msgid "Next image" msgstr "Nächstes Bild" @@ -2409,12 +2831,16 @@ msgstr "Nächstes Bild" msgid "No" msgstr "Nein" -#: src/view/screens/ProfileFeed.tsx:584 -#: src/view/screens/ProfileList.tsx:755 +#: src/view/screens/ProfileFeed.tsx:561 +#: src/view/screens/ProfileList.tsx:769 msgid "No description" msgstr "Keine Beschreibung" -#: src/view/com/profile/ProfileHeader.tsx:170 +#: src/view/com/modals/ChangeHandle.tsx:406 +msgid "No DNS Panel" +msgstr "" + +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:111 msgid "No longer following {0}" msgstr "{0} wird nicht mehr gefolgt" @@ -2422,12 +2848,12 @@ msgstr "{0} wird nicht mehr gefolgt" msgid "No notifications yet!" msgstr "Noch keine Mitteilungen!" -#: src/view/com/composer/text-input/mobile/Autocomplete.tsx:97 -#: src/view/com/composer/text-input/web/Autocomplete.tsx:191 +#: src/view/com/composer/text-input/mobile/Autocomplete.tsx:101 +#: src/view/com/composer/text-input/web/Autocomplete.tsx:195 msgid "No result" msgstr "Kein Ergebnis" -#: src/components/Lists.tsx:192 +#: src/components/Lists.tsx:189 msgid "No results found" msgstr "Keine Ergebnisse gefunden" @@ -2436,8 +2862,8 @@ msgid "No results found for \"{query}\"" msgstr "Keine Ergebnisse für \"{query}\" gefunden" #: src/view/com/modals/ListAddRemoveUsers.tsx:127 -#: src/view/screens/Search/Search.tsx:281 -#: src/view/screens/Search/Search.tsx:309 +#: src/view/screens/Search/Search.tsx:282 +#: src/view/screens/Search/Search.tsx:310 msgid "No results found for {query}" msgstr "Keine Ergebnisse für {query} gefunden" @@ -2449,12 +2875,21 @@ msgstr "Nein danke" msgid "Nobody" msgstr "Niemand" +#: src/components/LikedByList.tsx:102 +#: src/components/LikesDialog.tsx:99 +msgid "Nobody has liked this yet. Maybe you should be the first!" +msgstr "" + +#: src/lib/moderation/useGlobalLabelStrings.ts:42 +msgid "Non-sexual Nudity" +msgstr "" + #: src/view/com/modals/SelfLabel.tsx:135 msgid "Not Applicable." msgstr "Unzutreffend." -#: src/Navigation.tsx:107 -#: src/view/screens/Profile.tsx:106 +#: src/Navigation.tsx:109 +#: src/view/screens/Profile.tsx:97 msgid "Not Found" msgstr "Nicht gefunden" @@ -2463,17 +2898,22 @@ msgstr "Nicht gefunden" msgid "Not right now" msgstr "Im Moment nicht" -#: src/view/screens/Moderation.tsx:252 +#: src/view/com/profile/ProfileMenu.tsx:368 +#: src/view/com/util/forms/PostDropdownBtn.tsx:342 +msgid "Note about sharing" +msgstr "" + +#: src/screens/Moderation/index.tsx:542 msgid "Note: Bluesky is an open and public network. This setting only limits the visibility of your content on the Bluesky app and website, and other apps may not respect this setting. Your content may still be shown to logged-out users by other apps and websites." msgstr "Hinweis: Bluesky ist ein offenes und öffentliches Netzwerk. Diese Einstellung schränkt lediglich die Sichtbarkeit deiner Inhalte in der Bluesky-App und auf der Website ein. Andere Apps respektieren diese Einstellung möglicherweise nicht. Deine Inhalte werden abgemeldeten Nutzern möglicherweise weiterhin in anderen Apps und Websites angezeigt." -#: src/Navigation.tsx:457 +#: src/Navigation.tsx:469 #: src/view/screens/Notifications.tsx:124 #: src/view/screens/Notifications.tsx:148 -#: src/view/shell/bottom-bar/BottomBar.tsx:205 -#: src/view/shell/desktop/LeftNav.tsx:361 -#: src/view/shell/Drawer.tsx:435 -#: src/view/shell/Drawer.tsx:436 +#: src/view/shell/bottom-bar/BottomBar.tsx:207 +#: src/view/shell/desktop/LeftNav.tsx:365 +#: src/view/shell/Drawer.tsx:438 +#: src/view/shell/Drawer.tsx:439 msgid "Notifications" msgstr "Mitteilungen" @@ -2481,7 +2921,15 @@ msgstr "Mitteilungen" msgid "Nudity" msgstr "Nacktheit" -#: src/view/com/util/ErrorBoundary.tsx:35 +#: src/lib/moderation/useReportOptions.ts:71 +msgid "Nudity or pornography not labeled as such" +msgstr "" + +#: src/lib/moderation/useLabelBehaviorDescription.ts:11 +msgid "Off" +msgstr "" + +#: src/view/com/util/ErrorBoundary.tsx:49 msgid "Oh no!" msgstr "Oh nein!" @@ -2489,6 +2937,10 @@ msgstr "Oh nein!" msgid "Oh no! Something went wrong." msgstr "Oh nein, da ist etwas schief gelaufen." +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:127 +msgid "OK" +msgstr "" + #: src/view/com/auth/login/PasswordUpdatedForm.tsx:41 msgid "Okay" msgstr "Okay" @@ -2497,11 +2949,11 @@ msgstr "Okay" msgid "Oldest replies first" msgstr "Älteste Antworten zuerst" -#: src/view/screens/Settings/index.tsx:234 +#: src/view/screens/Settings/index.tsx:240 msgid "Onboarding reset" msgstr "Onboarding zurücksetzen" -#: src/view/com/composer/Composer.tsx:382 +#: src/view/com/composer/Composer.tsx:391 msgid "One or more images is missing alt text." msgstr "Bei einem oder mehreren Bildern fehlt der Alt-Text." @@ -2509,13 +2961,13 @@ msgstr "Bei einem oder mehreren Bildern fehlt der Alt-Text." msgid "Only {0} can reply." msgstr "Nur {0} kann antworten." -#: src/components/Lists.tsx:82 +#: src/components/Lists.tsx:83 msgid "Oops, something went wrong!" msgstr "Ups, da ist etwas schief gelaufen!" -#: src/components/Lists.tsx:188 -#: src/view/screens/AppPasswords.tsx:65 -#: src/view/screens/Profile.tsx:106 +#: src/components/Lists.tsx:157 +#: src/view/screens/AppPasswords.tsx:67 +#: src/view/screens/Profile.tsx:97 msgid "Oops!" msgstr "Huch!" @@ -2524,34 +2976,47 @@ msgid "Open" msgstr "Öffnen" #: src/view/screens/Moderation.tsx:75 -msgid "Open content filtering settings" -msgstr "Inhaltsfiltereinstellungen öffnen" +#~ msgid "Open content filtering settings" +#~ msgstr "Inhaltsfiltereinstellungen öffnen" -#: src/view/com/composer/Composer.tsx:477 -#: src/view/com/composer/Composer.tsx:478 +#: src/view/com/composer/Composer.tsx:490 +#: src/view/com/composer/Composer.tsx:491 msgid "Open emoji picker" msgstr "Emoji-Picker öffnen" -#: src/view/screens/Settings/index.tsx:712 +#: src/view/screens/ProfileFeed.tsx:299 +msgid "Open feed options menu" +msgstr "" + +#: src/view/screens/Settings/index.tsx:730 msgid "Open links with in-app browser" msgstr "Links mit In-App-Browser öffnen" +#: src/screens/Moderation/index.tsx:229 +msgid "Open muted words and tags settings" +msgstr "" + #: src/view/screens/Moderation.tsx:92 -msgid "Open muted words settings" -msgstr "Einstellungen für stummgeschaltete Wörter öffnen" +#~ msgid "Open muted words settings" +#~ msgstr "Einstellungen für stummgeschaltete Wörter öffnen" #: src/view/com/home/HomeHeaderLayoutMobile.tsx:50 msgid "Open navigation" msgstr "Navigation öffnen" -#: src/view/com/util/forms/PostDropdownBtn.tsx:175 +#: src/view/com/util/forms/PostDropdownBtn.tsx:183 msgid "Open post options menu" msgstr "Beitragsoptionsmenü öffnen" -#: src/view/screens/Settings/index.tsx:804 -msgid "Open storybook page" +#: src/view/screens/Settings/index.tsx:824 +#: src/view/screens/Settings/index.tsx:834 +msgid "Open storybook page" msgstr "Geschichtenbuch öffnen" +#: src/view/screens/Settings/index.tsx:812 +msgid "Open system log" +msgstr "" + #: src/view/com/util/forms/DropdownButton.tsx:154 msgid "Opens {numItems} options" msgstr "Öffnet {numItems} Optionen" @@ -2560,11 +3025,11 @@ msgstr "Öffnet {numItems} Optionen" msgid "Opens additional details for a debug entry" msgstr "Öffnet zusätzliche Details für einen Debug-Eintrag" -#: src/view/com/notifications/FeedItem.tsx:349 +#: src/view/com/notifications/FeedItem.tsx:353 msgid "Opens an expanded list of users in this notification" msgstr "Öffnet eine erweiterte Liste der Benutzer in dieser Meldung" -#: src/view/com/composer/photos/OpenCameraBtn.tsx:61 +#: src/view/com/composer/photos/OpenCameraBtn.tsx:78 msgid "Opens camera on device" msgstr "Öffnet die Kamera auf dem Gerät" @@ -2572,7 +3037,7 @@ msgstr "Öffnet die Kamera auf dem Gerät" msgid "Opens composer" msgstr "Öffnet den Beitragsverfasser" -#: src/view/screens/Settings/index.tsx:595 +#: src/view/screens/Settings/index.tsx:611 msgid "Opens configurable language settings" msgstr "Öffnet die konfigurierbaren Spracheinstellungen" @@ -2581,34 +3046,64 @@ msgid "Opens device photo gallery" msgstr "Öffnet die Gerätefotogalerie" #: src/view/com/profile/ProfileHeader.tsx:420 -msgid "Opens editor for profile display name, avatar, background image, and description" -msgstr "Öffnet den Editor für Profilanzeige, Avatar, Hintergrundbild und Beschreibung" +#~ msgid "Opens editor for profile display name, avatar, background image, and description" +#~ msgstr "Öffnet den Editor für Profilanzeige, Avatar, Hintergrundbild und Beschreibung" -#: src/view/screens/Settings/index.tsx:649 +#: src/view/screens/Settings/index.tsx:665 msgid "Opens external embeds settings" msgstr "Öffnet die Einstellungen für externe eingebettete Medien" +#: src/view/com/auth/HomeLoggedOutCTA.tsx:56 +#: src/view/com/auth/SplashScreen.tsx:70 +msgid "Opens flow to create a new Bluesky account" +msgstr "" + +#: src/view/com/auth/HomeLoggedOutCTA.tsx:74 +#: src/view/com/auth/SplashScreen.tsx:83 +msgid "Opens flow to sign into your existing Bluesky account" +msgstr "" + #: src/view/com/profile/ProfileHeader.tsx:575 -msgid "Opens followers list" -msgstr "Öffnet die Follower-Liste" +#~ msgid "Opens followers list" +#~ msgstr "Öffnet die Follower-Liste" #: src/view/com/profile/ProfileHeader.tsx:594 -msgid "Opens following list" -msgstr "Öffnet folgende Liste" +#~ msgid "Opens following list" +#~ msgstr "Öffnet folgende Liste" #: src/view/com/modals/InviteCodes.tsx:172 msgid "Opens list of invite codes" msgstr "Öffnet die Liste der Einladungscodes" +#: src/view/screens/Settings/index.tsx:794 +msgid "Opens modal for account deletion confirmation. Requires email code" +msgstr "" + #: src/view/screens/Settings/index.tsx:774 -msgid "Opens modal for account deletion confirmation. Requires email code." -msgstr "Öffnet ein Modal, um die Löschung des Kontos zu bestätigen. Erfordert einen E-Mail-Code." +#~ msgid "Opens modal for account deletion confirmation. Requires email code." +#~ msgstr "Öffnet ein Modal, um die Löschung des Kontos zu bestätigen. Erfordert einen E-Mail-Code." + +#: src/view/screens/Settings/index.tsx:752 +msgid "Opens modal for changing your Bluesky password" +msgstr "" + +#: src/view/screens/Settings/index.tsx:714 +msgid "Opens modal for choosing a new Bluesky handle" +msgstr "" + +#: src/view/screens/Settings/index.tsx:775 +msgid "Opens modal for downloading your Bluesky account data (repository)" +msgstr "" + +#: src/view/screens/Settings/index.tsx:966 +msgid "Opens modal for email verification" +msgstr "" #: src/view/com/modals/ChangeHandle.tsx:281 msgid "Opens modal for using custom domain" msgstr "Öffnet das Modal für die Verwendung einer benutzerdefinierten Domain" -#: src/view/screens/Settings/index.tsx:620 +#: src/view/screens/Settings/index.tsx:636 msgid "Opens moderation settings" msgstr "Öffnet die Moderationseinstellungen" @@ -2621,27 +3116,40 @@ msgstr "Öffnet das Formular zum Zurücksetzen des Passworts" msgid "Opens screen to edit Saved Feeds" msgstr "Öffnet den Bildschirm zum Bearbeiten gespeicherten Feeds" -#: src/view/screens/Settings/index.tsx:576 +#: src/view/screens/Settings/index.tsx:593 msgid "Opens screen with all saved feeds" msgstr "Öffnet den Bildschirm mit allen gespeicherten Feeds" +#: src/view/screens/Settings/index.tsx:692 +msgid "Opens the app password settings" +msgstr "" + #: src/view/screens/Settings/index.tsx:676 -msgid "Opens the app password settings page" -msgstr "Öffnet die Einstellungsseite für das App-Passwort" +#~ msgid "Opens the app password settings page" +#~ msgstr "Öffnet die Einstellungsseite für das App-Passwort" + +#: src/view/screens/Settings/index.tsx:550 +msgid "Opens the Following feed preferences" +msgstr "" #: src/view/screens/Settings/index.tsx:535 -msgid "Opens the home feed preferences" -msgstr "Öffnet die Home-Feed-Einstellungen" +#~ msgid "Opens the home feed preferences" +#~ msgstr "Öffnet die Home-Feed-Einstellungen" -#: src/view/screens/Settings/index.tsx:805 +#: src/view/com/modals/LinkWarning.tsx:76 +msgid "Opens the linked website" +msgstr "" + +#: src/view/screens/Settings/index.tsx:825 +#: src/view/screens/Settings/index.tsx:835 msgid "Opens the storybook page" msgstr "Öffnet die Geschichtenbuch" -#: src/view/screens/Settings/index.tsx:793 +#: src/view/screens/Settings/index.tsx:813 msgid "Opens the system log page" msgstr "Öffnet die Systemprotokollseite" -#: src/view/screens/Settings/index.tsx:556 +#: src/view/screens/Settings/index.tsx:571 msgid "Opens the threads preferences" msgstr "Öffnet die Thread-Einstellungen" @@ -2649,11 +3157,19 @@ msgstr "Öffnet die Thread-Einstellungen" msgid "Option {0} of {numItems}" msgstr "Option {0} von {numItems}" +#: src/components/ReportDialog/SubmitView.tsx:162 +msgid "Optionally provide additional information below:" +msgstr "" + #: src/view/com/modals/Threadgate.tsx:89 msgid "Or combine these options:" msgstr "Oder kombiniere diese Optionen:" -#: src/view/com/auth/login/ChooseAccountForm.tsx:138 +#: src/lib/moderation/useReportOptions.ts:25 +msgid "Other" +msgstr "" + +#: src/view/com/auth/login/ChooseAccountForm.tsx:142 msgid "Other account" msgstr "Anderes Konto" @@ -2661,7 +3177,7 @@ msgstr "Anderes Konto" msgid "Other..." msgstr "Andere..." -#: src/components/Lists.tsx:194 +#: src/components/Lists.tsx:190 #: src/view/screens/NotFound.tsx:45 msgid "Page not found" msgstr "Seite nicht gefunden" @@ -2672,12 +3188,18 @@ msgstr "Seite nicht gefunden" #: src/view/com/auth/create/Step1.tsx:191 #: src/view/com/auth/create/Step1.tsx:201 +#: src/view/com/auth/login/LoginForm.tsx:210 #: src/view/com/auth/login/LoginForm.tsx:226 #: src/view/com/auth/login/SetNewPasswordForm.tsx:161 +#: src/view/com/modals/DeleteAccount.tsx:195 #: src/view/com/modals/DeleteAccount.tsx:202 msgid "Password" msgstr "Passwort" +#: src/view/com/modals/ChangePassword.tsx:142 +msgid "Password Changed" +msgstr "" + #: src/view/com/auth/login/Login.tsx:157 msgid "Password updated" msgstr "Passwort aktualisiert" @@ -2686,11 +3208,11 @@ msgstr "Passwort aktualisiert" msgid "Password updated!" msgstr "Passwort aktualisiert!" -#: src/Navigation.tsx:162 +#: src/Navigation.tsx:164 msgid "People followed by @{0}" msgstr "Personen gefolgt von @{0}" -#: src/Navigation.tsx:155 +#: src/Navigation.tsx:157 msgid "People following @{0}" msgstr "Personen, die @{0} folgen" @@ -2710,11 +3232,15 @@ msgstr "Haustiere" msgid "Pictures meant for adults." msgstr "Bilder, die für Erwachsene bestimmt sind." -#: src/view/screens/ProfileFeed.tsx:354 -#: src/view/screens/ProfileList.tsx:581 +#: src/view/screens/ProfileFeed.tsx:291 +#: src/view/screens/ProfileList.tsx:563 msgid "Pin to home" msgstr "An die Startseite anheften" +#: src/view/screens/ProfileFeed.tsx:294 +msgid "Pin to Home" +msgstr "" + #: src/view/screens/SavedFeeds.tsx:88 msgid "Pinned Feeds" msgstr "Angeheftete Feeds" @@ -2768,16 +3294,20 @@ msgstr "Bitte gib deine E-Mail ein." msgid "Please enter your password as well:" msgstr "Bitte gib auch dein Passwort ein:" +#: src/components/moderation/LabelsOnMeDialog.tsx:222 +msgid "Please explain why you think this label was incorrectly applied by {0}" +msgstr "" + #: src/view/com/modals/AppealLabel.tsx:72 #: src/view/com/modals/AppealLabel.tsx:75 -msgid "Please tell us why you think this content warning was incorrectly applied!" -msgstr "Bitte teile uns mit, warum du denkst, dass diese Inhaltswarnung falsch angewendet wurde!" +#~ msgid "Please tell us why you think this content warning was incorrectly applied!" +#~ msgstr "Bitte teile uns mit, warum du denkst, dass diese Inhaltswarnung falsch angewendet wurde!" #: src/view/com/modals/VerifyEmail.tsx:101 msgid "Please Verify Your Email" msgstr "Bitte verifiziere deine E-Mail" -#: src/view/com/composer/Composer.tsx:222 +#: src/view/com/composer/Composer.tsx:221 msgid "Please wait for your link card to finish loading" msgstr "Bitte warte, bis deine Link-karte vollständig geladen ist" @@ -2789,13 +3319,17 @@ msgstr "Politik" msgid "Porn" msgstr "Porno" -#: src/view/com/composer/Composer.tsx:357 -#: src/view/com/composer/Composer.tsx:365 +#: src/lib/moderation/useGlobalLabelStrings.ts:34 +msgid "Pornography" +msgstr "" + +#: src/view/com/composer/Composer.tsx:366 +#: src/view/com/composer/Composer.tsx:374 msgctxt "action" msgid "Post" msgstr "Beitrag" -#: src/view/com/post-thread/PostThread.tsx:303 +#: src/view/com/post-thread/PostThread.tsx:292 msgctxt "description" msgid "Post" msgstr "Beitrag" @@ -2804,20 +3338,30 @@ msgstr "Beitrag" msgid "Post by {0}" msgstr "Beitrag von {0}" -#: src/Navigation.tsx:174 -#: src/Navigation.tsx:181 -#: src/Navigation.tsx:188 +#: src/Navigation.tsx:176 +#: src/Navigation.tsx:183 +#: src/Navigation.tsx:190 msgid "Post by @{0}" msgstr "Beitrag von @{0}" -#: src/view/com/util/forms/PostDropdownBtn.tsx:108 +#: src/view/com/util/forms/PostDropdownBtn.tsx:105 msgid "Post deleted" msgstr "Beitrag gelöscht" -#: src/view/com/post-thread/PostThread.tsx:462 +#: src/view/com/post-thread/PostThread.tsx:157 msgid "Post hidden" msgstr "Beitrag ausgeblendet" +#: src/components/moderation/ModerationDetailsDialog.tsx:98 +#: src/lib/moderation/useModerationCauseDescription.ts:99 +msgid "Post Hidden by Muted Word" +msgstr "" + +#: src/components/moderation/ModerationDetailsDialog.tsx:101 +#: src/lib/moderation/useModerationCauseDescription.ts:108 +msgid "Post Hidden by You" +msgstr "" + #: src/view/com/composer/select-language/SelectLangBtn.tsx:87 msgid "Post language" msgstr "Beitragssprache" @@ -2826,7 +3370,8 @@ msgstr "Beitragssprache" msgid "Post Languages" msgstr "Beitragssprachen" -#: src/view/com/post-thread/PostThread.tsx:514 +#: src/view/com/post-thread/PostThread.tsx:152 +#: src/view/com/post-thread/PostThread.tsx:164 msgid "Post not found" msgstr "Beitrag nicht gefunden" @@ -2834,7 +3379,7 @@ msgstr "Beitrag nicht gefunden" msgid "posts" msgstr "Beiträge" -#: src/view/screens/Profile.tsx:180 +#: src/view/screens/Profile.tsx:188 msgid "Posts" msgstr "Beiträge" @@ -2850,7 +3395,11 @@ msgstr "Ausgeblendete Beiträge" msgid "Potentially Misleading Link" msgstr "Potenziell irreführender Link" -#: src/view/com/lightbox/Lightbox.web.tsx:135 +#: src/components/Lists.tsx:88 +msgid "Press to retry" +msgstr "" + +#: src/view/com/lightbox/Lightbox.web.tsx:150 msgid "Previous image" msgstr "Vorheriges Bild" @@ -2862,15 +3411,16 @@ msgstr "Primäre Sprache" msgid "Prioritize Your Follows" msgstr "Priorisiere deine Follower" -#: src/view/screens/Settings/index.tsx:632 +#: src/view/screens/Settings/index.tsx:648 #: src/view/shell/desktop/RightNav.tsx:72 msgid "Privacy" msgstr "Privatsphäre" -#: src/Navigation.tsx:219 +#: src/Navigation.tsx:231 +#: src/view/com/auth/create/Policies.tsx:69 #: src/view/screens/PrivacyPolicy.tsx:29 -#: src/view/screens/Settings/index.tsx:891 -#: src/view/shell/Drawer.tsx:262 +#: src/view/screens/Settings/index.tsx:921 +#: src/view/shell/Drawer.tsx:265 msgid "Privacy Policy" msgstr "Datenschutzerklärung" @@ -2878,11 +3428,16 @@ msgstr "Datenschutzerklärung" msgid "Processing..." msgstr "Wird bearbeitet..." -#: src/view/shell/bottom-bar/BottomBar.tsx:247 -#: src/view/shell/desktop/LeftNav.tsx:415 +#: src/view/screens/DebugMod.tsx:888 +#: src/view/screens/Profile.tsx:340 +msgid "profile" +msgstr "" + +#: src/view/shell/bottom-bar/BottomBar.tsx:251 +#: src/view/shell/desktop/LeftNav.tsx:419 #: src/view/shell/Drawer.tsx:70 -#: src/view/shell/Drawer.tsx:546 -#: src/view/shell/Drawer.tsx:547 +#: src/view/shell/Drawer.tsx:549 +#: src/view/shell/Drawer.tsx:550 msgid "Profile" msgstr "Profil" @@ -2890,7 +3445,7 @@ msgstr "Profil" msgid "Profile updated" msgstr "Profil aktualisiert" -#: src/view/screens/Settings/index.tsx:949 +#: src/view/screens/Settings/index.tsx:979 msgid "Protect your account by verifying your email." msgstr "Schütze dein Konto, indem du deine E-Mail bestätigst." @@ -2906,11 +3461,11 @@ msgstr "Öffentliche, gemeinsam nutzbare Listen von Nutzern, die du stummschalte msgid "Public, shareable lists which can drive feeds." msgstr "Öffentliche, gemeinsam nutzbare Listen, die Feeds steuern können." -#: src/view/com/composer/Composer.tsx:342 +#: src/view/com/composer/Composer.tsx:351 msgid "Publish post" msgstr "Beitrag veröffentlichen" -#: src/view/com/composer/Composer.tsx:342 +#: src/view/com/composer/Composer.tsx:351 msgid "Publish reply" msgstr "Antwort veröffentlichen" @@ -2936,6 +3491,10 @@ msgstr "Zufällig (alias \"Poster's Roulette\")" msgid "Ratios" msgstr "Verhältnisse" +#: src/view/screens/Search/Search.tsx:776 +msgid "Recent Searches" +msgstr "" + #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:116 msgid "Recommended Feeds" msgstr "Empfohlene Feeds" @@ -2944,36 +3503,50 @@ msgstr "Empfohlene Feeds" msgid "Recommended Users" msgstr "Empfohlene Nutzer" -#: src/components/dialogs/MutedWords.tsx:298 -#: src/view/com/modals/ListAddRemoveUsers.tsx:264 +#: src/components/dialogs/MutedWords.tsx:287 +#: src/view/com/feeds/FeedSourceCard.tsx:283 +#: src/view/com/modals/ListAddRemoveUsers.tsx:268 #: src/view/com/modals/SelfLabel.tsx:83 #: src/view/com/modals/UserAddRemoveLists.tsx:219 -#: src/view/com/util/UserAvatar.tsx:285 -#: src/view/com/util/UserBanner.tsx:91 +#: src/view/com/posts/FeedErrorMessage.tsx:204 msgid "Remove" msgstr "Entfernen" #: src/view/com/feeds/FeedSourceCard.tsx:108 -msgid "Remove {0} from my feeds?" -msgstr "{0} aus meinen Feeds entfernen?" +#~ msgid "Remove {0} from my feeds?" +#~ msgstr "{0} aus meinen Feeds entfernen?" #: src/view/com/util/AccountDropdownBtn.tsx:22 msgid "Remove account" msgstr "Konto entfernen" -#: src/view/com/posts/FeedErrorMessage.tsx:131 -#: src/view/com/posts/FeedErrorMessage.tsx:166 +#: src/view/com/util/UserAvatar.tsx:358 +msgid "Remove Avatar" +msgstr "" + +#: src/view/com/util/UserBanner.tsx:148 +msgid "Remove Banner" +msgstr "" + +#: src/view/com/posts/FeedErrorMessage.tsx:160 msgid "Remove feed" msgstr "Feed entfernen" -#: src/view/com/feeds/FeedSourceCard.tsx:107 -#: src/view/com/feeds/FeedSourceCard.tsx:169 -#: src/view/com/feeds/FeedSourceCard.tsx:174 -#: src/view/com/feeds/FeedSourceCard.tsx:245 -#: src/view/screens/ProfileFeed.tsx:273 +#: src/view/com/posts/FeedErrorMessage.tsx:201 +msgid "Remove feed?" +msgstr "" + +#: src/view/com/feeds/FeedSourceCard.tsx:173 +#: src/view/com/feeds/FeedSourceCard.tsx:233 +#: src/view/screens/ProfileFeed.tsx:334 +#: src/view/screens/ProfileFeed.tsx:340 msgid "Remove from my feeds" msgstr "Aus meinen Feeds entfernen" +#: src/view/com/feeds/FeedSourceCard.tsx:278 +msgid "Remove from my feeds?" +msgstr "" + #: src/view/com/composer/photos/Gallery.tsx:167 msgid "Remove image" msgstr "Bild entfernen" @@ -2982,7 +3555,7 @@ msgstr "Bild entfernen" msgid "Remove image preview" msgstr "Bildvorschau entfernen" -#: src/components/dialogs/MutedWords.tsx:343 +#: src/components/dialogs/MutedWords.tsx:330 msgid "Remove mute word from your list" msgstr "Stummgeschaltetes Wort aus deiner Liste entfernen" @@ -2991,28 +3564,35 @@ msgid "Remove repost" msgstr "Repost entfernen" #: src/view/com/feeds/FeedSourceCard.tsx:175 -msgid "Remove this feed from my feeds?" -msgstr "Diesen Feed aus meinen Feeds entfernen?" +#~ msgid "Remove this feed from my feeds?" +#~ msgstr "Diesen Feed aus meinen Feeds entfernen?" + +#: src/view/com/posts/FeedErrorMessage.tsx:202 +msgid "Remove this feed from your saved feeds" +msgstr "" #: src/view/com/posts/FeedErrorMessage.tsx:132 -msgid "Remove this feed from your saved feeds?" -msgstr "Diesen Feed aus deinen gespeicherten Feeds entfernen?" +#~ msgid "Remove this feed from your saved feeds?" +#~ msgstr "Diesen Feed aus deinen gespeicherten Feeds entfernen?" #: src/view/com/modals/ListAddRemoveUsers.tsx:199 #: src/view/com/modals/UserAddRemoveLists.tsx:152 msgid "Removed from list" msgstr "Aus der Liste entfernt" -#: src/view/com/feeds/FeedSourceCard.tsx:113 -#: src/view/com/feeds/FeedSourceCard.tsx:180 +#: src/view/com/feeds/FeedSourceCard.tsx:121 msgid "Removed from my feeds" msgstr "Aus meinen Feeds entfernt" +#: src/view/screens/ProfileFeed.tsx:208 +msgid "Removed from your feeds" +msgstr "" + #: src/view/com/composer/ExternalEmbed.tsx:71 msgid "Removes default thumbnail from {0}" msgstr "Entfernt Standard-Miniaturansicht von {0}" -#: src/view/screens/Profile.tsx:181 +#: src/view/screens/Profile.tsx:189 msgid "Replies" msgstr "Antworten" @@ -3020,7 +3600,7 @@ msgstr "Antworten" msgid "Replies to this thread are disabled" msgstr "Antworten auf diesen Thread sind deaktiviert" -#: src/view/com/composer/Composer.tsx:355 +#: src/view/com/composer/Composer.tsx:364 msgctxt "action" msgid "Reply" msgstr "Antworten" @@ -3029,34 +3609,55 @@ msgstr "Antworten" msgid "Reply Filters" msgstr "Antwortfilter" -#: src/view/com/post/Post.tsx:167 -#: src/view/com/posts/FeedItem.tsx:287 +#: src/view/com/post/Post.tsx:166 +#: src/view/com/posts/FeedItem.tsx:280 msgctxt "description" msgid "Reply to <0/>" msgstr "Antwort an <0/>" #: src/view/com/modals/report/Modal.tsx:166 -msgid "Report {collectionName}" -msgstr "{collectionName} melden" +#~ msgid "Report {collectionName}" +#~ msgstr "{collectionName} melden" -#: src/view/com/profile/ProfileHeader.tsx:361 +#: src/view/com/profile/ProfileMenu.tsx:319 +#: src/view/com/profile/ProfileMenu.tsx:322 msgid "Report Account" msgstr "Konto melden" -#: src/view/screens/ProfileFeed.tsx:293 +#: src/view/screens/ProfileFeed.tsx:351 +#: src/view/screens/ProfileFeed.tsx:353 msgid "Report feed" msgstr "Feed melden" -#: src/view/screens/ProfileList.tsx:459 +#: src/view/screens/ProfileList.tsx:429 msgid "Report List" msgstr "Liste melden" -#: src/view/com/modals/report/SendReportButton.tsx:37 -#: src/view/com/util/forms/PostDropdownBtn.tsx:301 -#: src/view/com/util/forms/PostDropdownBtn.tsx:309 +#: src/view/com/util/forms/PostDropdownBtn.tsx:292 +#: src/view/com/util/forms/PostDropdownBtn.tsx:294 msgid "Report post" msgstr "Beitrag melden" +#: src/components/ReportDialog/SelectReportOptionView.tsx:43 +msgid "Report this content" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:56 +msgid "Report this feed" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:53 +msgid "Report this list" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:50 +msgid "Report this post" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:47 +msgid "Report this user" +msgstr "" + #: src/view/com/modals/Repost.tsx:43 #: src/view/com/modals/Repost.tsx:48 #: src/view/com/modals/Repost.tsx:53 @@ -3078,19 +3679,19 @@ msgstr "Reposten oder Beitrag zitieren" msgid "Reposted By" msgstr "Repostet von" -#: src/view/com/posts/FeedItem.tsx:207 +#: src/view/com/posts/FeedItem.tsx:197 msgid "Reposted by {0}" msgstr "Repostet von {0}" -#: src/view/com/posts/FeedItem.tsx:224 +#: src/view/com/posts/FeedItem.tsx:214 msgid "Reposted by <0/>" msgstr "Repostet von <0/>" -#: src/view/com/notifications/FeedItem.tsx:162 +#: src/view/com/notifications/FeedItem.tsx:166 msgid "reposted your post" msgstr "hat deinen Beitrag repostet" -#: src/view/com/post-thread/PostThreadItem.tsx:188 +#: src/view/com/post-thread/PostThreadItem.tsx:187 msgid "Reposts of this post" msgstr "Reposts von diesem Beitrag" @@ -3099,12 +3700,12 @@ msgstr "Reposts von diesem Beitrag" msgid "Request Change" msgstr "Änderung anfordern" -#: src/view/com/modals/ChangePassword.tsx:239 #: src/view/com/modals/ChangePassword.tsx:241 +#: src/view/com/modals/ChangePassword.tsx:243 msgid "Request Code" msgstr "Einen Code anfordern" -#: src/view/screens/Settings/index.tsx:456 +#: src/view/screens/Settings/index.tsx:471 msgid "Require alt text before posting" msgstr "Alt-Text vor der Veröffentlichung erforderlich machen" @@ -3114,18 +3715,20 @@ msgstr "Für diesen Anbieter erforderlich" #: src/view/com/auth/login/SetNewPasswordForm.tsx:124 #: src/view/com/auth/login/SetNewPasswordForm.tsx:136 +#: src/view/com/modals/ChangePassword.tsx:185 msgid "Reset code" msgstr "Code zurücksetzen" -#: src/view/com/modals/ChangePassword.tsx:190 +#: src/view/com/modals/ChangePassword.tsx:192 msgid "Reset Code" msgstr "Code zurücksetzen" #: src/view/screens/Settings/index.tsx:824 -msgid "Reset onboarding" -msgstr "Onboarding zurücksetzen" +#~ msgid "Reset onboarding" +#~ msgstr "Onboarding zurücksetzen" -#: src/view/screens/Settings/index.tsx:827 +#: src/view/screens/Settings/index.tsx:854 +#: src/view/screens/Settings/index.tsx:857 msgid "Reset onboarding state" msgstr "Onboarding-Status zurücksetzen" @@ -3134,18 +3737,19 @@ msgid "Reset password" msgstr "Passwort zurücksetzen" #: src/view/screens/Settings/index.tsx:814 -msgid "Reset preferences" -msgstr "Einstellungen zurücksetzen" +#~ msgid "Reset preferences" +#~ msgstr "Einstellungen zurücksetzen" -#: src/view/screens/Settings/index.tsx:817 +#: src/view/screens/Settings/index.tsx:844 +#: src/view/screens/Settings/index.tsx:847 msgid "Reset preferences state" msgstr "Einstellungen zurücksetzen" -#: src/view/screens/Settings/index.tsx:825 +#: src/view/screens/Settings/index.tsx:855 msgid "Resets the onboarding state" msgstr "Setzt den Onboarding-Status zurück" -#: src/view/screens/Settings/index.tsx:815 +#: src/view/screens/Settings/index.tsx:845 msgid "Resets the preferences state" msgstr "Einstellungen zurücksetzen" @@ -3158,6 +3762,7 @@ msgstr "Versucht die Anmeldung erneut" msgid "Retries the last action, which errored out" msgstr "Wiederholung der letzten Aktion, bei der ein Fehler aufgetreten ist" +#: src/components/Lists.tsx:98 #: src/screens/Onboarding/StepInterests/index.tsx:221 #: src/screens/Onboarding/StepInterests/index.tsx:224 #: src/view/com/auth/create/CreateAccount.tsx:181 @@ -3169,22 +3774,29 @@ msgstr "Wiederholung der letzten Aktion, bei der ein Fehler aufgetreten ist" msgid "Retry" msgstr "Wiederholen" -#: src/view/screens/ProfileList.tsx:903 +#: src/view/screens/ProfileList.tsx:917 msgid "Return to previous page" msgstr "Zurück zur vorherigen Seite" +#: src/view/screens/NotFound.tsx:59 +msgid "Returns to home page" +msgstr "" + +#: src/view/screens/NotFound.tsx:58 +#: src/view/screens/ProfileFeed.tsx:112 +msgid "Returns to previous page" +msgstr "" + #: src/view/com/lightbox/Lightbox.tsx:132 #: src/view/com/modals/CreateOrEditList.tsx:345 msgctxt "action" msgid "Save" msgstr "Speichern" -#: src/view/com/modals/BirthDateSettings.tsx:94 -#: src/view/com/modals/BirthDateSettings.tsx:97 +#: src/components/dialogs/BirthDateSettings.tsx:125 #: src/view/com/modals/ChangeHandle.tsx:173 #: src/view/com/modals/CreateOrEditList.tsx:337 #: src/view/com/modals/EditProfile.tsx:224 -#: src/view/screens/ProfileFeed.tsx:346 msgid "Save" msgstr "Speichern" @@ -3192,6 +3804,10 @@ msgstr "Speichern" msgid "Save alt text" msgstr "Alt-Text speichern" +#: src/components/dialogs/BirthDateSettings.tsx:119 +msgid "Save birthday" +msgstr "" + #: src/view/com/modals/EditProfile.tsx:232 msgid "Save Changes" msgstr "Änderungen speichern" @@ -3204,10 +3820,23 @@ msgstr "Handle-Änderung speichern" msgid "Save image crop" msgstr "Bildausschnitt speichern" +#: src/view/screens/ProfileFeed.tsx:335 +#: src/view/screens/ProfileFeed.tsx:341 +msgid "Save to my feeds" +msgstr "" + #: src/view/screens/SavedFeeds.tsx:122 msgid "Saved Feeds" msgstr "Gespeicherte Feeds" +#: src/view/com/lightbox/Lightbox.tsx:81 +msgid "Saved to your camera roll." +msgstr "" + +#: src/view/screens/ProfileFeed.tsx:212 +msgid "Saved to your feeds" +msgstr "" + #: src/view/com/modals/EditProfile.tsx:225 msgid "Saves any changes to your profile" msgstr "Speichert alle Änderungen an Deinem Profil" @@ -3216,33 +3845,37 @@ msgstr "Speichert alle Änderungen an Deinem Profil" msgid "Saves handle change to {handle}" msgstr "Speichert Handle-Änderung in {handle}" +#: src/view/com/modals/crop-image/CropImage.web.tsx:145 +msgid "Saves image crop settings" +msgstr "" + #: src/screens/Onboarding/index.tsx:36 msgid "Science" msgstr "Wissenschaft" -#: src/view/screens/ProfileList.tsx:859 +#: src/view/screens/ProfileList.tsx:873 msgid "Scroll to top" msgstr "Zum Anfang blättern" -#: src/Navigation.tsx:447 +#: src/Navigation.tsx:459 #: src/view/com/auth/LoggedOut.tsx:122 #: src/view/com/modals/ListAddRemoveUsers.tsx:75 #: src/view/com/util/forms/SearchInput.tsx:67 #: src/view/com/util/forms/SearchInput.tsx:79 -#: src/view/screens/Search/Search.tsx:419 -#: src/view/screens/Search/Search.tsx:668 -#: src/view/screens/Search/Search.tsx:686 -#: src/view/shell/bottom-bar/BottomBar.tsx:159 -#: src/view/shell/desktop/LeftNav.tsx:324 -#: src/view/shell/desktop/Search.tsx:214 -#: src/view/shell/desktop/Search.tsx:223 -#: src/view/shell/Drawer.tsx:362 -#: src/view/shell/Drawer.tsx:363 +#: src/view/screens/Search/Search.tsx:420 +#: src/view/screens/Search/Search.tsx:669 +#: src/view/screens/Search/Search.tsx:687 +#: src/view/shell/bottom-bar/BottomBar.tsx:161 +#: src/view/shell/desktop/LeftNav.tsx:328 +#: src/view/shell/desktop/Search.tsx:215 +#: src/view/shell/desktop/Search.tsx:224 +#: src/view/shell/Drawer.tsx:365 +#: src/view/shell/Drawer.tsx:366 msgid "Search" msgstr "Suche" -#: src/view/screens/Search/Search.tsx:735 -#: src/view/shell/desktop/Search.tsx:255 +#: src/view/screens/Search/Search.tsx:736 +#: src/view/shell/desktop/Search.tsx:256 msgid "Search for \"{query}\"" msgstr "Suche nach \"{query}\"" @@ -3296,6 +3929,14 @@ msgstr "Wähle {item}" msgid "Select from an existing account" msgstr "Von einem bestehenden Konto auswählen" +#: src/view/screens/LanguageSettings.tsx:299 +msgid "Select languages" +msgstr "" + +#: src/components/ReportDialog/SelectLabelerView.tsx:32 +msgid "Select moderator" +msgstr "" + #: src/view/com/util/Selector.tsx:107 msgid "Select option {i} of {numItems}" msgstr "Wähle Option {i} von {numItems}" @@ -3309,6 +3950,10 @@ msgstr "Service auswählen" msgid "Select some accounts below to follow" msgstr "Wähle unten einige Konten aus, denen du folgen möchtest" +#: src/components/ReportDialog/SubmitView.tsx:135 +msgid "Select the moderation service(s) to report to" +msgstr "" + #: src/view/com/auth/server-input/index.tsx:82 msgid "Select the service that hosts your data." msgstr "Wähle den Dienst aus, der deine Daten hostet." @@ -3317,7 +3962,7 @@ msgstr "Wähle den Dienst aus, der deine Daten hostet." msgid "Select topical feeds to follow from the list below" msgstr "Wähle aus der folgenden Liste die themenbezogenen Feeds aus, die du verfolgen möchtest" -#: src/screens/Onboarding/StepModeration/index.tsx:75 +#: src/screens/Onboarding/StepModeration/index.tsx:62 msgid "Select what you want to see (or not see), and we’ll handle the rest." msgstr "Wähle aus, was du sehen (oder nicht sehen) möchtest, und wir kümmern uns um den Rest." @@ -3326,8 +3971,12 @@ msgid "Select which languages you want your subscribed feeds to include. If none msgstr "Wähle aus, welche Sprachen deine abonnierten Feeds enthalten sollen. Wenn du keine Sprachen auswählst, werden alle Sprachen angezeigt." #: src/view/screens/LanguageSettings.tsx:98 -msgid "Select your app language for the default text to display in the app" -msgstr "Wählen deine App-Sprache für den Standardtext aus, der in der App angezeigt werden soll" +#~ msgid "Select your app language for the default text to display in the app" +#~ msgstr "Wählen deine App-Sprache für den Standardtext aus, der in der App angezeigt werden soll" + +#: src/view/screens/LanguageSettings.tsx:98 +msgid "Select your app language for the default text to display in the app." +msgstr "" #: src/screens/Onboarding/StepInterests/index.tsx:196 msgid "Select your interests from the options below" @@ -3359,14 +4008,23 @@ msgctxt "action" msgid "Send Email" msgstr "E-Mail senden" -#: src/view/shell/Drawer.tsx:295 -#: src/view/shell/Drawer.tsx:316 +#: src/view/shell/Drawer.tsx:298 +#: src/view/shell/Drawer.tsx:319 msgid "Send feedback" msgstr "Feedback senden" +#: src/components/ReportDialog/SubmitView.tsx:214 +#: src/components/ReportDialog/SubmitView.tsx:218 +msgid "Send report" +msgstr "" + #: src/view/com/modals/report/SendReportButton.tsx:45 -msgid "Send Report" -msgstr "Bericht senden" +#~ msgid "Send Report" +#~ msgstr "Bericht senden" + +#: src/components/ReportDialog/SelectLabelerView.tsx:46 +msgid "Send report to {0}" +msgstr "" #: src/view/com/modals/DeleteAccount.tsx:133 msgid "Sends email with confirmation code for account deletion" @@ -3377,34 +4035,38 @@ msgid "Server address" msgstr "Server-Adresse" #: src/view/com/modals/ContentFilteringSettings.tsx:311 -msgid "Set {value} for {labelGroup} content moderation policy" -msgstr "Legt {value} für die {labelGroup} Inhaltsmoderationsrichtlinie fest" +#~ msgid "Set {value} for {labelGroup} content moderation policy" +#~ msgstr "Legt {value} für die {labelGroup} Inhaltsmoderationsrichtlinie fest" #: src/view/com/modals/ContentFilteringSettings.tsx:160 #: src/view/com/modals/ContentFilteringSettings.tsx:179 -msgctxt "action" -msgid "Set Age" -msgstr "Alter festlegen" +#~ msgctxt "action" +#~ msgid "Set Age" +#~ msgstr "Alter festlegen" + +#: src/screens/Moderation/index.tsx:306 +msgid "Set birthdate" +msgstr "" #: src/view/screens/Settings/index.tsx:488 -msgid "Set color theme to dark" -msgstr "Farbthema auf dunkel einstellen" +#~ msgid "Set color theme to dark" +#~ msgstr "Farbthema auf dunkel einstellen" #: src/view/screens/Settings/index.tsx:481 -msgid "Set color theme to light" -msgstr "Farbthema auf hell einstellen" +#~ msgid "Set color theme to light" +#~ msgstr "Farbthema auf hell einstellen" #: src/view/screens/Settings/index.tsx:475 -msgid "Set color theme to system setting" -msgstr "Farbthema auf Systemeinstellung setzen" +#~ msgid "Set color theme to system setting" +#~ msgstr "Farbthema auf Systemeinstellung setzen" #: src/view/screens/Settings/index.tsx:514 -msgid "Set dark theme to the dark theme" -msgstr "Dunkles Thema auf das dunkle Thema einstellen" +#~ msgid "Set dark theme to the dark theme" +#~ msgstr "Dunkles Thema auf das dunkle Thema einstellen" #: src/view/screens/Settings/index.tsx:507 -msgid "Set dark theme to the dim theme" -msgstr "Dunkles Thema auf das gedämpfte Thema einstellen" +#~ msgid "Set dark theme to the dim theme" +#~ msgstr "Dunkles Thema auf das gedämpfte Thema einstellen" #: src/view/com/auth/login/SetNewPasswordForm.tsx:104 msgid "Set new password" @@ -3442,6 +4104,26 @@ msgstr "Dein Konto einrichten" msgid "Sets Bluesky username" msgstr "Legt deinen Bluesky-Benutzernamen fest" +#: src/view/screens/Settings/index.tsx:503 +msgid "Sets color theme to dark" +msgstr "" + +#: src/view/screens/Settings/index.tsx:496 +msgid "Sets color theme to light" +msgstr "" + +#: src/view/screens/Settings/index.tsx:490 +msgid "Sets color theme to system setting" +msgstr "" + +#: src/view/screens/Settings/index.tsx:529 +msgid "Sets dark theme to the dark theme" +msgstr "" + +#: src/view/screens/Settings/index.tsx:522 +msgid "Sets dark theme to the dim theme" +msgstr "" + #: src/view/com/auth/login/ForgotPasswordForm.tsx:157 msgid "Sets email for password reset" msgstr "Legt die E-Mail für das Zurücksetzen des Passworts fest" @@ -3450,16 +4132,28 @@ msgstr "Legt die E-Mail für das Zurücksetzen des Passworts fest" msgid "Sets hosting provider for password reset" msgstr "Legt den Hosting-Anbieter für das Zurücksetzen des Passworts fest" +#: src/view/com/modals/crop-image/CropImage.web.tsx:123 +msgid "Sets image aspect ratio to square" +msgstr "" + +#: src/view/com/modals/crop-image/CropImage.web.tsx:113 +msgid "Sets image aspect ratio to tall" +msgstr "" + +#: src/view/com/modals/crop-image/CropImage.web.tsx:103 +msgid "Sets image aspect ratio to wide" +msgstr "" + #: src/view/com/auth/create/Step1.tsx:97 #: src/view/com/auth/login/LoginForm.tsx:151 msgid "Sets server for the Bluesky client" msgstr "Setzt den Server für den Bluesky-Client" -#: src/Navigation.tsx:137 -#: src/view/screens/Settings/index.tsx:294 -#: src/view/shell/desktop/LeftNav.tsx:433 -#: src/view/shell/Drawer.tsx:567 -#: src/view/shell/Drawer.tsx:568 +#: src/Navigation.tsx:139 +#: src/view/screens/Settings/index.tsx:309 +#: src/view/shell/desktop/LeftNav.tsx:437 +#: src/view/shell/Drawer.tsx:570 +#: src/view/shell/Drawer.tsx:571 msgid "Settings" msgstr "Einstellungen" @@ -3467,28 +4161,39 @@ msgstr "Einstellungen" msgid "Sexual activity or erotic nudity." msgstr "Sexuelle Aktivitäten oder erotische Nacktheit." +#: src/lib/moderation/useGlobalLabelStrings.ts:38 +msgid "Sexually Suggestive" +msgstr "" + #: src/view/com/lightbox/Lightbox.tsx:141 msgctxt "action" msgid "Share" msgstr "Teilen" -#: src/view/com/profile/ProfileHeader.tsx:295 -#: src/view/com/util/forms/PostDropdownBtn.tsx:231 +#: src/view/com/profile/ProfileMenu.tsx:215 +#: src/view/com/profile/ProfileMenu.tsx:224 +#: src/view/com/util/forms/PostDropdownBtn.tsx:228 #: src/view/com/util/forms/PostDropdownBtn.tsx:237 -#: src/view/com/util/post-ctrls/PostCtrls.tsx:215 -#: src/view/screens/ProfileList.tsx:418 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:218 +#: src/view/screens/ProfileList.tsx:388 msgid "Share" msgstr "Teilen" -#: src/view/screens/ProfileFeed.tsx:305 +#: src/view/com/profile/ProfileMenu.tsx:373 +#: src/view/com/util/forms/PostDropdownBtn.tsx:347 +msgid "Share anyway" +msgstr "" + +#: src/view/screens/ProfileFeed.tsx:361 +#: src/view/screens/ProfileFeed.tsx:363 msgid "Share feed" msgstr "Feed teilen" -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:43 -#: src/view/com/modals/ContentFilteringSettings.tsx:266 -#: src/view/com/util/moderation/ContentHider.tsx:107 -#: src/view/com/util/moderation/PostHider.tsx:108 -#: src/view/screens/Settings/index.tsx:344 +#: src/components/moderation/ContentHider.tsx:115 +#: src/components/moderation/GlobalModerationLabelPref.tsx:45 +#: src/components/moderation/PostHider.tsx:107 +#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:54 +#: src/view/screens/Settings/index.tsx:359 msgid "Show" msgstr "Anzeigen" @@ -3496,21 +4201,31 @@ msgstr "Anzeigen" msgid "Show all replies" msgstr "Alle Antworten anzeigen" -#: src/view/com/util/moderation/ScreenHider.tsx:132 +#: src/components/moderation/ScreenHider.tsx:162 +#: src/components/moderation/ScreenHider.tsx:165 msgid "Show anyway" msgstr "Trotzdem anzeigen" +#: src/lib/moderation/useLabelBehaviorDescription.ts:27 +#: src/lib/moderation/useLabelBehaviorDescription.ts:63 +msgid "Show badge" +msgstr "" + +#: src/lib/moderation/useLabelBehaviorDescription.ts:61 +msgid "Show badge and filter from feeds" +msgstr "" + #: src/view/com/modals/EmbedConsent.tsx:87 msgid "Show embeds from {0}" msgstr "Eingebettete Medien von {0} anzeigen" -#: src/view/com/profile/ProfileHeader.tsx:459 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:193 msgid "Show follows similar to {0}" msgstr "Zeige ähnliche Konten wie {0}" -#: src/view/com/post-thread/PostThreadItem.tsx:538 -#: src/view/com/post/Post.tsx:198 -#: src/view/com/posts/FeedItem.tsx:363 +#: src/view/com/post-thread/PostThreadItem.tsx:507 +#: src/view/com/post/Post.tsx:201 +#: src/view/com/posts/FeedItem.tsx:355 msgid "Show More" msgstr "Mehr anzeigen" @@ -3562,40 +4277,48 @@ msgstr "Reposts anzeigen" msgid "Show reposts in Following" msgstr "Reposts im Following-Feed anzeigen" -#: src/view/com/util/moderation/ContentHider.tsx:67 -#: src/view/com/util/moderation/PostHider.tsx:61 +#: src/components/moderation/ContentHider.tsx:68 +#: src/components/moderation/PostHider.tsx:64 msgid "Show the content" msgstr "Den Inhalt anzeigen" -#: src/view/com/notifications/FeedItem.tsx:347 +#: src/view/com/notifications/FeedItem.tsx:351 msgid "Show users" msgstr "Nutzer anzeigen" +#: src/lib/moderation/useLabelBehaviorDescription.ts:58 +msgid "Show warning" +msgstr "" + +#: src/lib/moderation/useLabelBehaviorDescription.ts:56 +msgid "Show warning and filter from feeds" +msgstr "" + #: src/view/com/profile/ProfileHeader.tsx:462 -msgid "Shows a list of users similar to this user." -msgstr "Zeigt eine Liste von Benutzern, die diesem Benutzer ähnlich sind." +#~ msgid "Shows a list of users similar to this user." +#~ msgstr "Zeigt eine Liste von Benutzern, die diesem Benutzer ähnlich sind." -#: src/view/com/post-thread/PostThreadFollowBtn.tsx:124 -#: src/view/com/profile/ProfileHeader.tsx:506 +#: src/view/com/post-thread/PostThreadFollowBtn.tsx:127 msgid "Shows posts from {0} in your feed" msgstr "Zeigt Beiträge von {0} in deinem Feed" -#: src/view/com/auth/HomeLoggedOutCTA.tsx:70 +#: src/view/com/auth/HomeLoggedOutCTA.tsx:72 #: src/view/com/auth/login/Login.tsx:98 -#: src/view/com/auth/SplashScreen.tsx:79 -#: src/view/shell/bottom-bar/BottomBar.tsx:285 -#: src/view/shell/bottom-bar/BottomBar.tsx:286 -#: src/view/shell/bottom-bar/BottomBar.tsx:288 +#: src/view/com/auth/SplashScreen.tsx:81 +#: src/view/shell/bottom-bar/BottomBar.tsx:289 +#: src/view/shell/bottom-bar/BottomBar.tsx:290 +#: src/view/shell/bottom-bar/BottomBar.tsx:292 #: src/view/shell/bottom-bar/BottomBarWeb.tsx:178 #: src/view/shell/bottom-bar/BottomBarWeb.tsx:179 #: src/view/shell/bottom-bar/BottomBarWeb.tsx:181 #: src/view/shell/NavSignupCard.tsx:58 #: src/view/shell/NavSignupCard.tsx:59 +#: src/view/shell/NavSignupCard.tsx:61 msgid "Sign in" msgstr "Anmelden" -#: src/view/com/auth/HomeLoggedOutCTA.tsx:78 -#: src/view/com/auth/SplashScreen.tsx:82 +#: src/view/com/auth/HomeLoggedOutCTA.tsx:82 +#: src/view/com/auth/SplashScreen.tsx:86 #: src/view/com/auth/SplashScreen.web.tsx:91 msgid "Sign In" msgstr "Anmelden" @@ -3604,7 +4327,7 @@ msgstr "Anmelden" msgid "Sign in as {0}" msgstr "Anmelden als {0}" -#: src/view/com/auth/login/ChooseAccountForm.tsx:118 +#: src/view/com/auth/login/ChooseAccountForm.tsx:122 #: src/view/com/auth/login/Login.tsx:116 msgid "Sign in as..." msgstr "Anmelden als..." @@ -3613,16 +4336,16 @@ msgstr "Anmelden als..." msgid "Sign into" msgstr "Anmelden bei" -#: src/view/com/modals/SwitchAccount.tsx:64 -#: src/view/com/modals/SwitchAccount.tsx:69 -#: src/view/screens/Settings/index.tsx:100 -#: src/view/screens/Settings/index.tsx:103 +#: src/view/com/modals/SwitchAccount.tsx:68 +#: src/view/com/modals/SwitchAccount.tsx:73 +#: src/view/screens/Settings/index.tsx:105 +#: src/view/screens/Settings/index.tsx:108 msgid "Sign out" msgstr "Abmelden" -#: src/view/shell/bottom-bar/BottomBar.tsx:275 -#: src/view/shell/bottom-bar/BottomBar.tsx:276 -#: src/view/shell/bottom-bar/BottomBar.tsx:278 +#: src/view/shell/bottom-bar/BottomBar.tsx:279 +#: src/view/shell/bottom-bar/BottomBar.tsx:280 +#: src/view/shell/bottom-bar/BottomBar.tsx:282 #: src/view/shell/bottom-bar/BottomBarWeb.tsx:168 #: src/view/shell/bottom-bar/BottomBarWeb.tsx:169 #: src/view/shell/bottom-bar/BottomBarWeb.tsx:171 @@ -3636,25 +4359,26 @@ msgstr "Registrieren" msgid "Sign up or sign in to join the conversation" msgstr "Registriere dich oder melden dich an, um an der Diskussion teilzunehmen" -#: src/view/com/util/moderation/ScreenHider.tsx:76 +#: src/components/moderation/ScreenHider.tsx:98 +#: src/lib/moderation/useGlobalLabelStrings.ts:28 msgid "Sign-in Required" msgstr "Anmelden erforderlich" -#: src/view/screens/Settings/index.tsx:355 +#: src/view/screens/Settings/index.tsx:370 msgid "Signed in as" msgstr "Angemeldet als" -#: src/view/com/auth/login/ChooseAccountForm.tsx:103 +#: src/view/com/auth/login/ChooseAccountForm.tsx:107 msgid "Signed in as @{0}" msgstr "Angemeldet als @{0}" -#: src/view/com/modals/SwitchAccount.tsx:66 +#: src/view/com/modals/SwitchAccount.tsx:70 msgid "Signs {0} out of Bluesky" msgstr "Meldet {0} von Bluesky ab" #: src/screens/Onboarding/StepInterests/index.tsx:235 #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:195 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:33 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:35 msgid "Skip" msgstr "Überspringen" @@ -3666,11 +4390,17 @@ msgstr "Diesen Schritt überspringen" msgid "Software Dev" msgstr "Software-Entwicklung" +#: src/components/ReportDialog/index.tsx:52 +#: src/screens/Moderation/index.tsx:116 +#: src/screens/Profile/Sections/Labels.tsx:77 +msgid "Something went wrong, please try again." +msgstr "" + #: src/components/Lists.tsx:203 -msgid "Something went wrong!" -msgstr "Es ist ein Fehler aufgetreten." +#~ msgid "Something went wrong!" +#~ msgstr "Es ist ein Fehler aufgetreten." -#: src/App.native.tsx:66 +#: src/App.native.tsx:71 msgid "Sorry! Your session expired. Please log in again." msgstr "Entschuldigung! Deine Sitzung ist abgelaufen. Bitte logge dich erneut ein." @@ -3682,6 +4412,18 @@ msgstr "Antworten sortieren" msgid "Sort replies to the same post by:" msgstr "Antworten auf denselben Beitrag sortieren nach:" +#: src/components/moderation/LabelsOnMeDialog.tsx:147 +msgid "Source:" +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:65 +msgid "Spam" +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:53 +msgid "Spam; excessive mentions or replies" +msgstr "" + #: src/screens/Onboarding/index.tsx:30 msgid "Sports" msgstr "Sport" @@ -3690,7 +4432,7 @@ msgstr "Sport" msgid "Square" msgstr "Quadratische" -#: src/view/screens/Settings/index.tsx:871 +#: src/view/screens/Settings/index.tsx:901 msgid "Status page" msgstr "Status-Seite" @@ -3698,37 +4440,50 @@ msgstr "Status-Seite" msgid "Step {0} of {numSteps}" msgstr "Schritt {0} von {numSteps}" -#: src/view/screens/Settings/index.tsx:274 +#: src/view/screens/Settings/index.tsx:288 msgid "Storage cleared, you need to restart the app now." msgstr "Der Speicher wurde gelöscht, du musst die App jetzt neu starten." -#: src/Navigation.tsx:204 -#: src/view/screens/Settings/index.tsx:807 +#: src/Navigation.tsx:211 +#: src/view/screens/Settings/index.tsx:827 msgid "Storybook" msgstr "Geschichtenbuch" -#: src/view/com/modals/AppealLabel.tsx:101 +#: src/components/moderation/LabelsOnMeDialog.tsx:256 +#: src/components/moderation/LabelsOnMeDialog.tsx:257 msgid "Submit" msgstr "Einreichen" -#: src/view/screens/ProfileList.tsx:608 +#: src/view/screens/ProfileList.tsx:590 msgid "Subscribe" msgstr "Abonnieren" +#: src/screens/Profile/Sections/Labels.tsx:181 +msgid "Subscribe to @{0} to use these labels:" +msgstr "" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:222 +msgid "Subscribe to Labeler" +msgstr "" + #: src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx:173 #: src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx:308 msgid "Subscribe to the {0} feed" msgstr "Abonniere den {0} Feed" -#: src/view/screens/ProfileList.tsx:604 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:185 +msgid "Subscribe to this labeler" +msgstr "" + +#: src/view/screens/ProfileList.tsx:586 msgid "Subscribe to this list" msgstr "Abonniere diese Liste" -#: src/view/screens/Search/Search.tsx:374 +#: src/view/screens/Search/Search.tsx:375 msgid "Suggested Follows" msgstr "Vorgeschlagene Follower" -#: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:64 +#: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:65 msgid "Suggested for you" msgstr "Vorgeschlagen für dich" @@ -3736,35 +4491,35 @@ msgstr "Vorgeschlagen für dich" msgid "Suggestive" msgstr "Suggestiv" -#: src/Navigation.tsx:214 +#: src/Navigation.tsx:226 #: src/view/screens/Support.tsx:30 #: src/view/screens/Support.tsx:33 msgid "Support" msgstr "Support" -#: src/view/com/modals/SwitchAccount.tsx:117 +#: src/view/com/modals/SwitchAccount.tsx:121 msgid "Switch Account" msgstr "Konto wechseln" -#: src/view/com/modals/SwitchAccount.tsx:97 -#: src/view/screens/Settings/index.tsx:130 +#: src/view/com/modals/SwitchAccount.tsx:101 +#: src/view/screens/Settings/index.tsx:135 msgid "Switch to {0}" msgstr "Wechseln zu {0}" -#: src/view/com/modals/SwitchAccount.tsx:98 -#: src/view/screens/Settings/index.tsx:131 +#: src/view/com/modals/SwitchAccount.tsx:102 +#: src/view/screens/Settings/index.tsx:136 msgid "Switches the account you are logged in to" msgstr "Wechselt das Konto, in das du eingeloggt bist" -#: src/view/screens/Settings/index.tsx:472 +#: src/view/screens/Settings/index.tsx:487 msgid "System" msgstr "System" -#: src/view/screens/Settings/index.tsx:795 +#: src/view/screens/Settings/index.tsx:815 msgid "System log" msgstr "Systemprotokoll" -#: src/components/dialogs/MutedWords.tsx:337 +#: src/components/dialogs/MutedWords.tsx:324 msgid "tag" msgstr "Tag" @@ -3788,30 +4543,49 @@ msgstr "Technik" msgid "Terms" msgstr "Bedingungen" -#: src/Navigation.tsx:224 -#: src/view/screens/Settings/index.tsx:885 +#: src/Navigation.tsx:236 +#: src/view/com/auth/create/Policies.tsx:59 +#: src/view/screens/Settings/index.tsx:915 #: src/view/screens/TermsOfService.tsx:29 -#: src/view/shell/Drawer.tsx:256 +#: src/view/shell/Drawer.tsx:259 msgid "Terms of Service" msgstr "Nutzungsbedingungen" -#: src/components/dialogs/MutedWords.tsx:337 +#: src/lib/moderation/useReportOptions.ts:58 +#: src/lib/moderation/useReportOptions.ts:79 +#: src/lib/moderation/useReportOptions.ts:87 +msgid "Terms used violate community standards" +msgstr "" + +#: src/components/dialogs/MutedWords.tsx:324 msgid "text" msgstr "Text" -#: src/view/com/modals/AppealLabel.tsx:70 -#: src/view/com/modals/report/InputIssueDetails.tsx:51 +#: src/components/moderation/LabelsOnMeDialog.tsx:220 msgid "Text input field" msgstr "Text-Eingabefeld" +#: src/components/ReportDialog/SubmitView.tsx:78 +msgid "Thank you. Your report has been sent." +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:466 +msgid "That contains the following:" +msgstr "" + #: src/view/com/auth/create/CreateAccount.tsx:94 msgid "That handle is already taken." msgstr "Dieser Handle ist bereits besetzt." -#: src/view/com/profile/ProfileHeader.tsx:263 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:274 +#: src/view/com/profile/ProfileMenu.tsx:349 msgid "The account will be able to interact with you after unblocking." msgstr "Das Konto kann nach der Entblockiert mit dir interagieren." +#: src/components/moderation/ModerationDetailsDialog.tsx:128 +msgid "the author" +msgstr "" + #: src/view/screens/CommunityGuidelines.tsx:36 msgid "The Community Guidelines have been moved to <0/>" msgstr "Die Community-Richtlinien wurden nach <0/> verschoben" @@ -3820,11 +4594,20 @@ msgstr "Die Community-Richtlinien wurden nach <0/> verschoben" msgid "The Copyright Policy has been moved to <0/>" msgstr "Die Copyright-Richtlinie wurde nach <0/> verschoben" +#: src/components/moderation/LabelsOnMeDialog.tsx:49 +msgid "The following labels were applied to your account." +msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:50 +msgid "The following labels were applied to your content." +msgstr "" + #: src/screens/Onboarding/Layout.tsx:60 msgid "The following steps will help customize your Bluesky experience." msgstr "Die folgenden Schritte helfen dir, dein Bluesky-Erlebnis anzupassen." -#: src/view/com/post-thread/PostThread.tsx:517 +#: src/view/com/post-thread/PostThread.tsx:153 +#: src/view/com/post-thread/PostThread.tsx:165 msgid "The post may have been deleted." msgstr "Möglicherweise wurde der Post gelöscht." @@ -3844,20 +4627,21 @@ msgstr "Die Allgemeinen Geschäftsbedingungen wurden verschoben nach" msgid "There are many feeds to try:" msgstr "Es gibt viele Feeds zum Ausprobieren:" -#: src/view/screens/ProfileFeed.tsx:550 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:113 +#: src/view/screens/ProfileFeed.tsx:543 msgid "There was an an issue contacting the server, please check your internet connection and try again." msgstr "Es gab ein Problem bei der Kontaktaufnahme mit dem Server. Bitte überprüfe deine Internetverbindung und versuche es erneut." -#: src/view/com/posts/FeedErrorMessage.tsx:139 +#: src/view/com/posts/FeedErrorMessage.tsx:138 msgid "There was an an issue removing this feed. Please check your internet connection and try again." msgstr "Es gab ein Problem beim Entfernen dieses Feeds. Bitte überprüfe deine Internetverbindung und versuche es erneut." -#: src/view/screens/ProfileFeed.tsx:210 +#: src/view/screens/ProfileFeed.tsx:217 msgid "There was an an issue updating your feeds, please check your internet connection and try again." msgstr "Es gab ein Problem bei der Aktualisierung deines Feeds. Bitte überprüfe deine Internetverbindung und versuche es erneut." -#: src/view/screens/ProfileFeed.tsx:237 -#: src/view/screens/ProfileList.tsx:267 +#: src/view/screens/ProfileFeed.tsx:244 +#: src/view/screens/ProfileList.tsx:275 #: src/view/screens/SavedFeeds.tsx:209 #: src/view/screens/SavedFeeds.tsx:231 #: src/view/screens/SavedFeeds.tsx:252 @@ -3866,9 +4650,8 @@ msgstr "Es gab ein Problem bei der Kontaktaufnahme mit dem Server" #: src/view/com/auth/onboarding/RecommendedFeedsItem.tsx:57 #: src/view/com/auth/onboarding/RecommendedFeedsItem.tsx:66 -#: src/view/com/feeds/FeedSourceCard.tsx:115 -#: src/view/com/feeds/FeedSourceCard.tsx:129 -#: src/view/com/feeds/FeedSourceCard.tsx:183 +#: src/view/com/feeds/FeedSourceCard.tsx:110 +#: src/view/com/feeds/FeedSourceCard.tsx:123 msgid "There was an issue contacting your server" msgstr "Es gab ein Problem bei der Kontaktaufnahme mit deinem Server" @@ -3876,7 +4659,7 @@ msgstr "Es gab ein Problem bei der Kontaktaufnahme mit deinem Server" msgid "There was an issue fetching notifications. Tap here to try again." msgstr "Es gab ein Problem beim Abrufen von Mitteilungen. Tippe hier, um es erneut zu versuchen." -#: src/view/com/posts/Feed.tsx:265 +#: src/view/com/posts/Feed.tsx:283 msgid "There was an issue fetching posts. Tap here to try again." msgstr "Es gab ein Problem beim Abrufen der Beiträge. Tippe hier, um es erneut zu versuchen." @@ -3889,34 +4672,40 @@ msgstr "Es gab ein Problem beim Abrufen der Liste. Tippe hier, um es erneut zu v msgid "There was an issue fetching your lists. Tap here to try again." msgstr "Es gab ein Problem beim Abrufen deiner Listen. Tippe hier, um es erneut zu versuchen." -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:63 -#: src/view/com/modals/ContentFilteringSettings.tsx:126 +#: src/components/ReportDialog/SubmitView.tsx:83 +msgid "There was an issue sending your report. Please check your internet connection." +msgstr "" + +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:65 msgid "There was an issue syncing your preferences with the server" msgstr "Es gab ein Problem bei der Synchronisierung deiner Einstellungen mit dem Server" -#: src/view/screens/AppPasswords.tsx:66 +#: src/view/screens/AppPasswords.tsx:68 msgid "There was an issue with fetching your app passwords" msgstr "Es gab ein Problem beim Abrufen deiner App-Passwörter" -#: src/view/com/post-thread/PostThreadFollowBtn.tsx:93 -#: src/view/com/post-thread/PostThreadFollowBtn.tsx:105 -#: src/view/com/profile/ProfileHeader.tsx:157 -#: src/view/com/profile/ProfileHeader.tsx:178 -#: src/view/com/profile/ProfileHeader.tsx:217 -#: src/view/com/profile/ProfileHeader.tsx:230 -#: src/view/com/profile/ProfileHeader.tsx:250 -#: src/view/com/profile/ProfileHeader.tsx:272 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:98 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:120 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:134 +#: src/view/com/post-thread/PostThreadFollowBtn.tsx:96 +#: src/view/com/post-thread/PostThreadFollowBtn.tsx:108 +#: src/view/com/profile/ProfileMenu.tsx:106 +#: src/view/com/profile/ProfileMenu.tsx:117 +#: src/view/com/profile/ProfileMenu.tsx:132 +#: src/view/com/profile/ProfileMenu.tsx:143 +#: src/view/com/profile/ProfileMenu.tsx:157 +#: src/view/com/profile/ProfileMenu.tsx:170 msgid "There was an issue! {0}" msgstr "Es gab ein Problem! {0}" #: src/view/screens/ProfileList.tsx:288 -#: src/view/screens/ProfileList.tsx:307 -#: src/view/screens/ProfileList.tsx:329 -#: src/view/screens/ProfileList.tsx:348 +#: src/view/screens/ProfileList.tsx:302 +#: src/view/screens/ProfileList.tsx:316 +#: src/view/screens/ProfileList.tsx:330 msgid "There was an issue. Please check your internet connection and try again." msgstr "Es ist ein Problem aufgetreten. Bitte überprüfe deine Internetverbindung und versuche es erneut." -#: src/view/com/util/ErrorBoundary.tsx:36 +#: src/view/com/util/ErrorBoundary.tsx:51 msgid "There was an unexpected issue in the application. Please let us know if this happened to you!" msgstr "Es gab ein unerwartetes Problem in der Anwendung. Bitte teile uns mit, wenn dies bei dir der Fall ist!" @@ -3928,19 +4717,32 @@ msgstr "Es gab einen Ansturm neuer Nutzer auf Bluesky! Wir werden dein Konto so msgid "These are popular accounts you might like:" msgstr "Dies sind beliebte Konten, die dir gefallen könnten:" -#: src/view/com/util/moderation/ScreenHider.tsx:88 +#: src/components/moderation/ScreenHider.tsx:117 msgid "This {screenDescription} has been flagged:" msgstr "Diese {screenDescription} wurde gekennzeichnet:" -#: src/view/com/util/moderation/ScreenHider.tsx:83 +#: src/components/moderation/ScreenHider.tsx:112 msgid "This account has requested that users sign in to view their profile." msgstr "Dieses Konto hat die Benutzer aufgefordert, sich anzumelden, um dein Profil zu sehen." +#: src/components/moderation/LabelsOnMeDialog.tsx:205 +msgid "This appeal will be sent to <0>{0}." +msgstr "" + +#: src/lib/moderation/useGlobalLabelStrings.ts:19 +msgid "This content has been hidden by the moderators." +msgstr "" + +#: src/lib/moderation/useGlobalLabelStrings.ts:24 +msgid "This content has received a general warning from moderators." +msgstr "" + #: src/view/com/modals/EmbedConsent.tsx:68 msgid "This content is hosted by {0}. Do you want to enable external media?" msgstr "Dieser Inhalt wird von {0} gehostet. Möchtest du externe Medien aktivieren?" -#: src/view/com/modals/ModerationDetails.tsx:67 +#: src/components/moderation/ModerationDetailsDialog.tsx:78 +#: src/lib/moderation/useModerationCauseDescription.ts:77 msgid "This content is not available because one of the users involved has blocked the other." msgstr "Dieser Inhalt ist nicht verfügbar, weil einer der beteiligten Nutzer den anderen blockiert hat." @@ -3949,16 +4751,20 @@ msgid "This content is not viewable without a Bluesky account." msgstr "Dieser Inhalt ist ohne ein Bluesky-Konto nicht sichtbar." #: src/view/screens/Settings/ExportCarDialog.tsx:75 -msgid "This feature is in beta. You can read more about repository exports in <0>this blogpost." -msgstr "Diese Funktion befindet sich in der Beta-Phase. Du kannst mehr über Kontodepot-Exporte in <0>diesem Blogpost lesen." +#~ msgid "This feature is in beta. You can read more about repository exports in <0>this blogpost." +#~ msgstr "Diese Funktion befindet sich in der Beta-Phase. Du kannst mehr über Kontodepot-Exporte in <0>diesem Blogpost lesen." + +#: src/view/screens/Settings/ExportCarDialog.tsx:75 +msgid "This feature is in beta. You can read more about repository exports in <0>this blogpost." +msgstr "" #: src/view/com/posts/FeedErrorMessage.tsx:114 msgid "This feed is currently receiving high traffic and is temporarily unavailable. Please try again later." msgstr "Dieser Feed wird derzeit stark frequentiert und ist vorübergehend nicht verfügbar. Bitte versuche es später erneut." -#: src/view/screens/Profile.tsx:420 +#: src/screens/Profile/Sections/Feed.tsx:50 #: src/view/screens/ProfileFeed.tsx:476 -#: src/view/screens/ProfileList.tsx:661 +#: src/view/screens/ProfileList.tsx:675 msgid "This feed is empty!" msgstr "Dieser Feed ist leer!" @@ -3966,7 +4772,7 @@ msgstr "Dieser Feed ist leer!" msgid "This feed is empty! You may need to follow more users or tune your language settings." msgstr "Dieser Feed ist leer! Möglicherweise musst du mehr Benutzern folgen oder deine Spracheinstellungen anpassen." -#: src/view/com/modals/BirthDateSettings.tsx:61 +#: src/components/dialogs/BirthDateSettings.tsx:41 msgid "This information is not shared with other users." msgstr "Diese Informationen werden nicht an andere Nutzer weitergegeben." @@ -3974,14 +4780,26 @@ msgstr "Diese Informationen werden nicht an andere Nutzer weitergegeben." msgid "This is important in case you ever need to change your email or reset your password." msgstr "Das ist wichtig für den Fall, dass du mal deine E-Mail ändern oder dein Passwort zurücksetzen musst." +#: src/components/moderation/ModerationDetailsDialog.tsx:125 +msgid "This label was applied by {0}." +msgstr "" + +#: src/screens/Profile/Sections/Labels.tsx:168 +msgid "This labeler hasn't declared what labels it publishes, and may not be active." +msgstr "" + #: src/view/com/modals/LinkWarning.tsx:58 msgid "This link is taking you to the following website:" msgstr "Dieser Link führt dich auf die folgende Website:" -#: src/view/screens/ProfileList.tsx:839 +#: src/view/screens/ProfileList.tsx:853 msgid "This list is empty!" msgstr "Diese Liste ist leer!" +#: src/screens/Profile/ErrorState.tsx:40 +msgid "This moderation service is unavailable. See below for more details. If this issue persists, contact us." +msgstr "" + #: src/view/com/modals/AddAppPasswords.tsx:106 msgid "This name is already in use" msgstr "Dieser Name ist bereits in Gebrauch" @@ -3990,32 +4808,77 @@ msgstr "Dieser Name ist bereits in Gebrauch" msgid "This post has been deleted." msgstr "Dieser Beitrag wurde gelöscht." -#: src/view/com/modals/ModerationDetails.tsx:62 +#: src/view/com/util/forms/PostDropdownBtn.tsx:344 +msgid "This post is only visible to logged-in users. It won't be visible to people who aren't logged in." +msgstr "" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:326 +msgid "This post will be hidden from feeds." +msgstr "" + +#: src/view/com/profile/ProfileMenu.tsx:370 +msgid "This profile is only visible to logged-in users. It won't be visible to people who aren't logged in." +msgstr "" + +#: src/view/com/auth/create/Policies.tsx:46 +msgid "This service has not provided terms of service or a privacy policy." +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:446 +msgid "This should create a domain record at:" +msgstr "" + +#: src/view/com/profile/ProfileFollowers.tsx:95 +msgid "This user doesn't have any followers." +msgstr "" + +#: src/components/moderation/ModerationDetailsDialog.tsx:73 +#: src/lib/moderation/useModerationCauseDescription.ts:68 msgid "This user has blocked you. You cannot view their content." msgstr "Dieser Benutzer hat dich blockiert. Du kannst deren Inhalte nicht sehen." +#: src/lib/moderation/useGlobalLabelStrings.ts:30 +msgid "This user has requested that their content only be shown to signed-in users." +msgstr "" + #: src/view/com/modals/ModerationDetails.tsx:42 -msgid "This user is included in the <0/> list which you have blocked." -msgstr "Dieser Benutzer ist in der Liste <0/> enthalten, die du blockiert hast." +#~ msgid "This user is included in the <0/> list which you have blocked." +#~ msgstr "Dieser Benutzer ist in der Liste <0/> enthalten, die du blockiert hast." #: src/view/com/modals/ModerationDetails.tsx:74 -msgid "This user is included in the <0/> list which you have muted." -msgstr "Dieser Benutzer ist in der Liste <0/> enthalten, die du stummgeschaltet haben." +#~ msgid "This user is included in the <0/> list which you have muted." +#~ msgstr "Dieser Benutzer ist in der Liste <0/> enthalten, die du stummgeschaltet haben." + +#: src/components/moderation/ModerationDetailsDialog.tsx:56 +msgid "This user is included in the <0>{0} list which you have blocked." +msgstr "" + +#: src/components/moderation/ModerationDetailsDialog.tsx:85 +msgid "This user is included in the <0>{0} list which you have muted." +msgstr "" + +#: src/view/com/profile/ProfileFollows.tsx:94 +msgid "This user isn't following anyone." +msgstr "" #: src/view/com/modals/SelfLabel.tsx:137 msgid "This warning is only available for posts with media attached." msgstr "Diese Warnung ist nur für Beiträge mit angehängten Medien verfügbar." -#: src/components/dialogs/MutedWords.tsx:285 +#: src/components/dialogs/MutedWords.tsx:284 msgid "This will delete {0} from your muted words. You can always add it back later." msgstr "Dies wird {0} aus deinen stummgeschalteten Wörtern löschen. Du kannst es später jederzeit wieder hinzufügen." #: src/view/com/util/forms/PostDropdownBtn.tsx:282 -msgid "This will hide this post from your feeds." -msgstr "Dadurch wird dieser Beitrag aus deinen Feeds ausgeblendet." +#~ msgid "This will hide this post from your feeds." +#~ msgstr "Dadurch wird dieser Beitrag aus deinen Feeds ausgeblendet." + +#: src/view/screens/Settings/index.tsx:570 +msgid "Thread preferences" +msgstr "" #: src/view/screens/PreferencesThreads.tsx:53 -#: src/view/screens/Settings/index.tsx:565 +#: src/view/screens/Settings/index.tsx:580 msgid "Thread Preferences" msgstr "Thread-Einstellungen" @@ -4023,10 +4886,14 @@ msgstr "Thread-Einstellungen" msgid "Threaded Mode" msgstr "Gewindemodus" -#: src/Navigation.tsx:257 +#: src/Navigation.tsx:269 msgid "Threads Preferences" msgstr "Thread-Einstellungen" +#: src/components/ReportDialog/SelectLabelerView.tsx:35 +msgid "To whom would you like to send this report?" +msgstr "" + #: src/components/dialogs/MutedWords.tsx:113 msgid "Toggle between muted word options." msgstr "Zwischen den Optionen für stummgeschaltete Wörter wechseln." @@ -4035,14 +4902,18 @@ msgstr "Zwischen den Optionen für stummgeschaltete Wörter wechseln." msgid "Toggle dropdown" msgstr "Dieses Dropdown umschalten" +#: src/screens/Moderation/index.tsx:334 +msgid "Toggle to enable or disable adult content" +msgstr "" + #: src/view/com/modals/EditImage.tsx:271 msgid "Transformations" msgstr "Verwandlungen" -#: src/view/com/post-thread/PostThreadItem.tsx:685 -#: src/view/com/post-thread/PostThreadItem.tsx:687 -#: src/view/com/util/forms/PostDropdownBtn.tsx:215 -#: src/view/com/util/forms/PostDropdownBtn.tsx:217 +#: src/view/com/post-thread/PostThreadItem.tsx:644 +#: src/view/com/post-thread/PostThreadItem.tsx:646 +#: src/view/com/util/forms/PostDropdownBtn.tsx:212 +#: src/view/com/util/forms/PostDropdownBtn.tsx:214 msgid "Translate" msgstr "Übersetzen" @@ -4051,11 +4922,15 @@ msgctxt "action" msgid "Try again" msgstr "Erneut versuchen" -#: src/view/screens/ProfileList.tsx:506 +#: src/view/com/modals/ChangeHandle.tsx:429 +msgid "Type:" +msgstr "" + +#: src/view/screens/ProfileList.tsx:478 msgid "Un-block list" msgstr "Liste entblocken" -#: src/view/screens/ProfileList.tsx:491 +#: src/view/screens/ProfileList.tsx:461 msgid "Un-mute list" msgstr "Stummschaltung von Liste aufheben" @@ -4067,21 +4942,28 @@ msgstr "Stummschaltung von Liste aufheben" msgid "Unable to contact your service. Please check your Internet connection." msgstr "Es ist uns nicht gelungen, deinen Dienst zu kontaktieren. Bitte überprüfe deine Internetverbindung." -#: src/view/com/profile/ProfileHeader.tsx:433 -#: src/view/screens/ProfileList.tsx:590 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:174 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:278 +#: src/view/com/profile/ProfileMenu.tsx:361 +#: src/view/screens/ProfileList.tsx:572 msgid "Unblock" msgstr "Entblocken" -#: src/view/com/profile/ProfileHeader.tsx:436 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:179 msgctxt "action" msgid "Unblock" msgstr "Entblocken" -#: src/view/com/profile/ProfileHeader.tsx:261 -#: src/view/com/profile/ProfileHeader.tsx:345 +#: src/view/com/profile/ProfileMenu.tsx:299 +#: src/view/com/profile/ProfileMenu.tsx:305 msgid "Unblock Account" msgstr "Konto entblocken" +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:272 +#: src/view/com/profile/ProfileMenu.tsx:343 +msgid "Unblock Account?" +msgstr "" + #: src/view/com/modals/Repost.tsx:42 #: src/view/com/modals/Repost.tsx:55 #: src/view/com/util/post-ctrls/RepostButton.tsx:60 @@ -4089,25 +4971,39 @@ msgstr "Konto entblocken" msgid "Undo repost" msgstr "Repost rückgängig machen" -#: src/view/com/profile/FollowButton.tsx:55 +#: src/view/com/auth/onboarding/RecommendedFollowsItem.tsx:141 +#: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:246 +msgid "Unfollow" +msgstr "" + +#: src/view/com/profile/FollowButton.tsx:60 msgctxt "action" msgid "Unfollow" msgstr "Nicht mehr folgen" -#: src/view/com/profile/ProfileHeader.tsx:485 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:213 msgid "Unfollow {0}" msgstr "{0} nicht mehr folgen" +#: src/view/com/profile/ProfileMenu.tsx:241 +#: src/view/com/profile/ProfileMenu.tsx:251 +msgid "Unfollow Account" +msgstr "" + #: src/view/com/auth/create/state.ts:262 msgid "Unfortunately, you do not meet the requirements to create an account." msgstr "Leider erfüllst du nicht die Voraussetzungen, um einen Account zu erstellen." -#: src/view/com/util/post-ctrls/PostCtrls.tsx:182 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:185 msgid "Unlike" msgstr "Like aufheben" +#: src/view/screens/ProfileFeed.tsx:572 +msgid "Unlike this feed" +msgstr "" + #: src/components/TagMenu/index.tsx:249 -#: src/view/screens/ProfileList.tsx:597 +#: src/view/screens/ProfileList.tsx:579 msgid "Unmute" msgstr "Stummschaltung aufheben" @@ -4115,7 +5011,8 @@ msgstr "Stummschaltung aufheben" msgid "Unmute {truncatedTag}" msgstr "Stummschaltung von {truncatedTag} aufheben" -#: src/view/com/profile/ProfileHeader.tsx:326 +#: src/view/com/profile/ProfileMenu.tsx:278 +#: src/view/com/profile/ProfileMenu.tsx:284 msgid "Unmute Account" msgstr "Stummschaltung von Konto aufheben" @@ -4128,26 +5025,46 @@ msgstr "Stummschaltung aller {displayTag}-Beiträge aufheben" msgid "Unmute thread" msgstr "Stummschaltung von Thread aufheben" -#: src/view/screens/ProfileFeed.tsx:354 -#: src/view/screens/ProfileList.tsx:581 +#: src/view/screens/ProfileFeed.tsx:294 +#: src/view/screens/ProfileList.tsx:563 msgid "Unpin" msgstr "Anheften aufheben" -#: src/view/screens/ProfileList.tsx:474 +#: src/view/screens/ProfileFeed.tsx:291 +msgid "Unpin from home" +msgstr "" + +#: src/view/screens/ProfileList.tsx:444 msgid "Unpin moderation list" msgstr "Anheften der Moderationsliste aufheben" #: src/view/screens/ProfileFeed.tsx:346 -msgid "Unsave" -msgstr "Speicherung aufheben" +#~ msgid "Unsave" +#~ msgstr "Speicherung aufheben" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:220 +msgid "Unsubscribe" +msgstr "" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:184 +msgid "Unsubscribe from this labeler" +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:70 +msgid "Unwanted Sexual Content" +msgstr "" #: src/view/com/modals/UserAddRemoveLists.tsx:70 msgid "Update {displayName} in Lists" msgstr "{displayName} in Listen aktualisieren" #: src/lib/hooks/useOTAUpdate.ts:15 -msgid "Update Available" -msgstr "Update verfügbar" +#~ msgid "Update Available" +#~ msgstr "Update verfügbar" + +#: src/view/com/modals/ChangeHandle.tsx:509 +msgid "Update to {handle}" +msgstr "" #: src/view/com/auth/login/SetNewPasswordForm.tsx:204 msgid "Updating..." @@ -4157,11 +5074,38 @@ msgstr "Aktualisieren..." msgid "Upload a text file to:" msgstr "Hochladen einer Textdatei auf:" -#: src/view/screens/AppPasswords.tsx:195 +#: src/view/com/util/UserAvatar.tsx:326 +#: src/view/com/util/UserAvatar.tsx:329 +#: src/view/com/util/UserBanner.tsx:116 +#: src/view/com/util/UserBanner.tsx:119 +msgid "Upload from Camera" +msgstr "" + +#: src/view/com/util/UserAvatar.tsx:343 +#: src/view/com/util/UserBanner.tsx:133 +msgid "Upload from Files" +msgstr "" + +#: src/view/com/util/UserAvatar.tsx:337 +#: src/view/com/util/UserAvatar.tsx:341 +#: src/view/com/util/UserBanner.tsx:127 +#: src/view/com/util/UserBanner.tsx:131 +msgid "Upload from Library" +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:409 +msgid "Use a file on your server" +msgstr "" + +#: src/view/screens/AppPasswords.tsx:197 msgid "Use app passwords to login to other Bluesky clients without giving full access to your account or password." msgstr "Verwende App-Passwörter, um dich bei anderen Bluesky-Clients anzumelden, ohne dass du vollen Zugriff auf deinen Account oder Passwort hast." -#: src/view/com/modals/ChangeHandle.tsx:515 +#: src/view/com/modals/ChangeHandle.tsx:518 +msgid "Use bsky.social as hosting provider" +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:517 msgid "Use default provider" msgstr "Standardanbieter verwenden" @@ -4175,6 +5119,10 @@ msgstr "In-App-Browser verwenden" msgid "Use my default browser" msgstr "Meinen Standardbrowser verwenden" +#: src/view/com/modals/ChangeHandle.tsx:401 +msgid "Use the DNS panel" +msgstr "" + #: src/view/com/modals/AddAppPasswords.tsx:155 msgid "Use this to sign into the other app along with your handle." msgstr "Verwenden dies, um dich mit deinem Handle bei der anderen App einzuloggen." @@ -4183,15 +5131,24 @@ msgstr "Verwenden dies, um dich mit deinem Handle bei der anderen App einzulogge msgid "Used by:" msgstr "Verwendet von:" -#: src/view/com/modals/ModerationDetails.tsx:54 +#: src/components/moderation/ModerationDetailsDialog.tsx:65 +#: src/lib/moderation/useModerationCauseDescription.ts:56 msgid "User Blocked" msgstr "Benutzer blockiert" -#: src/view/com/modals/ModerationDetails.tsx:40 +#: src/lib/moderation/useModerationCauseDescription.ts:48 +msgid "User Blocked by \"{0}\"" +msgstr "" + +#: src/components/moderation/ModerationDetailsDialog.tsx:54 msgid "User Blocked by List" msgstr "Benutzer durch der Liste blockiert" -#: src/view/com/modals/ModerationDetails.tsx:60 +#: src/lib/moderation/useModerationCauseDescription.ts:66 +msgid "User Blocking You" +msgstr "" + +#: src/components/moderation/ModerationDetailsDialog.tsx:71 msgid "User Blocks You" msgstr "Benutzer blockiert dich" @@ -4204,13 +5161,13 @@ msgstr "Benutzerhandle" msgid "User list by {0}" msgstr "Benutzerliste von {0}" -#: src/view/screens/ProfileList.tsx:763 +#: src/view/screens/ProfileList.tsx:777 msgid "User list by <0/>" msgstr "Benutzerliste von <0/>" #: src/view/com/lists/ListCard.tsx:83 #: src/view/com/modals/UserAddRemoveLists.tsx:196 -#: src/view/screens/ProfileList.tsx:761 +#: src/view/screens/ProfileList.tsx:775 msgid "User list by you" msgstr "Benutzerliste von dir" @@ -4231,7 +5188,7 @@ msgstr "Benutzerlisten" msgid "Username or email address" msgstr "Benutzername oder E-Mail-Adresse" -#: src/view/screens/ProfileList.tsx:797 +#: src/view/screens/ProfileList.tsx:811 msgid "Users" msgstr "Benutzer" @@ -4243,15 +5200,27 @@ msgstr "Nutzer gefolgt von <0/>" msgid "Users in \"{0}\"" msgstr "Benutzer in \"{0}\"" -#: src/view/screens/Settings/index.tsx:910 +#: src/components/LikesDialog.tsx:85 +msgid "Users that have liked this content or profile" +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:437 +msgid "Value:" +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:510 +msgid "Verify {0}" +msgstr "" + +#: src/view/screens/Settings/index.tsx:940 msgid "Verify email" msgstr "E-Mail bestätigen" -#: src/view/screens/Settings/index.tsx:935 +#: src/view/screens/Settings/index.tsx:965 msgid "Verify my email" msgstr "Meine E-Mail bestätigen" -#: src/view/screens/Settings/index.tsx:944 +#: src/view/screens/Settings/index.tsx:974 msgid "Verify My Email" msgstr "Meine E-Mail bestätigen" @@ -4268,7 +5237,7 @@ msgstr "Überprüfe deine E-Mail" msgid "Video Games" msgstr "Videospiele" -#: src/view/com/profile/ProfileHeader.tsx:662 +#: src/screens/Profile/Header/Shell.tsx:110 msgid "View {0}'s avatar" msgstr "Avatar {0} ansehen" @@ -4276,11 +5245,23 @@ msgstr "Avatar {0} ansehen" msgid "View debug entry" msgstr "Debug-Eintrag anzeigen" -#: src/view/com/posts/FeedSlice.tsx:103 +#: src/components/ReportDialog/SelectReportOptionView.tsx:133 +msgid "View details" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:128 +msgid "View details for reporting a copyright violation" +msgstr "" + +#: src/view/com/posts/FeedSlice.tsx:99 msgid "View full thread" msgstr "Vollständigen Thread ansehen" -#: src/view/com/posts/FeedErrorMessage.tsx:172 +#: src/components/moderation/LabelsOnMe.tsx:51 +msgid "View information about these labels" +msgstr "" + +#: src/view/com/posts/FeedErrorMessage.tsx:166 msgid "View profile" msgstr "Profil ansehen" @@ -4288,15 +5269,34 @@ msgstr "Profil ansehen" msgid "View the avatar" msgstr "Avatar ansehen" +#: src/components/LabelingServiceCard/index.tsx:140 +msgid "View the labeling service provided by @{0}" +msgstr "" + +#: src/view/screens/ProfileFeed.tsx:584 +msgid "View users who like this feed" +msgstr "" + #: src/view/com/modals/LinkWarning.tsx:75 +#: src/view/com/modals/LinkWarning.tsx:77 msgid "Visit Site" msgstr "Seite ansehen" -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:42 -#: src/view/com/modals/ContentFilteringSettings.tsx:259 +#: src/components/moderation/GlobalModerationLabelPref.tsx:44 +#: src/lib/moderation/useLabelBehaviorDescription.ts:17 +#: src/lib/moderation/useLabelBehaviorDescription.ts:22 +#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:53 msgid "Warn" msgstr "Warnen" +#: src/lib/moderation/useLabelBehaviorDescription.ts:48 +msgid "Warn content" +msgstr "" + +#: src/lib/moderation/useLabelBehaviorDescription.ts:46 +msgid "Warn content and filter from feeds" +msgstr "" + #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:134 msgid "We also think you'll like \"For You\" by Skygaze:" msgstr "Wir glauben auch, dass dir \"For You\" von Skygaze gefallen wird:" @@ -4325,6 +5325,14 @@ msgstr "Wir empfehlen, gebräuchliche Wörter zu vermeiden, die in vielen Beitr msgid "We recommend our \"Discover\" feed:" msgstr "Wir empfehlen unser \"Discover\" Feed:" +#: src/components/dialogs/BirthDateSettings.tsx:52 +msgid "We were unable to load your birth date preferences. Please try again." +msgstr "" + +#: src/screens/Moderation/index.tsx:387 +msgid "We were unable to load your configured labelers at this time." +msgstr "" + #: src/screens/Onboarding/StepInterests/index.tsx:133 msgid "We weren't able to connect. Please try again to continue setting up your account. If it continues to fail, you can skip this flow." msgstr "Die Verbindung konnte nicht hergestellt werden. Bitte versuche es erneut, um mit der Einrichtung deines Kontos fortzufahren. Wenn der Versuch weiterhin fehlschlägt, kannst du diesen Schritt überspringen." @@ -4334,8 +5342,8 @@ msgid "We will let you know when your account is ready." msgstr "Wir werden dich benachrichtigen, wenn dein Konto bereit ist." #: src/view/com/modals/AppealLabel.tsx:48 -msgid "We'll look into your appeal promptly." -msgstr "Wir werden deinen Widerspruch unverzüglich prüfen." +#~ msgid "We'll look into your appeal promptly." +#~ msgstr "Wir werden deinen Widerspruch unverzüglich prüfen." #: src/screens/Onboarding/StepInterests/index.tsx:138 msgid "We'll use this to help customize your experience." @@ -4345,7 +5353,7 @@ msgstr "Wir verwenden diese Informationen, um dein Erlebnis individuell zu gesta msgid "We're so excited to have you join us!" msgstr "Wir freuen uns sehr, dass du dabei bist!" -#: src/view/screens/ProfileList.tsx:86 +#: src/view/screens/ProfileList.tsx:89 msgid "We're sorry, but we were unable to resolve this list. If this persists, please contact the list creator, @{handleOrDid}." msgstr "Es tut uns leid, aber wir waren nicht in der Lage, diese Liste aufzulösen. Wenn das Problem weiterhin besteht, kontaktiere bitte den Ersteller der Liste, @{handleOrDid}." @@ -4353,16 +5361,20 @@ msgstr "Es tut uns leid, aber wir waren nicht in der Lage, diese Liste aufzulös msgid "We're sorry, but we weren't able to load your muted words at this time. Please try again." msgstr "Es tut uns leid, aber wir konnten deine stummgeschalteten Wörter nicht laden. Bitte versuche es erneut." -#: src/view/screens/Search/Search.tsx:254 +#: src/view/screens/Search/Search.tsx:255 msgid "We're sorry, but your search could not be completed. Please try again in a few minutes." msgstr "Es tut uns leid, aber deine Suche konnte nicht abgeschlossen werden. Bitte versuche es in ein paar Minuten erneut." -#: src/components/Lists.tsx:211 +#: src/components/Lists.tsx:194 #: src/view/screens/NotFound.tsx:48 msgid "We're sorry! We can't find the page you were looking for." msgstr "Es tut uns leid! Wir können die Seite, nach der du gesucht hast, nicht finden." -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:46 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:319 +msgid "We're sorry! You can only subscribe to ten labelers, and you've reached your limit of ten." +msgstr "" + +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:48 msgid "Welcome to <0>Bluesky" msgstr "Willkommen bei <0>Bluesky" @@ -4371,11 +5383,11 @@ msgid "What are your interests?" msgstr "Was sind deine Interessen?" #: src/view/com/modals/report/Modal.tsx:169 -msgid "What is the issue with this {collectionName}?" -msgstr "Was ist das Problem mit diesem {collectionName}?" +#~ msgid "What is the issue with this {collectionName}?" +#~ msgstr "Was ist das Problem mit diesem {collectionName}?" #: src/view/com/auth/SplashScreen.tsx:59 -#: src/view/com/composer/Composer.tsx:286 +#: src/view/com/composer/Composer.tsx:295 msgid "What's up?" msgstr "Was gibt's?" @@ -4392,16 +5404,36 @@ msgstr "Welche Sprachen würdest du gerne in deinen algorithmischen Feeds sehen? msgid "Who can reply" msgstr "Wer antworten kann" +#: src/components/ReportDialog/SelectReportOptionView.tsx:44 +msgid "Why should this content be reviewed?" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:57 +msgid "Why should this feed be reviewed?" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:54 +msgid "Why should this list be reviewed?" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:51 +msgid "Why should this post be reviewed?" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:48 +msgid "Why should this user be reviewed?" +msgstr "" + #: src/view/com/modals/crop-image/CropImage.web.tsx:102 msgid "Wide" msgstr "Breit" -#: src/view/com/composer/Composer.tsx:422 +#: src/view/com/composer/Composer.tsx:435 msgid "Write post" msgstr "Beitrag verfassen" -#: src/view/com/composer/Composer.tsx:285 -#: src/view/com/composer/Prompt.tsx:33 +#: src/view/com/composer/Composer.tsx:294 +#: src/view/com/composer/Prompt.tsx:37 msgid "Write your reply" msgstr "Schreibe deine Antwort" @@ -4423,6 +5455,10 @@ msgstr "Ja" msgid "You are in line." msgstr "Du befindest dich in der Warteschlange." +#: src/view/com/profile/ProfileFollows.tsx:93 +msgid "You are not following anyone." +msgstr "" + #: src/view/com/posts/FollowingEmptyState.tsx:67 #: src/view/com/posts/FollowingEndOfFeed.tsx:68 msgid "You can also discover new Custom Feeds to follow." @@ -4437,6 +5473,10 @@ msgstr "Du kannst diese Einstellungen später ändern." msgid "You can now sign in with your new password." msgstr "Du kannst dich jetzt mit deinem neuen Passwort anmelden." +#: src/view/com/profile/ProfileFollowers.tsx:94 +msgid "You do not have any followers." +msgstr "" + #: src/view/com/modals/InviteCodes.tsx:66 msgid "You don't have any invite codes yet! We'll send you some when you've been on Bluesky for a little longer." msgstr "Du hast noch keine Einladungscodes! Wir schicken dir welche, wenn du schon etwas länger bei Bluesky bist." @@ -4453,11 +5493,13 @@ msgstr "Du hast keine gespeicherten Feeds!" msgid "You don't have any saved feeds." msgstr "Du hast keine gespeicherten Feeds." -#: src/view/com/post-thread/PostThread.tsx:465 +#: src/view/com/post-thread/PostThread.tsx:159 msgid "You have blocked the author or you have been blocked by the author." msgstr "Du hast den Verfasser blockiert oder du wurdest vom Verfasser blockiert." -#: src/view/com/modals/ModerationDetails.tsx:56 +#: src/components/moderation/ModerationDetailsDialog.tsx:67 +#: src/lib/moderation/useModerationCauseDescription.ts:50 +#: src/lib/moderation/useModerationCauseDescription.ts:58 msgid "You have blocked this user. You cannot view their content." msgstr "Du hast diesen Benutzer blockiert und kannst seine Inhalte nicht sehen." @@ -4468,9 +5510,26 @@ msgstr "Du hast diesen Benutzer blockiert und kannst seine Inhalte nicht sehen." msgid "You have entered an invalid code. It should look like XXXXX-XXXXX." msgstr "Du hast einen ungültigen Code eingegeben. Er sollte wie XXXXX-XXXXX aussehen." +#: src/lib/moderation/useModerationCauseDescription.ts:109 +msgid "You have hidden this post" +msgstr "" + +#: src/components/moderation/ModerationDetailsDialog.tsx:102 +msgid "You have hidden this post." +msgstr "" + +#: src/components/moderation/ModerationDetailsDialog.tsx:95 +#: src/lib/moderation/useModerationCauseDescription.ts:92 +msgid "You have muted this account." +msgstr "" + +#: src/lib/moderation/useModerationCauseDescription.ts:86 +msgid "You have muted this user" +msgstr "" + #: src/view/com/modals/ModerationDetails.tsx:87 -msgid "You have muted this user." -msgstr "Du hast diesen Benutzer stummgeschaltet." +#~ msgid "You have muted this user." +#~ msgstr "Du hast diesen Benutzer stummgeschaltet." #: src/view/com/feeds/ProfileFeedgens.tsx:136 msgid "You have no feeds." @@ -4482,34 +5541,50 @@ msgid "You have no lists." msgstr "Du hast keine Listen." #: src/view/screens/ModerationBlockedAccounts.tsx:132 -msgid "You have not blocked any accounts yet. To block an account, go to their profile and selected \"Block account\" from the menu on their account." -msgstr "Du hast noch keine Konten blockiert. Um ein Konto zu blockieren, gehe auf dessen Profil und wähle \"Konto blockieren\" aus dem Menü des Kontos aus." +msgid "You have not blocked any accounts yet. To block an account, go to their profile and select \"Block account\" from the menu on their account." +msgstr "" + +#: src/view/screens/ModerationBlockedAccounts.tsx:132 +#~ msgid "You have not blocked any accounts yet. To block an account, go to their profile and selected \"Block account\" from the menu on their account." +#~ msgstr "Du hast noch keine Konten blockiert. Um ein Konto zu blockieren, gehe auf dessen Profil und wähle \"Konto blockieren\" aus dem Menü des Kontos aus." -#: src/view/screens/AppPasswords.tsx:87 +#: src/view/screens/AppPasswords.tsx:89 msgid "You have not created any app passwords yet. You can create one by pressing the button below." msgstr "Du hast noch keine App-Passwörter erstellt. Du kannst eines erstellen, indem du auf die Schaltfläche unten klickst." #: src/view/screens/ModerationMutedAccounts.tsx:131 -msgid "You have not muted any accounts yet. To mute an account, go to their profile and selected \"Mute account\" from the menu on their account." -msgstr "Du hast noch keine Konten stummgeschaltet. Um ein Konto stumm zu schalten, gehe auf dessen Profil und wähle \"Konto stummschalten\" aus dem Menü des Kontos aus." +msgid "You have not muted any accounts yet. To mute an account, go to their profile and select \"Mute account\" from the menu on their account." +msgstr "" + +#: src/view/screens/ModerationMutedAccounts.tsx:131 +#~ msgid "You have not muted any accounts yet. To mute an account, go to their profile and selected \"Mute account\" from the menu on their account." +#~ msgstr "Du hast noch keine Konten stummgeschaltet. Um ein Konto stumm zu schalten, gehe auf dessen Profil und wähle \"Konto stummschalten\" aus dem Menü des Kontos aus." #: src/components/dialogs/MutedWords.tsx:250 msgid "You haven't muted any words or tags yet" msgstr "Du hast noch keine Wörter oder Tags stummgeschaltet" +#: src/components/moderation/LabelsOnMeDialog.tsx:69 +msgid "You may appeal these labels if you feel they were placed in error." +msgstr "" + #: src/view/com/modals/ContentFilteringSettings.tsx:175 -msgid "You must be 18 or older to enable adult content." -msgstr "Du musst 18 Jahre oder älter sein, um Inhalte für Erwachsene zu aktivieren." +#~ msgid "You must be 18 or older to enable adult content." +#~ msgstr "Du musst 18 Jahre oder älter sein, um Inhalte für Erwachsene zu aktivieren." -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:103 +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:110 msgid "You must be 18 years or older to enable adult content" msgstr "Du musst 18 Jahre oder älter sein, um Inhalte für Erwachsene zu aktivieren." -#: src/view/com/util/forms/PostDropdownBtn.tsx:147 +#: src/components/ReportDialog/SubmitView.tsx:205 +msgid "You must select at least one labeler for a report" +msgstr "" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:144 msgid "You will no longer receive notifications for this thread" msgstr "Du wirst keine Mitteilungen mehr für diesen Thread erhalten" -#: src/view/com/util/forms/PostDropdownBtn.tsx:150 +#: src/view/com/util/forms/PostDropdownBtn.tsx:147 msgid "You will now receive notifications for this thread" msgstr "Du erhälst nun Mitteilungen für dieses Thread" @@ -4517,7 +5592,7 @@ msgstr "Du erhälst nun Mitteilungen für dieses Thread" msgid "You will receive an email with a \"reset code.\" Enter that code here, then enter your new password." msgstr "Du erhältst eine E-Mail mit einem \"Reset-Code\". Gib diesen Code hier ein und gib dann dein neues Passwort ein." -#: src/screens/Onboarding/StepModeration/index.tsx:72 +#: src/screens/Onboarding/StepModeration/index.tsx:59 msgid "You're in control" msgstr "Du hast die Kontrolle" @@ -4531,6 +5606,11 @@ msgstr "Du bist in der Warteschlange" msgid "You're ready to go!" msgstr "Du kannst loslegen!" +#: src/components/moderation/ModerationDetailsDialog.tsx:99 +#: src/lib/moderation/useModerationCauseDescription.ts:101 +msgid "You've chosen to hide a word or tag within this post." +msgstr "" + #: src/view/com/posts/FollowingEndOfFeed.tsx:48 msgid "You've reached the end of your feed! Find some more accounts to follow." msgstr "Du hast das Ende deines Feeds erreicht! Finde weitere Konten, denen du folgen kannst." @@ -4589,26 +5669,26 @@ msgstr "Dein vollständiger Handle lautet <0>@{0}" msgid "Your muted words" msgstr "Deine stummgeschalteten Wörter" -#: src/view/com/modals/ChangePassword.tsx:155 +#: src/view/com/modals/ChangePassword.tsx:157 msgid "Your password has been changed successfully!" msgstr "Dein Passwort wurde erfolgreich geändert!" -#: src/view/com/composer/Composer.tsx:274 +#: src/view/com/composer/Composer.tsx:283 msgid "Your post has been published" msgstr "Dein Beitrag wurde veröffentlicht" #: src/screens/Onboarding/StepFinished.tsx:105 #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:59 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:59 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:61 msgid "Your posts, likes, and blocks are public. Mutes are private." msgstr "Deine Beiträge, Likes und Blockierungen sind öffentlich. Stummschaltungen sind privat." -#: src/view/com/modals/SwitchAccount.tsx:84 -#: src/view/screens/Settings/index.tsx:118 +#: src/view/com/modals/SwitchAccount.tsx:88 +#: src/view/screens/Settings/index.tsx:123 msgid "Your profile" msgstr "Dein Profil" -#: src/view/com/composer/Composer.tsx:273 +#: src/view/com/composer/Composer.tsx:282 msgid "Your reply has been published" msgstr "Deine Antwort wurde veröffentlicht" diff --git a/src/locale/locales/en/messages.po b/src/locale/locales/en/messages.po index b62c47ffcd..3c5de03674 100644 --- a/src/locale/locales/en/messages.po +++ b/src/locale/locales/en/messages.po @@ -21,7 +21,7 @@ msgstr "" #~ msgid "{0, plural, one {# invite code available} other {# invite codes available}}" #~ msgstr "" -#: src/view/com/profile/ProfileHeader.tsx:593 +#: src/screens/Profile/Header/Metrics.tsx:45 msgid "{following} following" msgstr "" @@ -39,7 +39,7 @@ msgstr "" #~ msgid "{invitesAvailable} invite codes available" #~ msgstr "" -#: src/view/shell/Drawer.tsx:440 +#: src/view/shell/Drawer.tsx:443 msgid "{numUnreadNotifications} unread" msgstr "" @@ -47,7 +47,11 @@ msgstr "" msgid "<0/> members" msgstr "" -#: src/view/com/profile/ProfileHeader.tsx:595 +#: src/view/shell/Drawer.tsx:97 +msgid "<0>{0} following" +msgstr "" + +#: src/screens/Profile/Header/Metrics.tsx:46 msgid "<0>{following} <1>following" msgstr "" @@ -63,20 +67,20 @@ msgstr "" msgid "<0>Welcome to<1>Bluesky" msgstr "" -#: src/view/com/profile/ProfileHeader.tsx:558 +#: src/screens/Profile/Header/Handle.tsx:42 msgid "⚠Invalid Handle" msgstr "" #: src/view/com/util/moderation/LabelInfo.tsx:45 -msgid "A content warning has been applied to this {0}." -msgstr "" +#~ msgid "A content warning has been applied to this {0}." +#~ msgstr "" #: src/lib/hooks/useOTAUpdate.ts:16 -msgid "A new version of the app is available. Please update to continue using the app." -msgstr "" +#~ msgid "A new version of the app is available. Please update to continue using the app." +#~ msgstr "" #: src/view/com/util/ViewHeader.tsx:89 -#: src/view/screens/Search/Search.tsx:647 +#: src/view/screens/Search/Search.tsx:648 msgid "Access navigation links and settings" msgstr "" @@ -85,29 +89,38 @@ msgid "Access profile and other navigation links" msgstr "" #: src/view/com/modals/EditImage.tsx:299 -#: src/view/screens/Settings/index.tsx:451 +#: src/view/screens/Settings/index.tsx:466 msgid "Accessibility" msgstr "" +#: src/components/moderation/LabelsOnMe.tsx:42 +msgid "account" +msgstr "" + #: src/view/com/auth/login/LoginForm.tsx:166 -#: src/view/screens/Settings/index.tsx:308 -#: src/view/screens/Settings/index.tsx:721 +#: src/view/screens/Settings/index.tsx:323 +#: src/view/screens/Settings/index.tsx:739 msgid "Account" msgstr "" -#: src/view/com/profile/ProfileHeader.tsx:246 +#: src/view/com/profile/ProfileMenu.tsx:139 msgid "Account blocked" msgstr "" -#: src/view/com/profile/ProfileHeader.tsx:213 +#: src/view/com/profile/ProfileMenu.tsx:153 +msgid "Account followed" +msgstr "" + +#: src/view/com/profile/ProfileMenu.tsx:113 msgid "Account muted" msgstr "" -#: src/view/com/modals/ModerationDetails.tsx:86 +#: src/components/moderation/ModerationDetailsDialog.tsx:94 +#: src/lib/moderation/useModerationCauseDescription.ts:91 msgid "Account Muted" msgstr "" -#: src/view/com/modals/ModerationDetails.tsx:72 +#: src/components/moderation/ModerationDetailsDialog.tsx:83 msgid "Account Muted by List" msgstr "" @@ -119,19 +132,24 @@ msgstr "" msgid "Account removed from quick access" msgstr "" -#: src/view/com/profile/ProfileHeader.tsx:268 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:130 +#: src/view/com/profile/ProfileMenu.tsx:128 msgid "Account unblocked" msgstr "" -#: src/view/com/profile/ProfileHeader.tsx:226 +#: src/view/com/profile/ProfileMenu.tsx:166 +msgid "Account unfollowed" +msgstr "" + +#: src/view/com/profile/ProfileMenu.tsx:102 msgid "Account unmuted" msgstr "" #: src/components/dialogs/MutedWords.tsx:165 #: src/view/com/auth/onboarding/RecommendedFeedsItem.tsx:150 -#: src/view/com/modals/ListAddRemoveUsers.tsx:264 +#: src/view/com/modals/ListAddRemoveUsers.tsx:268 #: src/view/com/modals/UserAddRemoveLists.tsx:219 -#: src/view/screens/ProfileList.tsx:813 +#: src/view/screens/ProfileList.tsx:827 msgid "Add" msgstr "" @@ -139,12 +157,12 @@ msgstr "" msgid "Add a content warning" msgstr "" -#: src/view/screens/ProfileList.tsx:803 +#: src/view/screens/ProfileList.tsx:817 msgid "Add a user to this list" msgstr "" -#: src/view/screens/Settings/index.tsx:383 -#: src/view/screens/Settings/index.tsx:392 +#: src/view/screens/Settings/index.tsx:398 +#: src/view/screens/Settings/index.tsx:407 msgid "Add account" msgstr "" @@ -154,26 +172,26 @@ msgstr "" msgid "Add alt text" msgstr "" -#: src/view/screens/AppPasswords.tsx:102 -#: src/view/screens/AppPasswords.tsx:143 -#: src/view/screens/AppPasswords.tsx:156 +#: src/view/screens/AppPasswords.tsx:104 +#: src/view/screens/AppPasswords.tsx:145 +#: src/view/screens/AppPasswords.tsx:158 msgid "Add App Password" msgstr "" #: src/view/com/modals/report/InputIssueDetails.tsx:41 #: src/view/com/modals/report/Modal.tsx:191 -msgid "Add details" -msgstr "" +#~ msgid "Add details" +#~ msgstr "" #: src/view/com/modals/report/Modal.tsx:194 -msgid "Add details to report" -msgstr "" +#~ msgid "Add details to report" +#~ msgstr "" -#: src/view/com/composer/Composer.tsx:453 +#: src/view/com/composer/Composer.tsx:466 msgid "Add link card" msgstr "" -#: src/view/com/composer/Composer.tsx:458 +#: src/view/com/composer/Composer.tsx:471 msgid "Add link card:" msgstr "" @@ -189,12 +207,12 @@ msgstr "" msgid "Add the following DNS record to your domain:" msgstr "" -#: src/view/com/profile/ProfileHeader.tsx:310 +#: src/view/com/profile/ProfileMenu.tsx:263 +#: src/view/com/profile/ProfileMenu.tsx:266 msgid "Add to Lists" msgstr "" -#: src/view/com/feeds/FeedSourceCard.tsx:245 -#: src/view/screens/ProfileFeed.tsx:273 +#: src/view/com/feeds/FeedSourceCard.tsx:234 msgid "Add to my feeds" msgstr "" @@ -207,7 +225,7 @@ msgstr "" msgid "Added to list" msgstr "" -#: src/view/com/feeds/FeedSourceCard.tsx:127 +#: src/view/com/feeds/FeedSourceCard.tsx:108 msgid "Added to my feeds" msgstr "" @@ -215,19 +233,25 @@ msgstr "" msgid "Adjust the number of likes a reply must have to be shown in your feed." msgstr "" +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:117 #: src/view/com/modals/SelfLabel.tsx:75 msgid "Adult Content" msgstr "" #: src/view/com/modals/ContentFilteringSettings.tsx:141 -msgid "Adult content can only be enabled via the Web at <0/>." -msgstr "" +#~ msgid "Adult content can only be enabled via the Web at <0/>." +#~ msgstr "" #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:78 #~ msgid "Adult content can only be enabled via the Web at <0>bsky.app." #~ msgstr "" -#: src/view/screens/Settings/index.tsx:664 +#: src/components/moderation/ModerationLabelPref.tsx:114 +msgid "Adult content is disabled." +msgstr "" + +#: src/screens/Moderation/index.tsx:377 +#: src/view/screens/Settings/index.tsx:680 msgid "Advanced" msgstr "" @@ -236,11 +260,11 @@ msgid "All the feeds you've saved, right in one place." msgstr "" #: src/view/com/auth/login/ForgotPasswordForm.tsx:221 -#: src/view/com/modals/ChangePassword.tsx:168 +#: src/view/com/modals/ChangePassword.tsx:170 msgid "Already have a code?" msgstr "" -#: src/view/com/auth/login/ChooseAccountForm.tsx:98 +#: src/view/com/auth/login/ChooseAccountForm.tsx:102 msgid "Already signed in as @{0}" msgstr "" @@ -264,12 +288,18 @@ msgstr "" msgid "An email has been sent to your previous address, {0}. It includes a confirmation code which you can enter below." msgstr "" -#: src/view/com/profile/FollowButton.tsx:30 -#: src/view/com/profile/FollowButton.tsx:40 +#: src/lib/moderation/useReportOptions.ts:26 +msgid "An issue not included in these options" +msgstr "" + +#: src/view/com/profile/FollowButton.tsx:35 +#: src/view/com/profile/FollowButton.tsx:45 +#: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:188 +#: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:198 msgid "An issue occurred, please try again." msgstr "" -#: src/view/com/notifications/FeedItem.tsx:237 +#: src/view/com/notifications/FeedItem.tsx:240 #: src/view/com/threadgate/WhoCanReply.tsx:178 msgid "and" msgstr "" @@ -278,11 +308,15 @@ msgstr "" msgid "Animals" msgstr "" +#: src/lib/moderation/useReportOptions.ts:31 +msgid "Anti-Social Behavior" +msgstr "" + #: src/view/screens/LanguageSettings.tsx:95 msgid "App Language" msgstr "" -#: src/view/screens/AppPasswords.tsx:228 +#: src/view/screens/AppPasswords.tsx:223 msgid "App password deleted" msgstr "" @@ -294,7 +328,7 @@ msgstr "" msgid "App Password names must be at least 4 characters long." msgstr "" -#: src/view/screens/Settings/index.tsx:675 +#: src/view/screens/Settings/index.tsx:691 msgid "App password settings" msgstr "" @@ -302,49 +336,65 @@ msgstr "" #~ msgid "App passwords" #~ msgstr "" -#: src/Navigation.tsx:239 -#: src/view/screens/AppPasswords.tsx:187 -#: src/view/screens/Settings/index.tsx:684 +#: src/Navigation.tsx:251 +#: src/view/screens/AppPasswords.tsx:189 +#: src/view/screens/Settings/index.tsx:700 msgid "App Passwords" msgstr "" +#: src/components/moderation/LabelsOnMeDialog.tsx:134 +#: src/components/moderation/LabelsOnMeDialog.tsx:137 +msgid "Appeal" +msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:202 +msgid "Appeal \"{0}\" label" +msgstr "" + #: src/view/com/util/forms/PostDropdownBtn.tsx:337 #: src/view/com/util/forms/PostDropdownBtn.tsx:346 -msgid "Appeal content warning" -msgstr "" +#~ msgid "Appeal content warning" +#~ msgstr "" #: src/view/com/modals/AppealLabel.tsx:65 -msgid "Appeal Content Warning" +#~ msgid "Appeal Content Warning" +#~ msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:193 +msgid "Appeal submitted." msgstr "" #: src/view/com/util/moderation/LabelInfo.tsx:52 -msgid "Appeal this decision" -msgstr "" +#~ msgid "Appeal this decision" +#~ msgstr "" #: src/view/com/util/moderation/LabelInfo.tsx:56 -msgid "Appeal this decision." -msgstr "" +#~ msgid "Appeal this decision." +#~ msgstr "" -#: src/view/screens/Settings/index.tsx:466 +#: src/view/screens/Settings/index.tsx:481 msgid "Appearance" msgstr "" -#: src/view/screens/AppPasswords.tsx:224 +#: src/view/screens/AppPasswords.tsx:265 msgid "Are you sure you want to delete the app password \"{name}\"?" msgstr "" -#: src/view/com/composer/Composer.tsx:150 +#: src/view/com/feeds/FeedSourceCard.tsx:280 +msgid "Are you sure you want to remove {0} from your feeds?" +msgstr "" + +#: src/view/com/composer/Composer.tsx:508 msgid "Are you sure you'd like to discard this draft?" msgstr "" #: src/components/dialogs/MutedWords.tsx:282 -#: src/view/screens/ProfileList.tsx:365 msgid "Are you sure?" msgstr "" #: src/view/com/util/forms/PostDropdownBtn.tsx:322 -msgid "Are you sure? This cannot be undone." -msgstr "" +#~ msgid "Are you sure? This cannot be undone." +#~ msgstr "" #: src/view/com/composer/select-language/SuggestedLanguage.tsx:60 msgid "Are you writing in <0>{0}?" @@ -358,78 +408,86 @@ msgstr "" msgid "Artistic or non-erotic nudity." msgstr "" +#: src/components/moderation/LabelsOnMeDialog.tsx:247 +#: src/components/moderation/LabelsOnMeDialog.tsx:248 +#: src/screens/Profile/Header/Shell.tsx:97 #: src/view/com/auth/create/CreateAccount.tsx:158 -#: src/view/com/auth/login/ChooseAccountForm.tsx:151 +#: src/view/com/auth/login/ChooseAccountForm.tsx:155 #: src/view/com/auth/login/ForgotPasswordForm.tsx:174 #: src/view/com/auth/login/LoginForm.tsx:259 #: src/view/com/auth/login/SetNewPasswordForm.tsx:179 -#: src/view/com/modals/report/InputIssueDetails.tsx:46 -#: src/view/com/post-thread/PostThread.tsx:472 -#: src/view/com/post-thread/PostThread.tsx:522 -#: src/view/com/post-thread/PostThread.tsx:530 -#: src/view/com/profile/ProfileHeader.tsx:649 #: src/view/com/util/ViewHeader.tsx:87 msgid "Back" msgstr "" #: src/view/com/post-thread/PostThread.tsx:480 -msgctxt "action" -msgid "Back" -msgstr "" +#~ msgctxt "action" +#~ msgid "Back" +#~ msgstr "" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:136 msgid "Based on your interest in {interestsText}" msgstr "" -#: src/view/screens/Settings/index.tsx:523 +#: src/view/screens/Settings/index.tsx:538 msgid "Basics" msgstr "" +#: src/components/dialogs/BirthDateSettings.tsx:107 #: src/view/com/auth/create/Step1.tsx:227 -#: src/view/com/modals/BirthDateSettings.tsx:73 msgid "Birthday" msgstr "" -#: src/view/screens/Settings/index.tsx:340 +#: src/view/screens/Settings/index.tsx:355 msgid "Birthday:" msgstr "" -#: src/view/com/profile/ProfileHeader.tsx:239 -#: src/view/com/profile/ProfileHeader.tsx:346 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:278 +#: src/view/com/profile/ProfileMenu.tsx:361 +msgid "Block" +msgstr "" + +#: src/view/com/profile/ProfileMenu.tsx:300 +#: src/view/com/profile/ProfileMenu.tsx:307 msgid "Block Account" msgstr "" -#: src/view/screens/ProfileList.tsx:556 +#: src/view/com/profile/ProfileMenu.tsx:344 +msgid "Block Account?" +msgstr "" + +#: src/view/screens/ProfileList.tsx:530 msgid "Block accounts" msgstr "" -#: src/view/screens/ProfileList.tsx:506 +#: src/view/screens/ProfileList.tsx:478 +#: src/view/screens/ProfileList.tsx:634 msgid "Block list" msgstr "" -#: src/view/screens/ProfileList.tsx:316 +#: src/view/screens/ProfileList.tsx:629 msgid "Block these accounts?" msgstr "" #: src/view/screens/ProfileList.tsx:320 -msgid "Block this List" -msgstr "" +#~ msgid "Block this List" +#~ msgstr "" #: src/view/com/lists/ListCard.tsx:110 -#: src/view/com/util/post-embeds/QuoteEmbed.tsx:61 +#: src/view/com/util/post-embeds/QuoteEmbed.tsx:55 msgid "Blocked" msgstr "" -#: src/view/screens/Moderation.tsx:142 +#: src/screens/Moderation/index.tsx:269 msgid "Blocked accounts" msgstr "" -#: src/Navigation.tsx:132 +#: src/Navigation.tsx:134 #: src/view/screens/ModerationBlockedAccounts.tsx:107 msgid "Blocked Accounts" msgstr "" -#: src/view/com/profile/ProfileHeader.tsx:241 +#: src/view/com/profile/ProfileMenu.tsx:356 msgid "Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you." msgstr "" @@ -437,15 +495,23 @@ msgstr "" msgid "Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you. You will not see their content and they will be prevented from seeing yours." msgstr "" -#: src/view/com/post-thread/PostThread.tsx:324 +#: src/view/com/post-thread/PostThread.tsx:313 msgid "Blocked post." msgstr "" -#: src/view/screens/ProfileList.tsx:318 +#: src/screens/Profile/Sections/Labels.tsx:153 +msgid "Blocking does not prevent this labeler from placing labels on your account." +msgstr "" + +#: src/view/screens/ProfileList.tsx:631 msgid "Blocking is public. Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you." msgstr "" -#: src/view/com/auth/HomeLoggedOutCTA.tsx:93 +#: src/view/com/profile/ProfileMenu.tsx:353 +msgid "Blocking will not prevent labels from being applied on your account, but it will stop this account from replying in your threads or interacting with you." +msgstr "" + +#: src/view/com/auth/HomeLoggedOutCTA.tsx:97 #: src/view/com/auth/SplashScreen.web.tsx:133 msgid "Blog" msgstr "" @@ -461,17 +527,17 @@ msgid "Bluesky is an open network where you can choose your hosting provider. Cu msgstr "" #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:80 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:80 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:82 msgid "Bluesky is flexible." msgstr "" #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:69 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:69 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:71 msgid "Bluesky is open." msgstr "" #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:56 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:56 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:58 msgid "Bluesky is public." msgstr "" @@ -479,7 +545,7 @@ msgstr "" #~ msgid "Bluesky uses invites to build a healthier community. If you don't know anybody with an invite, you can sign up for the waitlist and we'll send one soon." #~ msgstr "" -#: src/view/screens/Moderation.tsx:245 +#: src/screens/Moderation/index.tsx:535 msgid "Bluesky will not show your profile and posts to logged-out users. Other apps may not honor this request. This does not make your account private." msgstr "" @@ -487,15 +553,23 @@ msgstr "" #~ msgid "Bluesky.Social" #~ msgstr "" +#: src/lib/moderation/useLabelBehaviorDescription.ts:53 +msgid "Blur images" +msgstr "" + +#: src/lib/moderation/useLabelBehaviorDescription.ts:51 +msgid "Blur images and filter from feeds" +msgstr "" + #: src/screens/Onboarding/index.tsx:33 msgid "Books" msgstr "" -#: src/view/screens/Settings/index.tsx:859 +#: src/view/screens/Settings/index.tsx:889 msgid "Build version {0} {1}" msgstr "" -#: src/view/com/auth/HomeLoggedOutCTA.tsx:87 +#: src/view/com/auth/HomeLoggedOutCTA.tsx:91 #: src/view/com/auth/SplashScreen.web.tsx:128 msgid "Business" msgstr "" @@ -512,17 +586,23 @@ msgstr "" msgid "by {0}" msgstr "" +#: src/components/LabelingServiceCard/index.tsx:57 +msgid "By {0}" +msgstr "" + #: src/view/com/profile/ProfileSubpageHeader.tsx:161 msgid "by <0/>" msgstr "" +#: src/view/com/auth/create/Policies.tsx:87 +msgid "By creating an account you agree to the {els}." +msgstr "" + #: src/view/com/profile/ProfileSubpageHeader.tsx:159 msgid "by you" msgstr "" -#: src/view/com/composer/photos/OpenCameraBtn.tsx:60 -#: src/view/com/util/UserAvatar.tsx:224 -#: src/view/com/util/UserBanner.tsx:40 +#: src/view/com/composer/photos/OpenCameraBtn.tsx:77 msgid "Camera" msgstr "" @@ -530,28 +610,33 @@ msgstr "" msgid "Can only contain letters, numbers, spaces, dashes, and underscores. Must be at least 4 characters long, but no more than 32 characters long." msgstr "" -#: src/components/Prompt.tsx:101 -#: src/view/com/composer/Composer.tsx:307 -#: src/view/com/composer/Composer.tsx:312 +#: src/components/Menu/index.tsx:213 +#: src/components/Prompt.tsx:116 +#: src/components/Prompt.tsx:118 +#: src/components/TagMenu/index.tsx:268 +#: src/view/com/composer/Composer.tsx:316 +#: src/view/com/composer/Composer.tsx:321 #: src/view/com/modals/ChangeEmail.tsx:218 #: src/view/com/modals/ChangeEmail.tsx:220 -#: src/view/com/modals/ChangePassword.tsx:265 -#: src/view/com/modals/ChangePassword.tsx:268 +#: src/view/com/modals/ChangeHandle.tsx:153 +#: src/view/com/modals/ChangePassword.tsx:267 +#: src/view/com/modals/ChangePassword.tsx:270 #: src/view/com/modals/CreateOrEditList.tsx:355 +#: src/view/com/modals/crop-image/CropImage.web.tsx:137 #: src/view/com/modals/EditImage.tsx:323 #: src/view/com/modals/EditProfile.tsx:249 #: src/view/com/modals/InAppBrowserConsent.tsx:78 +#: src/view/com/modals/InAppBrowserConsent.tsx:80 #: src/view/com/modals/LinkWarning.tsx:87 +#: src/view/com/modals/LinkWarning.tsx:89 #: src/view/com/modals/Repost.tsx:87 #: src/view/com/modals/VerifyEmail.tsx:247 #: src/view/com/modals/VerifyEmail.tsx:253 -#: src/view/screens/Search/Search.tsx:716 -#: src/view/shell/desktop/Search.tsx:238 +#: src/view/screens/Search/Search.tsx:717 +#: src/view/shell/desktop/Search.tsx:239 msgid "Cancel" msgstr "" -#: src/view/com/modals/Confirm.tsx:88 -#: src/view/com/modals/Confirm.tsx:91 #: src/view/com/modals/CreateOrEditList.tsx:360 #: src/view/com/modals/DeleteAccount.tsx:156 #: src/view/com/modals/DeleteAccount.tsx:234 @@ -581,7 +666,7 @@ msgid "Cancel quote post" msgstr "" #: src/view/com/modals/ListAddRemoveUsers.tsx:87 -#: src/view/shell/desktop/Search.tsx:234 +#: src/view/shell/desktop/Search.tsx:235 msgid "Cancel search" msgstr "" @@ -589,17 +674,25 @@ msgstr "" #~ msgid "Cancel waitlist signup" #~ msgstr "" -#: src/view/screens/Settings/index.tsx:334 +#: src/view/com/modals/LinkWarning.tsx:88 +msgid "Cancels opening the linked website" +msgstr "" + +#: src/view/com/modals/VerifyEmail.tsx:152 +msgid "Change" +msgstr "" + +#: src/view/screens/Settings/index.tsx:349 msgctxt "action" msgid "Change" msgstr "" -#: src/view/screens/Settings/index.tsx:696 +#: src/view/screens/Settings/index.tsx:712 msgid "Change handle" msgstr "" #: src/view/com/modals/ChangeHandle.tsx:161 -#: src/view/screens/Settings/index.tsx:705 +#: src/view/screens/Settings/index.tsx:723 msgid "Change Handle" msgstr "" @@ -607,11 +700,12 @@ msgstr "" msgid "Change my email" msgstr "" -#: src/view/screens/Settings/index.tsx:732 +#: src/view/screens/Settings/index.tsx:750 msgid "Change password" msgstr "" -#: src/view/screens/Settings/index.tsx:741 +#: src/view/com/modals/ChangePassword.tsx:141 +#: src/view/screens/Settings/index.tsx:761 msgid "Change Password" msgstr "" @@ -620,8 +714,8 @@ msgid "Change post language to {0}" msgstr "" #: src/view/screens/Settings/index.tsx:733 -msgid "Change your Bluesky password" -msgstr "" +#~ msgid "Change your Bluesky password" +#~ msgstr "" #: src/view/com/modals/ChangeEmail.tsx:109 msgid "Change Your Email" @@ -649,8 +743,8 @@ msgid "Choose \"Everybody\" or \"Nobody\"" msgstr "" #: src/view/screens/Settings/index.tsx:697 -msgid "Choose a new Bluesky username or create" -msgstr "" +#~ msgid "Choose a new Bluesky username or create" +#~ msgstr "" #: src/view/com/auth/server-input/index.tsx:79 msgid "Choose Service" @@ -661,7 +755,7 @@ msgid "Choose the algorithms that power your custom feeds." msgstr "" #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:83 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:83 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:85 msgid "Choose the algorithms that power your experience with custom feeds." msgstr "" @@ -677,29 +771,35 @@ msgstr "" msgid "Choose your password" msgstr "" -#: src/view/screens/Settings/index.tsx:834 -#: src/view/screens/Settings/index.tsx:835 +#: src/view/screens/Settings/index.tsx:864 msgid "Clear all legacy storage data" msgstr "" -#: src/view/screens/Settings/index.tsx:837 +#: src/view/screens/Settings/index.tsx:867 msgid "Clear all legacy storage data (restart after this)" msgstr "" -#: src/view/screens/Settings/index.tsx:846 -#: src/view/screens/Settings/index.tsx:847 +#: src/view/screens/Settings/index.tsx:876 msgid "Clear all storage data" msgstr "" -#: src/view/screens/Settings/index.tsx:849 +#: src/view/screens/Settings/index.tsx:879 msgid "Clear all storage data (restart after this)" msgstr "" #: src/view/com/util/forms/SearchInput.tsx:88 -#: src/view/screens/Search/Search.tsx:697 +#: src/view/screens/Search/Search.tsx:698 msgid "Clear search query" msgstr "" +#: src/view/screens/Settings/index.tsx:865 +msgid "Clears all legacy storage data" +msgstr "" + +#: src/view/screens/Settings/index.tsx:877 +msgid "Clears all storage data" +msgstr "" + #: src/view/screens/Support.tsx:40 msgid "click here" msgstr "" @@ -716,8 +816,8 @@ msgstr "" msgid "Climate" msgstr "" -#: src/view/com/modals/ChangePassword.tsx:265 -#: src/view/com/modals/ChangePassword.tsx:268 +#: src/view/com/modals/ChangePassword.tsx:267 +#: src/view/com/modals/ChangePassword.tsx:270 msgid "Close" msgstr "" @@ -730,27 +830,28 @@ msgstr "" msgid "Close alert" msgstr "" -#: src/view/com/util/BottomSheetCustomBackdrop.tsx:33 +#: src/view/com/util/BottomSheetCustomBackdrop.tsx:36 msgid "Close bottom drawer" msgstr "" -#: src/view/com/lightbox/ImageViewing/components/ImageDefaultHeader.tsx:26 +#: src/view/com/lightbox/ImageViewing/components/ImageDefaultHeader.tsx:36 msgid "Close image" msgstr "" -#: src/view/com/lightbox/Lightbox.web.tsx:119 +#: src/view/com/lightbox/Lightbox.web.tsx:129 msgid "Close image viewer" msgstr "" -#: src/view/shell/index.web.tsx:51 +#: src/view/shell/index.web.tsx:55 msgid "Close navigation footer" msgstr "" +#: src/components/Menu/index.tsx:207 #: src/components/TagMenu/index.tsx:262 msgid "Close this dialog" msgstr "" -#: src/view/shell/index.web.tsx:52 +#: src/view/shell/index.web.tsx:56 msgid "Closes bottom navigation bar" msgstr "" @@ -758,15 +859,15 @@ msgstr "" msgid "Closes password update alert" msgstr "" -#: src/view/com/composer/Composer.tsx:309 +#: src/view/com/composer/Composer.tsx:318 msgid "Closes post composer and discards post draft" msgstr "" -#: src/view/com/lightbox/ImageViewing/components/ImageDefaultHeader.tsx:27 +#: src/view/com/lightbox/ImageViewing/components/ImageDefaultHeader.tsx:37 msgid "Closes viewer for header image" msgstr "" -#: src/view/com/notifications/FeedItem.tsx:318 +#: src/view/com/notifications/FeedItem.tsx:321 msgid "Collapses list of users for a given notification" msgstr "" @@ -778,7 +879,7 @@ msgstr "" msgid "Comics" msgstr "" -#: src/Navigation.tsx:229 +#: src/Navigation.tsx:241 #: src/view/screens/CommunityGuidelines.tsx:32 msgid "Community Guidelines" msgstr "" @@ -791,7 +892,7 @@ msgstr "" msgid "Complete the challenge" msgstr "" -#: src/view/com/composer/Composer.tsx:424 +#: src/view/com/composer/Composer.tsx:437 msgid "Compose posts up to {MAX_GRAPHEME_LENGTH} characters in length" msgstr "" @@ -799,12 +900,18 @@ msgstr "" msgid "Compose reply" msgstr "" -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:67 +#: src/components/moderation/GlobalModerationLabelPref.tsx:69 +#: src/components/moderation/ModerationLabelPref.tsx:149 +#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:81 msgid "Configure content filtering setting for category: {0}" msgstr "" -#: src/components/Prompt.tsx:124 -#: src/view/com/modals/AppealLabel.tsx:98 +#: src/components/moderation/ModerationLabelPref.tsx:116 +msgid "Configured in <0>moderation settings." +msgstr "" + +#: src/components/Prompt.tsx:152 +#: src/components/Prompt.tsx:155 #: src/view/com/modals/SelfLabel.tsx:154 #: src/view/com/modals/VerifyEmail.tsx:231 #: src/view/com/modals/VerifyEmail.tsx:233 @@ -815,9 +922,9 @@ msgstr "" #: src/view/com/modals/Confirm.tsx:75 #: src/view/com/modals/Confirm.tsx:78 -msgctxt "action" -msgid "Confirm" -msgstr "" +#~ msgctxt "action" +#~ msgid "Confirm" +#~ msgstr "" #: src/view/com/modals/ChangeEmail.tsx:193 #: src/view/com/modals/ChangeEmail.tsx:195 @@ -833,10 +940,19 @@ msgid "Confirm delete account" msgstr "" #: src/view/com/modals/ContentFilteringSettings.tsx:156 -msgid "Confirm your age to enable adult content." +#~ msgid "Confirm your age to enable adult content." +#~ msgstr "" + +#: src/screens/Moderation/index.tsx:303 +msgid "Confirm your age:" +msgstr "" + +#: src/screens/Moderation/index.tsx:294 +msgid "Confirm your birthdate" msgstr "" #: src/view/com/modals/ChangeEmail.tsx:157 +#: src/view/com/modals/DeleteAccount.tsx:176 #: src/view/com/modals/DeleteAccount.tsx:182 #: src/view/com/modals/VerifyEmail.tsx:165 msgid "Confirmation code" @@ -855,12 +971,24 @@ msgstr "" msgid "Contact support" msgstr "" -#: src/view/screens/Moderation.tsx:83 -msgid "Content filtering" +#: src/components/moderation/LabelsOnMe.tsx:42 +msgid "content" +msgstr "" + +#: src/lib/moderation/useGlobalLabelStrings.ts:18 +msgid "Content Blocked" msgstr "" +#: src/view/screens/Moderation.tsx:83 +#~ msgid "Content filtering" +#~ msgstr "" + #: src/view/com/modals/ContentFilteringSettings.tsx:44 -msgid "Content Filtering" +#~ msgid "Content Filtering" +#~ msgstr "" + +#: src/screens/Moderation/index.tsx:287 +msgid "Content filters" msgstr "" #: src/view/com/modals/lang-settings/ContentLanguagesSettings.tsx:74 @@ -868,12 +996,15 @@ msgstr "" msgid "Content Languages" msgstr "" -#: src/view/com/modals/ModerationDetails.tsx:65 +#: src/components/moderation/ModerationDetailsDialog.tsx:76 +#: src/lib/moderation/useModerationCauseDescription.ts:75 msgid "Content Not Available" msgstr "" -#: src/view/com/modals/ModerationDetails.tsx:33 -#: src/view/com/util/moderation/ScreenHider.tsx:78 +#: src/components/moderation/ModerationDetailsDialog.tsx:47 +#: src/components/moderation/ScreenHider.tsx:100 +#: src/lib/moderation/useGlobalLabelStrings.ts:22 +#: src/lib/moderation/useModerationCauseDescription.ts:38 msgid "Content Warning" msgstr "" @@ -881,19 +1012,24 @@ msgstr "" msgid "Content warnings" msgstr "" +#: src/components/Menu/index.web.tsx:84 +msgid "Context menu backdrop, click to close the menu." +msgstr "" + #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:170 #: src/screens/Onboarding/StepFollowingFeed.tsx:153 #: src/screens/Onboarding/StepInterests/index.tsx:248 -#: src/screens/Onboarding/StepModeration/index.tsx:118 +#: src/screens/Onboarding/StepModeration/index.tsx:102 #: src/screens/Onboarding/StepTopicalFeeds.tsx:114 #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:148 #: src/view/com/auth/onboarding/RecommendedFollows.tsx:209 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:96 msgid "Continue" msgstr "" #: src/screens/Onboarding/StepFollowingFeed.tsx:150 #: src/screens/Onboarding/StepInterests/index.tsx:245 -#: src/screens/Onboarding/StepModeration/index.tsx:115 +#: src/screens/Onboarding/StepModeration/index.tsx:99 #: src/screens/Onboarding/StepTopicalFeeds.tsx:111 msgid "Continue to next step" msgstr "" @@ -915,13 +1051,14 @@ msgstr "" msgid "Copied" msgstr "" -#: src/view/screens/Settings/index.tsx:241 +#: src/view/screens/Settings/index.tsx:247 msgid "Copied build version to clipboard" msgstr "" #: src/view/com/modals/AddAppPasswords.tsx:76 +#: src/view/com/modals/ChangeHandle.tsx:327 #: src/view/com/modals/InviteCodes.tsx:152 -#: src/view/com/util/forms/PostDropdownBtn.tsx:161 +#: src/view/com/util/forms/PostDropdownBtn.tsx:158 msgid "Copied to clipboard" msgstr "" @@ -933,34 +1070,38 @@ msgstr "" msgid "Copy" msgstr "" -#: src/view/screens/ProfileList.tsx:418 +#: src/view/com/modals/ChangeHandle.tsx:481 +msgid "Copy {0}" +msgstr "" + +#: src/view/screens/ProfileList.tsx:388 msgid "Copy link to list" msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:231 +#: src/view/com/util/forms/PostDropdownBtn.tsx:228 #: src/view/com/util/forms/PostDropdownBtn.tsx:237 msgid "Copy link to post" msgstr "" #: src/view/com/profile/ProfileHeader.tsx:295 -msgid "Copy link to profile" -msgstr "" +#~ msgid "Copy link to profile" +#~ msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:223 -#: src/view/com/util/forms/PostDropdownBtn.tsx:225 +#: src/view/com/util/forms/PostDropdownBtn.tsx:220 +#: src/view/com/util/forms/PostDropdownBtn.tsx:222 msgid "Copy post text" msgstr "" -#: src/Navigation.tsx:234 +#: src/Navigation.tsx:246 #: src/view/screens/CopyrightPolicy.tsx:29 msgid "Copyright Policy" msgstr "" -#: src/view/screens/ProfileFeed.tsx:97 +#: src/view/screens/ProfileFeed.tsx:102 msgid "Could not load feed" msgstr "" -#: src/view/screens/ProfileList.tsx:893 +#: src/view/screens/ProfileList.tsx:907 msgid "Could not load list" msgstr "" @@ -968,13 +1109,13 @@ msgstr "" #~ msgid "Country" #~ msgstr "" -#: src/view/com/auth/HomeLoggedOutCTA.tsx:62 -#: src/view/com/auth/SplashScreen.tsx:71 +#: src/view/com/auth/HomeLoggedOutCTA.tsx:64 +#: src/view/com/auth/SplashScreen.tsx:73 #: src/view/com/auth/SplashScreen.web.tsx:81 msgid "Create a new account" msgstr "" -#: src/view/screens/Settings/index.tsx:384 +#: src/view/screens/Settings/index.tsx:399 msgid "Create a new Bluesky account" msgstr "" @@ -991,19 +1132,23 @@ msgstr "" msgid "Create new account" msgstr "" -#: src/view/screens/AppPasswords.tsx:249 +#: src/components/ReportDialog/SelectReportOptionView.tsx:94 +msgid "Create report for {0}" +msgstr "" + +#: src/view/screens/AppPasswords.tsx:246 msgid "Created {0}" msgstr "" #: src/view/screens/ProfileFeed.tsx:616 -msgid "Created by <0/>" -msgstr "" +#~ msgid "Created by <0/>" +#~ msgstr "" #: src/view/screens/ProfileFeed.tsx:614 -msgid "Created by you" -msgstr "" +#~ msgid "Created by you" +#~ msgstr "" -#: src/view/com/composer/Composer.tsx:455 +#: src/view/com/composer/Composer.tsx:468 msgid "Creates a card with a thumbnail. The card links to {url}" msgstr "" @@ -1033,8 +1178,8 @@ msgstr "" #~ msgid "Danger Zone" #~ msgstr "" -#: src/view/screens/Settings/index.tsx:485 -#: src/view/screens/Settings/index.tsx:511 +#: src/view/screens/Settings/index.tsx:500 +#: src/view/screens/Settings/index.tsx:526 msgid "Dark" msgstr "" @@ -1042,15 +1187,25 @@ msgstr "" msgid "Dark mode" msgstr "" -#: src/view/screens/Settings/index.tsx:498 +#: src/view/screens/Settings/index.tsx:513 msgid "Dark Theme" msgstr "" +#: src/view/screens/Settings/index.tsx:837 +msgid "Debug Moderation" +msgstr "" + #: src/view/screens/Debug.tsx:83 msgid "Debug panel" msgstr "" -#: src/view/screens/Settings/index.tsx:772 +#: src/view/com/util/forms/PostDropdownBtn.tsx:319 +#: src/view/screens/AppPasswords.tsx:268 +#: src/view/screens/ProfileList.tsx:613 +msgid "Delete" +msgstr "" + +#: src/view/screens/Settings/index.tsx:792 msgid "Delete account" msgstr "" @@ -1058,13 +1213,15 @@ msgstr "" msgid "Delete Account" msgstr "" -#: src/view/screens/AppPasswords.tsx:222 -#: src/view/screens/AppPasswords.tsx:242 +#: src/view/screens/AppPasswords.tsx:239 msgid "Delete app password" msgstr "" -#: src/view/screens/ProfileList.tsx:364 -#: src/view/screens/ProfileList.tsx:445 +#: src/view/screens/AppPasswords.tsx:263 +msgid "Delete app password?" +msgstr "" + +#: src/view/screens/ProfileList.tsx:415 msgid "Delete List" msgstr "" @@ -1076,24 +1233,28 @@ msgstr "" #~ msgid "Delete my account…" #~ msgstr "" -#: src/view/screens/Settings/index.tsx:784 +#: src/view/screens/Settings/index.tsx:804 msgid "Delete My Account…" msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:317 -#: src/view/com/util/forms/PostDropdownBtn.tsx:326 +#: src/view/com/util/forms/PostDropdownBtn.tsx:302 +#: src/view/com/util/forms/PostDropdownBtn.tsx:304 msgid "Delete post" msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:321 +#: src/view/screens/ProfileList.tsx:608 +msgid "Delete this list?" +msgstr "" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:314 msgid "Delete this post?" msgstr "" -#: src/view/com/util/post-embeds/QuoteEmbed.tsx:70 +#: src/view/com/util/post-embeds/QuoteEmbed.tsx:64 msgid "Deleted" msgstr "" -#: src/view/com/post-thread/PostThread.tsx:316 +#: src/view/com/post-thread/PostThread.tsx:305 msgid "Deleted post." msgstr "" @@ -1108,23 +1269,35 @@ msgstr "" #~ msgid "Developer Tools" #~ msgstr "" -#: src/view/com/composer/Composer.tsx:218 +#: src/view/com/composer/Composer.tsx:217 msgid "Did you want to say anything?" msgstr "" -#: src/view/screens/Settings/index.tsx:504 +#: src/view/screens/Settings/index.tsx:519 msgid "Dim" msgstr "" -#: src/view/com/composer/Composer.tsx:151 +#: src/lib/moderation/useLabelBehaviorDescription.ts:32 +#: src/lib/moderation/useLabelBehaviorDescription.ts:42 +#: src/lib/moderation/useLabelBehaviorDescription.ts:68 +#: src/screens/Moderation/index.tsx:343 +msgid "Disabled" +msgstr "" + +#: src/view/com/composer/Composer.tsx:510 msgid "Discard" msgstr "" #: src/view/com/composer/Composer.tsx:145 -msgid "Discard draft" +#~ msgid "Discard draft" +#~ msgstr "" + +#: src/view/com/composer/Composer.tsx:507 +msgid "Discard draft?" msgstr "" -#: src/view/screens/Moderation.tsx:226 +#: src/screens/Moderation/index.tsx:520 +#: src/screens/Moderation/index.tsx:524 msgid "Discourage apps from showing my account to logged-out users" msgstr "" @@ -1149,7 +1322,19 @@ msgstr "" msgid "Display Name" msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:487 +#: src/view/com/modals/ChangeHandle.tsx:398 +msgid "DNS Panel" +msgstr "" + +#: src/lib/moderation/useGlobalLabelStrings.ts:39 +msgid "Does not include nudity." +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:482 +msgid "Domain Value" +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:489 msgid "Domain verified!" msgstr "" @@ -1170,19 +1355,19 @@ msgctxt "action" msgid "Done" msgstr "" +#: src/components/dialogs/BirthDateSettings.tsx:119 +#: src/components/dialogs/BirthDateSettings.tsx:125 #: src/view/com/auth/server-input/index.tsx:165 #: src/view/com/auth/server-input/index.tsx:166 #: src/view/com/modals/AddAppPasswords.tsx:226 #: src/view/com/modals/AltImage.tsx:139 -#: src/view/com/modals/ContentFilteringSettings.tsx:88 -#: src/view/com/modals/ContentFilteringSettings.tsx:96 #: src/view/com/modals/crop-image/CropImage.web.tsx:152 #: src/view/com/modals/InviteCodes.tsx:80 #: src/view/com/modals/InviteCodes.tsx:123 #: src/view/com/modals/ListAddRemoveUsers.tsx:142 #: src/view/screens/PreferencesFollowingFeed.tsx:311 -#: src/view/screens/Settings/ExportCarDialog.tsx:93 #: src/view/screens/Settings/ExportCarDialog.tsx:94 +#: src/view/screens/Settings/ExportCarDialog.tsx:95 msgid "Done" msgstr "" @@ -1195,8 +1380,8 @@ msgid "Double tap to sign in" msgstr "" #: src/view/screens/Settings/index.tsx:755 -msgid "Download Bluesky account data (repository)" -msgstr "" +#~ msgid "Download Bluesky account data (repository)" +#~ msgstr "" #: src/view/screens/Settings/ExportCarDialog.tsx:59 #: src/view/screens/Settings/ExportCarDialog.tsx:63 @@ -1207,18 +1392,30 @@ msgstr "" msgid "Drop to add images" msgstr "" -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:111 +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:120 msgid "Due to Apple policies, adult content can only be enabled on the web after completing sign up." msgstr "" +#: src/view/com/modals/ChangeHandle.tsx:257 +msgid "e.g. alice" +msgstr "" + #: src/view/com/modals/EditProfile.tsx:185 msgid "e.g. Alice Roberts" msgstr "" +#: src/view/com/modals/ChangeHandle.tsx:381 +msgid "e.g. alice.com" +msgstr "" + #: src/view/com/modals/EditProfile.tsx:203 msgid "e.g. Artist, dog-lover, and avid reader." msgstr "" +#: src/lib/moderation/useGlobalLabelStrings.ts:43 +msgid "E.g. artistic nudes." +msgstr "" + #: src/view/com/modals/CreateOrEditList.tsx:283 msgid "e.g. Great Posters" msgstr "" @@ -1244,12 +1441,17 @@ msgctxt "action" msgid "Edit" msgstr "" +#: src/view/com/util/UserAvatar.tsx:299 +#: src/view/com/util/UserBanner.tsx:85 +msgid "Edit avatar" +msgstr "" + #: src/view/com/composer/photos/Gallery.tsx:144 #: src/view/com/modals/EditImage.tsx:207 msgid "Edit image" msgstr "" -#: src/view/screens/ProfileList.tsx:433 +#: src/view/screens/ProfileList.tsx:403 msgid "Edit list details" msgstr "" @@ -1257,7 +1459,7 @@ msgstr "" msgid "Edit Moderation List" msgstr "" -#: src/Navigation.tsx:244 +#: src/Navigation.tsx:256 #: src/view/screens/Feeds.tsx:434 #: src/view/screens/SavedFeeds.tsx:84 msgid "Edit My Feeds" @@ -1267,11 +1469,13 @@ msgstr "" msgid "Edit my profile" msgstr "" -#: src/view/com/profile/ProfileHeader.tsx:418 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:172 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:161 msgid "Edit profile" msgstr "" -#: src/view/com/profile/ProfileHeader.tsx:423 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:175 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:164 msgid "Edit Profile" msgstr "" @@ -1320,7 +1524,7 @@ msgstr "" msgid "Email verified" msgstr "" -#: src/view/screens/Settings/index.tsx:312 +#: src/view/screens/Settings/index.tsx:327 msgid "Email:" msgstr "" @@ -1328,12 +1532,16 @@ msgstr "" msgid "Enable {0} only" msgstr "" -#: src/view/com/modals/ContentFilteringSettings.tsx:167 +#: src/screens/Moderation/index.tsx:331 +msgid "Enable adult content" +msgstr "" + +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:94 msgid "Enable Adult Content" msgstr "" -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:76 -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:77 +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:78 +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:79 msgid "Enable adult content in your feeds" msgstr "" @@ -1349,7 +1557,11 @@ msgstr "" msgid "Enable this setting to only see replies between people you follow." msgstr "" -#: src/view/screens/Profile.tsx:455 +#: src/screens/Moderation/index.tsx:341 +msgid "Enabled" +msgstr "" + +#: src/screens/Profile/Sections/Feed.tsx:84 msgid "End of feed" msgstr "" @@ -1366,7 +1578,7 @@ msgstr "" msgid "Enter Confirmation Code" msgstr "" -#: src/view/com/modals/ChangePassword.tsx:151 +#: src/view/com/modals/ChangePassword.tsx:153 msgid "Enter the code you received to change your password." msgstr "" @@ -1378,8 +1590,8 @@ msgstr "" msgid "Enter the email you used to create your account. We'll send you a \"reset code\" so you can set a new password." msgstr "" +#: src/components/dialogs/BirthDateSettings.tsx:108 #: src/view/com/auth/create/Step1.tsx:228 -#: src/view/com/modals/BirthDateSettings.tsx:74 msgid "Enter your birth date" msgstr "" @@ -1419,16 +1631,28 @@ msgstr "" msgid "Everybody" msgstr "" +#: src/lib/moderation/useReportOptions.ts:66 +msgid "Excessive mentions or replies" +msgstr "" + +#: src/view/com/modals/DeleteAccount.tsx:231 +msgid "Exits account deletion process" +msgstr "" + #: src/view/com/modals/ChangeHandle.tsx:150 msgid "Exits handle change process" msgstr "" -#: src/view/com/lightbox/Lightbox.web.tsx:120 +#: src/view/com/modals/crop-image/CropImage.web.tsx:135 +msgid "Exits image cropping process" +msgstr "" + +#: src/view/com/lightbox/Lightbox.web.tsx:130 msgid "Exits image view" msgstr "" #: src/view/com/modals/ListAddRemoveUsers.tsx:88 -#: src/view/shell/desktop/Search.tsx:235 +#: src/view/shell/desktop/Search.tsx:236 msgid "Exits inputting search query" msgstr "" @@ -1436,7 +1660,7 @@ msgstr "" #~ msgid "Exits signing up for waitlist with {email}" #~ msgstr "" -#: src/view/com/lightbox/Lightbox.web.tsx:163 +#: src/view/com/lightbox/Lightbox.web.tsx:183 msgid "Expand alt text" msgstr "" @@ -1445,12 +1669,20 @@ msgstr "" msgid "Expand or collapse the full post you are replying to" msgstr "" -#: src/view/screens/Settings/index.tsx:753 +#: src/lib/moderation/useGlobalLabelStrings.ts:47 +msgid "Explicit or potentially disturbing media." +msgstr "" + +#: src/lib/moderation/useGlobalLabelStrings.ts:35 +msgid "Explicit sexual images." +msgstr "" + +#: src/view/screens/Settings/index.tsx:773 msgid "Export my data" msgstr "" #: src/view/screens/Settings/ExportCarDialog.tsx:44 -#: src/view/screens/Settings/index.tsx:764 +#: src/view/screens/Settings/index.tsx:784 msgid "Export My Data" msgstr "" @@ -1463,13 +1695,13 @@ msgstr "" msgid "External media may allow websites to collect information about you and your device. No information is sent or requested until you press the \"play\" button." msgstr "" -#: src/Navigation.tsx:263 +#: src/Navigation.tsx:275 #: src/view/screens/PreferencesExternalEmbeds.tsx:52 -#: src/view/screens/Settings/index.tsx:657 +#: src/view/screens/Settings/index.tsx:673 msgid "External Media Preferences" msgstr "" -#: src/view/screens/Settings/index.tsx:648 +#: src/view/screens/Settings/index.tsx:664 msgid "External media settings" msgstr "" @@ -1482,7 +1714,7 @@ msgstr "" msgid "Failed to create the list. Check your internet connection and try again." msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:128 +#: src/view/com/util/forms/PostDropdownBtn.tsx:125 msgid "Failed to delete post, please try again" msgstr "" @@ -1491,11 +1723,15 @@ msgstr "" msgid "Failed to load recommended feeds" msgstr "" -#: src/Navigation.tsx:194 +#: src/view/com/lightbox/Lightbox.tsx:83 +msgid "Failed to save image: {0}" +msgstr "" + +#: src/Navigation.tsx:196 msgid "Feed" msgstr "" -#: src/view/com/feeds/FeedSourceCard.tsx:231 +#: src/view/com/feeds/FeedSourceCard.tsx:218 msgid "Feed by {0}" msgstr "" @@ -1508,18 +1744,18 @@ msgstr "" #~ msgstr "" #: src/view/shell/desktop/RightNav.tsx:61 -#: src/view/shell/Drawer.tsx:311 +#: src/view/shell/Drawer.tsx:314 msgid "Feedback" msgstr "" -#: src/Navigation.tsx:452 +#: src/Navigation.tsx:464 #: src/view/screens/Feeds.tsx:419 #: src/view/screens/Feeds.tsx:524 -#: src/view/screens/Profile.tsx:184 -#: src/view/shell/bottom-bar/BottomBar.tsx:181 -#: src/view/shell/desktop/LeftNav.tsx:342 -#: src/view/shell/Drawer.tsx:476 -#: src/view/shell/Drawer.tsx:477 +#: src/view/screens/Profile.tsx:192 +#: src/view/shell/bottom-bar/BottomBar.tsx:183 +#: src/view/shell/desktop/LeftNav.tsx:346 +#: src/view/shell/Drawer.tsx:479 +#: src/view/shell/Drawer.tsx:480 msgid "Feeds" msgstr "" @@ -1543,6 +1779,14 @@ msgstr "" msgid "Feeds can be topical as well!" msgstr "" +#: src/view/com/modals/ChangeHandle.tsx:482 +msgid "File Contents" +msgstr "" + +#: src/lib/moderation/useLabelBehaviorDescription.ts:66 +msgid "Filter from feeds" +msgstr "" + #: src/screens/Onboarding/StepFinished.tsx:151 msgid "Finalizing" msgstr "" @@ -1553,15 +1797,15 @@ msgstr "" msgid "Find accounts to follow" msgstr "" -#: src/view/screens/Search/Search.tsx:440 +#: src/view/screens/Search/Search.tsx:441 msgid "Find users on Bluesky" msgstr "" -#: src/view/screens/Search/Search.tsx:438 +#: src/view/screens/Search/Search.tsx:439 msgid "Find users with the search tool on the right" msgstr "" -#: src/view/com/auth/onboarding/RecommendedFollowsItem.tsx:150 +#: src/view/com/auth/onboarding/RecommendedFollowsItem.tsx:155 msgid "Finding similar accounts..." msgstr "" @@ -1595,22 +1839,29 @@ msgid "Flip vertically" msgstr "" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:181 -#: src/view/com/post-thread/PostThreadFollowBtn.tsx:136 -#: src/view/com/profile/ProfileHeader.tsx:513 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:229 +#: src/view/com/auth/onboarding/RecommendedFollowsItem.tsx:141 +#: src/view/com/post-thread/PostThreadFollowBtn.tsx:139 +#: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:246 msgid "Follow" msgstr "" -#: src/view/com/profile/FollowButton.tsx:64 +#: src/view/com/profile/FollowButton.tsx:69 msgctxt "action" msgid "Follow" msgstr "" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:58 -#: src/view/com/post-thread/PostThreadFollowBtn.tsx:122 -#: src/view/com/profile/ProfileHeader.tsx:504 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:214 +#: src/view/com/post-thread/PostThreadFollowBtn.tsx:125 msgid "Follow {0}" msgstr "" +#: src/view/com/profile/ProfileMenu.tsx:242 +#: src/view/com/profile/ProfileMenu.tsx:253 +msgid "Follow Account" +msgstr "" + #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:179 msgid "Follow All" msgstr "" @@ -1623,7 +1874,7 @@ msgstr "" msgid "Follow some users to get started. We can recommend you more users based on who you find interesting." msgstr "" -#: src/view/com/profile/ProfileCard.tsx:194 +#: src/view/com/profile/ProfileCard.tsx:216 msgid "Followed by {0}" msgstr "" @@ -1635,33 +1886,39 @@ msgstr "" msgid "Followed users only" msgstr "" -#: src/view/com/notifications/FeedItem.tsx:166 +#: src/view/com/notifications/FeedItem.tsx:170 msgid "followed you" msgstr "" +#: src/view/com/profile/ProfileFollowers.tsx:109 #: src/view/screens/ProfileFollowers.tsx:25 msgid "Followers" msgstr "" -#: src/view/com/post-thread/PostThreadFollowBtn.tsx:136 -#: src/view/com/profile/ProfileHeader.tsx:495 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:227 +#: src/view/com/post-thread/PostThreadFollowBtn.tsx:139 +#: src/view/com/profile/ProfileFollows.tsx:108 #: src/view/screens/ProfileFollows.tsx:25 msgid "Following" msgstr "" -#: src/view/com/profile/ProfileHeader.tsx:149 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:89 msgid "Following {0}" msgstr "" -#: src/Navigation.tsx:250 +#: src/view/screens/Settings/index.tsx:549 +msgid "Following feed preferences" +msgstr "" + +#: src/Navigation.tsx:262 #: src/view/com/home/HomeHeaderLayout.web.tsx:50 #: src/view/com/home/HomeHeaderLayoutMobile.tsx:84 #: src/view/screens/PreferencesFollowingFeed.tsx:104 -#: src/view/screens/Settings/index.tsx:543 +#: src/view/screens/Settings/index.tsx:558 msgid "Following Feed Preferences" msgstr "" -#: src/view/com/profile/ProfileHeader.tsx:546 +#: src/screens/Profile/Header/Handle.tsx:24 msgid "Follows you" msgstr "" @@ -1694,12 +1951,16 @@ msgstr "" msgid "Forgot Password" msgstr "" +#: src/lib/moderation/useReportOptions.ts:52 +msgid "Frequently Posts Unwanted Content" +msgstr "" + #: src/screens/Hashtag.tsx:108 #: src/screens/Hashtag.tsx:148 msgid "From @{sanitizedAuthor}" msgstr "" -#: src/view/com/posts/FeedItem.tsx:189 +#: src/view/com/posts/FeedItem.tsx:179 msgctxt "from-feed" msgid "From <0/>" msgstr "" @@ -1713,27 +1974,46 @@ msgstr "" msgid "Get Started" msgstr "" +#: src/lib/moderation/useReportOptions.ts:37 +msgid "Glaring violations of law or terms of service" +msgstr "" + +#: src/components/moderation/ScreenHider.tsx:144 +#: src/components/moderation/ScreenHider.tsx:153 #: src/view/com/auth/LoggedOut.tsx:81 #: src/view/com/auth/LoggedOut.tsx:82 -#: src/view/com/util/moderation/ScreenHider.tsx:123 -#: src/view/shell/desktop/LeftNav.tsx:104 +#: src/view/screens/NotFound.tsx:55 +#: src/view/screens/ProfileFeed.tsx:111 +#: src/view/screens/ProfileList.tsx:916 +#: src/view/shell/desktop/LeftNav.tsx:108 msgid "Go back" msgstr "" -#: src/view/screens/ProfileFeed.tsx:106 -#: src/view/screens/ProfileFeed.tsx:111 -#: src/view/screens/ProfileList.tsx:902 -#: src/view/screens/ProfileList.tsx:907 +#: src/screens/Profile/ErrorState.tsx:62 +#: src/screens/Profile/ErrorState.tsx:66 +#: src/view/screens/NotFound.tsx:54 +#: src/view/screens/ProfileFeed.tsx:116 +#: src/view/screens/ProfileList.tsx:921 msgid "Go Back" msgstr "" +#: src/components/ReportDialog/SelectReportOptionView.tsx:74 +#: src/components/ReportDialog/SubmitView.tsx:104 #: src/screens/Onboarding/Layout.tsx:104 #: src/screens/Onboarding/Layout.tsx:193 msgid "Go back to previous step" msgstr "" -#: src/view/screens/Search/Search.tsx:747 -#: src/view/shell/desktop/Search.tsx:262 +#: src/view/screens/NotFound.tsx:55 +msgid "Go home" +msgstr "" + +#: src/view/screens/NotFound.tsx:54 +msgid "Go Home" +msgstr "" + +#: src/view/screens/Search/Search.tsx:748 +#: src/view/shell/desktop/Search.tsx:263 msgid "Go to @{queryMaybeHandle}" msgstr "" @@ -1741,15 +2021,23 @@ msgstr "" #: src/view/com/auth/login/ForgotPasswordForm.tsx:218 #: src/view/com/auth/login/LoginForm.tsx:288 #: src/view/com/auth/login/SetNewPasswordForm.tsx:195 -#: src/view/com/modals/ChangePassword.tsx:165 +#: src/view/com/modals/ChangePassword.tsx:167 msgid "Go to next" msgstr "" +#: src/lib/moderation/useGlobalLabelStrings.ts:46 +msgid "Graphic Media" +msgstr "" + #: src/view/com/modals/ChangeHandle.tsx:265 msgid "Handle" msgstr "" -#: src/Navigation.tsx:270 +#: src/lib/moderation/useReportOptions.ts:32 +msgid "Harassment, trolling, or intolerance" +msgstr "" + +#: src/Navigation.tsx:282 msgid "Hashtag" msgstr "" @@ -1766,7 +2054,7 @@ msgid "Having trouble?" msgstr "" #: src/view/shell/desktop/RightNav.tsx:90 -#: src/view/shell/Drawer.tsx:321 +#: src/view/shell/Drawer.tsx:324 msgid "Help" msgstr "" @@ -1786,40 +2074,45 @@ msgstr "" msgid "Here is your app password." msgstr "" -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:41 -#: src/view/com/modals/ContentFilteringSettings.tsx:251 -#: src/view/com/util/moderation/ContentHider.tsx:105 -#: src/view/com/util/moderation/PostHider.tsx:108 +#: src/components/moderation/ContentHider.tsx:115 +#: src/components/moderation/GlobalModerationLabelPref.tsx:43 +#: src/components/moderation/PostHider.tsx:107 +#: src/lib/moderation/useLabelBehaviorDescription.ts:15 +#: src/lib/moderation/useLabelBehaviorDescription.ts:20 +#: src/lib/moderation/useLabelBehaviorDescription.ts:25 +#: src/lib/moderation/useLabelBehaviorDescription.ts:30 +#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:52 +#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:76 +#: src/view/com/util/forms/PostDropdownBtn.tsx:328 msgid "Hide" msgstr "" -#: src/view/com/modals/ContentFilteringSettings.tsx:224 -#: src/view/com/notifications/FeedItem.tsx:326 +#: src/view/com/notifications/FeedItem.tsx:329 msgctxt "action" msgid "Hide" msgstr "" #: src/view/com/util/forms/PostDropdownBtn.tsx:276 -#: src/view/com/util/forms/PostDropdownBtn.tsx:287 +#: src/view/com/util/forms/PostDropdownBtn.tsx:278 msgid "Hide post" msgstr "" -#: src/view/com/util/moderation/ContentHider.tsx:67 -#: src/view/com/util/moderation/PostHider.tsx:61 +#: src/components/moderation/ContentHider.tsx:67 +#: src/components/moderation/PostHider.tsx:64 msgid "Hide the content" msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:280 +#: src/view/com/util/forms/PostDropdownBtn.tsx:325 msgid "Hide this post?" msgstr "" -#: src/view/com/notifications/FeedItem.tsx:316 +#: src/view/com/notifications/FeedItem.tsx:319 msgid "Hide user list" msgstr "" #: src/view/com/profile/ProfileHeader.tsx:487 -msgid "Hides posts from {0} in your feed" -msgstr "" +#~ msgid "Hides posts from {0} in your feed" +#~ msgstr "" #: src/view/com/posts/FeedErrorMessage.tsx:111 msgid "Hmm, some kind of issue occurred when contacting the feed server. Please let the feed owner know about this issue." @@ -1841,11 +2134,19 @@ msgstr "" msgid "Hmm, we're having trouble finding this feed. It may have been deleted." msgstr "" -#: src/Navigation.tsx:442 -#: src/view/shell/bottom-bar/BottomBar.tsx:137 -#: src/view/shell/desktop/LeftNav.tsx:306 -#: src/view/shell/Drawer.tsx:398 -#: src/view/shell/Drawer.tsx:399 +#: src/screens/Moderation/index.tsx:61 +msgid "Hmmmm, it seems we're having trouble loading this data. See below for more details. If this issue persists, please contact us." +msgstr "" + +#: src/screens/Profile/ErrorState.tsx:31 +msgid "Hmmmm, we couldn't load that moderation service." +msgstr "" + +#: src/Navigation.tsx:454 +#: src/view/shell/bottom-bar/BottomBar.tsx:139 +#: src/view/shell/desktop/LeftNav.tsx:310 +#: src/view/shell/Drawer.tsx:401 +#: src/view/shell/Drawer.tsx:402 msgid "Home" msgstr "" @@ -1856,8 +2157,13 @@ msgstr "" #~ msgid "Home Feed Preferences" #~ msgstr "" +#: src/view/com/modals/ChangeHandle.tsx:421 +msgid "Host:" +msgstr "" + #: src/view/com/auth/create/Step1.tsx:75 #: src/view/com/auth/login/ForgotPasswordForm.tsx:120 +#: src/view/com/modals/ChangeHandle.tsx:280 msgid "Hosting provider" msgstr "" @@ -1877,7 +2183,7 @@ msgstr "" msgid "I have my own domain" msgstr "" -#: src/view/com/lightbox/Lightbox.web.tsx:165 +#: src/view/com/lightbox/Lightbox.web.tsx:185 msgid "If alt text is long, toggles alt text expanded state" msgstr "" @@ -1885,10 +2191,26 @@ msgstr "" msgid "If none are selected, suitable for all ages." msgstr "" -#: src/view/com/modals/ChangePassword.tsx:146 +#: src/view/com/auth/create/Policies.tsx:91 +msgid "If you are not yet an adult according to the laws of your country, your parent or legal guardian must read these Terms on your behalf." +msgstr "" + +#: src/view/screens/ProfileList.tsx:610 +msgid "If you delete this list, you won't be able to recover it." +msgstr "" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:316 +msgid "If you remove this post, you won't be able to recover it." +msgstr "" + +#: src/view/com/modals/ChangePassword.tsx:148 msgid "If you want to change your password, we will send you a code to verify that this is your account." msgstr "" +#: src/lib/moderation/useReportOptions.ts:36 +msgid "Illegal and Urgent" +msgstr "" + #: src/view/com/util/images/Gallery.tsx:38 msgid "Image" msgstr "" @@ -1899,7 +2221,11 @@ msgstr "" #: src/view/com/util/UserAvatar.tsx:311 #: src/view/com/util/UserBanner.tsx:118 -msgid "Image options" +#~ msgid "Image options" +#~ msgstr "" + +#: src/lib/moderation/useReportOptions.ts:47 +msgid "Impersonation or false claims about identity or affiliation" msgstr "" #: src/view/com/auth/login/SetNewPasswordForm.tsx:138 @@ -1954,11 +2280,15 @@ msgstr "" msgid "Input your password" msgstr "" +#: src/view/com/modals/ChangeHandle.tsx:390 +msgid "Input your preferred hosting provider" +msgstr "" + #: src/view/com/auth/create/Step2.tsx:80 msgid "Input your user handle" msgstr "" -#: src/view/com/post-thread/PostThreadItem.tsx:226 +#: src/view/com/post-thread/PostThreadItem.tsx:221 msgid "Invalid or unsupported post record" msgstr "" @@ -1999,7 +2329,7 @@ msgstr "" msgid "It shows posts from the people you follow as they happen." msgstr "" -#: src/view/com/auth/HomeLoggedOutCTA.tsx:99 +#: src/view/com/auth/HomeLoggedOutCTA.tsx:103 #: src/view/com/auth/SplashScreen.web.tsx:138 msgid "Jobs" msgstr "" @@ -2021,20 +2351,52 @@ msgstr "" msgid "Journalism" msgstr "" +#: src/components/moderation/LabelsOnMe.tsx:59 +msgid "label has been placed on this {labelTarget}" +msgstr "" + +#: src/components/moderation/ContentHider.tsx:144 +msgid "Labeled by {0}." +msgstr "" + +#: src/components/moderation/ContentHider.tsx:142 +msgid "Labeled by the author." +msgstr "" + +#: src/view/screens/Profile.tsx:186 +msgid "Labels" +msgstr "" + +#: src/screens/Profile/Sections/Labels.tsx:143 +msgid "Labels are annotations on users and content. They can be used to hide, warn, and categorize the network." +msgstr "" + +#: src/components/moderation/LabelsOnMe.tsx:61 +msgid "labels have been placed on this {labelTarget}" +msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:63 +msgid "Labels on your account" +msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:65 +msgid "Labels on your content" +msgstr "" + #: src/view/com/composer/select-language/SelectLangBtn.tsx:104 msgid "Language selection" msgstr "" -#: src/view/screens/Settings/index.tsx:594 +#: src/view/screens/Settings/index.tsx:610 msgid "Language settings" msgstr "" -#: src/Navigation.tsx:142 +#: src/Navigation.tsx:144 #: src/view/screens/LanguageSettings.tsx:89 msgid "Language Settings" msgstr "" -#: src/view/screens/Settings/index.tsx:603 +#: src/view/screens/Settings/index.tsx:619 msgid "Languages" msgstr "" @@ -2043,27 +2405,31 @@ msgid "Last step!" msgstr "" #: src/view/com/util/moderation/ContentHider.tsx:103 -msgid "Learn more" -msgstr "" +#~ msgid "Learn more" +#~ msgstr "" -#: src/view/com/util/moderation/PostAlerts.tsx:47 -#: src/view/com/util/moderation/ProfileHeaderAlerts.tsx:65 -#: src/view/com/util/moderation/ScreenHider.tsx:104 +#: src/components/moderation/ScreenHider.tsx:129 msgid "Learn More" msgstr "" -#: src/view/com/util/moderation/ContentHider.tsx:85 -#: src/view/com/util/moderation/PostAlerts.tsx:40 -#: src/view/com/util/moderation/PostHider.tsx:78 -#: src/view/com/util/moderation/ProfileHeaderAlerts.tsx:49 -#: src/view/com/util/moderation/ScreenHider.tsx:101 +#: src/components/moderation/ContentHider.tsx:65 +#: src/components/moderation/ContentHider.tsx:128 +msgid "Learn more about the moderation applied to this content." +msgstr "" + +#: src/components/moderation/PostHider.tsx:85 +#: src/components/moderation/ScreenHider.tsx:126 msgid "Learn more about this warning" msgstr "" -#: src/view/screens/Moderation.tsx:262 +#: src/screens/Moderation/index.tsx:551 msgid "Learn more about what is public on Bluesky." msgstr "" +#: src/components/moderation/ContentHider.tsx:152 +msgid "Learn more." +msgstr "" + #: src/view/com/modals/lang-settings/ContentLanguagesSettings.tsx:82 msgid "Leave them all unchecked to see any language." msgstr "" @@ -2076,7 +2442,7 @@ msgstr "" msgid "left to go." msgstr "" -#: src/view/screens/Settings/index.tsx:278 +#: src/view/screens/Settings/index.tsx:292 msgid "Legacy storage cleared, you need to restart the app now." msgstr "" @@ -2091,55 +2457,65 @@ msgstr "" #: src/view/com/util/UserAvatar.tsx:248 #: src/view/com/util/UserBanner.tsx:62 -msgid "Library" -msgstr "" +#~ msgid "Library" +#~ msgstr "" -#: src/view/screens/Settings/index.tsx:479 +#: src/view/screens/Settings/index.tsx:494 msgid "Light" msgstr "" -#: src/view/com/util/post-ctrls/PostCtrls.tsx:182 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:185 msgid "Like" msgstr "" -#: src/view/screens/ProfileFeed.tsx:591 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:257 +#: src/view/screens/ProfileFeed.tsx:572 msgid "Like this feed" msgstr "" -#: src/Navigation.tsx:199 +#: src/components/LikesDialog.tsx:87 +#: src/Navigation.tsx:201 +#: src/Navigation.tsx:206 msgid "Liked by" msgstr "" +#: src/screens/Profile/ProfileLabelerLikedBy.tsx:42 #: src/view/screens/PostLikedBy.tsx:27 #: src/view/screens/ProfileFeedLikedBy.tsx:27 msgid "Liked By" msgstr "" -#: src/view/com/feeds/FeedSourceCard.tsx:279 +#: src/view/com/feeds/FeedSourceCard.tsx:268 msgid "Liked by {0} {1}" msgstr "" -#: src/view/screens/ProfileFeed.tsx:606 +#: src/components/LabelingServiceCard/index.tsx:72 +msgid "Liked by {count} {0}" +msgstr "" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:277 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:291 +#: src/view/screens/ProfileFeed.tsx:587 msgid "Liked by {likeCount} {0}" msgstr "" -#: src/view/com/notifications/FeedItem.tsx:170 +#: src/view/com/notifications/FeedItem.tsx:174 msgid "liked your custom feed" msgstr "" -#: src/view/com/notifications/FeedItem.tsx:155 +#: src/view/com/notifications/FeedItem.tsx:159 msgid "liked your post" msgstr "" -#: src/view/screens/Profile.tsx:183 +#: src/view/screens/Profile.tsx:191 msgid "Likes" msgstr "" -#: src/view/com/post-thread/PostThreadItem.tsx:183 +#: src/view/com/post-thread/PostThreadItem.tsx:182 msgid "Likes on this post" msgstr "" -#: src/Navigation.tsx:168 +#: src/Navigation.tsx:170 msgid "List" msgstr "" @@ -2147,15 +2523,15 @@ msgstr "" msgid "List Avatar" msgstr "" -#: src/view/screens/ProfileList.tsx:324 +#: src/view/screens/ProfileList.tsx:311 msgid "List blocked" msgstr "" -#: src/view/com/feeds/FeedSourceCard.tsx:233 +#: src/view/com/feeds/FeedSourceCard.tsx:220 msgid "List by {0}" msgstr "" -#: src/view/screens/ProfileList.tsx:378 +#: src/view/screens/ProfileList.tsx:355 msgid "List deleted" msgstr "" @@ -2167,39 +2543,40 @@ msgstr "" msgid "List Name" msgstr "" -#: src/view/screens/ProfileList.tsx:343 +#: src/view/screens/ProfileList.tsx:325 msgid "List unblocked" msgstr "" -#: src/view/screens/ProfileList.tsx:302 +#: src/view/screens/ProfileList.tsx:297 msgid "List unmuted" msgstr "" -#: src/Navigation.tsx:112 -#: src/view/screens/Profile.tsx:185 -#: src/view/shell/desktop/LeftNav.tsx:379 -#: src/view/shell/Drawer.tsx:492 -#: src/view/shell/Drawer.tsx:493 +#: src/Navigation.tsx:114 +#: src/view/screens/Profile.tsx:187 +#: src/view/screens/Profile.tsx:193 +#: src/view/shell/desktop/LeftNav.tsx:383 +#: src/view/shell/Drawer.tsx:495 +#: src/view/shell/Drawer.tsx:496 msgid "Lists" msgstr "" #: src/view/com/post-thread/PostThread.tsx:333 #: src/view/com/post-thread/PostThread.tsx:341 -msgid "Load more posts" -msgstr "" +#~ msgid "Load more posts" +#~ msgstr "" #: src/view/screens/Notifications.tsx:159 msgid "Load new notifications" msgstr "" -#: src/view/com/feeds/FeedPage.tsx:115 -#: src/view/screens/Profile.tsx:440 +#: src/screens/Profile/Sections/Feed.tsx:70 +#: src/view/com/feeds/FeedPage.tsx:124 #: src/view/screens/ProfileFeed.tsx:495 -#: src/view/screens/ProfileList.tsx:681 +#: src/view/screens/ProfileList.tsx:695 msgid "Load new posts" msgstr "" -#: src/view/com/composer/text-input/mobile/Autocomplete.tsx:95 +#: src/view/com/composer/text-input/mobile/Autocomplete.tsx:99 msgid "Loading..." msgstr "" @@ -2207,7 +2584,7 @@ msgstr "" #~ msgid "Local dev server" #~ msgstr "" -#: src/Navigation.tsx:209 +#: src/Navigation.tsx:221 msgid "Log" msgstr "" @@ -2218,11 +2595,11 @@ msgstr "" msgid "Log out" msgstr "" -#: src/view/screens/Moderation.tsx:155 +#: src/screens/Moderation/index.tsx:444 msgid "Logged-out visibility" msgstr "" -#: src/view/com/auth/login/ChooseAccountForm.tsx:133 +#: src/view/com/auth/login/ChooseAccountForm.tsx:137 msgid "Login to account that is not listed" msgstr "" @@ -2242,7 +2619,7 @@ msgstr "" msgid "May only contain letters and numbers" msgstr "" -#: src/view/screens/Profile.tsx:182 +#: src/view/screens/Profile.tsx:190 msgid "Media" msgstr "" @@ -2255,35 +2632,43 @@ msgid "Mentioned users" msgstr "" #: src/view/com/util/ViewHeader.tsx:87 -#: src/view/screens/Search/Search.tsx:646 +#: src/view/screens/Search/Search.tsx:647 msgid "Menu" msgstr "" -#: src/view/com/posts/FeedErrorMessage.tsx:197 +#: src/view/com/posts/FeedErrorMessage.tsx:192 msgid "Message from server: {0}" msgstr "" -#: src/Navigation.tsx:117 -#: src/view/screens/Moderation.tsx:66 -#: src/view/screens/Settings/index.tsx:625 -#: src/view/shell/desktop/LeftNav.tsx:397 -#: src/view/shell/Drawer.tsx:511 -#: src/view/shell/Drawer.tsx:512 +#: src/lib/moderation/useReportOptions.ts:45 +msgid "Misleading Account" +msgstr "" + +#: src/Navigation.tsx:119 +#: src/screens/Moderation/index.tsx:106 +#: src/view/screens/Settings/index.tsx:641 +#: src/view/shell/desktop/LeftNav.tsx:401 +#: src/view/shell/Drawer.tsx:514 +#: src/view/shell/Drawer.tsx:515 msgid "Moderation" msgstr "" +#: src/components/moderation/ModerationDetailsDialog.tsx:113 +msgid "Moderation details" +msgstr "" + #: src/view/com/lists/ListCard.tsx:93 #: src/view/com/modals/UserAddRemoveLists.tsx:206 msgid "Moderation list by {0}" msgstr "" -#: src/view/screens/ProfileList.tsx:775 +#: src/view/screens/ProfileList.tsx:789 msgid "Moderation list by <0/>" msgstr "" #: src/view/com/lists/ListCard.tsx:91 #: src/view/com/modals/UserAddRemoveLists.tsx:204 -#: src/view/screens/ProfileList.tsx:773 +#: src/view/screens/ProfileList.tsx:787 msgid "Moderation list by you" msgstr "" @@ -2295,30 +2680,41 @@ msgstr "" msgid "Moderation list updated" msgstr "" -#: src/view/screens/Moderation.tsx:114 +#: src/screens/Moderation/index.tsx:245 msgid "Moderation lists" msgstr "" -#: src/Navigation.tsx:122 +#: src/Navigation.tsx:124 #: src/view/screens/ModerationModlists.tsx:58 msgid "Moderation Lists" msgstr "" -#: src/view/screens/Settings/index.tsx:619 +#: src/view/screens/Settings/index.tsx:635 msgid "Moderation settings" msgstr "" -#: src/view/com/modals/ModerationDetails.tsx:35 +#: src/Navigation.tsx:216 +msgid "Moderation states" +msgstr "" + +#: src/screens/Moderation/index.tsx:217 +msgid "Moderation tools" +msgstr "" + +#: src/components/moderation/ModerationDetailsDialog.tsx:49 +#: src/lib/moderation/useModerationCauseDescription.ts:40 msgid "Moderator has chosen to set a general warning on the content." msgstr "" +#: src/view/com/post-thread/PostThreadItem.tsx:541 +msgid "More" +msgstr "" + #: src/view/shell/desktop/Feeds.tsx:65 msgid "More feeds" msgstr "" -#: src/view/com/profile/ProfileHeader.tsx:523 -#: src/view/screens/ProfileFeed.tsx:363 -#: src/view/screens/ProfileList.tsx:617 +#: src/view/screens/ProfileList.tsx:599 msgid "More options" msgstr "" @@ -2342,11 +2738,12 @@ msgstr "" msgid "Mute {truncatedTag}" msgstr "" -#: src/view/com/profile/ProfileHeader.tsx:327 +#: src/view/com/profile/ProfileMenu.tsx:279 +#: src/view/com/profile/ProfileMenu.tsx:286 msgid "Mute Account" msgstr "" -#: src/view/screens/ProfileList.tsx:544 +#: src/view/screens/ProfileList.tsx:518 msgid "Mute accounts" msgstr "" @@ -2366,17 +2763,18 @@ msgstr "" msgid "Mute in text & tags" msgstr "" -#: src/view/screens/ProfileList.tsx:491 +#: src/view/screens/ProfileList.tsx:461 +#: src/view/screens/ProfileList.tsx:624 msgid "Mute list" msgstr "" -#: src/view/screens/ProfileList.tsx:275 +#: src/view/screens/ProfileList.tsx:619 msgid "Mute these accounts?" msgstr "" #: src/view/screens/ProfileList.tsx:279 -msgid "Mute this List" -msgstr "" +#~ msgid "Mute this List" +#~ msgstr "" #: src/components/dialogs/MutedWords.tsx:127 msgid "Mute this word in post text and tags" @@ -2400,11 +2798,11 @@ msgstr "" msgid "Muted" msgstr "" -#: src/view/screens/Moderation.tsx:128 +#: src/screens/Moderation/index.tsx:257 msgid "Muted accounts" msgstr "" -#: src/Navigation.tsx:127 +#: src/Navigation.tsx:129 #: src/view/screens/ModerationMutedAccounts.tsx:107 msgid "Muted Accounts" msgstr "" @@ -2413,15 +2811,20 @@ msgstr "" msgid "Muted accounts have their posts removed from your feed and from your notifications. Mutes are completely private." msgstr "" -#: src/view/screens/Moderation.tsx:100 +#: src/lib/moderation/useModerationCauseDescription.ts:85 +msgid "Muted by \"{0}\"" +msgstr "" + +#: src/screens/Moderation/index.tsx:233 msgid "Muted words & tags" msgstr "" -#: src/view/screens/ProfileList.tsx:277 +#: src/view/screens/ProfileList.tsx:621 msgid "Muting is private. Muted accounts can interact with you, but you will not see their posts or receive notifications from them." msgstr "" -#: src/view/com/modals/BirthDateSettings.tsx:56 +#: src/components/dialogs/BirthDateSettings.tsx:35 +#: src/components/dialogs/BirthDateSettings.tsx:38 msgid "My Birthday" msgstr "" @@ -2433,13 +2836,17 @@ msgstr "" msgid "My Profile" msgstr "" -#: src/view/screens/Settings/index.tsx:582 +#: src/view/screens/Settings/index.tsx:592 +msgid "My saved feeds" +msgstr "" + +#: src/view/screens/Settings/index.tsx:598 msgid "My Saved Feeds" msgstr "" #: src/view/com/auth/server-input/index.tsx:118 -msgid "my-server.com" -msgstr "" +#~ msgid "my-server.com" +#~ msgstr "" #: src/view/com/modals/AddAppPasswords.tsx:179 #: src/view/com/modals/CreateOrEditList.tsx:290 @@ -2450,6 +2857,12 @@ msgstr "" msgid "Name is required" msgstr "" +#: src/lib/moderation/useReportOptions.ts:57 +#: src/lib/moderation/useReportOptions.ts:78 +#: src/lib/moderation/useReportOptions.ts:86 +msgid "Name or Description Violates Community Standards" +msgstr "" + #: src/screens/Onboarding/index.tsx:25 msgid "Nature" msgstr "" @@ -2458,7 +2871,7 @@ msgstr "" #: src/view/com/auth/login/ForgotPasswordForm.tsx:219 #: src/view/com/auth/login/LoginForm.tsx:289 #: src/view/com/auth/login/SetNewPasswordForm.tsx:196 -#: src/view/com/modals/ChangePassword.tsx:166 +#: src/view/com/modals/ChangePassword.tsx:168 msgid "Navigates to the next screen" msgstr "" @@ -2466,13 +2879,17 @@ msgstr "" msgid "Navigates to your profile" msgstr "" +#: src/components/ReportDialog/SelectReportOptionView.tsx:124 +msgid "Need to report a copyright violation?" +msgstr "" + #: src/view/com/modals/EmbedConsent.tsx:107 #: src/view/com/modals/EmbedConsent.tsx:123 msgid "Never load embeds from {0}" msgstr "" #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:72 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:72 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:74 msgid "Never lose access to your followers and data." msgstr "" @@ -2481,7 +2898,11 @@ msgid "Never lose access to your followers or data." msgstr "" #: src/components/dialogs/MutedWords.tsx:293 -msgid "Nevermind" +#~ msgid "Nevermind" +#~ msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:520 +msgid "Nevermind, create a handle for me" msgstr "" #: src/view/screens/Lists.tsx:76 @@ -2498,29 +2919,30 @@ msgid "New Moderation List" msgstr "" #: src/view/com/auth/login/SetNewPasswordForm.tsx:150 +#: src/view/com/modals/ChangePassword.tsx:212 msgid "New password" msgstr "" -#: src/view/com/modals/ChangePassword.tsx:215 +#: src/view/com/modals/ChangePassword.tsx:217 msgid "New Password" msgstr "" -#: src/view/com/feeds/FeedPage.tsx:126 +#: src/view/com/feeds/FeedPage.tsx:135 msgctxt "action" msgid "New post" msgstr "" #: src/view/screens/Feeds.tsx:555 #: src/view/screens/Notifications.tsx:168 -#: src/view/screens/Profile.tsx:382 +#: src/view/screens/Profile.tsx:450 #: src/view/screens/ProfileFeed.tsx:433 -#: src/view/screens/ProfileList.tsx:196 -#: src/view/screens/ProfileList.tsx:224 -#: src/view/shell/desktop/LeftNav.tsx:248 +#: src/view/screens/ProfileList.tsx:199 +#: src/view/screens/ProfileList.tsx:227 +#: src/view/shell/desktop/LeftNav.tsx:252 msgid "New post" msgstr "" -#: src/view/shell/desktop/LeftNav.tsx:258 +#: src/view/shell/desktop/LeftNav.tsx:262 msgctxt "action" msgid "New Post" msgstr "" @@ -2544,8 +2966,8 @@ msgstr "" #: src/view/com/auth/login/SetNewPasswordForm.tsx:187 #: src/view/com/auth/login/SetNewPasswordForm.tsx:198 #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:79 -#: src/view/com/modals/ChangePassword.tsx:251 #: src/view/com/modals/ChangePassword.tsx:253 +#: src/view/com/modals/ChangePassword.tsx:255 msgid "Next" msgstr "" @@ -2554,7 +2976,7 @@ msgctxt "action" msgid "Next" msgstr "" -#: src/view/com/lightbox/Lightbox.web.tsx:149 +#: src/view/com/lightbox/Lightbox.web.tsx:169 msgid "Next image" msgstr "" @@ -2567,12 +2989,16 @@ msgstr "" msgid "No" msgstr "" -#: src/view/screens/ProfileFeed.tsx:584 -#: src/view/screens/ProfileList.tsx:755 +#: src/view/screens/ProfileFeed.tsx:561 +#: src/view/screens/ProfileList.tsx:769 msgid "No description" msgstr "" -#: src/view/com/profile/ProfileHeader.tsx:170 +#: src/view/com/modals/ChangeHandle.tsx:406 +msgid "No DNS Panel" +msgstr "" + +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:111 msgid "No longer following {0}" msgstr "" @@ -2580,12 +3006,12 @@ msgstr "" msgid "No notifications yet!" msgstr "" -#: src/view/com/composer/text-input/mobile/Autocomplete.tsx:97 -#: src/view/com/composer/text-input/web/Autocomplete.tsx:191 +#: src/view/com/composer/text-input/mobile/Autocomplete.tsx:101 +#: src/view/com/composer/text-input/web/Autocomplete.tsx:195 msgid "No result" msgstr "" -#: src/components/Lists.tsx:192 +#: src/components/Lists.tsx:189 msgid "No results found" msgstr "" @@ -2594,8 +3020,8 @@ msgid "No results found for \"{query}\"" msgstr "" #: src/view/com/modals/ListAddRemoveUsers.tsx:127 -#: src/view/screens/Search/Search.tsx:281 -#: src/view/screens/Search/Search.tsx:309 +#: src/view/screens/Search/Search.tsx:282 +#: src/view/screens/Search/Search.tsx:310 msgid "No results found for {query}" msgstr "" @@ -2607,12 +3033,21 @@ msgstr "" msgid "Nobody" msgstr "" +#: src/components/LikedByList.tsx:102 +#: src/components/LikesDialog.tsx:99 +msgid "Nobody has liked this yet. Maybe you should be the first!" +msgstr "" + +#: src/lib/moderation/useGlobalLabelStrings.ts:42 +msgid "Non-sexual Nudity" +msgstr "" + #: src/view/com/modals/SelfLabel.tsx:135 msgid "Not Applicable." msgstr "" -#: src/Navigation.tsx:107 -#: src/view/screens/Profile.tsx:106 +#: src/Navigation.tsx:109 +#: src/view/screens/Profile.tsx:97 msgid "Not Found" msgstr "" @@ -2621,17 +3056,22 @@ msgstr "" msgid "Not right now" msgstr "" -#: src/view/screens/Moderation.tsx:252 +#: src/view/com/profile/ProfileMenu.tsx:368 +#: src/view/com/util/forms/PostDropdownBtn.tsx:342 +msgid "Note about sharing" +msgstr "" + +#: src/screens/Moderation/index.tsx:542 msgid "Note: Bluesky is an open and public network. This setting only limits the visibility of your content on the Bluesky app and website, and other apps may not respect this setting. Your content may still be shown to logged-out users by other apps and websites." msgstr "" -#: src/Navigation.tsx:457 +#: src/Navigation.tsx:469 #: src/view/screens/Notifications.tsx:124 #: src/view/screens/Notifications.tsx:148 -#: src/view/shell/bottom-bar/BottomBar.tsx:205 -#: src/view/shell/desktop/LeftNav.tsx:361 -#: src/view/shell/Drawer.tsx:435 -#: src/view/shell/Drawer.tsx:436 +#: src/view/shell/bottom-bar/BottomBar.tsx:207 +#: src/view/shell/desktop/LeftNav.tsx:365 +#: src/view/shell/Drawer.tsx:438 +#: src/view/shell/Drawer.tsx:439 msgid "Notifications" msgstr "" @@ -2639,7 +3079,15 @@ msgstr "" msgid "Nudity" msgstr "" -#: src/view/com/util/ErrorBoundary.tsx:35 +#: src/lib/moderation/useReportOptions.ts:71 +msgid "Nudity or pornography not labeled as such" +msgstr "" + +#: src/lib/moderation/useLabelBehaviorDescription.ts:11 +msgid "Off" +msgstr "" + +#: src/view/com/util/ErrorBoundary.tsx:49 msgid "Oh no!" msgstr "" @@ -2647,6 +3095,10 @@ msgstr "" msgid "Oh no! Something went wrong." msgstr "" +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:127 +msgid "OK" +msgstr "" + #: src/view/com/auth/login/PasswordUpdatedForm.tsx:41 msgid "Okay" msgstr "" @@ -2655,11 +3107,11 @@ msgstr "" msgid "Oldest replies first" msgstr "" -#: src/view/screens/Settings/index.tsx:234 +#: src/view/screens/Settings/index.tsx:240 msgid "Onboarding reset" msgstr "" -#: src/view/com/composer/Composer.tsx:382 +#: src/view/com/composer/Composer.tsx:391 msgid "One or more images is missing alt text." msgstr "" @@ -2667,13 +3119,13 @@ msgstr "" msgid "Only {0} can reply." msgstr "" -#: src/components/Lists.tsx:82 +#: src/components/Lists.tsx:83 msgid "Oops, something went wrong!" msgstr "" -#: src/components/Lists.tsx:188 -#: src/view/screens/AppPasswords.tsx:65 -#: src/view/screens/Profile.tsx:106 +#: src/components/Lists.tsx:157 +#: src/view/screens/AppPasswords.tsx:67 +#: src/view/screens/Profile.tsx:97 msgid "Oops!" msgstr "" @@ -2682,34 +3134,47 @@ msgid "Open" msgstr "" #: src/view/screens/Moderation.tsx:75 -msgid "Open content filtering settings" -msgstr "" +#~ msgid "Open content filtering settings" +#~ msgstr "" -#: src/view/com/composer/Composer.tsx:477 -#: src/view/com/composer/Composer.tsx:478 +#: src/view/com/composer/Composer.tsx:490 +#: src/view/com/composer/Composer.tsx:491 msgid "Open emoji picker" msgstr "" -#: src/view/screens/Settings/index.tsx:712 +#: src/view/screens/ProfileFeed.tsx:299 +msgid "Open feed options menu" +msgstr "" + +#: src/view/screens/Settings/index.tsx:730 msgid "Open links with in-app browser" msgstr "" -#: src/view/screens/Moderation.tsx:92 -msgid "Open muted words settings" +#: src/screens/Moderation/index.tsx:229 +msgid "Open muted words and tags settings" msgstr "" +#: src/view/screens/Moderation.tsx:92 +#~ msgid "Open muted words settings" +#~ msgstr "" + #: src/view/com/home/HomeHeaderLayoutMobile.tsx:50 msgid "Open navigation" msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:175 +#: src/view/com/util/forms/PostDropdownBtn.tsx:183 msgid "Open post options menu" msgstr "" -#: src/view/screens/Settings/index.tsx:804 +#: src/view/screens/Settings/index.tsx:824 +#: src/view/screens/Settings/index.tsx:834 msgid "Open storybook page" msgstr "" +#: src/view/screens/Settings/index.tsx:812 +msgid "Open system log" +msgstr "" + #: src/view/com/util/forms/DropdownButton.tsx:154 msgid "Opens {numItems} options" msgstr "" @@ -2718,11 +3183,11 @@ msgstr "" msgid "Opens additional details for a debug entry" msgstr "" -#: src/view/com/notifications/FeedItem.tsx:349 +#: src/view/com/notifications/FeedItem.tsx:353 msgid "Opens an expanded list of users in this notification" msgstr "" -#: src/view/com/composer/photos/OpenCameraBtn.tsx:61 +#: src/view/com/composer/photos/OpenCameraBtn.tsx:78 msgid "Opens camera on device" msgstr "" @@ -2730,7 +3195,7 @@ msgstr "" msgid "Opens composer" msgstr "" -#: src/view/screens/Settings/index.tsx:595 +#: src/view/screens/Settings/index.tsx:611 msgid "Opens configurable language settings" msgstr "" @@ -2739,21 +3204,31 @@ msgid "Opens device photo gallery" msgstr "" #: src/view/com/profile/ProfileHeader.tsx:420 -msgid "Opens editor for profile display name, avatar, background image, and description" -msgstr "" +#~ msgid "Opens editor for profile display name, avatar, background image, and description" +#~ msgstr "" -#: src/view/screens/Settings/index.tsx:649 +#: src/view/screens/Settings/index.tsx:665 msgid "Opens external embeds settings" msgstr "" -#: src/view/com/profile/ProfileHeader.tsx:575 -msgid "Opens followers list" +#: src/view/com/auth/HomeLoggedOutCTA.tsx:56 +#: src/view/com/auth/SplashScreen.tsx:70 +msgid "Opens flow to create a new Bluesky account" msgstr "" -#: src/view/com/profile/ProfileHeader.tsx:594 -msgid "Opens following list" +#: src/view/com/auth/HomeLoggedOutCTA.tsx:74 +#: src/view/com/auth/SplashScreen.tsx:83 +msgid "Opens flow to sign into your existing Bluesky account" msgstr "" +#: src/view/com/profile/ProfileHeader.tsx:575 +#~ msgid "Opens followers list" +#~ msgstr "" + +#: src/view/com/profile/ProfileHeader.tsx:594 +#~ msgid "Opens following list" +#~ msgstr "" + #: src/view/screens/Settings.tsx:412 #~ msgid "Opens invite code list" #~ msgstr "" @@ -2762,15 +3237,35 @@ msgstr "" msgid "Opens list of invite codes" msgstr "" +#: src/view/screens/Settings/index.tsx:794 +msgid "Opens modal for account deletion confirmation. Requires email code" +msgstr "" + #: src/view/screens/Settings/index.tsx:774 -msgid "Opens modal for account deletion confirmation. Requires email code." +#~ msgid "Opens modal for account deletion confirmation. Requires email code." +#~ msgstr "" + +#: src/view/screens/Settings/index.tsx:752 +msgid "Opens modal for changing your Bluesky password" +msgstr "" + +#: src/view/screens/Settings/index.tsx:714 +msgid "Opens modal for choosing a new Bluesky handle" +msgstr "" + +#: src/view/screens/Settings/index.tsx:775 +msgid "Opens modal for downloading your Bluesky account data (repository)" +msgstr "" + +#: src/view/screens/Settings/index.tsx:966 +msgid "Opens modal for email verification" msgstr "" #: src/view/com/modals/ChangeHandle.tsx:281 msgid "Opens modal for using custom domain" msgstr "" -#: src/view/screens/Settings/index.tsx:620 +#: src/view/screens/Settings/index.tsx:636 msgid "Opens moderation settings" msgstr "" @@ -2783,27 +3278,40 @@ msgstr "" msgid "Opens screen to edit Saved Feeds" msgstr "" -#: src/view/screens/Settings/index.tsx:576 +#: src/view/screens/Settings/index.tsx:593 msgid "Opens screen with all saved feeds" msgstr "" +#: src/view/screens/Settings/index.tsx:692 +msgid "Opens the app password settings" +msgstr "" + #: src/view/screens/Settings/index.tsx:676 -msgid "Opens the app password settings page" +#~ msgid "Opens the app password settings page" +#~ msgstr "" + +#: src/view/screens/Settings/index.tsx:550 +msgid "Opens the Following feed preferences" msgstr "" #: src/view/screens/Settings/index.tsx:535 -msgid "Opens the home feed preferences" +#~ msgid "Opens the home feed preferences" +#~ msgstr "" + +#: src/view/com/modals/LinkWarning.tsx:76 +msgid "Opens the linked website" msgstr "" -#: src/view/screens/Settings/index.tsx:805 +#: src/view/screens/Settings/index.tsx:825 +#: src/view/screens/Settings/index.tsx:835 msgid "Opens the storybook page" msgstr "" -#: src/view/screens/Settings/index.tsx:793 +#: src/view/screens/Settings/index.tsx:813 msgid "Opens the system log page" msgstr "" -#: src/view/screens/Settings/index.tsx:556 +#: src/view/screens/Settings/index.tsx:571 msgid "Opens the threads preferences" msgstr "" @@ -2811,11 +3319,19 @@ msgstr "" msgid "Option {0} of {numItems}" msgstr "" +#: src/components/ReportDialog/SubmitView.tsx:162 +msgid "Optionally provide additional information below:" +msgstr "" + #: src/view/com/modals/Threadgate.tsx:89 msgid "Or combine these options:" msgstr "" -#: src/view/com/auth/login/ChooseAccountForm.tsx:138 +#: src/lib/moderation/useReportOptions.ts:25 +msgid "Other" +msgstr "" + +#: src/view/com/auth/login/ChooseAccountForm.tsx:142 msgid "Other account" msgstr "" @@ -2827,7 +3343,7 @@ msgstr "" msgid "Other..." msgstr "" -#: src/components/Lists.tsx:194 +#: src/components/Lists.tsx:190 #: src/view/screens/NotFound.tsx:45 msgid "Page not found" msgstr "" @@ -2838,12 +3354,18 @@ msgstr "" #: src/view/com/auth/create/Step1.tsx:191 #: src/view/com/auth/create/Step1.tsx:201 +#: src/view/com/auth/login/LoginForm.tsx:210 #: src/view/com/auth/login/LoginForm.tsx:226 #: src/view/com/auth/login/SetNewPasswordForm.tsx:161 +#: src/view/com/modals/DeleteAccount.tsx:195 #: src/view/com/modals/DeleteAccount.tsx:202 msgid "Password" msgstr "" +#: src/view/com/modals/ChangePassword.tsx:142 +msgid "Password Changed" +msgstr "" + #: src/view/com/auth/login/Login.tsx:157 msgid "Password updated" msgstr "" @@ -2852,11 +3374,11 @@ msgstr "" msgid "Password updated!" msgstr "" -#: src/Navigation.tsx:162 +#: src/Navigation.tsx:164 msgid "People followed by @{0}" msgstr "" -#: src/Navigation.tsx:155 +#: src/Navigation.tsx:157 msgid "People following @{0}" msgstr "" @@ -2880,11 +3402,15 @@ msgstr "" msgid "Pictures meant for adults." msgstr "" -#: src/view/screens/ProfileFeed.tsx:354 -#: src/view/screens/ProfileList.tsx:581 +#: src/view/screens/ProfileFeed.tsx:291 +#: src/view/screens/ProfileList.tsx:563 msgid "Pin to home" msgstr "" +#: src/view/screens/ProfileFeed.tsx:294 +msgid "Pin to Home" +msgstr "" + #: src/view/screens/SavedFeeds.tsx:88 msgid "Pinned Feeds" msgstr "" @@ -2950,10 +3476,14 @@ msgstr "" msgid "Please enter your password as well:" msgstr "" +#: src/components/moderation/LabelsOnMeDialog.tsx:222 +msgid "Please explain why you think this label was incorrectly applied by {0}" +msgstr "" + #: src/view/com/modals/AppealLabel.tsx:72 #: src/view/com/modals/AppealLabel.tsx:75 -msgid "Please tell us why you think this content warning was incorrectly applied!" -msgstr "" +#~ msgid "Please tell us why you think this content warning was incorrectly applied!" +#~ msgstr "" #: src/view/com/modals/AppealLabel.tsx:72 #: src/view/com/modals/AppealLabel.tsx:75 @@ -2964,7 +3494,7 @@ msgstr "" msgid "Please Verify Your Email" msgstr "" -#: src/view/com/composer/Composer.tsx:222 +#: src/view/com/composer/Composer.tsx:221 msgid "Please wait for your link card to finish loading" msgstr "" @@ -2976,13 +3506,17 @@ msgstr "" msgid "Porn" msgstr "" -#: src/view/com/composer/Composer.tsx:357 -#: src/view/com/composer/Composer.tsx:365 +#: src/lib/moderation/useGlobalLabelStrings.ts:34 +msgid "Pornography" +msgstr "" + +#: src/view/com/composer/Composer.tsx:366 +#: src/view/com/composer/Composer.tsx:374 msgctxt "action" msgid "Post" msgstr "" -#: src/view/com/post-thread/PostThread.tsx:303 +#: src/view/com/post-thread/PostThread.tsx:292 msgctxt "description" msgid "Post" msgstr "" @@ -2991,20 +3525,30 @@ msgstr "" msgid "Post by {0}" msgstr "" -#: src/Navigation.tsx:174 -#: src/Navigation.tsx:181 -#: src/Navigation.tsx:188 +#: src/Navigation.tsx:176 +#: src/Navigation.tsx:183 +#: src/Navigation.tsx:190 msgid "Post by @{0}" msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:108 +#: src/view/com/util/forms/PostDropdownBtn.tsx:105 msgid "Post deleted" msgstr "" -#: src/view/com/post-thread/PostThread.tsx:462 +#: src/view/com/post-thread/PostThread.tsx:157 msgid "Post hidden" msgstr "" +#: src/components/moderation/ModerationDetailsDialog.tsx:98 +#: src/lib/moderation/useModerationCauseDescription.ts:99 +msgid "Post Hidden by Muted Word" +msgstr "" + +#: src/components/moderation/ModerationDetailsDialog.tsx:101 +#: src/lib/moderation/useModerationCauseDescription.ts:108 +msgid "Post Hidden by You" +msgstr "" + #: src/view/com/composer/select-language/SelectLangBtn.tsx:87 msgid "Post language" msgstr "" @@ -3013,7 +3557,8 @@ msgstr "" msgid "Post Languages" msgstr "" -#: src/view/com/post-thread/PostThread.tsx:514 +#: src/view/com/post-thread/PostThread.tsx:152 +#: src/view/com/post-thread/PostThread.tsx:164 msgid "Post not found" msgstr "" @@ -3021,7 +3566,7 @@ msgstr "" msgid "posts" msgstr "" -#: src/view/screens/Profile.tsx:180 +#: src/view/screens/Profile.tsx:188 msgid "Posts" msgstr "" @@ -3037,7 +3582,11 @@ msgstr "" msgid "Potentially Misleading Link" msgstr "" -#: src/view/com/lightbox/Lightbox.web.tsx:135 +#: src/components/Lists.tsx:88 +msgid "Press to retry" +msgstr "" + +#: src/view/com/lightbox/Lightbox.web.tsx:150 msgid "Previous image" msgstr "" @@ -3049,15 +3598,16 @@ msgstr "" msgid "Prioritize Your Follows" msgstr "" -#: src/view/screens/Settings/index.tsx:632 +#: src/view/screens/Settings/index.tsx:648 #: src/view/shell/desktop/RightNav.tsx:72 msgid "Privacy" msgstr "" -#: src/Navigation.tsx:219 +#: src/Navigation.tsx:231 +#: src/view/com/auth/create/Policies.tsx:69 #: src/view/screens/PrivacyPolicy.tsx:29 -#: src/view/screens/Settings/index.tsx:891 -#: src/view/shell/Drawer.tsx:262 +#: src/view/screens/Settings/index.tsx:921 +#: src/view/shell/Drawer.tsx:265 msgid "Privacy Policy" msgstr "" @@ -3065,11 +3615,16 @@ msgstr "" msgid "Processing..." msgstr "" -#: src/view/shell/bottom-bar/BottomBar.tsx:247 -#: src/view/shell/desktop/LeftNav.tsx:415 +#: src/view/screens/DebugMod.tsx:888 +#: src/view/screens/Profile.tsx:340 +msgid "profile" +msgstr "" + +#: src/view/shell/bottom-bar/BottomBar.tsx:251 +#: src/view/shell/desktop/LeftNav.tsx:419 #: src/view/shell/Drawer.tsx:70 -#: src/view/shell/Drawer.tsx:546 -#: src/view/shell/Drawer.tsx:547 +#: src/view/shell/Drawer.tsx:549 +#: src/view/shell/Drawer.tsx:550 msgid "Profile" msgstr "" @@ -3077,7 +3632,7 @@ msgstr "" msgid "Profile updated" msgstr "" -#: src/view/screens/Settings/index.tsx:949 +#: src/view/screens/Settings/index.tsx:979 msgid "Protect your account by verifying your email." msgstr "" @@ -3093,11 +3648,11 @@ msgstr "" msgid "Public, shareable lists which can drive feeds." msgstr "" -#: src/view/com/composer/Composer.tsx:342 +#: src/view/com/composer/Composer.tsx:351 msgid "Publish post" msgstr "" -#: src/view/com/composer/Composer.tsx:342 +#: src/view/com/composer/Composer.tsx:351 msgid "Publish reply" msgstr "" @@ -3123,6 +3678,10 @@ msgstr "" msgid "Ratios" msgstr "" +#: src/view/screens/Search/Search.tsx:776 +msgid "Recent Searches" +msgstr "" + #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:116 msgid "Recommended Feeds" msgstr "" @@ -3131,36 +3690,50 @@ msgstr "" msgid "Recommended Users" msgstr "" -#: src/components/dialogs/MutedWords.tsx:298 -#: src/view/com/modals/ListAddRemoveUsers.tsx:264 +#: src/components/dialogs/MutedWords.tsx:287 +#: src/view/com/feeds/FeedSourceCard.tsx:283 +#: src/view/com/modals/ListAddRemoveUsers.tsx:268 #: src/view/com/modals/SelfLabel.tsx:83 #: src/view/com/modals/UserAddRemoveLists.tsx:219 -#: src/view/com/util/UserAvatar.tsx:285 -#: src/view/com/util/UserBanner.tsx:91 +#: src/view/com/posts/FeedErrorMessage.tsx:204 msgid "Remove" msgstr "" #: src/view/com/feeds/FeedSourceCard.tsx:108 -msgid "Remove {0} from my feeds?" -msgstr "" +#~ msgid "Remove {0} from my feeds?" +#~ msgstr "" #: src/view/com/util/AccountDropdownBtn.tsx:22 msgid "Remove account" msgstr "" -#: src/view/com/posts/FeedErrorMessage.tsx:131 -#: src/view/com/posts/FeedErrorMessage.tsx:166 +#: src/view/com/util/UserAvatar.tsx:358 +msgid "Remove Avatar" +msgstr "" + +#: src/view/com/util/UserBanner.tsx:148 +msgid "Remove Banner" +msgstr "" + +#: src/view/com/posts/FeedErrorMessage.tsx:160 msgid "Remove feed" msgstr "" -#: src/view/com/feeds/FeedSourceCard.tsx:107 -#: src/view/com/feeds/FeedSourceCard.tsx:169 -#: src/view/com/feeds/FeedSourceCard.tsx:174 -#: src/view/com/feeds/FeedSourceCard.tsx:245 -#: src/view/screens/ProfileFeed.tsx:273 +#: src/view/com/posts/FeedErrorMessage.tsx:201 +msgid "Remove feed?" +msgstr "" + +#: src/view/com/feeds/FeedSourceCard.tsx:173 +#: src/view/com/feeds/FeedSourceCard.tsx:233 +#: src/view/screens/ProfileFeed.tsx:334 +#: src/view/screens/ProfileFeed.tsx:340 msgid "Remove from my feeds" msgstr "" +#: src/view/com/feeds/FeedSourceCard.tsx:278 +msgid "Remove from my feeds?" +msgstr "" + #: src/view/com/composer/photos/Gallery.tsx:167 msgid "Remove image" msgstr "" @@ -3169,7 +3742,7 @@ msgstr "" msgid "Remove image preview" msgstr "" -#: src/components/dialogs/MutedWords.tsx:343 +#: src/components/dialogs/MutedWords.tsx:330 msgid "Remove mute word from your list" msgstr "" @@ -3178,28 +3751,35 @@ msgid "Remove repost" msgstr "" #: src/view/com/feeds/FeedSourceCard.tsx:175 -msgid "Remove this feed from my feeds?" +#~ msgid "Remove this feed from my feeds?" +#~ msgstr "" + +#: src/view/com/posts/FeedErrorMessage.tsx:202 +msgid "Remove this feed from your saved feeds" msgstr "" #: src/view/com/posts/FeedErrorMessage.tsx:132 -msgid "Remove this feed from your saved feeds?" -msgstr "" +#~ msgid "Remove this feed from your saved feeds?" +#~ msgstr "" #: src/view/com/modals/ListAddRemoveUsers.tsx:199 #: src/view/com/modals/UserAddRemoveLists.tsx:152 msgid "Removed from list" msgstr "" -#: src/view/com/feeds/FeedSourceCard.tsx:113 -#: src/view/com/feeds/FeedSourceCard.tsx:180 +#: src/view/com/feeds/FeedSourceCard.tsx:121 msgid "Removed from my feeds" msgstr "" +#: src/view/screens/ProfileFeed.tsx:208 +msgid "Removed from your feeds" +msgstr "" + #: src/view/com/composer/ExternalEmbed.tsx:71 msgid "Removes default thumbnail from {0}" msgstr "" -#: src/view/screens/Profile.tsx:181 +#: src/view/screens/Profile.tsx:189 msgid "Replies" msgstr "" @@ -3207,7 +3787,7 @@ msgstr "" msgid "Replies to this thread are disabled" msgstr "" -#: src/view/com/composer/Composer.tsx:355 +#: src/view/com/composer/Composer.tsx:364 msgctxt "action" msgid "Reply" msgstr "" @@ -3216,34 +3796,55 @@ msgstr "" msgid "Reply Filters" msgstr "" -#: src/view/com/post/Post.tsx:167 -#: src/view/com/posts/FeedItem.tsx:287 +#: src/view/com/post/Post.tsx:166 +#: src/view/com/posts/FeedItem.tsx:280 msgctxt "description" msgid "Reply to <0/>" msgstr "" #: src/view/com/modals/report/Modal.tsx:166 -msgid "Report {collectionName}" -msgstr "" +#~ msgid "Report {collectionName}" +#~ msgstr "" -#: src/view/com/profile/ProfileHeader.tsx:361 +#: src/view/com/profile/ProfileMenu.tsx:319 +#: src/view/com/profile/ProfileMenu.tsx:322 msgid "Report Account" msgstr "" -#: src/view/screens/ProfileFeed.tsx:293 +#: src/view/screens/ProfileFeed.tsx:351 +#: src/view/screens/ProfileFeed.tsx:353 msgid "Report feed" msgstr "" -#: src/view/screens/ProfileList.tsx:459 +#: src/view/screens/ProfileList.tsx:429 msgid "Report List" msgstr "" -#: src/view/com/modals/report/SendReportButton.tsx:37 -#: src/view/com/util/forms/PostDropdownBtn.tsx:301 -#: src/view/com/util/forms/PostDropdownBtn.tsx:309 +#: src/view/com/util/forms/PostDropdownBtn.tsx:292 +#: src/view/com/util/forms/PostDropdownBtn.tsx:294 msgid "Report post" msgstr "" +#: src/components/ReportDialog/SelectReportOptionView.tsx:43 +msgid "Report this content" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:56 +msgid "Report this feed" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:53 +msgid "Report this list" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:50 +msgid "Report this post" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:47 +msgid "Report this user" +msgstr "" + #: src/view/com/modals/Repost.tsx:43 #: src/view/com/modals/Repost.tsx:48 #: src/view/com/modals/Repost.tsx:53 @@ -3265,19 +3866,19 @@ msgstr "" msgid "Reposted By" msgstr "" -#: src/view/com/posts/FeedItem.tsx:207 +#: src/view/com/posts/FeedItem.tsx:197 msgid "Reposted by {0}" msgstr "" -#: src/view/com/posts/FeedItem.tsx:224 +#: src/view/com/posts/FeedItem.tsx:214 msgid "Reposted by <0/>" msgstr "" -#: src/view/com/notifications/FeedItem.tsx:162 +#: src/view/com/notifications/FeedItem.tsx:166 msgid "reposted your post" msgstr "" -#: src/view/com/post-thread/PostThreadItem.tsx:188 +#: src/view/com/post-thread/PostThreadItem.tsx:187 msgid "Reposts of this post" msgstr "" @@ -3290,12 +3891,12 @@ msgstr "" #~ msgid "Request code" #~ msgstr "" -#: src/view/com/modals/ChangePassword.tsx:239 #: src/view/com/modals/ChangePassword.tsx:241 +#: src/view/com/modals/ChangePassword.tsx:243 msgid "Request Code" msgstr "" -#: src/view/screens/Settings/index.tsx:456 +#: src/view/screens/Settings/index.tsx:471 msgid "Require alt text before posting" msgstr "" @@ -3305,18 +3906,20 @@ msgstr "" #: src/view/com/auth/login/SetNewPasswordForm.tsx:124 #: src/view/com/auth/login/SetNewPasswordForm.tsx:136 +#: src/view/com/modals/ChangePassword.tsx:185 msgid "Reset code" msgstr "" -#: src/view/com/modals/ChangePassword.tsx:190 +#: src/view/com/modals/ChangePassword.tsx:192 msgid "Reset Code" msgstr "" #: src/view/screens/Settings/index.tsx:824 -msgid "Reset onboarding" -msgstr "" +#~ msgid "Reset onboarding" +#~ msgstr "" -#: src/view/screens/Settings/index.tsx:827 +#: src/view/screens/Settings/index.tsx:854 +#: src/view/screens/Settings/index.tsx:857 msgid "Reset onboarding state" msgstr "" @@ -3325,18 +3928,19 @@ msgid "Reset password" msgstr "" #: src/view/screens/Settings/index.tsx:814 -msgid "Reset preferences" -msgstr "" +#~ msgid "Reset preferences" +#~ msgstr "" -#: src/view/screens/Settings/index.tsx:817 +#: src/view/screens/Settings/index.tsx:844 +#: src/view/screens/Settings/index.tsx:847 msgid "Reset preferences state" msgstr "" -#: src/view/screens/Settings/index.tsx:825 +#: src/view/screens/Settings/index.tsx:855 msgid "Resets the onboarding state" msgstr "" -#: src/view/screens/Settings/index.tsx:815 +#: src/view/screens/Settings/index.tsx:845 msgid "Resets the preferences state" msgstr "" @@ -3349,6 +3953,7 @@ msgstr "" msgid "Retries the last action, which errored out" msgstr "" +#: src/components/Lists.tsx:98 #: src/screens/Onboarding/StepInterests/index.tsx:221 #: src/screens/Onboarding/StepInterests/index.tsx:224 #: src/view/com/auth/create/CreateAccount.tsx:181 @@ -3364,10 +3969,19 @@ msgstr "" #~ msgid "Retry." #~ msgstr "" -#: src/view/screens/ProfileList.tsx:903 +#: src/view/screens/ProfileList.tsx:917 msgid "Return to previous page" msgstr "" +#: src/view/screens/NotFound.tsx:59 +msgid "Returns to home page" +msgstr "" + +#: src/view/screens/NotFound.tsx:58 +#: src/view/screens/ProfileFeed.tsx:112 +msgid "Returns to previous page" +msgstr "" + #: src/view/shell/desktop/RightNav.tsx:55 #~ msgid "SANDBOX. Posts and accounts are not permanent." #~ msgstr "" @@ -3378,12 +3992,10 @@ msgctxt "action" msgid "Save" msgstr "" -#: src/view/com/modals/BirthDateSettings.tsx:94 -#: src/view/com/modals/BirthDateSettings.tsx:97 +#: src/components/dialogs/BirthDateSettings.tsx:125 #: src/view/com/modals/ChangeHandle.tsx:173 #: src/view/com/modals/CreateOrEditList.tsx:337 #: src/view/com/modals/EditProfile.tsx:224 -#: src/view/screens/ProfileFeed.tsx:346 msgid "Save" msgstr "" @@ -3391,6 +4003,10 @@ msgstr "" msgid "Save alt text" msgstr "" +#: src/components/dialogs/BirthDateSettings.tsx:119 +msgid "Save birthday" +msgstr "" + #: src/view/com/modals/EditProfile.tsx:232 msgid "Save Changes" msgstr "" @@ -3403,10 +4019,23 @@ msgstr "" msgid "Save image crop" msgstr "" +#: src/view/screens/ProfileFeed.tsx:335 +#: src/view/screens/ProfileFeed.tsx:341 +msgid "Save to my feeds" +msgstr "" + #: src/view/screens/SavedFeeds.tsx:122 msgid "Saved Feeds" msgstr "" +#: src/view/com/lightbox/Lightbox.tsx:81 +msgid "Saved to your camera roll." +msgstr "" + +#: src/view/screens/ProfileFeed.tsx:212 +msgid "Saved to your feeds" +msgstr "" + #: src/view/com/modals/EditProfile.tsx:225 msgid "Saves any changes to your profile" msgstr "" @@ -3415,33 +4044,37 @@ msgstr "" msgid "Saves handle change to {handle}" msgstr "" +#: src/view/com/modals/crop-image/CropImage.web.tsx:145 +msgid "Saves image crop settings" +msgstr "" + #: src/screens/Onboarding/index.tsx:36 msgid "Science" msgstr "" -#: src/view/screens/ProfileList.tsx:859 +#: src/view/screens/ProfileList.tsx:873 msgid "Scroll to top" msgstr "" -#: src/Navigation.tsx:447 +#: src/Navigation.tsx:459 #: src/view/com/auth/LoggedOut.tsx:122 #: src/view/com/modals/ListAddRemoveUsers.tsx:75 #: src/view/com/util/forms/SearchInput.tsx:67 #: src/view/com/util/forms/SearchInput.tsx:79 -#: src/view/screens/Search/Search.tsx:419 -#: src/view/screens/Search/Search.tsx:668 -#: src/view/screens/Search/Search.tsx:686 -#: src/view/shell/bottom-bar/BottomBar.tsx:159 -#: src/view/shell/desktop/LeftNav.tsx:324 -#: src/view/shell/desktop/Search.tsx:214 -#: src/view/shell/desktop/Search.tsx:223 -#: src/view/shell/Drawer.tsx:362 -#: src/view/shell/Drawer.tsx:363 +#: src/view/screens/Search/Search.tsx:420 +#: src/view/screens/Search/Search.tsx:669 +#: src/view/screens/Search/Search.tsx:687 +#: src/view/shell/bottom-bar/BottomBar.tsx:161 +#: src/view/shell/desktop/LeftNav.tsx:328 +#: src/view/shell/desktop/Search.tsx:215 +#: src/view/shell/desktop/Search.tsx:224 +#: src/view/shell/Drawer.tsx:365 +#: src/view/shell/Drawer.tsx:366 msgid "Search" msgstr "" -#: src/view/screens/Search/Search.tsx:735 -#: src/view/shell/desktop/Search.tsx:255 +#: src/view/screens/Search/Search.tsx:736 +#: src/view/shell/desktop/Search.tsx:256 msgid "Search for \"{query}\"" msgstr "" @@ -3515,6 +4148,14 @@ msgstr "" msgid "Select from an existing account" msgstr "" +#: src/view/screens/LanguageSettings.tsx:299 +msgid "Select languages" +msgstr "" + +#: src/components/ReportDialog/SelectLabelerView.tsx:32 +msgid "Select moderator" +msgstr "" + #: src/view/com/util/Selector.tsx:107 msgid "Select option {i} of {numItems}" msgstr "" @@ -3528,6 +4169,10 @@ msgstr "" msgid "Select some accounts below to follow" msgstr "" +#: src/components/ReportDialog/SubmitView.tsx:135 +msgid "Select the moderation service(s) to report to" +msgstr "" + #: src/view/com/auth/server-input/index.tsx:82 msgid "Select the service that hosts your data." msgstr "" @@ -3540,7 +4185,7 @@ msgstr "" msgid "Select topical feeds to follow from the list below" msgstr "" -#: src/screens/Onboarding/StepModeration/index.tsx:75 +#: src/screens/Onboarding/StepModeration/index.tsx:62 msgid "Select what you want to see (or not see), and we’ll handle the rest." msgstr "" @@ -3549,7 +4194,11 @@ msgid "Select which languages you want your subscribed feeds to include. If none msgstr "" #: src/view/screens/LanguageSettings.tsx:98 -msgid "Select your app language for the default text to display in the app" +#~ msgid "Select your app language for the default text to display in the app" +#~ msgstr "" + +#: src/view/screens/LanguageSettings.tsx:98 +msgid "Select your app language for the default text to display in the app." msgstr "" #: src/screens/Onboarding/StepInterests/index.tsx:196 @@ -3586,13 +4235,22 @@ msgctxt "action" msgid "Send Email" msgstr "" -#: src/view/shell/Drawer.tsx:295 -#: src/view/shell/Drawer.tsx:316 +#: src/view/shell/Drawer.tsx:298 +#: src/view/shell/Drawer.tsx:319 msgid "Send feedback" msgstr "" +#: src/components/ReportDialog/SubmitView.tsx:214 +#: src/components/ReportDialog/SubmitView.tsx:218 +msgid "Send report" +msgstr "" + #: src/view/com/modals/report/SendReportButton.tsx:45 -msgid "Send Report" +#~ msgid "Send Report" +#~ msgstr "" + +#: src/components/ReportDialog/SelectLabelerView.tsx:46 +msgid "Send report to {0}" msgstr "" #: src/view/com/modals/DeleteAccount.tsx:133 @@ -3604,34 +4262,38 @@ msgid "Server address" msgstr "" #: src/view/com/modals/ContentFilteringSettings.tsx:311 -msgid "Set {value} for {labelGroup} content moderation policy" -msgstr "" +#~ msgid "Set {value} for {labelGroup} content moderation policy" +#~ msgstr "" #: src/view/com/modals/ContentFilteringSettings.tsx:160 #: src/view/com/modals/ContentFilteringSettings.tsx:179 -msgctxt "action" -msgid "Set Age" +#~ msgctxt "action" +#~ msgid "Set Age" +#~ msgstr "" + +#: src/screens/Moderation/index.tsx:306 +msgid "Set birthdate" msgstr "" #: src/view/screens/Settings/index.tsx:488 -msgid "Set color theme to dark" -msgstr "" +#~ msgid "Set color theme to dark" +#~ msgstr "" #: src/view/screens/Settings/index.tsx:481 -msgid "Set color theme to light" -msgstr "" +#~ msgid "Set color theme to light" +#~ msgstr "" #: src/view/screens/Settings/index.tsx:475 -msgid "Set color theme to system setting" -msgstr "" +#~ msgid "Set color theme to system setting" +#~ msgstr "" #: src/view/screens/Settings/index.tsx:514 -msgid "Set dark theme to the dark theme" -msgstr "" +#~ msgid "Set dark theme to the dark theme" +#~ msgstr "" #: src/view/screens/Settings/index.tsx:507 -msgid "Set dark theme to the dim theme" -msgstr "" +#~ msgid "Set dark theme to the dim theme" +#~ msgstr "" #: src/view/com/auth/login/SetNewPasswordForm.tsx:104 msgid "Set new password" @@ -3673,6 +4335,26 @@ msgstr "" msgid "Sets Bluesky username" msgstr "" +#: src/view/screens/Settings/index.tsx:503 +msgid "Sets color theme to dark" +msgstr "" + +#: src/view/screens/Settings/index.tsx:496 +msgid "Sets color theme to light" +msgstr "" + +#: src/view/screens/Settings/index.tsx:490 +msgid "Sets color theme to system setting" +msgstr "" + +#: src/view/screens/Settings/index.tsx:529 +msgid "Sets dark theme to the dark theme" +msgstr "" + +#: src/view/screens/Settings/index.tsx:522 +msgid "Sets dark theme to the dim theme" +msgstr "" + #: src/view/com/auth/login/ForgotPasswordForm.tsx:157 msgid "Sets email for password reset" msgstr "" @@ -3681,16 +4363,28 @@ msgstr "" msgid "Sets hosting provider for password reset" msgstr "" +#: src/view/com/modals/crop-image/CropImage.web.tsx:123 +msgid "Sets image aspect ratio to square" +msgstr "" + +#: src/view/com/modals/crop-image/CropImage.web.tsx:113 +msgid "Sets image aspect ratio to tall" +msgstr "" + +#: src/view/com/modals/crop-image/CropImage.web.tsx:103 +msgid "Sets image aspect ratio to wide" +msgstr "" + #: src/view/com/auth/create/Step1.tsx:97 #: src/view/com/auth/login/LoginForm.tsx:151 msgid "Sets server for the Bluesky client" msgstr "" -#: src/Navigation.tsx:137 -#: src/view/screens/Settings/index.tsx:294 -#: src/view/shell/desktop/LeftNav.tsx:433 -#: src/view/shell/Drawer.tsx:567 -#: src/view/shell/Drawer.tsx:568 +#: src/Navigation.tsx:139 +#: src/view/screens/Settings/index.tsx:309 +#: src/view/shell/desktop/LeftNav.tsx:437 +#: src/view/shell/Drawer.tsx:570 +#: src/view/shell/Drawer.tsx:571 msgid "Settings" msgstr "" @@ -3698,28 +4392,39 @@ msgstr "" msgid "Sexual activity or erotic nudity." msgstr "" +#: src/lib/moderation/useGlobalLabelStrings.ts:38 +msgid "Sexually Suggestive" +msgstr "" + #: src/view/com/lightbox/Lightbox.tsx:141 msgctxt "action" msgid "Share" msgstr "" -#: src/view/com/profile/ProfileHeader.tsx:295 -#: src/view/com/util/forms/PostDropdownBtn.tsx:231 +#: src/view/com/profile/ProfileMenu.tsx:215 +#: src/view/com/profile/ProfileMenu.tsx:224 +#: src/view/com/util/forms/PostDropdownBtn.tsx:228 #: src/view/com/util/forms/PostDropdownBtn.tsx:237 -#: src/view/com/util/post-ctrls/PostCtrls.tsx:215 -#: src/view/screens/ProfileList.tsx:418 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:218 +#: src/view/screens/ProfileList.tsx:388 msgid "Share" msgstr "" -#: src/view/screens/ProfileFeed.tsx:305 +#: src/view/com/profile/ProfileMenu.tsx:373 +#: src/view/com/util/forms/PostDropdownBtn.tsx:347 +msgid "Share anyway" +msgstr "" + +#: src/view/screens/ProfileFeed.tsx:361 +#: src/view/screens/ProfileFeed.tsx:363 msgid "Share feed" msgstr "" -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:43 -#: src/view/com/modals/ContentFilteringSettings.tsx:266 -#: src/view/com/util/moderation/ContentHider.tsx:107 -#: src/view/com/util/moderation/PostHider.tsx:108 -#: src/view/screens/Settings/index.tsx:344 +#: src/components/moderation/ContentHider.tsx:115 +#: src/components/moderation/GlobalModerationLabelPref.tsx:45 +#: src/components/moderation/PostHider.tsx:107 +#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:54 +#: src/view/screens/Settings/index.tsx:359 msgid "Show" msgstr "" @@ -3727,21 +4432,31 @@ msgstr "" msgid "Show all replies" msgstr "" -#: src/view/com/util/moderation/ScreenHider.tsx:132 +#: src/components/moderation/ScreenHider.tsx:162 +#: src/components/moderation/ScreenHider.tsx:165 msgid "Show anyway" msgstr "" +#: src/lib/moderation/useLabelBehaviorDescription.ts:27 +#: src/lib/moderation/useLabelBehaviorDescription.ts:63 +msgid "Show badge" +msgstr "" + +#: src/lib/moderation/useLabelBehaviorDescription.ts:61 +msgid "Show badge and filter from feeds" +msgstr "" + #: src/view/com/modals/EmbedConsent.tsx:87 msgid "Show embeds from {0}" msgstr "" -#: src/view/com/profile/ProfileHeader.tsx:459 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:193 msgid "Show follows similar to {0}" msgstr "" -#: src/view/com/post-thread/PostThreadItem.tsx:538 -#: src/view/com/post/Post.tsx:198 -#: src/view/com/posts/FeedItem.tsx:363 +#: src/view/com/post-thread/PostThreadItem.tsx:507 +#: src/view/com/post/Post.tsx:201 +#: src/view/com/posts/FeedItem.tsx:355 msgid "Show More" msgstr "" @@ -3793,40 +4508,48 @@ msgstr "" msgid "Show reposts in Following" msgstr "" -#: src/view/com/util/moderation/ContentHider.tsx:67 -#: src/view/com/util/moderation/PostHider.tsx:61 +#: src/components/moderation/ContentHider.tsx:68 +#: src/components/moderation/PostHider.tsx:64 msgid "Show the content" msgstr "" -#: src/view/com/notifications/FeedItem.tsx:347 +#: src/view/com/notifications/FeedItem.tsx:351 msgid "Show users" msgstr "" -#: src/view/com/profile/ProfileHeader.tsx:462 -msgid "Shows a list of users similar to this user." +#: src/lib/moderation/useLabelBehaviorDescription.ts:58 +msgid "Show warning" +msgstr "" + +#: src/lib/moderation/useLabelBehaviorDescription.ts:56 +msgid "Show warning and filter from feeds" msgstr "" -#: src/view/com/post-thread/PostThreadFollowBtn.tsx:124 -#: src/view/com/profile/ProfileHeader.tsx:506 +#: src/view/com/profile/ProfileHeader.tsx:462 +#~ msgid "Shows a list of users similar to this user." +#~ msgstr "" + +#: src/view/com/post-thread/PostThreadFollowBtn.tsx:127 msgid "Shows posts from {0} in your feed" msgstr "" -#: src/view/com/auth/HomeLoggedOutCTA.tsx:70 +#: src/view/com/auth/HomeLoggedOutCTA.tsx:72 #: src/view/com/auth/login/Login.tsx:98 -#: src/view/com/auth/SplashScreen.tsx:79 -#: src/view/shell/bottom-bar/BottomBar.tsx:285 -#: src/view/shell/bottom-bar/BottomBar.tsx:286 -#: src/view/shell/bottom-bar/BottomBar.tsx:288 +#: src/view/com/auth/SplashScreen.tsx:81 +#: src/view/shell/bottom-bar/BottomBar.tsx:289 +#: src/view/shell/bottom-bar/BottomBar.tsx:290 +#: src/view/shell/bottom-bar/BottomBar.tsx:292 #: src/view/shell/bottom-bar/BottomBarWeb.tsx:178 #: src/view/shell/bottom-bar/BottomBarWeb.tsx:179 #: src/view/shell/bottom-bar/BottomBarWeb.tsx:181 #: src/view/shell/NavSignupCard.tsx:58 #: src/view/shell/NavSignupCard.tsx:59 +#: src/view/shell/NavSignupCard.tsx:61 msgid "Sign in" msgstr "" -#: src/view/com/auth/HomeLoggedOutCTA.tsx:78 -#: src/view/com/auth/SplashScreen.tsx:82 +#: src/view/com/auth/HomeLoggedOutCTA.tsx:82 +#: src/view/com/auth/SplashScreen.tsx:86 #: src/view/com/auth/SplashScreen.web.tsx:91 msgid "Sign In" msgstr "" @@ -3835,7 +4558,7 @@ msgstr "" msgid "Sign in as {0}" msgstr "" -#: src/view/com/auth/login/ChooseAccountForm.tsx:118 +#: src/view/com/auth/login/ChooseAccountForm.tsx:122 #: src/view/com/auth/login/Login.tsx:116 msgid "Sign in as..." msgstr "" @@ -3844,16 +4567,16 @@ msgstr "" msgid "Sign into" msgstr "" -#: src/view/com/modals/SwitchAccount.tsx:64 -#: src/view/com/modals/SwitchAccount.tsx:69 -#: src/view/screens/Settings/index.tsx:100 -#: src/view/screens/Settings/index.tsx:103 +#: src/view/com/modals/SwitchAccount.tsx:68 +#: src/view/com/modals/SwitchAccount.tsx:73 +#: src/view/screens/Settings/index.tsx:105 +#: src/view/screens/Settings/index.tsx:108 msgid "Sign out" msgstr "" -#: src/view/shell/bottom-bar/BottomBar.tsx:275 -#: src/view/shell/bottom-bar/BottomBar.tsx:276 -#: src/view/shell/bottom-bar/BottomBar.tsx:278 +#: src/view/shell/bottom-bar/BottomBar.tsx:279 +#: src/view/shell/bottom-bar/BottomBar.tsx:280 +#: src/view/shell/bottom-bar/BottomBar.tsx:282 #: src/view/shell/bottom-bar/BottomBarWeb.tsx:168 #: src/view/shell/bottom-bar/BottomBarWeb.tsx:169 #: src/view/shell/bottom-bar/BottomBarWeb.tsx:171 @@ -3867,25 +4590,26 @@ msgstr "" msgid "Sign up or sign in to join the conversation" msgstr "" -#: src/view/com/util/moderation/ScreenHider.tsx:76 +#: src/components/moderation/ScreenHider.tsx:98 +#: src/lib/moderation/useGlobalLabelStrings.ts:28 msgid "Sign-in Required" msgstr "" -#: src/view/screens/Settings/index.tsx:355 +#: src/view/screens/Settings/index.tsx:370 msgid "Signed in as" msgstr "" -#: src/view/com/auth/login/ChooseAccountForm.tsx:103 +#: src/view/com/auth/login/ChooseAccountForm.tsx:107 msgid "Signed in as @{0}" msgstr "" -#: src/view/com/modals/SwitchAccount.tsx:66 +#: src/view/com/modals/SwitchAccount.tsx:70 msgid "Signs {0} out of Bluesky" msgstr "" #: src/screens/Onboarding/StepInterests/index.tsx:235 #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:195 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:33 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:35 msgid "Skip" msgstr "" @@ -3905,15 +4629,21 @@ msgstr "" #~ msgid "Something went wrong and we're not sure what." #~ msgstr "" -#: src/components/Lists.tsx:203 -msgid "Something went wrong!" +#: src/components/ReportDialog/index.tsx:52 +#: src/screens/Moderation/index.tsx:116 +#: src/screens/Profile/Sections/Labels.tsx:77 +msgid "Something went wrong, please try again." msgstr "" +#: src/components/Lists.tsx:203 +#~ msgid "Something went wrong!" +#~ msgstr "" + #: src/view/com/modals/Waitlist.tsx:51 #~ msgid "Something went wrong. Check your email and try again." #~ msgstr "" -#: src/App.native.tsx:66 +#: src/App.native.tsx:71 msgid "Sorry! Your session expired. Please log in again." msgstr "" @@ -3925,6 +4655,18 @@ msgstr "" msgid "Sort replies to the same post by:" msgstr "" +#: src/components/moderation/LabelsOnMeDialog.tsx:147 +msgid "Source:" +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:65 +msgid "Spam" +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:53 +msgid "Spam; excessive mentions or replies" +msgstr "" + #: src/screens/Onboarding/index.tsx:30 msgid "Sports" msgstr "" @@ -3937,7 +4679,7 @@ msgstr "" #~ msgid "Staging" #~ msgstr "" -#: src/view/screens/Settings/index.tsx:871 +#: src/view/screens/Settings/index.tsx:901 msgid "Status page" msgstr "" @@ -3945,37 +4687,50 @@ msgstr "" msgid "Step {0} of {numSteps}" msgstr "" -#: src/view/screens/Settings/index.tsx:274 +#: src/view/screens/Settings/index.tsx:288 msgid "Storage cleared, you need to restart the app now." msgstr "" -#: src/Navigation.tsx:204 -#: src/view/screens/Settings/index.tsx:807 +#: src/Navigation.tsx:211 +#: src/view/screens/Settings/index.tsx:827 msgid "Storybook" msgstr "" -#: src/view/com/modals/AppealLabel.tsx:101 +#: src/components/moderation/LabelsOnMeDialog.tsx:256 +#: src/components/moderation/LabelsOnMeDialog.tsx:257 msgid "Submit" msgstr "Submit" -#: src/view/screens/ProfileList.tsx:608 +#: src/view/screens/ProfileList.tsx:590 msgid "Subscribe" msgstr "" +#: src/screens/Profile/Sections/Labels.tsx:181 +msgid "Subscribe to @{0} to use these labels:" +msgstr "" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:222 +msgid "Subscribe to Labeler" +msgstr "" + #: src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx:173 #: src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx:308 msgid "Subscribe to the {0} feed" msgstr "" -#: src/view/screens/ProfileList.tsx:604 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:185 +msgid "Subscribe to this labeler" +msgstr "" + +#: src/view/screens/ProfileList.tsx:586 msgid "Subscribe to this list" msgstr "" -#: src/view/screens/Search/Search.tsx:374 +#: src/view/screens/Search/Search.tsx:375 msgid "Suggested Follows" msgstr "" -#: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:64 +#: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:65 msgid "Suggested for you" msgstr "" @@ -3983,7 +4738,7 @@ msgstr "" msgid "Suggestive" msgstr "" -#: src/Navigation.tsx:214 +#: src/Navigation.tsx:226 #: src/view/screens/Support.tsx:30 #: src/view/screens/Support.tsx:33 msgid "Support" @@ -3993,29 +4748,29 @@ msgstr "" #~ msgid "Swipe up to see more" #~ msgstr "" -#: src/view/com/modals/SwitchAccount.tsx:117 +#: src/view/com/modals/SwitchAccount.tsx:121 msgid "Switch Account" msgstr "" -#: src/view/com/modals/SwitchAccount.tsx:97 -#: src/view/screens/Settings/index.tsx:130 +#: src/view/com/modals/SwitchAccount.tsx:101 +#: src/view/screens/Settings/index.tsx:135 msgid "Switch to {0}" msgstr "" -#: src/view/com/modals/SwitchAccount.tsx:98 -#: src/view/screens/Settings/index.tsx:131 +#: src/view/com/modals/SwitchAccount.tsx:102 +#: src/view/screens/Settings/index.tsx:136 msgid "Switches the account you are logged in to" msgstr "" -#: src/view/screens/Settings/index.tsx:472 +#: src/view/screens/Settings/index.tsx:487 msgid "System" msgstr "" -#: src/view/screens/Settings/index.tsx:795 +#: src/view/screens/Settings/index.tsx:815 msgid "System log" msgstr "" -#: src/components/dialogs/MutedWords.tsx:337 +#: src/components/dialogs/MutedWords.tsx:324 msgid "tag" msgstr "" @@ -4043,30 +4798,49 @@ msgstr "" msgid "Terms" msgstr "" -#: src/Navigation.tsx:224 -#: src/view/screens/Settings/index.tsx:885 +#: src/Navigation.tsx:236 +#: src/view/com/auth/create/Policies.tsx:59 +#: src/view/screens/Settings/index.tsx:915 #: src/view/screens/TermsOfService.tsx:29 -#: src/view/shell/Drawer.tsx:256 +#: src/view/shell/Drawer.tsx:259 msgid "Terms of Service" msgstr "" -#: src/components/dialogs/MutedWords.tsx:337 +#: src/lib/moderation/useReportOptions.ts:58 +#: src/lib/moderation/useReportOptions.ts:79 +#: src/lib/moderation/useReportOptions.ts:87 +msgid "Terms used violate community standards" +msgstr "" + +#: src/components/dialogs/MutedWords.tsx:324 msgid "text" msgstr "" -#: src/view/com/modals/AppealLabel.tsx:70 -#: src/view/com/modals/report/InputIssueDetails.tsx:51 +#: src/components/moderation/LabelsOnMeDialog.tsx:220 msgid "Text input field" msgstr "" +#: src/components/ReportDialog/SubmitView.tsx:78 +msgid "Thank you. Your report has been sent." +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:466 +msgid "That contains the following:" +msgstr "" + #: src/view/com/auth/create/CreateAccount.tsx:94 msgid "That handle is already taken." msgstr "" -#: src/view/com/profile/ProfileHeader.tsx:263 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:274 +#: src/view/com/profile/ProfileMenu.tsx:349 msgid "The account will be able to interact with you after unblocking." msgstr "" +#: src/components/moderation/ModerationDetailsDialog.tsx:128 +msgid "the author" +msgstr "" + #: src/view/screens/CommunityGuidelines.tsx:36 msgid "The Community Guidelines have been moved to <0/>" msgstr "" @@ -4075,11 +4849,20 @@ msgstr "" msgid "The Copyright Policy has been moved to <0/>" msgstr "" +#: src/components/moderation/LabelsOnMeDialog.tsx:49 +msgid "The following labels were applied to your account." +msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:50 +msgid "The following labels were applied to your content." +msgstr "" + #: src/screens/Onboarding/Layout.tsx:60 msgid "The following steps will help customize your Bluesky experience." msgstr "" -#: src/view/com/post-thread/PostThread.tsx:517 +#: src/view/com/post-thread/PostThread.tsx:153 +#: src/view/com/post-thread/PostThread.tsx:165 msgid "The post may have been deleted." msgstr "" @@ -4099,20 +4882,21 @@ msgstr "" msgid "There are many feeds to try:" msgstr "" -#: src/view/screens/ProfileFeed.tsx:550 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:113 +#: src/view/screens/ProfileFeed.tsx:543 msgid "There was an an issue contacting the server, please check your internet connection and try again." msgstr "" -#: src/view/com/posts/FeedErrorMessage.tsx:139 +#: src/view/com/posts/FeedErrorMessage.tsx:138 msgid "There was an an issue removing this feed. Please check your internet connection and try again." msgstr "" -#: src/view/screens/ProfileFeed.tsx:210 +#: src/view/screens/ProfileFeed.tsx:217 msgid "There was an an issue updating your feeds, please check your internet connection and try again." msgstr "" -#: src/view/screens/ProfileFeed.tsx:237 -#: src/view/screens/ProfileList.tsx:267 +#: src/view/screens/ProfileFeed.tsx:244 +#: src/view/screens/ProfileList.tsx:275 #: src/view/screens/SavedFeeds.tsx:209 #: src/view/screens/SavedFeeds.tsx:231 #: src/view/screens/SavedFeeds.tsx:252 @@ -4121,9 +4905,8 @@ msgstr "" #: src/view/com/auth/onboarding/RecommendedFeedsItem.tsx:57 #: src/view/com/auth/onboarding/RecommendedFeedsItem.tsx:66 -#: src/view/com/feeds/FeedSourceCard.tsx:115 -#: src/view/com/feeds/FeedSourceCard.tsx:129 -#: src/view/com/feeds/FeedSourceCard.tsx:183 +#: src/view/com/feeds/FeedSourceCard.tsx:110 +#: src/view/com/feeds/FeedSourceCard.tsx:123 msgid "There was an issue contacting your server" msgstr "" @@ -4131,7 +4914,7 @@ msgstr "" msgid "There was an issue fetching notifications. Tap here to try again." msgstr "" -#: src/view/com/posts/Feed.tsx:265 +#: src/view/com/posts/Feed.tsx:283 msgid "There was an issue fetching posts. Tap here to try again." msgstr "" @@ -4144,34 +4927,40 @@ msgstr "" msgid "There was an issue fetching your lists. Tap here to try again." msgstr "" -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:63 -#: src/view/com/modals/ContentFilteringSettings.tsx:126 +#: src/components/ReportDialog/SubmitView.tsx:83 +msgid "There was an issue sending your report. Please check your internet connection." +msgstr "" + +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:65 msgid "There was an issue syncing your preferences with the server" msgstr "" -#: src/view/screens/AppPasswords.tsx:66 +#: src/view/screens/AppPasswords.tsx:68 msgid "There was an issue with fetching your app passwords" msgstr "" -#: src/view/com/post-thread/PostThreadFollowBtn.tsx:93 -#: src/view/com/post-thread/PostThreadFollowBtn.tsx:105 -#: src/view/com/profile/ProfileHeader.tsx:157 -#: src/view/com/profile/ProfileHeader.tsx:178 -#: src/view/com/profile/ProfileHeader.tsx:217 -#: src/view/com/profile/ProfileHeader.tsx:230 -#: src/view/com/profile/ProfileHeader.tsx:250 -#: src/view/com/profile/ProfileHeader.tsx:272 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:98 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:120 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:134 +#: src/view/com/post-thread/PostThreadFollowBtn.tsx:96 +#: src/view/com/post-thread/PostThreadFollowBtn.tsx:108 +#: src/view/com/profile/ProfileMenu.tsx:106 +#: src/view/com/profile/ProfileMenu.tsx:117 +#: src/view/com/profile/ProfileMenu.tsx:132 +#: src/view/com/profile/ProfileMenu.tsx:143 +#: src/view/com/profile/ProfileMenu.tsx:157 +#: src/view/com/profile/ProfileMenu.tsx:170 msgid "There was an issue! {0}" msgstr "" #: src/view/screens/ProfileList.tsx:288 -#: src/view/screens/ProfileList.tsx:307 -#: src/view/screens/ProfileList.tsx:329 -#: src/view/screens/ProfileList.tsx:348 +#: src/view/screens/ProfileList.tsx:302 +#: src/view/screens/ProfileList.tsx:316 +#: src/view/screens/ProfileList.tsx:330 msgid "There was an issue. Please check your internet connection and try again." msgstr "" -#: src/view/com/util/ErrorBoundary.tsx:36 +#: src/view/com/util/ErrorBoundary.tsx:51 msgid "There was an unexpected issue in the application. Please let us know if this happened to you!" msgstr "" @@ -4187,19 +4976,32 @@ msgstr "" msgid "These are popular accounts you might like:" msgstr "" -#: src/view/com/util/moderation/ScreenHider.tsx:88 +#: src/components/moderation/ScreenHider.tsx:117 msgid "This {screenDescription} has been flagged:" msgstr "" -#: src/view/com/util/moderation/ScreenHider.tsx:83 +#: src/components/moderation/ScreenHider.tsx:112 msgid "This account has requested that users sign in to view their profile." msgstr "" +#: src/components/moderation/LabelsOnMeDialog.tsx:205 +msgid "This appeal will be sent to <0>{0}." +msgstr "" + +#: src/lib/moderation/useGlobalLabelStrings.ts:19 +msgid "This content has been hidden by the moderators." +msgstr "" + +#: src/lib/moderation/useGlobalLabelStrings.ts:24 +msgid "This content has received a general warning from moderators." +msgstr "" + #: src/view/com/modals/EmbedConsent.tsx:68 msgid "This content is hosted by {0}. Do you want to enable external media?" msgstr "" -#: src/view/com/modals/ModerationDetails.tsx:67 +#: src/components/moderation/ModerationDetailsDialog.tsx:78 +#: src/lib/moderation/useModerationCauseDescription.ts:77 msgid "This content is not available because one of the users involved has blocked the other." msgstr "" @@ -4208,16 +5010,20 @@ msgid "This content is not viewable without a Bluesky account." msgstr "" #: src/view/screens/Settings/ExportCarDialog.tsx:75 -msgid "This feature is in beta. You can read more about repository exports in <0>this blogpost." +#~ msgid "This feature is in beta. You can read more about repository exports in <0>this blogpost." +#~ msgstr "" + +#: src/view/screens/Settings/ExportCarDialog.tsx:75 +msgid "This feature is in beta. You can read more about repository exports in <0>this blogpost." msgstr "" #: src/view/com/posts/FeedErrorMessage.tsx:114 msgid "This feed is currently receiving high traffic and is temporarily unavailable. Please try again later." msgstr "" -#: src/view/screens/Profile.tsx:420 +#: src/screens/Profile/Sections/Feed.tsx:50 #: src/view/screens/ProfileFeed.tsx:476 -#: src/view/screens/ProfileList.tsx:661 +#: src/view/screens/ProfileList.tsx:675 msgid "This feed is empty!" msgstr "" @@ -4225,7 +5031,7 @@ msgstr "" msgid "This feed is empty! You may need to follow more users or tune your language settings." msgstr "" -#: src/view/com/modals/BirthDateSettings.tsx:61 +#: src/components/dialogs/BirthDateSettings.tsx:41 msgid "This information is not shared with other users." msgstr "" @@ -4233,14 +5039,26 @@ msgstr "" msgid "This is important in case you ever need to change your email or reset your password." msgstr "" +#: src/components/moderation/ModerationDetailsDialog.tsx:125 +msgid "This label was applied by {0}." +msgstr "" + +#: src/screens/Profile/Sections/Labels.tsx:168 +msgid "This labeler hasn't declared what labels it publishes, and may not be active." +msgstr "" + #: src/view/com/modals/LinkWarning.tsx:58 msgid "This link is taking you to the following website:" msgstr "" -#: src/view/screens/ProfileList.tsx:839 +#: src/view/screens/ProfileList.tsx:853 msgid "This list is empty!" msgstr "" +#: src/screens/Profile/ErrorState.tsx:40 +msgid "This moderation service is unavailable. See below for more details. If this issue persists, contact us." +msgstr "" + #: src/view/com/modals/AddAppPasswords.tsx:106 msgid "This name is already in use" msgstr "" @@ -4249,36 +5067,81 @@ msgstr "" msgid "This post has been deleted." msgstr "" -#: src/view/com/modals/ModerationDetails.tsx:62 +#: src/view/com/util/forms/PostDropdownBtn.tsx:344 +msgid "This post is only visible to logged-in users. It won't be visible to people who aren't logged in." +msgstr "" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:326 +msgid "This post will be hidden from feeds." +msgstr "" + +#: src/view/com/profile/ProfileMenu.tsx:370 +msgid "This profile is only visible to logged-in users. It won't be visible to people who aren't logged in." +msgstr "" + +#: src/view/com/auth/create/Policies.tsx:46 +msgid "This service has not provided terms of service or a privacy policy." +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:446 +msgid "This should create a domain record at:" +msgstr "" + +#: src/view/com/profile/ProfileFollowers.tsx:95 +msgid "This user doesn't have any followers." +msgstr "" + +#: src/components/moderation/ModerationDetailsDialog.tsx:73 +#: src/lib/moderation/useModerationCauseDescription.ts:68 msgid "This user has blocked you. You cannot view their content." msgstr "" -#: src/view/com/modals/ModerationDetails.tsx:42 -msgid "This user is included in the <0/> list which you have blocked." +#: src/lib/moderation/useGlobalLabelStrings.ts:30 +msgid "This user has requested that their content only be shown to signed-in users." msgstr "" +#: src/view/com/modals/ModerationDetails.tsx:42 +#~ msgid "This user is included in the <0/> list which you have blocked." +#~ msgstr "" + #: src/view/com/modals/ModerationDetails.tsx:74 -msgid "This user is included in the <0/> list which you have muted." +#~ msgid "This user is included in the <0/> list which you have muted." +#~ msgstr "" + +#: src/components/moderation/ModerationDetailsDialog.tsx:56 +msgid "This user is included in the <0>{0} list which you have blocked." +msgstr "" + +#: src/components/moderation/ModerationDetailsDialog.tsx:85 +msgid "This user is included in the <0>{0} list which you have muted." msgstr "" #: src/view/com/modals/ModerationDetails.tsx:74 #~ msgid "This user is included the <0/> list which you have muted." #~ msgstr "" +#: src/view/com/profile/ProfileFollows.tsx:94 +msgid "This user isn't following anyone." +msgstr "" + #: src/view/com/modals/SelfLabel.tsx:137 msgid "This warning is only available for posts with media attached." msgstr "" -#: src/components/dialogs/MutedWords.tsx:285 +#: src/components/dialogs/MutedWords.tsx:284 msgid "This will delete {0} from your muted words. You can always add it back later." msgstr "" #: src/view/com/util/forms/PostDropdownBtn.tsx:282 -msgid "This will hide this post from your feeds." +#~ msgid "This will hide this post from your feeds." +#~ msgstr "" + +#: src/view/screens/Settings/index.tsx:570 +msgid "Thread preferences" msgstr "" #: src/view/screens/PreferencesThreads.tsx:53 -#: src/view/screens/Settings/index.tsx:565 +#: src/view/screens/Settings/index.tsx:580 msgid "Thread Preferences" msgstr "" @@ -4286,10 +5149,14 @@ msgstr "" msgid "Threaded Mode" msgstr "" -#: src/Navigation.tsx:257 +#: src/Navigation.tsx:269 msgid "Threads Preferences" msgstr "" +#: src/components/ReportDialog/SelectLabelerView.tsx:35 +msgid "To whom would you like to send this report?" +msgstr "" + #: src/components/dialogs/MutedWords.tsx:113 msgid "Toggle between muted word options." msgstr "" @@ -4298,14 +5165,18 @@ msgstr "" msgid "Toggle dropdown" msgstr "" +#: src/screens/Moderation/index.tsx:334 +msgid "Toggle to enable or disable adult content" +msgstr "" + #: src/view/com/modals/EditImage.tsx:271 msgid "Transformations" msgstr "" -#: src/view/com/post-thread/PostThreadItem.tsx:685 -#: src/view/com/post-thread/PostThreadItem.tsx:687 -#: src/view/com/util/forms/PostDropdownBtn.tsx:215 -#: src/view/com/util/forms/PostDropdownBtn.tsx:217 +#: src/view/com/post-thread/PostThreadItem.tsx:644 +#: src/view/com/post-thread/PostThreadItem.tsx:646 +#: src/view/com/util/forms/PostDropdownBtn.tsx:212 +#: src/view/com/util/forms/PostDropdownBtn.tsx:214 msgid "Translate" msgstr "" @@ -4314,11 +5185,15 @@ msgctxt "action" msgid "Try again" msgstr "" -#: src/view/screens/ProfileList.tsx:506 +#: src/view/com/modals/ChangeHandle.tsx:429 +msgid "Type:" +msgstr "" + +#: src/view/screens/ProfileList.tsx:478 msgid "Un-block list" msgstr "" -#: src/view/screens/ProfileList.tsx:491 +#: src/view/screens/ProfileList.tsx:461 msgid "Un-mute list" msgstr "" @@ -4330,21 +5205,28 @@ msgstr "" msgid "Unable to contact your service. Please check your Internet connection." msgstr "" -#: src/view/com/profile/ProfileHeader.tsx:433 -#: src/view/screens/ProfileList.tsx:590 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:174 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:278 +#: src/view/com/profile/ProfileMenu.tsx:361 +#: src/view/screens/ProfileList.tsx:572 msgid "Unblock" msgstr "" -#: src/view/com/profile/ProfileHeader.tsx:436 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:179 msgctxt "action" msgid "Unblock" msgstr "" -#: src/view/com/profile/ProfileHeader.tsx:261 -#: src/view/com/profile/ProfileHeader.tsx:345 +#: src/view/com/profile/ProfileMenu.tsx:299 +#: src/view/com/profile/ProfileMenu.tsx:305 msgid "Unblock Account" msgstr "" +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:272 +#: src/view/com/profile/ProfileMenu.tsx:343 +msgid "Unblock Account?" +msgstr "" + #: src/view/com/modals/Repost.tsx:42 #: src/view/com/modals/Repost.tsx:55 #: src/view/com/util/post-ctrls/RepostButton.tsx:60 @@ -4352,25 +5234,39 @@ msgstr "" msgid "Undo repost" msgstr "" -#: src/view/com/profile/FollowButton.tsx:55 +#: src/view/com/auth/onboarding/RecommendedFollowsItem.tsx:141 +#: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:246 +msgid "Unfollow" +msgstr "" + +#: src/view/com/profile/FollowButton.tsx:60 msgctxt "action" msgid "Unfollow" msgstr "" -#: src/view/com/profile/ProfileHeader.tsx:485 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:213 msgid "Unfollow {0}" msgstr "" +#: src/view/com/profile/ProfileMenu.tsx:241 +#: src/view/com/profile/ProfileMenu.tsx:251 +msgid "Unfollow Account" +msgstr "" + #: src/view/com/auth/create/state.ts:262 msgid "Unfortunately, you do not meet the requirements to create an account." msgstr "" -#: src/view/com/util/post-ctrls/PostCtrls.tsx:182 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:185 msgid "Unlike" msgstr "" +#: src/view/screens/ProfileFeed.tsx:572 +msgid "Unlike this feed" +msgstr "" + #: src/components/TagMenu/index.tsx:249 -#: src/view/screens/ProfileList.tsx:597 +#: src/view/screens/ProfileList.tsx:579 msgid "Unmute" msgstr "" @@ -4378,7 +5274,8 @@ msgstr "" msgid "Unmute {truncatedTag}" msgstr "" -#: src/view/com/profile/ProfileHeader.tsx:326 +#: src/view/com/profile/ProfileMenu.tsx:278 +#: src/view/com/profile/ProfileMenu.tsx:284 msgid "Unmute Account" msgstr "" @@ -4395,17 +5292,33 @@ msgstr "" msgid "Unmute thread" msgstr "" -#: src/view/screens/ProfileFeed.tsx:353 -#: src/view/screens/ProfileList.tsx:580 +#: src/view/screens/ProfileFeed.tsx:294 +#: src/view/screens/ProfileList.tsx:563 msgid "Unpin" msgstr "" -#: src/view/screens/ProfileList.tsx:474 +#: src/view/screens/ProfileFeed.tsx:291 +msgid "Unpin from home" +msgstr "" + +#: src/view/screens/ProfileList.tsx:444 msgid "Unpin moderation list" msgstr "" #: src/view/screens/ProfileFeed.tsx:346 -msgid "Unsave" +#~ msgid "Unsave" +#~ msgstr "" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:220 +msgid "Unsubscribe" +msgstr "" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:184 +msgid "Unsubscribe from this labeler" +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:70 +msgid "Unwanted Sexual Content" msgstr "" #: src/view/com/modals/UserAddRemoveLists.tsx:70 @@ -4413,7 +5326,11 @@ msgid "Update {displayName} in Lists" msgstr "" #: src/lib/hooks/useOTAUpdate.ts:15 -msgid "Update Available" +#~ msgid "Update Available" +#~ msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:509 +msgid "Update to {handle}" msgstr "" #: src/view/com/auth/login/SetNewPasswordForm.tsx:204 @@ -4424,11 +5341,38 @@ msgstr "" msgid "Upload a text file to:" msgstr "" -#: src/view/screens/AppPasswords.tsx:195 +#: src/view/com/util/UserAvatar.tsx:326 +#: src/view/com/util/UserAvatar.tsx:329 +#: src/view/com/util/UserBanner.tsx:116 +#: src/view/com/util/UserBanner.tsx:119 +msgid "Upload from Camera" +msgstr "" + +#: src/view/com/util/UserAvatar.tsx:343 +#: src/view/com/util/UserBanner.tsx:133 +msgid "Upload from Files" +msgstr "" + +#: src/view/com/util/UserAvatar.tsx:337 +#: src/view/com/util/UserAvatar.tsx:341 +#: src/view/com/util/UserBanner.tsx:127 +#: src/view/com/util/UserBanner.tsx:131 +msgid "Upload from Library" +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:409 +msgid "Use a file on your server" +msgstr "" + +#: src/view/screens/AppPasswords.tsx:197 msgid "Use app passwords to login to other Bluesky clients without giving full access to your account or password." msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:515 +#: src/view/com/modals/ChangeHandle.tsx:518 +msgid "Use bsky.social as hosting provider" +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:517 msgid "Use default provider" msgstr "" @@ -4442,6 +5386,10 @@ msgstr "" msgid "Use my default browser" msgstr "" +#: src/view/com/modals/ChangeHandle.tsx:401 +msgid "Use the DNS panel" +msgstr "" + #: src/view/com/modals/AddAppPasswords.tsx:155 msgid "Use this to sign into the other app along with your handle." msgstr "" @@ -4454,15 +5402,24 @@ msgstr "" msgid "Used by:" msgstr "" -#: src/view/com/modals/ModerationDetails.tsx:54 +#: src/components/moderation/ModerationDetailsDialog.tsx:65 +#: src/lib/moderation/useModerationCauseDescription.ts:56 msgid "User Blocked" msgstr "" -#: src/view/com/modals/ModerationDetails.tsx:40 +#: src/lib/moderation/useModerationCauseDescription.ts:48 +msgid "User Blocked by \"{0}\"" +msgstr "" + +#: src/components/moderation/ModerationDetailsDialog.tsx:54 msgid "User Blocked by List" msgstr "" -#: src/view/com/modals/ModerationDetails.tsx:60 +#: src/lib/moderation/useModerationCauseDescription.ts:66 +msgid "User Blocking You" +msgstr "" + +#: src/components/moderation/ModerationDetailsDialog.tsx:71 msgid "User Blocks You" msgstr "" @@ -4475,13 +5432,13 @@ msgstr "" msgid "User list by {0}" msgstr "" -#: src/view/screens/ProfileList.tsx:763 +#: src/view/screens/ProfileList.tsx:777 msgid "User list by <0/>" msgstr "" #: src/view/com/lists/ListCard.tsx:83 #: src/view/com/modals/UserAddRemoveLists.tsx:196 -#: src/view/screens/ProfileList.tsx:761 +#: src/view/screens/ProfileList.tsx:775 msgid "User list by you" msgstr "" @@ -4502,7 +5459,7 @@ msgstr "" msgid "Username or email address" msgstr "" -#: src/view/screens/ProfileList.tsx:797 +#: src/view/screens/ProfileList.tsx:811 msgid "Users" msgstr "" @@ -4514,19 +5471,31 @@ msgstr "" msgid "Users in \"{0}\"" msgstr "" +#: src/components/LikesDialog.tsx:85 +msgid "Users that have liked this content or profile" +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:437 +msgid "Value:" +msgstr "" + #: src/view/com/auth/create/Step2.tsx:243 #~ msgid "Verification code" #~ msgstr "" -#: src/view/screens/Settings/index.tsx:910 +#: src/view/com/modals/ChangeHandle.tsx:510 +msgid "Verify {0}" +msgstr "" + +#: src/view/screens/Settings/index.tsx:940 msgid "Verify email" msgstr "" -#: src/view/screens/Settings/index.tsx:935 +#: src/view/screens/Settings/index.tsx:965 msgid "Verify my email" msgstr "" -#: src/view/screens/Settings/index.tsx:944 +#: src/view/screens/Settings/index.tsx:974 msgid "Verify My Email" msgstr "" @@ -4543,7 +5512,7 @@ msgstr "" msgid "Video Games" msgstr "" -#: src/view/com/profile/ProfileHeader.tsx:662 +#: src/screens/Profile/Header/Shell.tsx:110 msgid "View {0}'s avatar" msgstr "" @@ -4551,11 +5520,23 @@ msgstr "" msgid "View debug entry" msgstr "" -#: src/view/com/posts/FeedSlice.tsx:103 +#: src/components/ReportDialog/SelectReportOptionView.tsx:133 +msgid "View details" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:128 +msgid "View details for reporting a copyright violation" +msgstr "" + +#: src/view/com/posts/FeedSlice.tsx:99 msgid "View full thread" msgstr "" -#: src/view/com/posts/FeedErrorMessage.tsx:172 +#: src/components/moderation/LabelsOnMe.tsx:51 +msgid "View information about these labels" +msgstr "" + +#: src/view/com/posts/FeedErrorMessage.tsx:166 msgid "View profile" msgstr "" @@ -4563,15 +5544,34 @@ msgstr "" msgid "View the avatar" msgstr "" +#: src/components/LabelingServiceCard/index.tsx:140 +msgid "View the labeling service provided by @{0}" +msgstr "" + +#: src/view/screens/ProfileFeed.tsx:584 +msgid "View users who like this feed" +msgstr "" + #: src/view/com/modals/LinkWarning.tsx:75 +#: src/view/com/modals/LinkWarning.tsx:77 msgid "Visit Site" msgstr "" -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:42 -#: src/view/com/modals/ContentFilteringSettings.tsx:259 +#: src/components/moderation/GlobalModerationLabelPref.tsx:44 +#: src/lib/moderation/useLabelBehaviorDescription.ts:17 +#: src/lib/moderation/useLabelBehaviorDescription.ts:22 +#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:53 msgid "Warn" msgstr "" +#: src/lib/moderation/useLabelBehaviorDescription.ts:48 +msgid "Warn content" +msgstr "" + +#: src/lib/moderation/useLabelBehaviorDescription.ts:46 +msgid "Warn content and filter from feeds" +msgstr "" + #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:134 msgid "We also think you'll like \"For You\" by Skygaze:" msgstr "" @@ -4604,6 +5604,14 @@ msgstr "" msgid "We recommend our \"Discover\" feed:" msgstr "" +#: src/components/dialogs/BirthDateSettings.tsx:52 +msgid "We were unable to load your birth date preferences. Please try again." +msgstr "" + +#: src/screens/Moderation/index.tsx:387 +msgid "We were unable to load your configured labelers at this time." +msgstr "" + #: src/screens/Onboarding/StepInterests/index.tsx:133 msgid "We weren't able to connect. Please try again to continue setting up your account. If it continues to fail, you can skip this flow." msgstr "" @@ -4613,8 +5621,8 @@ msgid "We will let you know when your account is ready." msgstr "" #: src/view/com/modals/AppealLabel.tsx:48 -msgid "We'll look into your appeal promptly." -msgstr "" +#~ msgid "We'll look into your appeal promptly." +#~ msgstr "" #: src/screens/Onboarding/StepInterests/index.tsx:138 msgid "We'll use this to help customize your experience." @@ -4624,7 +5632,7 @@ msgstr "" msgid "We're so excited to have you join us!" msgstr "" -#: src/view/screens/ProfileList.tsx:86 +#: src/view/screens/ProfileList.tsx:89 msgid "We're sorry, but we were unable to resolve this list. If this persists, please contact the list creator, @{handleOrDid}." msgstr "" @@ -4632,16 +5640,20 @@ msgstr "" msgid "We're sorry, but we weren't able to load your muted words at this time. Please try again." msgstr "" -#: src/view/screens/Search/Search.tsx:254 +#: src/view/screens/Search/Search.tsx:255 msgid "We're sorry, but your search could not be completed. Please try again in a few minutes." msgstr "" -#: src/components/Lists.tsx:211 +#: src/components/Lists.tsx:194 #: src/view/screens/NotFound.tsx:48 msgid "We're sorry! We can't find the page you were looking for." msgstr "" -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:46 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:319 +msgid "We're sorry! You can only subscribe to ten labelers, and you've reached your limit of ten." +msgstr "" + +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:48 msgid "Welcome to <0>Bluesky" msgstr "" @@ -4650,11 +5662,11 @@ msgid "What are your interests?" msgstr "" #: src/view/com/modals/report/Modal.tsx:169 -msgid "What is the issue with this {collectionName}?" -msgstr "" +#~ msgid "What is the issue with this {collectionName}?" +#~ msgstr "" #: src/view/com/auth/SplashScreen.tsx:59 -#: src/view/com/composer/Composer.tsx:286 +#: src/view/com/composer/Composer.tsx:295 msgid "What's up?" msgstr "" @@ -4671,16 +5683,36 @@ msgstr "" msgid "Who can reply" msgstr "" +#: src/components/ReportDialog/SelectReportOptionView.tsx:44 +msgid "Why should this content be reviewed?" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:57 +msgid "Why should this feed be reviewed?" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:54 +msgid "Why should this list be reviewed?" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:51 +msgid "Why should this post be reviewed?" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:48 +msgid "Why should this user be reviewed?" +msgstr "" + #: src/view/com/modals/crop-image/CropImage.web.tsx:102 msgid "Wide" msgstr "" -#: src/view/com/composer/Composer.tsx:422 +#: src/view/com/composer/Composer.tsx:435 msgid "Write post" msgstr "" -#: src/view/com/composer/Composer.tsx:285 -#: src/view/com/composer/Prompt.tsx:33 +#: src/view/com/composer/Composer.tsx:294 +#: src/view/com/composer/Prompt.tsx:37 msgid "Write your reply" msgstr "" @@ -4710,6 +5742,10 @@ msgstr "" msgid "You are in line." msgstr "" +#: src/view/com/profile/ProfileFollows.tsx:93 +msgid "You are not following anyone." +msgstr "" + #: src/view/com/posts/FollowingEmptyState.tsx:67 #: src/view/com/posts/FollowingEndOfFeed.tsx:68 msgid "You can also discover new Custom Feeds to follow." @@ -4728,6 +5764,10 @@ msgstr "" msgid "You can now sign in with your new password." msgstr "" +#: src/view/com/profile/ProfileFollowers.tsx:94 +msgid "You do not have any followers." +msgstr "" + #: src/view/com/modals/InviteCodes.tsx:66 msgid "You don't have any invite codes yet! We'll send you some when you've been on Bluesky for a little longer." msgstr "" @@ -4744,11 +5784,13 @@ msgstr "" msgid "You don't have any saved feeds." msgstr "" -#: src/view/com/post-thread/PostThread.tsx:465 +#: src/view/com/post-thread/PostThread.tsx:159 msgid "You have blocked the author or you have been blocked by the author." msgstr "" -#: src/view/com/modals/ModerationDetails.tsx:56 +#: src/components/moderation/ModerationDetailsDialog.tsx:67 +#: src/lib/moderation/useModerationCauseDescription.ts:50 +#: src/lib/moderation/useModerationCauseDescription.ts:58 msgid "You have blocked this user. You cannot view their content." msgstr "" @@ -4759,10 +5801,27 @@ msgstr "" msgid "You have entered an invalid code. It should look like XXXXX-XXXXX." msgstr "" -#: src/view/com/modals/ModerationDetails.tsx:87 -msgid "You have muted this user." +#: src/lib/moderation/useModerationCauseDescription.ts:109 +msgid "You have hidden this post" msgstr "" +#: src/components/moderation/ModerationDetailsDialog.tsx:102 +msgid "You have hidden this post." +msgstr "" + +#: src/components/moderation/ModerationDetailsDialog.tsx:95 +#: src/lib/moderation/useModerationCauseDescription.ts:92 +msgid "You have muted this account." +msgstr "" + +#: src/lib/moderation/useModerationCauseDescription.ts:86 +msgid "You have muted this user" +msgstr "" + +#: src/view/com/modals/ModerationDetails.tsx:87 +#~ msgid "You have muted this user." +#~ msgstr "" + #: src/view/com/feeds/ProfileFeedgens.tsx:136 msgid "You have no feeds." msgstr "" @@ -4773,34 +5832,50 @@ msgid "You have no lists." msgstr "" #: src/view/screens/ModerationBlockedAccounts.tsx:132 -msgid "You have not blocked any accounts yet. To block an account, go to their profile and selected \"Block account\" from the menu on their account." +msgid "You have not blocked any accounts yet. To block an account, go to their profile and select \"Block account\" from the menu on their account." msgstr "" -#: src/view/screens/AppPasswords.tsx:87 +#: src/view/screens/ModerationBlockedAccounts.tsx:132 +#~ msgid "You have not blocked any accounts yet. To block an account, go to their profile and selected \"Block account\" from the menu on their account." +#~ msgstr "" + +#: src/view/screens/AppPasswords.tsx:89 msgid "You have not created any app passwords yet. You can create one by pressing the button below." msgstr "" #: src/view/screens/ModerationMutedAccounts.tsx:131 -msgid "You have not muted any accounts yet. To mute an account, go to their profile and selected \"Mute account\" from the menu on their account." +msgid "You have not muted any accounts yet. To mute an account, go to their profile and select \"Mute account\" from the menu on their account." msgstr "" +#: src/view/screens/ModerationMutedAccounts.tsx:131 +#~ msgid "You have not muted any accounts yet. To mute an account, go to their profile and selected \"Mute account\" from the menu on their account." +#~ msgstr "" + #: src/components/dialogs/MutedWords.tsx:250 msgid "You haven't muted any words or tags yet" msgstr "" -#: src/view/com/modals/ContentFilteringSettings.tsx:175 -msgid "You must be 18 or older to enable adult content." +#: src/components/moderation/LabelsOnMeDialog.tsx:69 +msgid "You may appeal these labels if you feel they were placed in error." msgstr "" -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:103 +#: src/view/com/modals/ContentFilteringSettings.tsx:175 +#~ msgid "You must be 18 or older to enable adult content." +#~ msgstr "" + +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:110 msgid "You must be 18 years or older to enable adult content" msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:147 +#: src/components/ReportDialog/SubmitView.tsx:205 +msgid "You must select at least one labeler for a report" +msgstr "" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:144 msgid "You will no longer receive notifications for this thread" msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:150 +#: src/view/com/util/forms/PostDropdownBtn.tsx:147 msgid "You will now receive notifications for this thread" msgstr "" @@ -4808,7 +5883,7 @@ msgstr "" msgid "You will receive an email with a \"reset code.\" Enter that code here, then enter your new password." msgstr "" -#: src/screens/Onboarding/StepModeration/index.tsx:72 +#: src/screens/Onboarding/StepModeration/index.tsx:59 msgid "You're in control" msgstr "" @@ -4822,6 +5897,11 @@ msgstr "" msgid "You're ready to go!" msgstr "" +#: src/components/moderation/ModerationDetailsDialog.tsx:99 +#: src/lib/moderation/useModerationCauseDescription.ts:101 +msgid "You've chosen to hide a word or tag within this post." +msgstr "" + #: src/view/com/posts/FollowingEndOfFeed.tsx:48 msgid "You've reached the end of your feed! Find some more accounts to follow." msgstr "" @@ -4890,29 +5970,29 @@ msgstr "" msgid "Your muted words" msgstr "" -#: src/view/com/modals/ChangePassword.tsx:155 +#: src/view/com/modals/ChangePassword.tsx:157 msgid "Your password has been changed successfully!" msgstr "" -#: src/view/com/composer/Composer.tsx:274 +#: src/view/com/composer/Composer.tsx:283 msgid "Your post has been published" msgstr "" #: src/screens/Onboarding/StepFinished.tsx:105 #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:59 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:59 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:61 msgid "Your posts, likes, and blocks are public. Mutes are private." msgstr "" -#: src/view/com/modals/SwitchAccount.tsx:84 -#: src/view/screens/Settings/index.tsx:118 +#: src/view/com/modals/SwitchAccount.tsx:88 +#: src/view/screens/Settings/index.tsx:123 msgid "Your profile" msgstr "" -#: src/view/com/composer/Composer.tsx:273 +#: src/view/com/composer/Composer.tsx:282 msgid "Your reply has been published" msgstr "" #: src/view/com/auth/create/Step2.tsx:65 msgid "Your user handle" -msgstr "" \ No newline at end of file +msgstr "" diff --git a/src/locale/locales/es/messages.po b/src/locale/locales/es/messages.po index 1c73448099..bbdf265613 100644 --- a/src/locale/locales/es/messages.po +++ b/src/locale/locales/es/messages.po @@ -21,7 +21,7 @@ msgstr "" #~ msgid "{0, plural, one {# invite code available} other {# invite codes available}}" #~ msgstr "{0, plural, one {# invite code available} other {# invite codes available}}" -#: src/view/com/profile/ProfileHeader.tsx:593 +#: src/screens/Profile/Header/Metrics.tsx:45 msgid "{following} following" msgstr "" @@ -39,7 +39,7 @@ msgstr "" #~ msgid "{invitesAvailable} invite codes available" #~ msgstr "{invitesAvailable} códigos de invitación disponibles" -#: src/view/shell/Drawer.tsx:440 +#: src/view/shell/Drawer.tsx:443 msgid "{numUnreadNotifications} unread" msgstr "" @@ -47,7 +47,11 @@ msgstr "" msgid "<0/> members" msgstr "<0/> miembros" -#: src/view/com/profile/ProfileHeader.tsx:595 +#: src/view/shell/Drawer.tsx:97 +msgid "<0>{0} following" +msgstr "" + +#: src/screens/Profile/Header/Metrics.tsx:46 msgid "<0>{following} <1>following" msgstr "" @@ -63,20 +67,20 @@ msgstr "<0>Sigue a algunos<1>usuarios<2>recomendados" msgid "<0>Welcome to<1>Bluesky" msgstr "" -#: src/view/com/profile/ProfileHeader.tsx:558 +#: src/screens/Profile/Header/Handle.tsx:42 msgid "⚠Invalid Handle" msgstr "" #: src/view/com/util/moderation/LabelInfo.tsx:45 -msgid "A content warning has been applied to this {0}." -msgstr "Se ha aplicado una advertencia de contenido a este {0}." +#~ msgid "A content warning has been applied to this {0}." +#~ msgstr "Se ha aplicado una advertencia de contenido a este {0}." #: src/lib/hooks/useOTAUpdate.ts:16 -msgid "A new version of the app is available. Please update to continue using the app." -msgstr "Ya está disponible una nueva versión de la aplicación. Actualízala para seguir utilizándola." +#~ msgid "A new version of the app is available. Please update to continue using the app." +#~ msgstr "Ya está disponible una nueva versión de la aplicación. Actualízala para seguir utilizándola." #: src/view/com/util/ViewHeader.tsx:89 -#: src/view/screens/Search/Search.tsx:647 +#: src/view/screens/Search/Search.tsx:648 msgid "Access navigation links and settings" msgstr "" @@ -85,29 +89,38 @@ msgid "Access profile and other navigation links" msgstr "" #: src/view/com/modals/EditImage.tsx:299 -#: src/view/screens/Settings/index.tsx:451 +#: src/view/screens/Settings/index.tsx:466 msgid "Accessibility" msgstr "Accesibilidad" +#: src/components/moderation/LabelsOnMe.tsx:42 +msgid "account" +msgstr "" + #: src/view/com/auth/login/LoginForm.tsx:166 -#: src/view/screens/Settings/index.tsx:308 -#: src/view/screens/Settings/index.tsx:721 +#: src/view/screens/Settings/index.tsx:323 +#: src/view/screens/Settings/index.tsx:739 msgid "Account" msgstr "Cuenta" -#: src/view/com/profile/ProfileHeader.tsx:246 +#: src/view/com/profile/ProfileMenu.tsx:139 msgid "Account blocked" msgstr "" -#: src/view/com/profile/ProfileHeader.tsx:213 +#: src/view/com/profile/ProfileMenu.tsx:153 +msgid "Account followed" +msgstr "" + +#: src/view/com/profile/ProfileMenu.tsx:113 msgid "Account muted" msgstr "" -#: src/view/com/modals/ModerationDetails.tsx:86 +#: src/components/moderation/ModerationDetailsDialog.tsx:94 +#: src/lib/moderation/useModerationCauseDescription.ts:91 msgid "Account Muted" msgstr "" -#: src/view/com/modals/ModerationDetails.tsx:72 +#: src/components/moderation/ModerationDetailsDialog.tsx:83 msgid "Account Muted by List" msgstr "" @@ -119,19 +132,24 @@ msgstr "Opciones de la cuenta" msgid "Account removed from quick access" msgstr "" -#: src/view/com/profile/ProfileHeader.tsx:268 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:130 +#: src/view/com/profile/ProfileMenu.tsx:128 msgid "Account unblocked" msgstr "" -#: src/view/com/profile/ProfileHeader.tsx:226 +#: src/view/com/profile/ProfileMenu.tsx:166 +msgid "Account unfollowed" +msgstr "" + +#: src/view/com/profile/ProfileMenu.tsx:102 msgid "Account unmuted" msgstr "" #: src/components/dialogs/MutedWords.tsx:165 #: src/view/com/auth/onboarding/RecommendedFeedsItem.tsx:150 -#: src/view/com/modals/ListAddRemoveUsers.tsx:264 +#: src/view/com/modals/ListAddRemoveUsers.tsx:268 #: src/view/com/modals/UserAddRemoveLists.tsx:219 -#: src/view/screens/ProfileList.tsx:813 +#: src/view/screens/ProfileList.tsx:827 msgid "Add" msgstr "Agregar" @@ -139,12 +157,12 @@ msgstr "Agregar" msgid "Add a content warning" msgstr "Agregar una advertencia de cuenta" -#: src/view/screens/ProfileList.tsx:803 +#: src/view/screens/ProfileList.tsx:817 msgid "Add a user to this list" msgstr "Agregar un usuario a esta lista" -#: src/view/screens/Settings/index.tsx:383 -#: src/view/screens/Settings/index.tsx:392 +#: src/view/screens/Settings/index.tsx:398 +#: src/view/screens/Settings/index.tsx:407 msgid "Add account" msgstr "Agregar una cuenta" @@ -154,26 +172,26 @@ msgstr "Agregar una cuenta" msgid "Add alt text" msgstr "Agregar texto alt" -#: src/view/screens/AppPasswords.tsx:102 -#: src/view/screens/AppPasswords.tsx:143 -#: src/view/screens/AppPasswords.tsx:156 +#: src/view/screens/AppPasswords.tsx:104 +#: src/view/screens/AppPasswords.tsx:145 +#: src/view/screens/AppPasswords.tsx:158 msgid "Add App Password" msgstr "" #: src/view/com/modals/report/InputIssueDetails.tsx:41 #: src/view/com/modals/report/Modal.tsx:191 -msgid "Add details" -msgstr "Agregar detalles" +#~ msgid "Add details" +#~ msgstr "Agregar detalles" #: src/view/com/modals/report/Modal.tsx:194 -msgid "Add details to report" -msgstr "Agregar detalles al informe" +#~ msgid "Add details to report" +#~ msgstr "Agregar detalles al informe" -#: src/view/com/composer/Composer.tsx:453 +#: src/view/com/composer/Composer.tsx:466 msgid "Add link card" msgstr "Agregar una tarjeta de enlace" -#: src/view/com/composer/Composer.tsx:458 +#: src/view/com/composer/Composer.tsx:471 msgid "Add link card:" msgstr "Agregar una tarjeta de enlace:" @@ -189,12 +207,12 @@ msgstr "" msgid "Add the following DNS record to your domain:" msgstr "Añade el siguiente registro DNS a tu dominio:" -#: src/view/com/profile/ProfileHeader.tsx:310 +#: src/view/com/profile/ProfileMenu.tsx:263 +#: src/view/com/profile/ProfileMenu.tsx:266 msgid "Add to Lists" msgstr "Agregar a listas" -#: src/view/com/feeds/FeedSourceCard.tsx:245 -#: src/view/screens/ProfileFeed.tsx:273 +#: src/view/com/feeds/FeedSourceCard.tsx:234 msgid "Add to my feeds" msgstr "Agregar a mis noticias" @@ -207,7 +225,7 @@ msgstr "" msgid "Added to list" msgstr "Agregar a una lista" -#: src/view/com/feeds/FeedSourceCard.tsx:127 +#: src/view/com/feeds/FeedSourceCard.tsx:108 msgid "Added to my feeds" msgstr "" @@ -215,19 +233,25 @@ msgstr "" msgid "Adjust the number of likes a reply must have to be shown in your feed." msgstr "Ajusta el número de Me gusta que debe tener una respuesta para que se muestre en tus noticias." +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:117 #: src/view/com/modals/SelfLabel.tsx:75 msgid "Adult Content" msgstr "Contenido para adultos" #: src/view/com/modals/ContentFilteringSettings.tsx:141 -msgid "Adult content can only be enabled via the Web at <0/>." -msgstr "" +#~ msgid "Adult content can only be enabled via the Web at <0/>." +#~ msgstr "" #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:78 #~ msgid "Adult content can only be enabled via the Web at <0>bsky.app." #~ msgstr "" -#: src/view/screens/Settings/index.tsx:664 +#: src/components/moderation/ModerationLabelPref.tsx:114 +msgid "Adult content is disabled." +msgstr "" + +#: src/screens/Moderation/index.tsx:377 +#: src/view/screens/Settings/index.tsx:680 msgid "Advanced" msgstr "Avanzado" @@ -236,11 +260,11 @@ msgid "All the feeds you've saved, right in one place." msgstr "" #: src/view/com/auth/login/ForgotPasswordForm.tsx:221 -#: src/view/com/modals/ChangePassword.tsx:168 +#: src/view/com/modals/ChangePassword.tsx:170 msgid "Already have a code?" msgstr "" -#: src/view/com/auth/login/ChooseAccountForm.tsx:98 +#: src/view/com/auth/login/ChooseAccountForm.tsx:102 msgid "Already signed in as @{0}" msgstr "" @@ -264,12 +288,18 @@ msgstr "Se ha enviado un correo electrónico a {0}. Incluye un código de confir msgid "An email has been sent to your previous address, {0}. It includes a confirmation code which you can enter below." msgstr "Se ha enviado un correo electrónico a tu dirección previa, {0}. Incluye un código de confirmación que puedes introducir a continuación." -#: src/view/com/profile/FollowButton.tsx:30 -#: src/view/com/profile/FollowButton.tsx:40 +#: src/lib/moderation/useReportOptions.ts:26 +msgid "An issue not included in these options" +msgstr "" + +#: src/view/com/profile/FollowButton.tsx:35 +#: src/view/com/profile/FollowButton.tsx:45 +#: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:188 +#: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:198 msgid "An issue occurred, please try again." msgstr "" -#: src/view/com/notifications/FeedItem.tsx:237 +#: src/view/com/notifications/FeedItem.tsx:240 #: src/view/com/threadgate/WhoCanReply.tsx:178 msgid "and" msgstr "y" @@ -278,11 +308,15 @@ msgstr "y" msgid "Animals" msgstr "" +#: src/lib/moderation/useReportOptions.ts:31 +msgid "Anti-Social Behavior" +msgstr "" + #: src/view/screens/LanguageSettings.tsx:95 msgid "App Language" msgstr "Lenguaje de app" -#: src/view/screens/AppPasswords.tsx:228 +#: src/view/screens/AppPasswords.tsx:223 msgid "App password deleted" msgstr "" @@ -294,7 +328,7 @@ msgstr "" msgid "App Password names must be at least 4 characters long." msgstr "" -#: src/view/screens/Settings/index.tsx:675 +#: src/view/screens/Settings/index.tsx:691 msgid "App password settings" msgstr "" @@ -302,49 +336,65 @@ msgstr "" #~ msgid "App passwords" #~ msgstr "Contraseñas de la app" -#: src/Navigation.tsx:239 -#: src/view/screens/AppPasswords.tsx:187 -#: src/view/screens/Settings/index.tsx:684 +#: src/Navigation.tsx:251 +#: src/view/screens/AppPasswords.tsx:189 +#: src/view/screens/Settings/index.tsx:700 msgid "App Passwords" msgstr "Contraseñas de la app" +#: src/components/moderation/LabelsOnMeDialog.tsx:134 +#: src/components/moderation/LabelsOnMeDialog.tsx:137 +msgid "Appeal" +msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:202 +msgid "Appeal \"{0}\" label" +msgstr "" + #: src/view/com/util/forms/PostDropdownBtn.tsx:337 #: src/view/com/util/forms/PostDropdownBtn.tsx:346 -msgid "Appeal content warning" -msgstr "Aviso sobre el contenido del recurso" +#~ msgid "Appeal content warning" +#~ msgstr "Aviso sobre el contenido del recurso" #: src/view/com/modals/AppealLabel.tsx:65 -msgid "Appeal Content Warning" -msgstr "Aviso sobre el Contenido del Recurso" +#~ msgid "Appeal Content Warning" +#~ msgstr "Aviso sobre el Contenido del Recurso" + +#: src/components/moderation/LabelsOnMeDialog.tsx:193 +msgid "Appeal submitted." +msgstr "" #: src/view/com/util/moderation/LabelInfo.tsx:52 -msgid "Appeal this decision" -msgstr "Apelar esta decisión" +#~ msgid "Appeal this decision" +#~ msgstr "Apelar esta decisión" #: src/view/com/util/moderation/LabelInfo.tsx:56 -msgid "Appeal this decision." -msgstr "Apelar esta decisión." +#~ msgid "Appeal this decision." +#~ msgstr "Apelar esta decisión." -#: src/view/screens/Settings/index.tsx:466 +#: src/view/screens/Settings/index.tsx:481 msgid "Appearance" msgstr "Aspecto exterior" -#: src/view/screens/AppPasswords.tsx:224 +#: src/view/screens/AppPasswords.tsx:265 msgid "Are you sure you want to delete the app password \"{name}\"?" msgstr "¿Estás seguro de que quieres eliminar la contraseña de la app \"{name}\"?" -#: src/view/com/composer/Composer.tsx:150 +#: src/view/com/feeds/FeedSourceCard.tsx:280 +msgid "Are you sure you want to remove {0} from your feeds?" +msgstr "" + +#: src/view/com/composer/Composer.tsx:508 msgid "Are you sure you'd like to discard this draft?" msgstr "¿Estás seguro de que quieres descartar este borrador?" #: src/components/dialogs/MutedWords.tsx:282 -#: src/view/screens/ProfileList.tsx:365 msgid "Are you sure?" msgstr "¿Estás seguro?" #: src/view/com/util/forms/PostDropdownBtn.tsx:322 -msgid "Are you sure? This cannot be undone." -msgstr "¿Estás seguro? Esto no puede deshacerse." +#~ msgid "Are you sure? This cannot be undone." +#~ msgstr "¿Estás seguro? Esto no puede deshacerse." #: src/view/com/composer/select-language/SuggestedLanguage.tsx:60 msgid "Are you writing in <0>{0}?" @@ -358,78 +408,86 @@ msgstr "" msgid "Artistic or non-erotic nudity." msgstr "Desnudez artística o no erótica." +#: src/components/moderation/LabelsOnMeDialog.tsx:247 +#: src/components/moderation/LabelsOnMeDialog.tsx:248 +#: src/screens/Profile/Header/Shell.tsx:97 #: src/view/com/auth/create/CreateAccount.tsx:158 -#: src/view/com/auth/login/ChooseAccountForm.tsx:151 +#: src/view/com/auth/login/ChooseAccountForm.tsx:155 #: src/view/com/auth/login/ForgotPasswordForm.tsx:174 #: src/view/com/auth/login/LoginForm.tsx:259 #: src/view/com/auth/login/SetNewPasswordForm.tsx:179 -#: src/view/com/modals/report/InputIssueDetails.tsx:46 -#: src/view/com/post-thread/PostThread.tsx:472 -#: src/view/com/post-thread/PostThread.tsx:522 -#: src/view/com/post-thread/PostThread.tsx:530 -#: src/view/com/profile/ProfileHeader.tsx:649 #: src/view/com/util/ViewHeader.tsx:87 msgid "Back" msgstr "Regresar" #: src/view/com/post-thread/PostThread.tsx:480 -msgctxt "action" -msgid "Back" -msgstr "" +#~ msgctxt "action" +#~ msgid "Back" +#~ msgstr "" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:136 msgid "Based on your interest in {interestsText}" msgstr "" -#: src/view/screens/Settings/index.tsx:523 +#: src/view/screens/Settings/index.tsx:538 msgid "Basics" msgstr "Conceptos básicos" +#: src/components/dialogs/BirthDateSettings.tsx:107 #: src/view/com/auth/create/Step1.tsx:227 -#: src/view/com/modals/BirthDateSettings.tsx:73 msgid "Birthday" msgstr "Cumpleaños" -#: src/view/screens/Settings/index.tsx:340 +#: src/view/screens/Settings/index.tsx:355 msgid "Birthday:" msgstr "Cumpleaños:" -#: src/view/com/profile/ProfileHeader.tsx:239 -#: src/view/com/profile/ProfileHeader.tsx:346 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:278 +#: src/view/com/profile/ProfileMenu.tsx:361 +msgid "Block" +msgstr "" + +#: src/view/com/profile/ProfileMenu.tsx:300 +#: src/view/com/profile/ProfileMenu.tsx:307 msgid "Block Account" msgstr "Bloquear una cuenta" -#: src/view/screens/ProfileList.tsx:556 +#: src/view/com/profile/ProfileMenu.tsx:344 +msgid "Block Account?" +msgstr "" + +#: src/view/screens/ProfileList.tsx:530 msgid "Block accounts" msgstr "Bloquear cuentas" -#: src/view/screens/ProfileList.tsx:506 +#: src/view/screens/ProfileList.tsx:478 +#: src/view/screens/ProfileList.tsx:634 msgid "Block list" msgstr "Bloquear una lista" -#: src/view/screens/ProfileList.tsx:316 +#: src/view/screens/ProfileList.tsx:629 msgid "Block these accounts?" msgstr "¿Bloquear estas cuentas?" #: src/view/screens/ProfileList.tsx:320 -msgid "Block this List" -msgstr "" +#~ msgid "Block this List" +#~ msgstr "" #: src/view/com/lists/ListCard.tsx:110 -#: src/view/com/util/post-embeds/QuoteEmbed.tsx:61 +#: src/view/com/util/post-embeds/QuoteEmbed.tsx:55 msgid "Blocked" msgstr "" -#: src/view/screens/Moderation.tsx:142 +#: src/screens/Moderation/index.tsx:269 msgid "Blocked accounts" msgstr "Cuentas bloqueadas" -#: src/Navigation.tsx:132 +#: src/Navigation.tsx:134 #: src/view/screens/ModerationBlockedAccounts.tsx:107 msgid "Blocked Accounts" msgstr "Cuentas bloqueadas" -#: src/view/com/profile/ProfileHeader.tsx:241 +#: src/view/com/profile/ProfileMenu.tsx:356 msgid "Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you." msgstr "Las cuentas bloqueadas no pueden responder en tus hilos, mencionarte ni interactuar contigo de ninguna otra forma." @@ -437,15 +495,23 @@ msgstr "Las cuentas bloqueadas no pueden responder en tus hilos, mencionarte ni msgid "Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you. You will not see their content and they will be prevented from seeing yours." msgstr "Las cuentas bloqueadas no pueden responder en tus hilos, mencionarte ni interactuar contigo de ninguna otra forma. Tú no verás su contenido y ellos no podrán ver el tuyo." -#: src/view/com/post-thread/PostThread.tsx:324 +#: src/view/com/post-thread/PostThread.tsx:313 msgid "Blocked post." msgstr "Publicación bloqueada." -#: src/view/screens/ProfileList.tsx:318 +#: src/screens/Profile/Sections/Labels.tsx:153 +msgid "Blocking does not prevent this labeler from placing labels on your account." +msgstr "" + +#: src/view/screens/ProfileList.tsx:631 msgid "Blocking is public. Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you." msgstr "El bloque es público. Las cuentas bloqueadas no pueden responder en tus hilos, mencionarte ni interactuar contigo de ninguna otra forma." -#: src/view/com/auth/HomeLoggedOutCTA.tsx:93 +#: src/view/com/profile/ProfileMenu.tsx:353 +msgid "Blocking will not prevent labels from being applied on your account, but it will stop this account from replying in your threads or interacting with you." +msgstr "" + +#: src/view/com/auth/HomeLoggedOutCTA.tsx:97 #: src/view/com/auth/SplashScreen.web.tsx:133 msgid "Blog" msgstr "Blog" @@ -461,17 +527,17 @@ msgid "Bluesky is an open network where you can choose your hosting provider. Cu msgstr "" #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:80 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:80 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:82 msgid "Bluesky is flexible." msgstr "Bluesky es flexible." #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:69 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:69 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:71 msgid "Bluesky is open." msgstr "Bluesky es abierto." #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:56 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:56 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:58 msgid "Bluesky is public." msgstr "Bluesky es público." @@ -479,7 +545,7 @@ msgstr "Bluesky es público." #~ msgid "Bluesky uses invites to build a healthier community. If you don't know anybody with an invite, you can sign up for the waitlist and we'll send one soon." #~ msgstr "Bluesky utiliza las invitaciones para construir una comunidad más saludable. Si no conoces a nadie con una invitación, puedes apuntarte a la lista de espera y te enviaremos una en breve." -#: src/view/screens/Moderation.tsx:245 +#: src/screens/Moderation/index.tsx:535 msgid "Bluesky will not show your profile and posts to logged-out users. Other apps may not honor this request. This does not make your account private." msgstr "Bluesky no mostrará tu perfil ni tus publicaciones a los usuarios que hayan cerrado sesión. Es posible que otras aplicaciones no acepten esta solicitud. Esto no hace que tu cuenta sea privada." @@ -487,15 +553,23 @@ msgstr "Bluesky no mostrará tu perfil ni tus publicaciones a los usuarios que h #~ msgid "Bluesky.Social" #~ msgstr "Bluesky.Social" +#: src/lib/moderation/useLabelBehaviorDescription.ts:53 +msgid "Blur images" +msgstr "" + +#: src/lib/moderation/useLabelBehaviorDescription.ts:51 +msgid "Blur images and filter from feeds" +msgstr "" + #: src/screens/Onboarding/index.tsx:33 msgid "Books" msgstr "" -#: src/view/screens/Settings/index.tsx:859 +#: src/view/screens/Settings/index.tsx:889 msgid "Build version {0} {1}" msgstr "Versión {0} {1}" -#: src/view/com/auth/HomeLoggedOutCTA.tsx:87 +#: src/view/com/auth/HomeLoggedOutCTA.tsx:91 #: src/view/com/auth/SplashScreen.web.tsx:128 msgid "Business" msgstr "Negocios" @@ -512,17 +586,23 @@ msgstr "" msgid "by {0}" msgstr "" +#: src/components/LabelingServiceCard/index.tsx:57 +msgid "By {0}" +msgstr "" + #: src/view/com/profile/ProfileSubpageHeader.tsx:161 msgid "by <0/>" msgstr "" +#: src/view/com/auth/create/Policies.tsx:87 +msgid "By creating an account you agree to the {els}." +msgstr "" + #: src/view/com/profile/ProfileSubpageHeader.tsx:159 msgid "by you" msgstr "" -#: src/view/com/composer/photos/OpenCameraBtn.tsx:60 -#: src/view/com/util/UserAvatar.tsx:224 -#: src/view/com/util/UserBanner.tsx:40 +#: src/view/com/composer/photos/OpenCameraBtn.tsx:77 msgid "Camera" msgstr "Cámara" @@ -530,28 +610,33 @@ msgstr "Cámara" msgid "Can only contain letters, numbers, spaces, dashes, and underscores. Must be at least 4 characters long, but no more than 32 characters long." msgstr "Sólo puede contener letras, números, espacios, guiones y guiones bajos. Debe tener al menos 4 caracteres, pero no más de 32." -#: src/components/Prompt.tsx:101 -#: src/view/com/composer/Composer.tsx:307 -#: src/view/com/composer/Composer.tsx:312 +#: src/components/Menu/index.tsx:213 +#: src/components/Prompt.tsx:116 +#: src/components/Prompt.tsx:118 +#: src/components/TagMenu/index.tsx:268 +#: src/view/com/composer/Composer.tsx:316 +#: src/view/com/composer/Composer.tsx:321 #: src/view/com/modals/ChangeEmail.tsx:218 #: src/view/com/modals/ChangeEmail.tsx:220 -#: src/view/com/modals/ChangePassword.tsx:265 -#: src/view/com/modals/ChangePassword.tsx:268 +#: src/view/com/modals/ChangeHandle.tsx:153 +#: src/view/com/modals/ChangePassword.tsx:267 +#: src/view/com/modals/ChangePassword.tsx:270 #: src/view/com/modals/CreateOrEditList.tsx:355 +#: src/view/com/modals/crop-image/CropImage.web.tsx:137 #: src/view/com/modals/EditImage.tsx:323 #: src/view/com/modals/EditProfile.tsx:249 #: src/view/com/modals/InAppBrowserConsent.tsx:78 +#: src/view/com/modals/InAppBrowserConsent.tsx:80 #: src/view/com/modals/LinkWarning.tsx:87 +#: src/view/com/modals/LinkWarning.tsx:89 #: src/view/com/modals/Repost.tsx:87 #: src/view/com/modals/VerifyEmail.tsx:247 #: src/view/com/modals/VerifyEmail.tsx:253 -#: src/view/screens/Search/Search.tsx:716 -#: src/view/shell/desktop/Search.tsx:238 +#: src/view/screens/Search/Search.tsx:717 +#: src/view/shell/desktop/Search.tsx:239 msgid "Cancel" msgstr "Cancelar" -#: src/view/com/modals/Confirm.tsx:88 -#: src/view/com/modals/Confirm.tsx:91 #: src/view/com/modals/CreateOrEditList.tsx:360 #: src/view/com/modals/DeleteAccount.tsx:156 #: src/view/com/modals/DeleteAccount.tsx:234 @@ -581,7 +666,7 @@ msgid "Cancel quote post" msgstr "Cancelar la publicación de un presupuesto" #: src/view/com/modals/ListAddRemoveUsers.tsx:87 -#: src/view/shell/desktop/Search.tsx:234 +#: src/view/shell/desktop/Search.tsx:235 msgid "Cancel search" msgstr "Cancelar búsqueda" @@ -589,17 +674,25 @@ msgstr "Cancelar búsqueda" #~ msgid "Cancel waitlist signup" #~ msgstr "Cancelar la inscripción en la lista de espera" -#: src/view/screens/Settings/index.tsx:334 +#: src/view/com/modals/LinkWarning.tsx:88 +msgid "Cancels opening the linked website" +msgstr "" + +#: src/view/com/modals/VerifyEmail.tsx:152 +msgid "Change" +msgstr "" + +#: src/view/screens/Settings/index.tsx:349 msgctxt "action" msgid "Change" msgstr "Cambiar" -#: src/view/screens/Settings/index.tsx:696 +#: src/view/screens/Settings/index.tsx:712 msgid "Change handle" msgstr "Cambiar el identificador" #: src/view/com/modals/ChangeHandle.tsx:161 -#: src/view/screens/Settings/index.tsx:705 +#: src/view/screens/Settings/index.tsx:723 msgid "Change Handle" msgstr "Cambiar el identificador" @@ -607,11 +700,12 @@ msgstr "Cambiar el identificador" msgid "Change my email" msgstr "Cambiar mi correo electrónico" -#: src/view/screens/Settings/index.tsx:732 +#: src/view/screens/Settings/index.tsx:750 msgid "Change password" msgstr "" -#: src/view/screens/Settings/index.tsx:741 +#: src/view/com/modals/ChangePassword.tsx:141 +#: src/view/screens/Settings/index.tsx:761 msgid "Change Password" msgstr "" @@ -620,8 +714,8 @@ msgid "Change post language to {0}" msgstr "" #: src/view/screens/Settings/index.tsx:733 -msgid "Change your Bluesky password" -msgstr "" +#~ msgid "Change your Bluesky password" +#~ msgstr "" #: src/view/com/modals/ChangeEmail.tsx:109 msgid "Change Your Email" @@ -649,8 +743,8 @@ msgid "Choose \"Everybody\" or \"Nobody\"" msgstr "" #: src/view/screens/Settings/index.tsx:697 -msgid "Choose a new Bluesky username or create" -msgstr "" +#~ msgid "Choose a new Bluesky username or create" +#~ msgstr "" #: src/view/com/auth/server-input/index.tsx:79 msgid "Choose Service" @@ -661,7 +755,7 @@ msgid "Choose the algorithms that power your custom feeds." msgstr "" #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:83 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:83 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:85 msgid "Choose the algorithms that power your experience with custom feeds." msgstr "Elige los algoritmos que potencian tu experiencia con publicaciones personalizadas." @@ -677,29 +771,35 @@ msgstr "" msgid "Choose your password" msgstr "Elige tu contraseña" -#: src/view/screens/Settings/index.tsx:834 -#: src/view/screens/Settings/index.tsx:835 +#: src/view/screens/Settings/index.tsx:864 msgid "Clear all legacy storage data" msgstr "Borrar todos los datos de almacenamiento heredados" -#: src/view/screens/Settings/index.tsx:837 +#: src/view/screens/Settings/index.tsx:867 msgid "Clear all legacy storage data (restart after this)" msgstr "Borrar todos los datos de almacenamiento heredados (reiniciar después de esto)" -#: src/view/screens/Settings/index.tsx:846 -#: src/view/screens/Settings/index.tsx:847 +#: src/view/screens/Settings/index.tsx:876 msgid "Clear all storage data" msgstr "Borrar todos los datos de almacenamiento" -#: src/view/screens/Settings/index.tsx:849 +#: src/view/screens/Settings/index.tsx:879 msgid "Clear all storage data (restart after this)" msgstr "Borrar todos los datos de almacenamiento (reiniciar después de esto)" #: src/view/com/util/forms/SearchInput.tsx:88 -#: src/view/screens/Search/Search.tsx:697 +#: src/view/screens/Search/Search.tsx:698 msgid "Clear search query" msgstr "Borrar consulta de búsqueda" +#: src/view/screens/Settings/index.tsx:865 +msgid "Clears all legacy storage data" +msgstr "" + +#: src/view/screens/Settings/index.tsx:877 +msgid "Clears all storage data" +msgstr "" + #: src/view/screens/Support.tsx:40 msgid "click here" msgstr "" @@ -716,8 +816,8 @@ msgstr "" msgid "Climate" msgstr "" -#: src/view/com/modals/ChangePassword.tsx:265 -#: src/view/com/modals/ChangePassword.tsx:268 +#: src/view/com/modals/ChangePassword.tsx:267 +#: src/view/com/modals/ChangePassword.tsx:270 msgid "Close" msgstr "" @@ -730,27 +830,28 @@ msgstr "" msgid "Close alert" msgstr "Cerrar la alerta" -#: src/view/com/util/BottomSheetCustomBackdrop.tsx:33 +#: src/view/com/util/BottomSheetCustomBackdrop.tsx:36 msgid "Close bottom drawer" msgstr "Cierra el cajón inferior" -#: src/view/com/lightbox/ImageViewing/components/ImageDefaultHeader.tsx:26 +#: src/view/com/lightbox/ImageViewing/components/ImageDefaultHeader.tsx:36 msgid "Close image" msgstr "Cerrar la imagen" -#: src/view/com/lightbox/Lightbox.web.tsx:119 +#: src/view/com/lightbox/Lightbox.web.tsx:129 msgid "Close image viewer" msgstr "Cerrar el visor de imagen" -#: src/view/shell/index.web.tsx:51 +#: src/view/shell/index.web.tsx:55 msgid "Close navigation footer" msgstr "Cerrar el pie de página de navegación" +#: src/components/Menu/index.tsx:207 #: src/components/TagMenu/index.tsx:262 msgid "Close this dialog" msgstr "" -#: src/view/shell/index.web.tsx:52 +#: src/view/shell/index.web.tsx:56 msgid "Closes bottom navigation bar" msgstr "" @@ -758,15 +859,15 @@ msgstr "" msgid "Closes password update alert" msgstr "" -#: src/view/com/composer/Composer.tsx:309 +#: src/view/com/composer/Composer.tsx:318 msgid "Closes post composer and discards post draft" msgstr "" -#: src/view/com/lightbox/ImageViewing/components/ImageDefaultHeader.tsx:27 +#: src/view/com/lightbox/ImageViewing/components/ImageDefaultHeader.tsx:37 msgid "Closes viewer for header image" msgstr "" -#: src/view/com/notifications/FeedItem.tsx:318 +#: src/view/com/notifications/FeedItem.tsx:321 msgid "Collapses list of users for a given notification" msgstr "" @@ -778,7 +879,7 @@ msgstr "" msgid "Comics" msgstr "" -#: src/Navigation.tsx:229 +#: src/Navigation.tsx:241 #: src/view/screens/CommunityGuidelines.tsx:32 msgid "Community Guidelines" msgstr "Directrices de la comunidad" @@ -791,7 +892,7 @@ msgstr "" msgid "Complete the challenge" msgstr "" -#: src/view/com/composer/Composer.tsx:424 +#: src/view/com/composer/Composer.tsx:437 msgid "Compose posts up to {MAX_GRAPHEME_LENGTH} characters in length" msgstr "" @@ -799,12 +900,18 @@ msgstr "" msgid "Compose reply" msgstr "Redactar la respuesta" -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:67 +#: src/components/moderation/GlobalModerationLabelPref.tsx:69 +#: src/components/moderation/ModerationLabelPref.tsx:149 +#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:81 msgid "Configure content filtering setting for category: {0}" msgstr "" -#: src/components/Prompt.tsx:124 -#: src/view/com/modals/AppealLabel.tsx:98 +#: src/components/moderation/ModerationLabelPref.tsx:116 +msgid "Configured in <0>moderation settings." +msgstr "" + +#: src/components/Prompt.tsx:152 +#: src/components/Prompt.tsx:155 #: src/view/com/modals/SelfLabel.tsx:154 #: src/view/com/modals/VerifyEmail.tsx:231 #: src/view/com/modals/VerifyEmail.tsx:233 @@ -815,9 +922,9 @@ msgstr "Confirmar" #: src/view/com/modals/Confirm.tsx:75 #: src/view/com/modals/Confirm.tsx:78 -msgctxt "action" -msgid "Confirm" -msgstr "" +#~ msgctxt "action" +#~ msgid "Confirm" +#~ msgstr "" #: src/view/com/modals/ChangeEmail.tsx:193 #: src/view/com/modals/ChangeEmail.tsx:195 @@ -833,10 +940,19 @@ msgid "Confirm delete account" msgstr "Confirmar eliminación de cuenta" #: src/view/com/modals/ContentFilteringSettings.tsx:156 -msgid "Confirm your age to enable adult content." +#~ msgid "Confirm your age to enable adult content." +#~ msgstr "" + +#: src/screens/Moderation/index.tsx:303 +msgid "Confirm your age:" +msgstr "" + +#: src/screens/Moderation/index.tsx:294 +msgid "Confirm your birthdate" msgstr "" #: src/view/com/modals/ChangeEmail.tsx:157 +#: src/view/com/modals/DeleteAccount.tsx:176 #: src/view/com/modals/DeleteAccount.tsx:182 #: src/view/com/modals/VerifyEmail.tsx:165 msgid "Confirmation code" @@ -855,25 +971,40 @@ msgstr "Conectando..." msgid "Contact support" msgstr "" +#: src/components/moderation/LabelsOnMe.tsx:42 +msgid "content" +msgstr "" + +#: src/lib/moderation/useGlobalLabelStrings.ts:18 +msgid "Content Blocked" +msgstr "" + #: src/view/screens/Moderation.tsx:83 -msgid "Content filtering" -msgstr "Filtro de contenido" +#~ msgid "Content filtering" +#~ msgstr "Filtro de contenido" #: src/view/com/modals/ContentFilteringSettings.tsx:44 -msgid "Content Filtering" -msgstr "Filtro de contenido" +#~ msgid "Content Filtering" +#~ msgstr "Filtro de contenido" + +#: src/screens/Moderation/index.tsx:287 +msgid "Content filters" +msgstr "" #: src/view/com/modals/lang-settings/ContentLanguagesSettings.tsx:74 #: src/view/screens/LanguageSettings.tsx:278 msgid "Content Languages" msgstr "Lenguajes de contenido" -#: src/view/com/modals/ModerationDetails.tsx:65 +#: src/components/moderation/ModerationDetailsDialog.tsx:76 +#: src/lib/moderation/useModerationCauseDescription.ts:75 msgid "Content Not Available" msgstr "" -#: src/view/com/modals/ModerationDetails.tsx:33 -#: src/view/com/util/moderation/ScreenHider.tsx:78 +#: src/components/moderation/ModerationDetailsDialog.tsx:47 +#: src/components/moderation/ScreenHider.tsx:100 +#: src/lib/moderation/useGlobalLabelStrings.ts:22 +#: src/lib/moderation/useModerationCauseDescription.ts:38 msgid "Content Warning" msgstr "Advertencia de contenido" @@ -881,19 +1012,24 @@ msgstr "Advertencia de contenido" msgid "Content warnings" msgstr "Advertencias de contenido" +#: src/components/Menu/index.web.tsx:84 +msgid "Context menu backdrop, click to close the menu." +msgstr "" + #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:170 #: src/screens/Onboarding/StepFollowingFeed.tsx:153 #: src/screens/Onboarding/StepInterests/index.tsx:248 -#: src/screens/Onboarding/StepModeration/index.tsx:118 +#: src/screens/Onboarding/StepModeration/index.tsx:102 #: src/screens/Onboarding/StepTopicalFeeds.tsx:114 #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:148 #: src/view/com/auth/onboarding/RecommendedFollows.tsx:209 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:96 msgid "Continue" msgstr "Continuar" #: src/screens/Onboarding/StepFollowingFeed.tsx:150 #: src/screens/Onboarding/StepInterests/index.tsx:245 -#: src/screens/Onboarding/StepModeration/index.tsx:115 +#: src/screens/Onboarding/StepModeration/index.tsx:99 #: src/screens/Onboarding/StepTopicalFeeds.tsx:111 msgid "Continue to next step" msgstr "" @@ -915,13 +1051,14 @@ msgstr "" msgid "Copied" msgstr "Copiado" -#: src/view/screens/Settings/index.tsx:241 +#: src/view/screens/Settings/index.tsx:247 msgid "Copied build version to clipboard" msgstr "" #: src/view/com/modals/AddAppPasswords.tsx:76 +#: src/view/com/modals/ChangeHandle.tsx:327 #: src/view/com/modals/InviteCodes.tsx:152 -#: src/view/com/util/forms/PostDropdownBtn.tsx:161 +#: src/view/com/util/forms/PostDropdownBtn.tsx:158 msgid "Copied to clipboard" msgstr "" @@ -933,34 +1070,38 @@ msgstr "" msgid "Copy" msgstr "Copiar" -#: src/view/screens/ProfileList.tsx:418 +#: src/view/com/modals/ChangeHandle.tsx:481 +msgid "Copy {0}" +msgstr "" + +#: src/view/screens/ProfileList.tsx:388 msgid "Copy link to list" msgstr "Copia el enlace a la lista" -#: src/view/com/util/forms/PostDropdownBtn.tsx:231 +#: src/view/com/util/forms/PostDropdownBtn.tsx:228 #: src/view/com/util/forms/PostDropdownBtn.tsx:237 msgid "Copy link to post" msgstr "Copia el enlace a la publicación" #: src/view/com/profile/ProfileHeader.tsx:295 -msgid "Copy link to profile" -msgstr "Copia el enlace al perfil" +#~ msgid "Copy link to profile" +#~ msgstr "Copia el enlace al perfil" -#: src/view/com/util/forms/PostDropdownBtn.tsx:223 -#: src/view/com/util/forms/PostDropdownBtn.tsx:225 +#: src/view/com/util/forms/PostDropdownBtn.tsx:220 +#: src/view/com/util/forms/PostDropdownBtn.tsx:222 msgid "Copy post text" msgstr "Copiar el texto de la publicación" -#: src/Navigation.tsx:234 +#: src/Navigation.tsx:246 #: src/view/screens/CopyrightPolicy.tsx:29 msgid "Copyright Policy" msgstr "Política de derechos de autor" -#: src/view/screens/ProfileFeed.tsx:97 +#: src/view/screens/ProfileFeed.tsx:102 msgid "Could not load feed" msgstr "No se ha podido cargar las publicaciones" -#: src/view/screens/ProfileList.tsx:893 +#: src/view/screens/ProfileList.tsx:907 msgid "Could not load list" msgstr "No se ha podido cargar la lista" @@ -968,13 +1109,13 @@ msgstr "No se ha podido cargar la lista" #~ msgid "Country" #~ msgstr "" -#: src/view/com/auth/HomeLoggedOutCTA.tsx:62 -#: src/view/com/auth/SplashScreen.tsx:71 +#: src/view/com/auth/HomeLoggedOutCTA.tsx:64 +#: src/view/com/auth/SplashScreen.tsx:73 #: src/view/com/auth/SplashScreen.web.tsx:81 msgid "Create a new account" msgstr "Crear una cuenta nueva" -#: src/view/screens/Settings/index.tsx:384 +#: src/view/screens/Settings/index.tsx:399 msgid "Create a new Bluesky account" msgstr "" @@ -991,19 +1132,23 @@ msgstr "" msgid "Create new account" msgstr "Crear una cuenta nueva" -#: src/view/screens/AppPasswords.tsx:249 +#: src/components/ReportDialog/SelectReportOptionView.tsx:94 +msgid "Create report for {0}" +msgstr "" + +#: src/view/screens/AppPasswords.tsx:246 msgid "Created {0}" msgstr "Creado {0}" #: src/view/screens/ProfileFeed.tsx:616 -msgid "Created by <0/>" -msgstr "" +#~ msgid "Created by <0/>" +#~ msgstr "" #: src/view/screens/ProfileFeed.tsx:614 -msgid "Created by you" -msgstr "" +#~ msgid "Created by you" +#~ msgstr "" -#: src/view/com/composer/Composer.tsx:455 +#: src/view/com/composer/Composer.tsx:468 msgid "Creates a card with a thumbnail. The card links to {url}" msgstr "" @@ -1033,8 +1178,8 @@ msgstr "" #~ msgid "Danger Zone" #~ msgstr "Zona de peligro" -#: src/view/screens/Settings/index.tsx:485 -#: src/view/screens/Settings/index.tsx:511 +#: src/view/screens/Settings/index.tsx:500 +#: src/view/screens/Settings/index.tsx:526 msgid "Dark" msgstr "" @@ -1042,15 +1187,25 @@ msgstr "" msgid "Dark mode" msgstr "" -#: src/view/screens/Settings/index.tsx:498 +#: src/view/screens/Settings/index.tsx:513 msgid "Dark Theme" msgstr "" +#: src/view/screens/Settings/index.tsx:837 +msgid "Debug Moderation" +msgstr "" + #: src/view/screens/Debug.tsx:83 msgid "Debug panel" msgstr "" -#: src/view/screens/Settings/index.tsx:772 +#: src/view/com/util/forms/PostDropdownBtn.tsx:319 +#: src/view/screens/AppPasswords.tsx:268 +#: src/view/screens/ProfileList.tsx:613 +msgid "Delete" +msgstr "" + +#: src/view/screens/Settings/index.tsx:792 msgid "Delete account" msgstr "Borrar la cuenta" @@ -1058,13 +1213,15 @@ msgstr "Borrar la cuenta" msgid "Delete Account" msgstr "Borrar la cuenta" -#: src/view/screens/AppPasswords.tsx:222 -#: src/view/screens/AppPasswords.tsx:242 +#: src/view/screens/AppPasswords.tsx:239 msgid "Delete app password" msgstr "Borrar la contraseña de la app" -#: src/view/screens/ProfileList.tsx:364 -#: src/view/screens/ProfileList.tsx:445 +#: src/view/screens/AppPasswords.tsx:263 +msgid "Delete app password?" +msgstr "" + +#: src/view/screens/ProfileList.tsx:415 msgid "Delete List" msgstr "Borrar la lista" @@ -1076,24 +1233,28 @@ msgstr "Borrar mi cuenta" #~ msgid "Delete my account…" #~ msgstr "Borrar mi cuenta..." -#: src/view/screens/Settings/index.tsx:784 +#: src/view/screens/Settings/index.tsx:804 msgid "Delete My Account…" msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:317 -#: src/view/com/util/forms/PostDropdownBtn.tsx:326 +#: src/view/com/util/forms/PostDropdownBtn.tsx:302 +#: src/view/com/util/forms/PostDropdownBtn.tsx:304 msgid "Delete post" msgstr "Borrar una publicación" -#: src/view/com/util/forms/PostDropdownBtn.tsx:321 +#: src/view/screens/ProfileList.tsx:608 +msgid "Delete this list?" +msgstr "" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:314 msgid "Delete this post?" msgstr "¿Borrar esta publicación?" -#: src/view/com/util/post-embeds/QuoteEmbed.tsx:70 +#: src/view/com/util/post-embeds/QuoteEmbed.tsx:64 msgid "Deleted" msgstr "" -#: src/view/com/post-thread/PostThread.tsx:316 +#: src/view/com/post-thread/PostThread.tsx:305 msgid "Deleted post." msgstr "Se borró la publicación." @@ -1108,23 +1269,35 @@ msgstr "Descripción" #~ msgid "Developer Tools" #~ msgstr "Herramientas de desarrollador" -#: src/view/com/composer/Composer.tsx:218 +#: src/view/com/composer/Composer.tsx:217 msgid "Did you want to say anything?" msgstr "¿Quieres decir algo?" -#: src/view/screens/Settings/index.tsx:504 +#: src/view/screens/Settings/index.tsx:519 msgid "Dim" msgstr "" -#: src/view/com/composer/Composer.tsx:151 +#: src/lib/moderation/useLabelBehaviorDescription.ts:32 +#: src/lib/moderation/useLabelBehaviorDescription.ts:42 +#: src/lib/moderation/useLabelBehaviorDescription.ts:68 +#: src/screens/Moderation/index.tsx:343 +msgid "Disabled" +msgstr "" + +#: src/view/com/composer/Composer.tsx:510 msgid "Discard" msgstr "Descartar" #: src/view/com/composer/Composer.tsx:145 -msgid "Discard draft" -msgstr "Descartar el borrador" +#~ msgid "Discard draft" +#~ msgstr "Descartar el borrador" -#: src/view/screens/Moderation.tsx:226 +#: src/view/com/composer/Composer.tsx:507 +msgid "Discard draft?" +msgstr "" + +#: src/screens/Moderation/index.tsx:520 +#: src/screens/Moderation/index.tsx:524 msgid "Discourage apps from showing my account to logged-out users" msgstr "Evitar que las aplicaciones muestren mi cuenta a los usuarios desconectados" @@ -1149,7 +1322,19 @@ msgstr "Mostrar el nombre" msgid "Display Name" msgstr "Mostrar el nombre" -#: src/view/com/modals/ChangeHandle.tsx:487 +#: src/view/com/modals/ChangeHandle.tsx:398 +msgid "DNS Panel" +msgstr "" + +#: src/lib/moderation/useGlobalLabelStrings.ts:39 +msgid "Does not include nudity." +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:482 +msgid "Domain Value" +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:489 msgid "Domain verified!" msgstr "¡Dominio verificado!" @@ -1170,19 +1355,19 @@ msgctxt "action" msgid "Done" msgstr "" +#: src/components/dialogs/BirthDateSettings.tsx:119 +#: src/components/dialogs/BirthDateSettings.tsx:125 #: src/view/com/auth/server-input/index.tsx:165 #: src/view/com/auth/server-input/index.tsx:166 #: src/view/com/modals/AddAppPasswords.tsx:226 #: src/view/com/modals/AltImage.tsx:139 -#: src/view/com/modals/ContentFilteringSettings.tsx:88 -#: src/view/com/modals/ContentFilteringSettings.tsx:96 #: src/view/com/modals/crop-image/CropImage.web.tsx:152 #: src/view/com/modals/InviteCodes.tsx:80 #: src/view/com/modals/InviteCodes.tsx:123 #: src/view/com/modals/ListAddRemoveUsers.tsx:142 #: src/view/screens/PreferencesFollowingFeed.tsx:311 -#: src/view/screens/Settings/ExportCarDialog.tsx:93 #: src/view/screens/Settings/ExportCarDialog.tsx:94 +#: src/view/screens/Settings/ExportCarDialog.tsx:95 msgid "Done" msgstr "Listo" @@ -1195,8 +1380,8 @@ msgid "Double tap to sign in" msgstr "" #: src/view/screens/Settings/index.tsx:755 -msgid "Download Bluesky account data (repository)" -msgstr "" +#~ msgid "Download Bluesky account data (repository)" +#~ msgstr "" #: src/view/screens/Settings/ExportCarDialog.tsx:59 #: src/view/screens/Settings/ExportCarDialog.tsx:63 @@ -1207,18 +1392,30 @@ msgstr "" msgid "Drop to add images" msgstr "" -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:111 +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:120 msgid "Due to Apple policies, adult content can only be enabled on the web after completing sign up." msgstr "" +#: src/view/com/modals/ChangeHandle.tsx:257 +msgid "e.g. alice" +msgstr "" + #: src/view/com/modals/EditProfile.tsx:185 msgid "e.g. Alice Roberts" msgstr "" +#: src/view/com/modals/ChangeHandle.tsx:381 +msgid "e.g. alice.com" +msgstr "" + #: src/view/com/modals/EditProfile.tsx:203 msgid "e.g. Artist, dog-lover, and avid reader." msgstr "" +#: src/lib/moderation/useGlobalLabelStrings.ts:43 +msgid "E.g. artistic nudes." +msgstr "" + #: src/view/com/modals/CreateOrEditList.tsx:283 msgid "e.g. Great Posters" msgstr "" @@ -1244,12 +1441,17 @@ msgctxt "action" msgid "Edit" msgstr "" +#: src/view/com/util/UserAvatar.tsx:299 +#: src/view/com/util/UserBanner.tsx:85 +msgid "Edit avatar" +msgstr "" + #: src/view/com/composer/photos/Gallery.tsx:144 #: src/view/com/modals/EditImage.tsx:207 msgid "Edit image" msgstr "Editar la imagen" -#: src/view/screens/ProfileList.tsx:433 +#: src/view/screens/ProfileList.tsx:403 msgid "Edit list details" msgstr "Editar los detalles de la lista" @@ -1257,7 +1459,7 @@ msgstr "Editar los detalles de la lista" msgid "Edit Moderation List" msgstr "" -#: src/Navigation.tsx:244 +#: src/Navigation.tsx:256 #: src/view/screens/Feeds.tsx:434 #: src/view/screens/SavedFeeds.tsx:84 msgid "Edit My Feeds" @@ -1267,11 +1469,13 @@ msgstr "Editar mis noticias" msgid "Edit my profile" msgstr "Editar mi perfil" -#: src/view/com/profile/ProfileHeader.tsx:418 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:172 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:161 msgid "Edit profile" msgstr "Editar el perfil" -#: src/view/com/profile/ProfileHeader.tsx:423 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:175 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:164 msgid "Edit Profile" msgstr "Editar el perfil" @@ -1320,7 +1524,7 @@ msgstr "Correo electrónico actualizado" msgid "Email verified" msgstr "" -#: src/view/screens/Settings/index.tsx:312 +#: src/view/screens/Settings/index.tsx:327 msgid "Email:" msgstr "Correo electrónico:" @@ -1328,12 +1532,16 @@ msgstr "Correo electrónico:" msgid "Enable {0} only" msgstr "" -#: src/view/com/modals/ContentFilteringSettings.tsx:167 +#: src/screens/Moderation/index.tsx:331 +msgid "Enable adult content" +msgstr "" + +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:94 msgid "Enable Adult Content" msgstr "" -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:76 -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:77 +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:78 +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:79 msgid "Enable adult content in your feeds" msgstr "" @@ -1349,7 +1557,11 @@ msgstr "" msgid "Enable this setting to only see replies between people you follow." msgstr "Activa esta opción para ver sólo las respuestas de las personas a las que sigues." -#: src/view/screens/Profile.tsx:455 +#: src/screens/Moderation/index.tsx:341 +msgid "Enabled" +msgstr "" + +#: src/screens/Profile/Sections/Feed.tsx:84 msgid "End of feed" msgstr "Fin de noticias" @@ -1366,7 +1578,7 @@ msgstr "" msgid "Enter Confirmation Code" msgstr "" -#: src/view/com/modals/ChangePassword.tsx:151 +#: src/view/com/modals/ChangePassword.tsx:153 msgid "Enter the code you received to change your password." msgstr "" @@ -1378,8 +1590,8 @@ msgstr "Introduce el dominio que quieres utilizar" msgid "Enter the email you used to create your account. We'll send you a \"reset code\" so you can set a new password." msgstr "Introduce el correo electrónico que utilizaste para crear tu cuenta. Te enviaremos un \"código de restablecimiento\" para que puedas establecer una nueva contraseña." +#: src/components/dialogs/BirthDateSettings.tsx:108 #: src/view/com/auth/create/Step1.tsx:228 -#: src/view/com/modals/BirthDateSettings.tsx:74 msgid "Enter your birth date" msgstr "" @@ -1419,16 +1631,28 @@ msgstr "Error:" msgid "Everybody" msgstr "Todos" +#: src/lib/moderation/useReportOptions.ts:66 +msgid "Excessive mentions or replies" +msgstr "" + +#: src/view/com/modals/DeleteAccount.tsx:231 +msgid "Exits account deletion process" +msgstr "" + #: src/view/com/modals/ChangeHandle.tsx:150 msgid "Exits handle change process" msgstr "" -#: src/view/com/lightbox/Lightbox.web.tsx:120 +#: src/view/com/modals/crop-image/CropImage.web.tsx:135 +msgid "Exits image cropping process" +msgstr "" + +#: src/view/com/lightbox/Lightbox.web.tsx:130 msgid "Exits image view" msgstr "" #: src/view/com/modals/ListAddRemoveUsers.tsx:88 -#: src/view/shell/desktop/Search.tsx:235 +#: src/view/shell/desktop/Search.tsx:236 msgid "Exits inputting search query" msgstr "" @@ -1436,7 +1660,7 @@ msgstr "" #~ msgid "Exits signing up for waitlist with {email}" #~ msgstr "" -#: src/view/com/lightbox/Lightbox.web.tsx:163 +#: src/view/com/lightbox/Lightbox.web.tsx:183 msgid "Expand alt text" msgstr "Expandir el texto alt" @@ -1445,12 +1669,20 @@ msgstr "Expandir el texto alt" msgid "Expand or collapse the full post you are replying to" msgstr "" -#: src/view/screens/Settings/index.tsx:753 +#: src/lib/moderation/useGlobalLabelStrings.ts:47 +msgid "Explicit or potentially disturbing media." +msgstr "" + +#: src/lib/moderation/useGlobalLabelStrings.ts:35 +msgid "Explicit sexual images." +msgstr "" + +#: src/view/screens/Settings/index.tsx:773 msgid "Export my data" msgstr "" #: src/view/screens/Settings/ExportCarDialog.tsx:44 -#: src/view/screens/Settings/index.tsx:764 +#: src/view/screens/Settings/index.tsx:784 msgid "Export My Data" msgstr "" @@ -1463,13 +1695,13 @@ msgstr "" msgid "External media may allow websites to collect information about you and your device. No information is sent or requested until you press the \"play\" button." msgstr "" -#: src/Navigation.tsx:263 +#: src/Navigation.tsx:275 #: src/view/screens/PreferencesExternalEmbeds.tsx:52 -#: src/view/screens/Settings/index.tsx:657 +#: src/view/screens/Settings/index.tsx:673 msgid "External Media Preferences" msgstr "" -#: src/view/screens/Settings/index.tsx:648 +#: src/view/screens/Settings/index.tsx:664 msgid "External media settings" msgstr "" @@ -1482,7 +1714,7 @@ msgstr "" msgid "Failed to create the list. Check your internet connection and try again." msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:128 +#: src/view/com/util/forms/PostDropdownBtn.tsx:125 msgid "Failed to delete post, please try again" msgstr "" @@ -1491,11 +1723,15 @@ msgstr "" msgid "Failed to load recommended feeds" msgstr "Error al cargar las noticias recomendadas" -#: src/Navigation.tsx:194 +#: src/view/com/lightbox/Lightbox.tsx:83 +msgid "Failed to save image: {0}" +msgstr "" + +#: src/Navigation.tsx:196 msgid "Feed" msgstr "" -#: src/view/com/feeds/FeedSourceCard.tsx:231 +#: src/view/com/feeds/FeedSourceCard.tsx:218 msgid "Feed by {0}" msgstr "" @@ -1508,18 +1744,18 @@ msgstr "Noticias fuera de línea" #~ msgstr "Preferencias de noticias" #: src/view/shell/desktop/RightNav.tsx:61 -#: src/view/shell/Drawer.tsx:311 +#: src/view/shell/Drawer.tsx:314 msgid "Feedback" msgstr "Comentarios" -#: src/Navigation.tsx:452 +#: src/Navigation.tsx:464 #: src/view/screens/Feeds.tsx:419 #: src/view/screens/Feeds.tsx:524 -#: src/view/screens/Profile.tsx:184 -#: src/view/shell/bottom-bar/BottomBar.tsx:181 -#: src/view/shell/desktop/LeftNav.tsx:342 -#: src/view/shell/Drawer.tsx:476 -#: src/view/shell/Drawer.tsx:477 +#: src/view/screens/Profile.tsx:192 +#: src/view/shell/bottom-bar/BottomBar.tsx:183 +#: src/view/shell/desktop/LeftNav.tsx:346 +#: src/view/shell/Drawer.tsx:479 +#: src/view/shell/Drawer.tsx:480 msgid "Feeds" msgstr "Noticias" @@ -1543,6 +1779,14 @@ msgstr "Las noticias son algoritmos personalizados que los usuarios construyen c msgid "Feeds can be topical as well!" msgstr "" +#: src/view/com/modals/ChangeHandle.tsx:482 +msgid "File Contents" +msgstr "" + +#: src/lib/moderation/useLabelBehaviorDescription.ts:66 +msgid "Filter from feeds" +msgstr "" + #: src/screens/Onboarding/StepFinished.tsx:151 msgid "Finalizing" msgstr "" @@ -1553,15 +1797,15 @@ msgstr "" msgid "Find accounts to follow" msgstr "" -#: src/view/screens/Search/Search.tsx:440 +#: src/view/screens/Search/Search.tsx:441 msgid "Find users on Bluesky" msgstr "Encontrar usuarios en Bluesky" -#: src/view/screens/Search/Search.tsx:438 +#: src/view/screens/Search/Search.tsx:439 msgid "Find users with the search tool on the right" msgstr "Encuentra usuarios con la herramienta de búsqueda de la derecha" -#: src/view/com/auth/onboarding/RecommendedFollowsItem.tsx:150 +#: src/view/com/auth/onboarding/RecommendedFollowsItem.tsx:155 msgid "Finding similar accounts..." msgstr "Encontrar cuentas similares..." @@ -1595,22 +1839,29 @@ msgid "Flip vertically" msgstr "" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:181 -#: src/view/com/post-thread/PostThreadFollowBtn.tsx:136 -#: src/view/com/profile/ProfileHeader.tsx:513 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:229 +#: src/view/com/auth/onboarding/RecommendedFollowsItem.tsx:141 +#: src/view/com/post-thread/PostThreadFollowBtn.tsx:139 +#: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:246 msgid "Follow" msgstr "Seguir" -#: src/view/com/profile/FollowButton.tsx:64 +#: src/view/com/profile/FollowButton.tsx:69 msgctxt "action" msgid "Follow" msgstr "" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:58 -#: src/view/com/post-thread/PostThreadFollowBtn.tsx:122 -#: src/view/com/profile/ProfileHeader.tsx:504 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:214 +#: src/view/com/post-thread/PostThreadFollowBtn.tsx:125 msgid "Follow {0}" msgstr "" +#: src/view/com/profile/ProfileMenu.tsx:242 +#: src/view/com/profile/ProfileMenu.tsx:253 +msgid "Follow Account" +msgstr "" + #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:179 msgid "Follow All" msgstr "" @@ -1623,7 +1874,7 @@ msgstr "" msgid "Follow some users to get started. We can recommend you more users based on who you find interesting." msgstr "Sigue a algunos usuarios para empezar. Podemos recomendarte más usuarios en función de los que te parezcan interesantes." -#: src/view/com/profile/ProfileCard.tsx:194 +#: src/view/com/profile/ProfileCard.tsx:216 msgid "Followed by {0}" msgstr "" @@ -1635,33 +1886,39 @@ msgstr "Usuarios seguidos" msgid "Followed users only" msgstr "Solo usuarios seguidos" -#: src/view/com/notifications/FeedItem.tsx:166 +#: src/view/com/notifications/FeedItem.tsx:170 msgid "followed you" msgstr "" +#: src/view/com/profile/ProfileFollowers.tsx:109 #: src/view/screens/ProfileFollowers.tsx:25 msgid "Followers" msgstr "Seguidores" -#: src/view/com/post-thread/PostThreadFollowBtn.tsx:136 -#: src/view/com/profile/ProfileHeader.tsx:495 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:227 +#: src/view/com/post-thread/PostThreadFollowBtn.tsx:139 +#: src/view/com/profile/ProfileFollows.tsx:108 #: src/view/screens/ProfileFollows.tsx:25 msgid "Following" msgstr "Siguiendo" -#: src/view/com/profile/ProfileHeader.tsx:149 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:89 msgid "Following {0}" msgstr "" -#: src/Navigation.tsx:250 +#: src/view/screens/Settings/index.tsx:549 +msgid "Following feed preferences" +msgstr "" + +#: src/Navigation.tsx:262 #: src/view/com/home/HomeHeaderLayout.web.tsx:50 #: src/view/com/home/HomeHeaderLayoutMobile.tsx:84 #: src/view/screens/PreferencesFollowingFeed.tsx:104 -#: src/view/screens/Settings/index.tsx:543 +#: src/view/screens/Settings/index.tsx:558 msgid "Following Feed Preferences" msgstr "" -#: src/view/com/profile/ProfileHeader.tsx:546 +#: src/screens/Profile/Header/Handle.tsx:24 msgid "Follows you" msgstr "Te siguen" @@ -1694,12 +1951,16 @@ msgstr "Olvidé mi contraseña" msgid "Forgot Password" msgstr "Olvidé mi contraseña" +#: src/lib/moderation/useReportOptions.ts:52 +msgid "Frequently Posts Unwanted Content" +msgstr "" + #: src/screens/Hashtag.tsx:108 #: src/screens/Hashtag.tsx:148 msgid "From @{sanitizedAuthor}" msgstr "" -#: src/view/com/posts/FeedItem.tsx:189 +#: src/view/com/posts/FeedItem.tsx:179 msgctxt "from-feed" msgid "From <0/>" msgstr "" @@ -1713,27 +1974,46 @@ msgstr "Galería" msgid "Get Started" msgstr "Comenzar" +#: src/lib/moderation/useReportOptions.ts:37 +msgid "Glaring violations of law or terms of service" +msgstr "" + +#: src/components/moderation/ScreenHider.tsx:144 +#: src/components/moderation/ScreenHider.tsx:153 #: src/view/com/auth/LoggedOut.tsx:81 #: src/view/com/auth/LoggedOut.tsx:82 -#: src/view/com/util/moderation/ScreenHider.tsx:123 -#: src/view/shell/desktop/LeftNav.tsx:104 +#: src/view/screens/NotFound.tsx:55 +#: src/view/screens/ProfileFeed.tsx:111 +#: src/view/screens/ProfileList.tsx:916 +#: src/view/shell/desktop/LeftNav.tsx:108 msgid "Go back" msgstr "Regresar" -#: src/view/screens/ProfileFeed.tsx:106 -#: src/view/screens/ProfileFeed.tsx:111 -#: src/view/screens/ProfileList.tsx:902 -#: src/view/screens/ProfileList.tsx:907 +#: src/screens/Profile/ErrorState.tsx:62 +#: src/screens/Profile/ErrorState.tsx:66 +#: src/view/screens/NotFound.tsx:54 +#: src/view/screens/ProfileFeed.tsx:116 +#: src/view/screens/ProfileList.tsx:921 msgid "Go Back" msgstr "Regresar" +#: src/components/ReportDialog/SelectReportOptionView.tsx:74 +#: src/components/ReportDialog/SubmitView.tsx:104 #: src/screens/Onboarding/Layout.tsx:104 #: src/screens/Onboarding/Layout.tsx:193 msgid "Go back to previous step" msgstr "" -#: src/view/screens/Search/Search.tsx:747 -#: src/view/shell/desktop/Search.tsx:262 +#: src/view/screens/NotFound.tsx:55 +msgid "Go home" +msgstr "" + +#: src/view/screens/NotFound.tsx:54 +msgid "Go Home" +msgstr "" + +#: src/view/screens/Search/Search.tsx:748 +#: src/view/shell/desktop/Search.tsx:263 msgid "Go to @{queryMaybeHandle}" msgstr "" @@ -1741,15 +2021,23 @@ msgstr "" #: src/view/com/auth/login/ForgotPasswordForm.tsx:218 #: src/view/com/auth/login/LoginForm.tsx:288 #: src/view/com/auth/login/SetNewPasswordForm.tsx:195 -#: src/view/com/modals/ChangePassword.tsx:165 +#: src/view/com/modals/ChangePassword.tsx:167 msgid "Go to next" msgstr "Ir al siguiente" +#: src/lib/moderation/useGlobalLabelStrings.ts:46 +msgid "Graphic Media" +msgstr "" + #: src/view/com/modals/ChangeHandle.tsx:265 msgid "Handle" msgstr "Identificador" -#: src/Navigation.tsx:270 +#: src/lib/moderation/useReportOptions.ts:32 +msgid "Harassment, trolling, or intolerance" +msgstr "" + +#: src/Navigation.tsx:282 msgid "Hashtag" msgstr "" @@ -1766,7 +2054,7 @@ msgid "Having trouble?" msgstr "" #: src/view/shell/desktop/RightNav.tsx:90 -#: src/view/shell/Drawer.tsx:321 +#: src/view/shell/Drawer.tsx:324 msgid "Help" msgstr "Ayuda" @@ -1786,40 +2074,45 @@ msgstr "" msgid "Here is your app password." msgstr "Aquí tienes tu contraseña de la app." -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:41 -#: src/view/com/modals/ContentFilteringSettings.tsx:251 -#: src/view/com/util/moderation/ContentHider.tsx:105 -#: src/view/com/util/moderation/PostHider.tsx:108 +#: src/components/moderation/ContentHider.tsx:115 +#: src/components/moderation/GlobalModerationLabelPref.tsx:43 +#: src/components/moderation/PostHider.tsx:107 +#: src/lib/moderation/useLabelBehaviorDescription.ts:15 +#: src/lib/moderation/useLabelBehaviorDescription.ts:20 +#: src/lib/moderation/useLabelBehaviorDescription.ts:25 +#: src/lib/moderation/useLabelBehaviorDescription.ts:30 +#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:52 +#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:76 +#: src/view/com/util/forms/PostDropdownBtn.tsx:328 msgid "Hide" msgstr "Ocultar" -#: src/view/com/modals/ContentFilteringSettings.tsx:224 -#: src/view/com/notifications/FeedItem.tsx:326 +#: src/view/com/notifications/FeedItem.tsx:329 msgctxt "action" msgid "Hide" msgstr "" #: src/view/com/util/forms/PostDropdownBtn.tsx:276 -#: src/view/com/util/forms/PostDropdownBtn.tsx:287 +#: src/view/com/util/forms/PostDropdownBtn.tsx:278 msgid "Hide post" msgstr "Ocultar publicación" -#: src/view/com/util/moderation/ContentHider.tsx:67 -#: src/view/com/util/moderation/PostHider.tsx:61 +#: src/components/moderation/ContentHider.tsx:67 +#: src/components/moderation/PostHider.tsx:64 msgid "Hide the content" msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:280 +#: src/view/com/util/forms/PostDropdownBtn.tsx:325 msgid "Hide this post?" msgstr "¿Ocultar esta publicación?" -#: src/view/com/notifications/FeedItem.tsx:316 +#: src/view/com/notifications/FeedItem.tsx:319 msgid "Hide user list" msgstr "Ocultar la lista de usuarios" #: src/view/com/profile/ProfileHeader.tsx:487 -msgid "Hides posts from {0} in your feed" -msgstr "" +#~ msgid "Hides posts from {0} in your feed" +#~ msgstr "" #: src/view/com/posts/FeedErrorMessage.tsx:111 msgid "Hmm, some kind of issue occurred when contacting the feed server. Please let the feed owner know about this issue." @@ -1841,11 +2134,19 @@ msgstr "El servidor de noticias ha respondido de forma incorrecta. Por favor, in msgid "Hmm, we're having trouble finding this feed. It may have been deleted." msgstr "Tenemos problemas para encontrar esta noticia. Puede que la hayan borrado." -#: src/Navigation.tsx:442 -#: src/view/shell/bottom-bar/BottomBar.tsx:137 -#: src/view/shell/desktop/LeftNav.tsx:306 -#: src/view/shell/Drawer.tsx:398 -#: src/view/shell/Drawer.tsx:399 +#: src/screens/Moderation/index.tsx:61 +msgid "Hmmmm, it seems we're having trouble loading this data. See below for more details. If this issue persists, please contact us." +msgstr "" + +#: src/screens/Profile/ErrorState.tsx:31 +msgid "Hmmmm, we couldn't load that moderation service." +msgstr "" + +#: src/Navigation.tsx:454 +#: src/view/shell/bottom-bar/BottomBar.tsx:139 +#: src/view/shell/desktop/LeftNav.tsx:310 +#: src/view/shell/Drawer.tsx:401 +#: src/view/shell/Drawer.tsx:402 msgid "Home" msgstr "Página inicial" @@ -1856,8 +2157,13 @@ msgstr "Página inicial" #~ msgid "Home Feed Preferences" #~ msgstr "Preferencias de noticias de la página inicial" +#: src/view/com/modals/ChangeHandle.tsx:421 +msgid "Host:" +msgstr "" + #: src/view/com/auth/create/Step1.tsx:75 #: src/view/com/auth/login/ForgotPasswordForm.tsx:120 +#: src/view/com/modals/ChangeHandle.tsx:280 msgid "Hosting provider" msgstr "Proveedor de alojamiento" @@ -1877,7 +2183,7 @@ msgstr "" msgid "I have my own domain" msgstr "Tengo mi propio dominio" -#: src/view/com/lightbox/Lightbox.web.tsx:165 +#: src/view/com/lightbox/Lightbox.web.tsx:185 msgid "If alt text is long, toggles alt text expanded state" msgstr "" @@ -1885,10 +2191,26 @@ msgstr "" msgid "If none are selected, suitable for all ages." msgstr "Si no se selecciona ninguno, es apto para todas las edades." -#: src/view/com/modals/ChangePassword.tsx:146 +#: src/view/com/auth/create/Policies.tsx:91 +msgid "If you are not yet an adult according to the laws of your country, your parent or legal guardian must read these Terms on your behalf." +msgstr "" + +#: src/view/screens/ProfileList.tsx:610 +msgid "If you delete this list, you won't be able to recover it." +msgstr "" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:316 +msgid "If you remove this post, you won't be able to recover it." +msgstr "" + +#: src/view/com/modals/ChangePassword.tsx:148 msgid "If you want to change your password, we will send you a code to verify that this is your account." msgstr "" +#: src/lib/moderation/useReportOptions.ts:36 +msgid "Illegal and Urgent" +msgstr "" + #: src/view/com/util/images/Gallery.tsx:38 msgid "Image" msgstr "" @@ -1899,8 +2221,12 @@ msgstr "Texto alt de la imagen" #: src/view/com/util/UserAvatar.tsx:311 #: src/view/com/util/UserBanner.tsx:118 -msgid "Image options" -msgstr "Opciones de la imagen" +#~ msgid "Image options" +#~ msgstr "Opciones de la imagen" + +#: src/lib/moderation/useReportOptions.ts:47 +msgid "Impersonation or false claims about identity or affiliation" +msgstr "" #: src/view/com/auth/login/SetNewPasswordForm.tsx:138 msgid "Input code sent to your email for password reset" @@ -1954,11 +2280,15 @@ msgstr "" msgid "Input your password" msgstr "" +#: src/view/com/modals/ChangeHandle.tsx:390 +msgid "Input your preferred hosting provider" +msgstr "" + #: src/view/com/auth/create/Step2.tsx:80 msgid "Input your user handle" msgstr "" -#: src/view/com/post-thread/PostThreadItem.tsx:226 +#: src/view/com/post-thread/PostThreadItem.tsx:221 msgid "Invalid or unsupported post record" msgstr "" @@ -1999,7 +2329,7 @@ msgstr "" msgid "It shows posts from the people you follow as they happen." msgstr "" -#: src/view/com/auth/HomeLoggedOutCTA.tsx:99 +#: src/view/com/auth/HomeLoggedOutCTA.tsx:103 #: src/view/com/auth/SplashScreen.web.tsx:138 msgid "Jobs" msgstr "Tareas" @@ -2021,20 +2351,52 @@ msgstr "Tareas" msgid "Journalism" msgstr "" +#: src/components/moderation/LabelsOnMe.tsx:59 +msgid "label has been placed on this {labelTarget}" +msgstr "" + +#: src/components/moderation/ContentHider.tsx:144 +msgid "Labeled by {0}." +msgstr "" + +#: src/components/moderation/ContentHider.tsx:142 +msgid "Labeled by the author." +msgstr "" + +#: src/view/screens/Profile.tsx:186 +msgid "Labels" +msgstr "" + +#: src/screens/Profile/Sections/Labels.tsx:143 +msgid "Labels are annotations on users and content. They can be used to hide, warn, and categorize the network." +msgstr "" + +#: src/components/moderation/LabelsOnMe.tsx:61 +msgid "labels have been placed on this {labelTarget}" +msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:63 +msgid "Labels on your account" +msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:65 +msgid "Labels on your content" +msgstr "" + #: src/view/com/composer/select-language/SelectLangBtn.tsx:104 msgid "Language selection" msgstr "Escoger el idioma" -#: src/view/screens/Settings/index.tsx:594 +#: src/view/screens/Settings/index.tsx:610 msgid "Language settings" msgstr "" -#: src/Navigation.tsx:142 +#: src/Navigation.tsx:144 #: src/view/screens/LanguageSettings.tsx:89 msgid "Language Settings" msgstr "Configuración del idioma" -#: src/view/screens/Settings/index.tsx:603 +#: src/view/screens/Settings/index.tsx:619 msgid "Languages" msgstr "Idiomas" @@ -2043,27 +2405,31 @@ msgid "Last step!" msgstr "" #: src/view/com/util/moderation/ContentHider.tsx:103 -msgid "Learn more" -msgstr "Aprender más" +#~ msgid "Learn more" +#~ msgstr "Aprender más" -#: src/view/com/util/moderation/PostAlerts.tsx:47 -#: src/view/com/util/moderation/ProfileHeaderAlerts.tsx:65 -#: src/view/com/util/moderation/ScreenHider.tsx:104 +#: src/components/moderation/ScreenHider.tsx:129 msgid "Learn More" msgstr "Aprender más" -#: src/view/com/util/moderation/ContentHider.tsx:85 -#: src/view/com/util/moderation/PostAlerts.tsx:40 -#: src/view/com/util/moderation/PostHider.tsx:78 -#: src/view/com/util/moderation/ProfileHeaderAlerts.tsx:49 -#: src/view/com/util/moderation/ScreenHider.tsx:101 +#: src/components/moderation/ContentHider.tsx:65 +#: src/components/moderation/ContentHider.tsx:128 +msgid "Learn more about the moderation applied to this content." +msgstr "" + +#: src/components/moderation/PostHider.tsx:85 +#: src/components/moderation/ScreenHider.tsx:126 msgid "Learn more about this warning" msgstr "Aprender más acerca de esta advertencia" -#: src/view/screens/Moderation.tsx:262 +#: src/screens/Moderation/index.tsx:551 msgid "Learn more about what is public on Bluesky." msgstr "Más información sobre lo que es público en Bluesky." +#: src/components/moderation/ContentHider.tsx:152 +msgid "Learn more." +msgstr "" + #: src/view/com/modals/lang-settings/ContentLanguagesSettings.tsx:82 msgid "Leave them all unchecked to see any language." msgstr "Déjalos todos sin marcar para ver cualquier idioma." @@ -2076,7 +2442,7 @@ msgstr "Salir de Bluesky" msgid "left to go." msgstr "" -#: src/view/screens/Settings/index.tsx:278 +#: src/view/screens/Settings/index.tsx:292 msgid "Legacy storage cleared, you need to restart the app now." msgstr "" @@ -2091,55 +2457,65 @@ msgstr "" #: src/view/com/util/UserAvatar.tsx:248 #: src/view/com/util/UserBanner.tsx:62 -msgid "Library" -msgstr "Librería" +#~ msgid "Library" +#~ msgstr "Librería" -#: src/view/screens/Settings/index.tsx:479 +#: src/view/screens/Settings/index.tsx:494 msgid "Light" msgstr "" -#: src/view/com/util/post-ctrls/PostCtrls.tsx:182 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:185 msgid "Like" msgstr "" -#: src/view/screens/ProfileFeed.tsx:591 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:257 +#: src/view/screens/ProfileFeed.tsx:572 msgid "Like this feed" msgstr "Dar «me gusta» a esta noticia" -#: src/Navigation.tsx:199 +#: src/components/LikesDialog.tsx:87 +#: src/Navigation.tsx:201 +#: src/Navigation.tsx:206 msgid "Liked by" msgstr "Le ha gustado a" +#: src/screens/Profile/ProfileLabelerLikedBy.tsx:42 #: src/view/screens/PostLikedBy.tsx:27 #: src/view/screens/ProfileFeedLikedBy.tsx:27 msgid "Liked By" msgstr "" -#: src/view/com/feeds/FeedSourceCard.tsx:279 +#: src/view/com/feeds/FeedSourceCard.tsx:268 msgid "Liked by {0} {1}" msgstr "" -#: src/view/screens/ProfileFeed.tsx:606 +#: src/components/LabelingServiceCard/index.tsx:72 +msgid "Liked by {count} {0}" +msgstr "" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:277 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:291 +#: src/view/screens/ProfileFeed.tsx:587 msgid "Liked by {likeCount} {0}" msgstr "" -#: src/view/com/notifications/FeedItem.tsx:170 +#: src/view/com/notifications/FeedItem.tsx:174 msgid "liked your custom feed" msgstr "" -#: src/view/com/notifications/FeedItem.tsx:155 +#: src/view/com/notifications/FeedItem.tsx:159 msgid "liked your post" msgstr "" -#: src/view/screens/Profile.tsx:183 +#: src/view/screens/Profile.tsx:191 msgid "Likes" msgstr "Cantidad de «Me gusta»" -#: src/view/com/post-thread/PostThreadItem.tsx:183 +#: src/view/com/post-thread/PostThreadItem.tsx:182 msgid "Likes on this post" msgstr "" -#: src/Navigation.tsx:168 +#: src/Navigation.tsx:170 msgid "List" msgstr "" @@ -2147,15 +2523,15 @@ msgstr "" msgid "List Avatar" msgstr "Avatar de la lista" -#: src/view/screens/ProfileList.tsx:324 +#: src/view/screens/ProfileList.tsx:311 msgid "List blocked" msgstr "" -#: src/view/com/feeds/FeedSourceCard.tsx:233 +#: src/view/com/feeds/FeedSourceCard.tsx:220 msgid "List by {0}" msgstr "" -#: src/view/screens/ProfileList.tsx:378 +#: src/view/screens/ProfileList.tsx:355 msgid "List deleted" msgstr "" @@ -2167,39 +2543,40 @@ msgstr "" msgid "List Name" msgstr "Nombre de la lista" -#: src/view/screens/ProfileList.tsx:343 +#: src/view/screens/ProfileList.tsx:325 msgid "List unblocked" msgstr "" -#: src/view/screens/ProfileList.tsx:302 +#: src/view/screens/ProfileList.tsx:297 msgid "List unmuted" msgstr "" -#: src/Navigation.tsx:112 -#: src/view/screens/Profile.tsx:185 -#: src/view/shell/desktop/LeftNav.tsx:379 -#: src/view/shell/Drawer.tsx:492 -#: src/view/shell/Drawer.tsx:493 +#: src/Navigation.tsx:114 +#: src/view/screens/Profile.tsx:187 +#: src/view/screens/Profile.tsx:193 +#: src/view/shell/desktop/LeftNav.tsx:383 +#: src/view/shell/Drawer.tsx:495 +#: src/view/shell/Drawer.tsx:496 msgid "Lists" msgstr "Listas" #: src/view/com/post-thread/PostThread.tsx:333 #: src/view/com/post-thread/PostThread.tsx:341 -msgid "Load more posts" -msgstr "Cargar más publicaciones" +#~ msgid "Load more posts" +#~ msgstr "Cargar más publicaciones" #: src/view/screens/Notifications.tsx:159 msgid "Load new notifications" msgstr "Cargar notificaciones nuevas" -#: src/view/com/feeds/FeedPage.tsx:115 -#: src/view/screens/Profile.tsx:440 +#: src/screens/Profile/Sections/Feed.tsx:70 +#: src/view/com/feeds/FeedPage.tsx:124 #: src/view/screens/ProfileFeed.tsx:495 -#: src/view/screens/ProfileList.tsx:681 +#: src/view/screens/ProfileList.tsx:695 msgid "Load new posts" msgstr "Cargar publicaciones nuevas" -#: src/view/com/composer/text-input/mobile/Autocomplete.tsx:95 +#: src/view/com/composer/text-input/mobile/Autocomplete.tsx:99 msgid "Loading..." msgstr "Cargando..." @@ -2207,7 +2584,7 @@ msgstr "Cargando..." #~ msgid "Local dev server" #~ msgstr "Servidor de desarrollo local" -#: src/Navigation.tsx:209 +#: src/Navigation.tsx:221 msgid "Log" msgstr "" @@ -2218,11 +2595,11 @@ msgstr "" msgid "Log out" msgstr "" -#: src/view/screens/Moderation.tsx:155 +#: src/screens/Moderation/index.tsx:444 msgid "Logged-out visibility" msgstr "Visibilidad de desconexión" -#: src/view/com/auth/login/ChooseAccountForm.tsx:133 +#: src/view/com/auth/login/ChooseAccountForm.tsx:137 msgid "Login to account that is not listed" msgstr "Acceder a una cuenta que no está en la lista" @@ -2242,7 +2619,7 @@ msgstr "" msgid "May only contain letters and numbers" msgstr "" -#: src/view/screens/Profile.tsx:182 +#: src/view/screens/Profile.tsx:190 msgid "Media" msgstr "Medios" @@ -2255,35 +2632,43 @@ msgid "Mentioned users" msgstr "Usuarios mencionados" #: src/view/com/util/ViewHeader.tsx:87 -#: src/view/screens/Search/Search.tsx:646 +#: src/view/screens/Search/Search.tsx:647 msgid "Menu" msgstr "Menú" -#: src/view/com/posts/FeedErrorMessage.tsx:197 +#: src/view/com/posts/FeedErrorMessage.tsx:192 msgid "Message from server: {0}" msgstr "Mensaje del servidor: {0}" -#: src/Navigation.tsx:117 -#: src/view/screens/Moderation.tsx:66 -#: src/view/screens/Settings/index.tsx:625 -#: src/view/shell/desktop/LeftNav.tsx:397 -#: src/view/shell/Drawer.tsx:511 -#: src/view/shell/Drawer.tsx:512 +#: src/lib/moderation/useReportOptions.ts:45 +msgid "Misleading Account" +msgstr "" + +#: src/Navigation.tsx:119 +#: src/screens/Moderation/index.tsx:106 +#: src/view/screens/Settings/index.tsx:641 +#: src/view/shell/desktop/LeftNav.tsx:401 +#: src/view/shell/Drawer.tsx:514 +#: src/view/shell/Drawer.tsx:515 msgid "Moderation" msgstr "Moderación" +#: src/components/moderation/ModerationDetailsDialog.tsx:113 +msgid "Moderation details" +msgstr "" + #: src/view/com/lists/ListCard.tsx:93 #: src/view/com/modals/UserAddRemoveLists.tsx:206 msgid "Moderation list by {0}" msgstr "" -#: src/view/screens/ProfileList.tsx:775 +#: src/view/screens/ProfileList.tsx:789 msgid "Moderation list by <0/>" msgstr "" #: src/view/com/lists/ListCard.tsx:91 #: src/view/com/modals/UserAddRemoveLists.tsx:204 -#: src/view/screens/ProfileList.tsx:773 +#: src/view/screens/ProfileList.tsx:787 msgid "Moderation list by you" msgstr "" @@ -2295,30 +2680,41 @@ msgstr "" msgid "Moderation list updated" msgstr "" -#: src/view/screens/Moderation.tsx:114 +#: src/screens/Moderation/index.tsx:245 msgid "Moderation lists" msgstr "Listas de moderación" -#: src/Navigation.tsx:122 +#: src/Navigation.tsx:124 #: src/view/screens/ModerationModlists.tsx:58 msgid "Moderation Lists" msgstr "Listas de moderación" -#: src/view/screens/Settings/index.tsx:619 +#: src/view/screens/Settings/index.tsx:635 msgid "Moderation settings" msgstr "" -#: src/view/com/modals/ModerationDetails.tsx:35 +#: src/Navigation.tsx:216 +msgid "Moderation states" +msgstr "" + +#: src/screens/Moderation/index.tsx:217 +msgid "Moderation tools" +msgstr "" + +#: src/components/moderation/ModerationDetailsDialog.tsx:49 +#: src/lib/moderation/useModerationCauseDescription.ts:40 msgid "Moderator has chosen to set a general warning on the content." msgstr "" +#: src/view/com/post-thread/PostThreadItem.tsx:541 +msgid "More" +msgstr "" + #: src/view/shell/desktop/Feeds.tsx:65 msgid "More feeds" msgstr "Más canales de noticias" -#: src/view/com/profile/ProfileHeader.tsx:523 -#: src/view/screens/ProfileFeed.tsx:363 -#: src/view/screens/ProfileList.tsx:617 +#: src/view/screens/ProfileList.tsx:599 msgid "More options" msgstr "Más opciones" @@ -2342,11 +2738,12 @@ msgstr "" msgid "Mute {truncatedTag}" msgstr "" -#: src/view/com/profile/ProfileHeader.tsx:327 +#: src/view/com/profile/ProfileMenu.tsx:279 +#: src/view/com/profile/ProfileMenu.tsx:286 msgid "Mute Account" msgstr "Silenciar la cuenta" -#: src/view/screens/ProfileList.tsx:544 +#: src/view/screens/ProfileList.tsx:518 msgid "Mute accounts" msgstr "Silenciar las cuentas" @@ -2366,17 +2763,18 @@ msgstr "" msgid "Mute in text & tags" msgstr "" -#: src/view/screens/ProfileList.tsx:491 +#: src/view/screens/ProfileList.tsx:461 +#: src/view/screens/ProfileList.tsx:624 msgid "Mute list" msgstr "Silenciar la lista" -#: src/view/screens/ProfileList.tsx:275 +#: src/view/screens/ProfileList.tsx:619 msgid "Mute these accounts?" msgstr "¿Silenciar estas cuentas?" #: src/view/screens/ProfileList.tsx:279 -msgid "Mute this List" -msgstr "" +#~ msgid "Mute this List" +#~ msgstr "" #: src/components/dialogs/MutedWords.tsx:127 msgid "Mute this word in post text and tags" @@ -2400,11 +2798,11 @@ msgstr "" msgid "Muted" msgstr "" -#: src/view/screens/Moderation.tsx:128 +#: src/screens/Moderation/index.tsx:257 msgid "Muted accounts" msgstr "Cuentas silenciadas" -#: src/Navigation.tsx:127 +#: src/Navigation.tsx:129 #: src/view/screens/ModerationMutedAccounts.tsx:107 msgid "Muted Accounts" msgstr "Cuentas silenciadas" @@ -2413,15 +2811,20 @@ msgstr "Cuentas silenciadas" msgid "Muted accounts have their posts removed from your feed and from your notifications. Mutes are completely private." msgstr "Las cuentas silenciadas eliminan sus publicaciones de tu canal de noticias y de tus notificaciones. Las cuentas silenciadas son completamente privadas." -#: src/view/screens/Moderation.tsx:100 +#: src/lib/moderation/useModerationCauseDescription.ts:85 +msgid "Muted by \"{0}\"" +msgstr "" + +#: src/screens/Moderation/index.tsx:233 msgid "Muted words & tags" msgstr "" -#: src/view/screens/ProfileList.tsx:277 +#: src/view/screens/ProfileList.tsx:621 msgid "Muting is private. Muted accounts can interact with you, but you will not see their posts or receive notifications from them." msgstr "Silenciar es privado. Las cuentas silenciadas pueden interactuar contigo, pero no verás sus publicaciones ni recibirás notificaciones suyas." -#: src/view/com/modals/BirthDateSettings.tsx:56 +#: src/components/dialogs/BirthDateSettings.tsx:35 +#: src/components/dialogs/BirthDateSettings.tsx:38 msgid "My Birthday" msgstr "Mi cumpleaños" @@ -2433,13 +2836,17 @@ msgstr "Mis canales de noticias" msgid "My Profile" msgstr "Mi perfil" -#: src/view/screens/Settings/index.tsx:582 +#: src/view/screens/Settings/index.tsx:592 +msgid "My saved feeds" +msgstr "" + +#: src/view/screens/Settings/index.tsx:598 msgid "My Saved Feeds" msgstr "Mis canales de noticias guardados" #: src/view/com/auth/server-input/index.tsx:118 -msgid "my-server.com" -msgstr "" +#~ msgid "my-server.com" +#~ msgstr "" #: src/view/com/modals/AddAppPasswords.tsx:179 #: src/view/com/modals/CreateOrEditList.tsx:290 @@ -2450,6 +2857,12 @@ msgstr "Nombre" msgid "Name is required" msgstr "" +#: src/lib/moderation/useReportOptions.ts:57 +#: src/lib/moderation/useReportOptions.ts:78 +#: src/lib/moderation/useReportOptions.ts:86 +msgid "Name or Description Violates Community Standards" +msgstr "" + #: src/screens/Onboarding/index.tsx:25 msgid "Nature" msgstr "" @@ -2458,7 +2871,7 @@ msgstr "" #: src/view/com/auth/login/ForgotPasswordForm.tsx:219 #: src/view/com/auth/login/LoginForm.tsx:289 #: src/view/com/auth/login/SetNewPasswordForm.tsx:196 -#: src/view/com/modals/ChangePassword.tsx:166 +#: src/view/com/modals/ChangePassword.tsx:168 msgid "Navigates to the next screen" msgstr "" @@ -2466,13 +2879,17 @@ msgstr "" msgid "Navigates to your profile" msgstr "" +#: src/components/ReportDialog/SelectReportOptionView.tsx:124 +msgid "Need to report a copyright violation?" +msgstr "" + #: src/view/com/modals/EmbedConsent.tsx:107 #: src/view/com/modals/EmbedConsent.tsx:123 msgid "Never load embeds from {0}" msgstr "" #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:72 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:72 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:74 msgid "Never lose access to your followers and data." msgstr "No pierdas nunca el acceso a tus seguidores y datos." @@ -2481,7 +2898,11 @@ msgid "Never lose access to your followers or data." msgstr "" #: src/components/dialogs/MutedWords.tsx:293 -msgid "Nevermind" +#~ msgid "Nevermind" +#~ msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:520 +msgid "Nevermind, create a handle for me" msgstr "" #: src/view/screens/Lists.tsx:76 @@ -2498,29 +2919,30 @@ msgid "New Moderation List" msgstr "" #: src/view/com/auth/login/SetNewPasswordForm.tsx:150 +#: src/view/com/modals/ChangePassword.tsx:212 msgid "New password" msgstr "" -#: src/view/com/modals/ChangePassword.tsx:215 +#: src/view/com/modals/ChangePassword.tsx:217 msgid "New Password" msgstr "" -#: src/view/com/feeds/FeedPage.tsx:126 +#: src/view/com/feeds/FeedPage.tsx:135 msgctxt "action" msgid "New post" msgstr "" #: src/view/screens/Feeds.tsx:555 #: src/view/screens/Notifications.tsx:168 -#: src/view/screens/Profile.tsx:382 +#: src/view/screens/Profile.tsx:450 #: src/view/screens/ProfileFeed.tsx:433 -#: src/view/screens/ProfileList.tsx:196 -#: src/view/screens/ProfileList.tsx:224 -#: src/view/shell/desktop/LeftNav.tsx:248 +#: src/view/screens/ProfileList.tsx:199 +#: src/view/screens/ProfileList.tsx:227 +#: src/view/shell/desktop/LeftNav.tsx:252 msgid "New post" msgstr "Publicación nueva" -#: src/view/shell/desktop/LeftNav.tsx:258 +#: src/view/shell/desktop/LeftNav.tsx:262 msgctxt "action" msgid "New Post" msgstr "Publicación nueva" @@ -2544,8 +2966,8 @@ msgstr "" #: src/view/com/auth/login/SetNewPasswordForm.tsx:187 #: src/view/com/auth/login/SetNewPasswordForm.tsx:198 #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:79 -#: src/view/com/modals/ChangePassword.tsx:251 #: src/view/com/modals/ChangePassword.tsx:253 +#: src/view/com/modals/ChangePassword.tsx:255 msgid "Next" msgstr "Siguiente" @@ -2554,7 +2976,7 @@ msgctxt "action" msgid "Next" msgstr "" -#: src/view/com/lightbox/Lightbox.web.tsx:149 +#: src/view/com/lightbox/Lightbox.web.tsx:169 msgid "Next image" msgstr "Imagen nueva" @@ -2567,12 +2989,16 @@ msgstr "Imagen nueva" msgid "No" msgstr "No" -#: src/view/screens/ProfileFeed.tsx:584 -#: src/view/screens/ProfileList.tsx:755 +#: src/view/screens/ProfileFeed.tsx:561 +#: src/view/screens/ProfileList.tsx:769 msgid "No description" msgstr "Sin descripción" -#: src/view/com/profile/ProfileHeader.tsx:170 +#: src/view/com/modals/ChangeHandle.tsx:406 +msgid "No DNS Panel" +msgstr "" + +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:111 msgid "No longer following {0}" msgstr "" @@ -2580,12 +3006,12 @@ msgstr "" msgid "No notifications yet!" msgstr "" -#: src/view/com/composer/text-input/mobile/Autocomplete.tsx:97 -#: src/view/com/composer/text-input/web/Autocomplete.tsx:191 +#: src/view/com/composer/text-input/mobile/Autocomplete.tsx:101 +#: src/view/com/composer/text-input/web/Autocomplete.tsx:195 msgid "No result" msgstr "Sin resultados" -#: src/components/Lists.tsx:192 +#: src/components/Lists.tsx:189 msgid "No results found" msgstr "" @@ -2594,8 +3020,8 @@ msgid "No results found for \"{query}\"" msgstr "No se han encontrado resultados para \"{query}\"" #: src/view/com/modals/ListAddRemoveUsers.tsx:127 -#: src/view/screens/Search/Search.tsx:281 -#: src/view/screens/Search/Search.tsx:309 +#: src/view/screens/Search/Search.tsx:282 +#: src/view/screens/Search/Search.tsx:310 msgid "No results found for {query}" msgstr "No se han encontrado resultados para {query}" @@ -2607,12 +3033,21 @@ msgstr "" msgid "Nobody" msgstr "Nadie" +#: src/components/LikedByList.tsx:102 +#: src/components/LikesDialog.tsx:99 +msgid "Nobody has liked this yet. Maybe you should be the first!" +msgstr "" + +#: src/lib/moderation/useGlobalLabelStrings.ts:42 +msgid "Non-sexual Nudity" +msgstr "" + #: src/view/com/modals/SelfLabel.tsx:135 msgid "Not Applicable." msgstr "No aplicable." -#: src/Navigation.tsx:107 -#: src/view/screens/Profile.tsx:106 +#: src/Navigation.tsx:109 +#: src/view/screens/Profile.tsx:97 msgid "Not Found" msgstr "" @@ -2621,17 +3056,22 @@ msgstr "" msgid "Not right now" msgstr "" -#: src/view/screens/Moderation.tsx:252 +#: src/view/com/profile/ProfileMenu.tsx:368 +#: src/view/com/util/forms/PostDropdownBtn.tsx:342 +msgid "Note about sharing" +msgstr "" + +#: src/screens/Moderation/index.tsx:542 msgid "Note: Bluesky is an open and public network. This setting only limits the visibility of your content on the Bluesky app and website, and other apps may not respect this setting. Your content may still be shown to logged-out users by other apps and websites." msgstr "Nota: Bluesky es una red abierta y pública. Esta configuración sólo limita la visibilidad de tu contenido en la aplicación y el sitio web de Bluesky, y es posible que otras aplicaciones no respeten esta configuración. Otras aplicaciones y sitios web pueden seguir mostrando tu contenido a los usuarios que hayan cerrado sesión." -#: src/Navigation.tsx:457 +#: src/Navigation.tsx:469 #: src/view/screens/Notifications.tsx:124 #: src/view/screens/Notifications.tsx:148 -#: src/view/shell/bottom-bar/BottomBar.tsx:205 -#: src/view/shell/desktop/LeftNav.tsx:361 -#: src/view/shell/Drawer.tsx:435 -#: src/view/shell/Drawer.tsx:436 +#: src/view/shell/bottom-bar/BottomBar.tsx:207 +#: src/view/shell/desktop/LeftNav.tsx:365 +#: src/view/shell/Drawer.tsx:438 +#: src/view/shell/Drawer.tsx:439 msgid "Notifications" msgstr "Notificaciones" @@ -2639,7 +3079,15 @@ msgstr "Notificaciones" msgid "Nudity" msgstr "" -#: src/view/com/util/ErrorBoundary.tsx:35 +#: src/lib/moderation/useReportOptions.ts:71 +msgid "Nudity or pornography not labeled as such" +msgstr "" + +#: src/lib/moderation/useLabelBehaviorDescription.ts:11 +msgid "Off" +msgstr "" + +#: src/view/com/util/ErrorBoundary.tsx:49 msgid "Oh no!" msgstr "¡Qué problema!" @@ -2647,6 +3095,10 @@ msgstr "¡Qué problema!" msgid "Oh no! Something went wrong." msgstr "" +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:127 +msgid "OK" +msgstr "" + #: src/view/com/auth/login/PasswordUpdatedForm.tsx:41 msgid "Okay" msgstr "Está bien" @@ -2655,11 +3107,11 @@ msgstr "Está bien" msgid "Oldest replies first" msgstr "" -#: src/view/screens/Settings/index.tsx:234 +#: src/view/screens/Settings/index.tsx:240 msgid "Onboarding reset" msgstr "" -#: src/view/com/composer/Composer.tsx:382 +#: src/view/com/composer/Composer.tsx:391 msgid "One or more images is missing alt text." msgstr "Falta el texto alternativo en una o varias imágenes." @@ -2667,13 +3119,13 @@ msgstr "Falta el texto alternativo en una o varias imágenes." msgid "Only {0} can reply." msgstr "Solo {0} puede responder." -#: src/components/Lists.tsx:82 +#: src/components/Lists.tsx:83 msgid "Oops, something went wrong!" msgstr "" -#: src/components/Lists.tsx:188 -#: src/view/screens/AppPasswords.tsx:65 -#: src/view/screens/Profile.tsx:106 +#: src/components/Lists.tsx:157 +#: src/view/screens/AppPasswords.tsx:67 +#: src/view/screens/Profile.tsx:97 msgid "Oops!" msgstr "" @@ -2682,34 +3134,47 @@ msgid "Open" msgstr "" #: src/view/screens/Moderation.tsx:75 -msgid "Open content filtering settings" -msgstr "" +#~ msgid "Open content filtering settings" +#~ msgstr "" -#: src/view/com/composer/Composer.tsx:477 -#: src/view/com/composer/Composer.tsx:478 +#: src/view/com/composer/Composer.tsx:490 +#: src/view/com/composer/Composer.tsx:491 msgid "Open emoji picker" msgstr "" -#: src/view/screens/Settings/index.tsx:712 +#: src/view/screens/ProfileFeed.tsx:299 +msgid "Open feed options menu" +msgstr "" + +#: src/view/screens/Settings/index.tsx:730 msgid "Open links with in-app browser" msgstr "" -#: src/view/screens/Moderation.tsx:92 -msgid "Open muted words settings" +#: src/screens/Moderation/index.tsx:229 +msgid "Open muted words and tags settings" msgstr "" +#: src/view/screens/Moderation.tsx:92 +#~ msgid "Open muted words settings" +#~ msgstr "" + #: src/view/com/home/HomeHeaderLayoutMobile.tsx:50 msgid "Open navigation" msgstr "Abrir navegación" -#: src/view/com/util/forms/PostDropdownBtn.tsx:175 +#: src/view/com/util/forms/PostDropdownBtn.tsx:183 msgid "Open post options menu" msgstr "" -#: src/view/screens/Settings/index.tsx:804 +#: src/view/screens/Settings/index.tsx:824 +#: src/view/screens/Settings/index.tsx:834 msgid "Open storybook page" msgstr "" +#: src/view/screens/Settings/index.tsx:812 +msgid "Open system log" +msgstr "" + #: src/view/com/util/forms/DropdownButton.tsx:154 msgid "Opens {numItems} options" msgstr "" @@ -2718,11 +3183,11 @@ msgstr "" msgid "Opens additional details for a debug entry" msgstr "" -#: src/view/com/notifications/FeedItem.tsx:349 +#: src/view/com/notifications/FeedItem.tsx:353 msgid "Opens an expanded list of users in this notification" msgstr "" -#: src/view/com/composer/photos/OpenCameraBtn.tsx:61 +#: src/view/com/composer/photos/OpenCameraBtn.tsx:78 msgid "Opens camera on device" msgstr "" @@ -2730,7 +3195,7 @@ msgstr "" msgid "Opens composer" msgstr "" -#: src/view/screens/Settings/index.tsx:595 +#: src/view/screens/Settings/index.tsx:611 msgid "Opens configurable language settings" msgstr "Abrir la configuración del idioma que se puede ajustar" @@ -2739,21 +3204,31 @@ msgid "Opens device photo gallery" msgstr "" #: src/view/com/profile/ProfileHeader.tsx:420 -msgid "Opens editor for profile display name, avatar, background image, and description" -msgstr "" +#~ msgid "Opens editor for profile display name, avatar, background image, and description" +#~ msgstr "" -#: src/view/screens/Settings/index.tsx:649 +#: src/view/screens/Settings/index.tsx:665 msgid "Opens external embeds settings" msgstr "" -#: src/view/com/profile/ProfileHeader.tsx:575 -msgid "Opens followers list" +#: src/view/com/auth/HomeLoggedOutCTA.tsx:56 +#: src/view/com/auth/SplashScreen.tsx:70 +msgid "Opens flow to create a new Bluesky account" msgstr "" -#: src/view/com/profile/ProfileHeader.tsx:594 -msgid "Opens following list" +#: src/view/com/auth/HomeLoggedOutCTA.tsx:74 +#: src/view/com/auth/SplashScreen.tsx:83 +msgid "Opens flow to sign into your existing Bluesky account" msgstr "" +#: src/view/com/profile/ProfileHeader.tsx:575 +#~ msgid "Opens followers list" +#~ msgstr "" + +#: src/view/com/profile/ProfileHeader.tsx:594 +#~ msgid "Opens following list" +#~ msgstr "" + #: src/view/screens/Settings.tsx:412 #~ msgid "Opens invite code list" #~ msgstr "" @@ -2762,15 +3237,35 @@ msgstr "" msgid "Opens list of invite codes" msgstr "Abre la lista de códigos de invitación" +#: src/view/screens/Settings/index.tsx:794 +msgid "Opens modal for account deletion confirmation. Requires email code" +msgstr "" + #: src/view/screens/Settings/index.tsx:774 -msgid "Opens modal for account deletion confirmation. Requires email code." +#~ msgid "Opens modal for account deletion confirmation. Requires email code." +#~ msgstr "" + +#: src/view/screens/Settings/index.tsx:752 +msgid "Opens modal for changing your Bluesky password" +msgstr "" + +#: src/view/screens/Settings/index.tsx:714 +msgid "Opens modal for choosing a new Bluesky handle" +msgstr "" + +#: src/view/screens/Settings/index.tsx:775 +msgid "Opens modal for downloading your Bluesky account data (repository)" +msgstr "" + +#: src/view/screens/Settings/index.tsx:966 +msgid "Opens modal for email verification" msgstr "" #: src/view/com/modals/ChangeHandle.tsx:281 msgid "Opens modal for using custom domain" msgstr "Abre el modal para usar el dominio personalizado" -#: src/view/screens/Settings/index.tsx:620 +#: src/view/screens/Settings/index.tsx:636 msgid "Opens moderation settings" msgstr "Abre la configuración de moderación" @@ -2783,27 +3278,40 @@ msgstr "" msgid "Opens screen to edit Saved Feeds" msgstr "" -#: src/view/screens/Settings/index.tsx:576 +#: src/view/screens/Settings/index.tsx:593 msgid "Opens screen with all saved feeds" msgstr "Abre la pantalla con todas las noticias guardadas" +#: src/view/screens/Settings/index.tsx:692 +msgid "Opens the app password settings" +msgstr "" + #: src/view/screens/Settings/index.tsx:676 -msgid "Opens the app password settings page" -msgstr "Abre la página de configuración de la contraseña de la app" +#~ msgid "Opens the app password settings page" +#~ msgstr "Abre la página de configuración de la contraseña de la app" + +#: src/view/screens/Settings/index.tsx:550 +msgid "Opens the Following feed preferences" +msgstr "" #: src/view/screens/Settings/index.tsx:535 -msgid "Opens the home feed preferences" -msgstr "Abre las preferencias de noticias de la página inicial" +#~ msgid "Opens the home feed preferences" +#~ msgstr "Abre las preferencias de noticias de la página inicial" + +#: src/view/com/modals/LinkWarning.tsx:76 +msgid "Opens the linked website" +msgstr "" -#: src/view/screens/Settings/index.tsx:805 +#: src/view/screens/Settings/index.tsx:825 +#: src/view/screens/Settings/index.tsx:835 msgid "Opens the storybook page" msgstr "Abre la página del libro de cuentos" -#: src/view/screens/Settings/index.tsx:793 +#: src/view/screens/Settings/index.tsx:813 msgid "Opens the system log page" msgstr "Abre la página de la bitácora del sistema" -#: src/view/screens/Settings/index.tsx:556 +#: src/view/screens/Settings/index.tsx:571 msgid "Opens the threads preferences" msgstr "Abre las preferencias de hilos" @@ -2811,11 +3319,19 @@ msgstr "Abre las preferencias de hilos" msgid "Option {0} of {numItems}" msgstr "" +#: src/components/ReportDialog/SubmitView.tsx:162 +msgid "Optionally provide additional information below:" +msgstr "" + #: src/view/com/modals/Threadgate.tsx:89 msgid "Or combine these options:" msgstr "" -#: src/view/com/auth/login/ChooseAccountForm.tsx:138 +#: src/lib/moderation/useReportOptions.ts:25 +msgid "Other" +msgstr "" + +#: src/view/com/auth/login/ChooseAccountForm.tsx:142 msgid "Other account" msgstr "Otra cuenta" @@ -2827,7 +3343,7 @@ msgstr "Otra cuenta" msgid "Other..." msgstr "Otro..." -#: src/components/Lists.tsx:194 +#: src/components/Lists.tsx:190 #: src/view/screens/NotFound.tsx:45 msgid "Page not found" msgstr "Página no encontrada" @@ -2838,12 +3354,18 @@ msgstr "" #: src/view/com/auth/create/Step1.tsx:191 #: src/view/com/auth/create/Step1.tsx:201 +#: src/view/com/auth/login/LoginForm.tsx:210 #: src/view/com/auth/login/LoginForm.tsx:226 #: src/view/com/auth/login/SetNewPasswordForm.tsx:161 +#: src/view/com/modals/DeleteAccount.tsx:195 #: src/view/com/modals/DeleteAccount.tsx:202 msgid "Password" msgstr "Contraseña" +#: src/view/com/modals/ChangePassword.tsx:142 +msgid "Password Changed" +msgstr "" + #: src/view/com/auth/login/Login.tsx:157 msgid "Password updated" msgstr "Contraseña actualizada" @@ -2852,11 +3374,11 @@ msgstr "Contraseña actualizada" msgid "Password updated!" msgstr "¡Contraseña actualizada!" -#: src/Navigation.tsx:162 +#: src/Navigation.tsx:164 msgid "People followed by @{0}" msgstr "" -#: src/Navigation.tsx:155 +#: src/Navigation.tsx:157 msgid "People following @{0}" msgstr "" @@ -2880,11 +3402,15 @@ msgstr "" msgid "Pictures meant for adults." msgstr "Imágenes destinadas a adultos." -#: src/view/screens/ProfileFeed.tsx:354 -#: src/view/screens/ProfileList.tsx:581 +#: src/view/screens/ProfileFeed.tsx:291 +#: src/view/screens/ProfileList.tsx:563 msgid "Pin to home" msgstr "" +#: src/view/screens/ProfileFeed.tsx:294 +msgid "Pin to Home" +msgstr "" + #: src/view/screens/SavedFeeds.tsx:88 msgid "Pinned Feeds" msgstr "Canales de noticias anclados" @@ -2950,16 +3476,20 @@ msgstr "Introduce tu correo electrónico." msgid "Please enter your password as well:" msgstr "Introduce tu contraseña, también:" +#: src/components/moderation/LabelsOnMeDialog.tsx:222 +msgid "Please explain why you think this label was incorrectly applied by {0}" +msgstr "" + #: src/view/com/modals/AppealLabel.tsx:72 #: src/view/com/modals/AppealLabel.tsx:75 -msgid "Please tell us why you think this content warning was incorrectly applied!" -msgstr "Por favor, dinos por qué crees que esta advertencia de contenido se ha aplicado incorrectamente!" +#~ msgid "Please tell us why you think this content warning was incorrectly applied!" +#~ msgstr "Por favor, dinos por qué crees que esta advertencia de contenido se ha aplicado incorrectamente!" #: src/view/com/modals/VerifyEmail.tsx:101 msgid "Please Verify Your Email" msgstr "" -#: src/view/com/composer/Composer.tsx:222 +#: src/view/com/composer/Composer.tsx:221 msgid "Please wait for your link card to finish loading" msgstr "Por favor, espera a que tu tarjeta de enlace termine de cargarse" @@ -2971,13 +3501,17 @@ msgstr "" msgid "Porn" msgstr "" -#: src/view/com/composer/Composer.tsx:357 -#: src/view/com/composer/Composer.tsx:365 +#: src/lib/moderation/useGlobalLabelStrings.ts:34 +msgid "Pornography" +msgstr "" + +#: src/view/com/composer/Composer.tsx:366 +#: src/view/com/composer/Composer.tsx:374 msgctxt "action" msgid "Post" msgstr "" -#: src/view/com/post-thread/PostThread.tsx:303 +#: src/view/com/post-thread/PostThread.tsx:292 msgctxt "description" msgid "Post" msgstr "Publicación" @@ -2986,20 +3520,30 @@ msgstr "Publicación" msgid "Post by {0}" msgstr "" -#: src/Navigation.tsx:174 -#: src/Navigation.tsx:181 -#: src/Navigation.tsx:188 +#: src/Navigation.tsx:176 +#: src/Navigation.tsx:183 +#: src/Navigation.tsx:190 msgid "Post by @{0}" msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:108 +#: src/view/com/util/forms/PostDropdownBtn.tsx:105 msgid "Post deleted" msgstr "" -#: src/view/com/post-thread/PostThread.tsx:462 +#: src/view/com/post-thread/PostThread.tsx:157 msgid "Post hidden" msgstr "Publicación oculta" +#: src/components/moderation/ModerationDetailsDialog.tsx:98 +#: src/lib/moderation/useModerationCauseDescription.ts:99 +msgid "Post Hidden by Muted Word" +msgstr "" + +#: src/components/moderation/ModerationDetailsDialog.tsx:101 +#: src/lib/moderation/useModerationCauseDescription.ts:108 +msgid "Post Hidden by You" +msgstr "" + #: src/view/com/composer/select-language/SelectLangBtn.tsx:87 msgid "Post language" msgstr "Lenguaje de la publicación" @@ -3008,7 +3552,8 @@ msgstr "Lenguaje de la publicación" msgid "Post Languages" msgstr "Lenguajes de la publicación" -#: src/view/com/post-thread/PostThread.tsx:514 +#: src/view/com/post-thread/PostThread.tsx:152 +#: src/view/com/post-thread/PostThread.tsx:164 msgid "Post not found" msgstr "Publicación no encontrada" @@ -3016,7 +3561,7 @@ msgstr "Publicación no encontrada" msgid "posts" msgstr "" -#: src/view/screens/Profile.tsx:180 +#: src/view/screens/Profile.tsx:188 msgid "Posts" msgstr "Publicaciones" @@ -3032,7 +3577,11 @@ msgstr "" msgid "Potentially Misleading Link" msgstr "Enlace potencialmente engañoso" -#: src/view/com/lightbox/Lightbox.web.tsx:135 +#: src/components/Lists.tsx:88 +msgid "Press to retry" +msgstr "" + +#: src/view/com/lightbox/Lightbox.web.tsx:150 msgid "Previous image" msgstr "Imagen previa" @@ -3044,15 +3593,16 @@ msgstr "Lenguajes primarios" msgid "Prioritize Your Follows" msgstr "Priorizar los usuarios a los que sigue" -#: src/view/screens/Settings/index.tsx:632 +#: src/view/screens/Settings/index.tsx:648 #: src/view/shell/desktop/RightNav.tsx:72 msgid "Privacy" msgstr "Privacidad" -#: src/Navigation.tsx:219 +#: src/Navigation.tsx:231 +#: src/view/com/auth/create/Policies.tsx:69 #: src/view/screens/PrivacyPolicy.tsx:29 -#: src/view/screens/Settings/index.tsx:891 -#: src/view/shell/Drawer.tsx:262 +#: src/view/screens/Settings/index.tsx:921 +#: src/view/shell/Drawer.tsx:265 msgid "Privacy Policy" msgstr "Política de privacidad" @@ -3060,11 +3610,16 @@ msgstr "Política de privacidad" msgid "Processing..." msgstr "Procesando..." -#: src/view/shell/bottom-bar/BottomBar.tsx:247 -#: src/view/shell/desktop/LeftNav.tsx:415 +#: src/view/screens/DebugMod.tsx:888 +#: src/view/screens/Profile.tsx:340 +msgid "profile" +msgstr "" + +#: src/view/shell/bottom-bar/BottomBar.tsx:251 +#: src/view/shell/desktop/LeftNav.tsx:419 #: src/view/shell/Drawer.tsx:70 -#: src/view/shell/Drawer.tsx:546 -#: src/view/shell/Drawer.tsx:547 +#: src/view/shell/Drawer.tsx:549 +#: src/view/shell/Drawer.tsx:550 msgid "Profile" msgstr "Perfil" @@ -3072,7 +3627,7 @@ msgstr "Perfil" msgid "Profile updated" msgstr "" -#: src/view/screens/Settings/index.tsx:949 +#: src/view/screens/Settings/index.tsx:979 msgid "Protect your account by verifying your email." msgstr "Protege tu cuenta verificando tu correo electrónico." @@ -3088,11 +3643,11 @@ msgstr "Listas públicas y compartibles de usuarios para silenciar o bloquear en msgid "Public, shareable lists which can drive feeds." msgstr "Listas públicas y compartibles que pueden impulsar las noticias." -#: src/view/com/composer/Composer.tsx:342 +#: src/view/com/composer/Composer.tsx:351 msgid "Publish post" msgstr "" -#: src/view/com/composer/Composer.tsx:342 +#: src/view/com/composer/Composer.tsx:351 msgid "Publish reply" msgstr "" @@ -3118,6 +3673,10 @@ msgstr "" msgid "Ratios" msgstr "Proporciones" +#: src/view/screens/Search/Search.tsx:776 +msgid "Recent Searches" +msgstr "" + #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:116 msgid "Recommended Feeds" msgstr "Canales de noticias recomendados" @@ -3126,36 +3685,50 @@ msgstr "Canales de noticias recomendados" msgid "Recommended Users" msgstr "Usuarios recomendados" -#: src/components/dialogs/MutedWords.tsx:298 -#: src/view/com/modals/ListAddRemoveUsers.tsx:264 +#: src/components/dialogs/MutedWords.tsx:287 +#: src/view/com/feeds/FeedSourceCard.tsx:283 +#: src/view/com/modals/ListAddRemoveUsers.tsx:268 #: src/view/com/modals/SelfLabel.tsx:83 #: src/view/com/modals/UserAddRemoveLists.tsx:219 -#: src/view/com/util/UserAvatar.tsx:285 -#: src/view/com/util/UserBanner.tsx:91 +#: src/view/com/posts/FeedErrorMessage.tsx:204 msgid "Remove" msgstr "Eliminar" #: src/view/com/feeds/FeedSourceCard.tsx:108 -msgid "Remove {0} from my feeds?" -msgstr "¿Eliminar {0} de mis canales de noticias?" +#~ msgid "Remove {0} from my feeds?" +#~ msgstr "¿Eliminar {0} de mis canales de noticias?" #: src/view/com/util/AccountDropdownBtn.tsx:22 msgid "Remove account" msgstr "Eliminar la cuenta" -#: src/view/com/posts/FeedErrorMessage.tsx:131 -#: src/view/com/posts/FeedErrorMessage.tsx:166 +#: src/view/com/util/UserAvatar.tsx:358 +msgid "Remove Avatar" +msgstr "" + +#: src/view/com/util/UserBanner.tsx:148 +msgid "Remove Banner" +msgstr "" + +#: src/view/com/posts/FeedErrorMessage.tsx:160 msgid "Remove feed" msgstr "Eliminar el canal de noticias" -#: src/view/com/feeds/FeedSourceCard.tsx:107 -#: src/view/com/feeds/FeedSourceCard.tsx:169 -#: src/view/com/feeds/FeedSourceCard.tsx:174 -#: src/view/com/feeds/FeedSourceCard.tsx:245 -#: src/view/screens/ProfileFeed.tsx:273 +#: src/view/com/posts/FeedErrorMessage.tsx:201 +msgid "Remove feed?" +msgstr "" + +#: src/view/com/feeds/FeedSourceCard.tsx:173 +#: src/view/com/feeds/FeedSourceCard.tsx:233 +#: src/view/screens/ProfileFeed.tsx:334 +#: src/view/screens/ProfileFeed.tsx:340 msgid "Remove from my feeds" msgstr "Eliminar de mis canales de noticias" +#: src/view/com/feeds/FeedSourceCard.tsx:278 +msgid "Remove from my feeds?" +msgstr "" + #: src/view/com/composer/photos/Gallery.tsx:167 msgid "Remove image" msgstr "Eliminar la imagen" @@ -3164,7 +3737,7 @@ msgstr "Eliminar la imagen" msgid "Remove image preview" msgstr "Eliminar la vista previa de la imagen" -#: src/components/dialogs/MutedWords.tsx:343 +#: src/components/dialogs/MutedWords.tsx:330 msgid "Remove mute word from your list" msgstr "" @@ -3173,28 +3746,35 @@ msgid "Remove repost" msgstr "" #: src/view/com/feeds/FeedSourceCard.tsx:175 -msgid "Remove this feed from my feeds?" -msgstr "¿Eliminar este canal de mis canales de noticias?" +#~ msgid "Remove this feed from my feeds?" +#~ msgstr "¿Eliminar este canal de mis canales de noticias?" + +#: src/view/com/posts/FeedErrorMessage.tsx:202 +msgid "Remove this feed from your saved feeds" +msgstr "" #: src/view/com/posts/FeedErrorMessage.tsx:132 -msgid "Remove this feed from your saved feeds?" -msgstr "¿Eliminar este canal de mis canales de noticias guardados?" +#~ msgid "Remove this feed from your saved feeds?" +#~ msgstr "¿Eliminar este canal de mis canales de noticias guardados?" #: src/view/com/modals/ListAddRemoveUsers.tsx:199 #: src/view/com/modals/UserAddRemoveLists.tsx:152 msgid "Removed from list" msgstr "Eliminar de la lista" -#: src/view/com/feeds/FeedSourceCard.tsx:113 -#: src/view/com/feeds/FeedSourceCard.tsx:180 +#: src/view/com/feeds/FeedSourceCard.tsx:121 msgid "Removed from my feeds" msgstr "" +#: src/view/screens/ProfileFeed.tsx:208 +msgid "Removed from your feeds" +msgstr "" + #: src/view/com/composer/ExternalEmbed.tsx:71 msgid "Removes default thumbnail from {0}" msgstr "" -#: src/view/screens/Profile.tsx:181 +#: src/view/screens/Profile.tsx:189 msgid "Replies" msgstr "Respuestas" @@ -3202,7 +3782,7 @@ msgstr "Respuestas" msgid "Replies to this thread are disabled" msgstr "Las respuestas a este hilo están desactivadas" -#: src/view/com/composer/Composer.tsx:355 +#: src/view/com/composer/Composer.tsx:364 msgctxt "action" msgid "Reply" msgstr "" @@ -3211,34 +3791,55 @@ msgstr "" msgid "Reply Filters" msgstr "Filtros de respuestas" -#: src/view/com/post/Post.tsx:167 -#: src/view/com/posts/FeedItem.tsx:287 +#: src/view/com/post/Post.tsx:166 +#: src/view/com/posts/FeedItem.tsx:280 msgctxt "description" msgid "Reply to <0/>" msgstr "" #: src/view/com/modals/report/Modal.tsx:166 -msgid "Report {collectionName}" -msgstr "Informe de {collectionName}" +#~ msgid "Report {collectionName}" +#~ msgstr "Informe de {collectionName}" -#: src/view/com/profile/ProfileHeader.tsx:361 +#: src/view/com/profile/ProfileMenu.tsx:319 +#: src/view/com/profile/ProfileMenu.tsx:322 msgid "Report Account" msgstr "Informe de la cuenta" -#: src/view/screens/ProfileFeed.tsx:293 +#: src/view/screens/ProfileFeed.tsx:351 +#: src/view/screens/ProfileFeed.tsx:353 msgid "Report feed" msgstr "Informe del canal de noticias" -#: src/view/screens/ProfileList.tsx:459 +#: src/view/screens/ProfileList.tsx:429 msgid "Report List" msgstr "Informe de la lista" -#: src/view/com/modals/report/SendReportButton.tsx:37 -#: src/view/com/util/forms/PostDropdownBtn.tsx:301 -#: src/view/com/util/forms/PostDropdownBtn.tsx:309 +#: src/view/com/util/forms/PostDropdownBtn.tsx:292 +#: src/view/com/util/forms/PostDropdownBtn.tsx:294 msgid "Report post" msgstr "Informe de la publicación" +#: src/components/ReportDialog/SelectReportOptionView.tsx:43 +msgid "Report this content" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:56 +msgid "Report this feed" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:53 +msgid "Report this list" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:50 +msgid "Report this post" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:47 +msgid "Report this user" +msgstr "" + #: src/view/com/modals/Repost.tsx:43 #: src/view/com/modals/Repost.tsx:48 #: src/view/com/modals/Repost.tsx:53 @@ -3260,19 +3861,19 @@ msgstr "Volver a publicar o citar publicación" msgid "Reposted By" msgstr "Vuelto a publicar por" -#: src/view/com/posts/FeedItem.tsx:207 +#: src/view/com/posts/FeedItem.tsx:197 msgid "Reposted by {0}" msgstr "Vuelto a publicar por {0}" -#: src/view/com/posts/FeedItem.tsx:224 +#: src/view/com/posts/FeedItem.tsx:214 msgid "Reposted by <0/>" msgstr "Vuelto a publicar por <0/>" -#: src/view/com/notifications/FeedItem.tsx:162 +#: src/view/com/notifications/FeedItem.tsx:166 msgid "reposted your post" msgstr "" -#: src/view/com/post-thread/PostThreadItem.tsx:188 +#: src/view/com/post-thread/PostThreadItem.tsx:187 msgid "Reposts of this post" msgstr "" @@ -3285,12 +3886,12 @@ msgstr "Solicitar un cambio" #~ msgid "Request code" #~ msgstr "" -#: src/view/com/modals/ChangePassword.tsx:239 #: src/view/com/modals/ChangePassword.tsx:241 +#: src/view/com/modals/ChangePassword.tsx:243 msgid "Request Code" msgstr "" -#: src/view/screens/Settings/index.tsx:456 +#: src/view/screens/Settings/index.tsx:471 msgid "Require alt text before posting" msgstr "" @@ -3300,18 +3901,20 @@ msgstr "Requerido para este proveedor" #: src/view/com/auth/login/SetNewPasswordForm.tsx:124 #: src/view/com/auth/login/SetNewPasswordForm.tsx:136 +#: src/view/com/modals/ChangePassword.tsx:185 msgid "Reset code" msgstr "Restablecer el código" -#: src/view/com/modals/ChangePassword.tsx:190 +#: src/view/com/modals/ChangePassword.tsx:192 msgid "Reset Code" msgstr "" #: src/view/screens/Settings/index.tsx:824 -msgid "Reset onboarding" -msgstr "" +#~ msgid "Reset onboarding" +#~ msgstr "" -#: src/view/screens/Settings/index.tsx:827 +#: src/view/screens/Settings/index.tsx:854 +#: src/view/screens/Settings/index.tsx:857 msgid "Reset onboarding state" msgstr "Restablecer el estado de incorporación" @@ -3320,18 +3923,19 @@ msgid "Reset password" msgstr "Restablecer la contraseña" #: src/view/screens/Settings/index.tsx:814 -msgid "Reset preferences" -msgstr "" +#~ msgid "Reset preferences" +#~ msgstr "" -#: src/view/screens/Settings/index.tsx:817 +#: src/view/screens/Settings/index.tsx:844 +#: src/view/screens/Settings/index.tsx:847 msgid "Reset preferences state" msgstr "Restablecer el estado de preferencias" -#: src/view/screens/Settings/index.tsx:825 +#: src/view/screens/Settings/index.tsx:855 msgid "Resets the onboarding state" msgstr "Restablece el estado de incorporación" -#: src/view/screens/Settings/index.tsx:815 +#: src/view/screens/Settings/index.tsx:845 msgid "Resets the preferences state" msgstr "Restablecer el estado de preferencias" @@ -3344,6 +3948,7 @@ msgstr "" msgid "Retries the last action, which errored out" msgstr "" +#: src/components/Lists.tsx:98 #: src/screens/Onboarding/StepInterests/index.tsx:221 #: src/screens/Onboarding/StepInterests/index.tsx:224 #: src/view/com/auth/create/CreateAccount.tsx:181 @@ -3359,10 +3964,19 @@ msgstr "Volver a intentar" #~ msgid "Retry." #~ msgstr "" -#: src/view/screens/ProfileList.tsx:903 +#: src/view/screens/ProfileList.tsx:917 msgid "Return to previous page" msgstr "" +#: src/view/screens/NotFound.tsx:59 +msgid "Returns to home page" +msgstr "" + +#: src/view/screens/NotFound.tsx:58 +#: src/view/screens/ProfileFeed.tsx:112 +msgid "Returns to previous page" +msgstr "" + #: src/view/shell/desktop/RightNav.tsx:55 #~ msgid "SANDBOX. Posts and accounts are not permanent." #~ msgstr "" @@ -3373,12 +3987,10 @@ msgctxt "action" msgid "Save" msgstr "" -#: src/view/com/modals/BirthDateSettings.tsx:94 -#: src/view/com/modals/BirthDateSettings.tsx:97 +#: src/components/dialogs/BirthDateSettings.tsx:125 #: src/view/com/modals/ChangeHandle.tsx:173 #: src/view/com/modals/CreateOrEditList.tsx:337 #: src/view/com/modals/EditProfile.tsx:224 -#: src/view/screens/ProfileFeed.tsx:346 msgid "Save" msgstr "Guardar" @@ -3386,6 +3998,10 @@ msgstr "Guardar" msgid "Save alt text" msgstr "Guardar el texto alt" +#: src/components/dialogs/BirthDateSettings.tsx:119 +msgid "Save birthday" +msgstr "" + #: src/view/com/modals/EditProfile.tsx:232 msgid "Save Changes" msgstr "Guardar cambios" @@ -3398,10 +4014,23 @@ msgstr "Guardar el cambio de identificador" msgid "Save image crop" msgstr "Guardar el recorte de imagen" +#: src/view/screens/ProfileFeed.tsx:335 +#: src/view/screens/ProfileFeed.tsx:341 +msgid "Save to my feeds" +msgstr "" + #: src/view/screens/SavedFeeds.tsx:122 msgid "Saved Feeds" msgstr "Guardar canales de noticias" +#: src/view/com/lightbox/Lightbox.tsx:81 +msgid "Saved to your camera roll." +msgstr "" + +#: src/view/screens/ProfileFeed.tsx:212 +msgid "Saved to your feeds" +msgstr "" + #: src/view/com/modals/EditProfile.tsx:225 msgid "Saves any changes to your profile" msgstr "" @@ -3410,33 +4039,37 @@ msgstr "" msgid "Saves handle change to {handle}" msgstr "" +#: src/view/com/modals/crop-image/CropImage.web.tsx:145 +msgid "Saves image crop settings" +msgstr "" + #: src/screens/Onboarding/index.tsx:36 msgid "Science" msgstr "" -#: src/view/screens/ProfileList.tsx:859 +#: src/view/screens/ProfileList.tsx:873 msgid "Scroll to top" msgstr "" -#: src/Navigation.tsx:447 +#: src/Navigation.tsx:459 #: src/view/com/auth/LoggedOut.tsx:122 #: src/view/com/modals/ListAddRemoveUsers.tsx:75 #: src/view/com/util/forms/SearchInput.tsx:67 #: src/view/com/util/forms/SearchInput.tsx:79 -#: src/view/screens/Search/Search.tsx:419 -#: src/view/screens/Search/Search.tsx:668 -#: src/view/screens/Search/Search.tsx:686 -#: src/view/shell/bottom-bar/BottomBar.tsx:159 -#: src/view/shell/desktop/LeftNav.tsx:324 -#: src/view/shell/desktop/Search.tsx:214 -#: src/view/shell/desktop/Search.tsx:223 -#: src/view/shell/Drawer.tsx:362 -#: src/view/shell/Drawer.tsx:363 +#: src/view/screens/Search/Search.tsx:420 +#: src/view/screens/Search/Search.tsx:669 +#: src/view/screens/Search/Search.tsx:687 +#: src/view/shell/bottom-bar/BottomBar.tsx:161 +#: src/view/shell/desktop/LeftNav.tsx:328 +#: src/view/shell/desktop/Search.tsx:215 +#: src/view/shell/desktop/Search.tsx:224 +#: src/view/shell/Drawer.tsx:365 +#: src/view/shell/Drawer.tsx:366 msgid "Search" msgstr "Buscar" -#: src/view/screens/Search/Search.tsx:735 -#: src/view/shell/desktop/Search.tsx:255 +#: src/view/screens/Search/Search.tsx:736 +#: src/view/shell/desktop/Search.tsx:256 msgid "Search for \"{query}\"" msgstr "" @@ -3510,6 +4143,14 @@ msgstr "" msgid "Select from an existing account" msgstr "Selecciona de una cuenta existente" +#: src/view/screens/LanguageSettings.tsx:299 +msgid "Select languages" +msgstr "" + +#: src/components/ReportDialog/SelectLabelerView.tsx:32 +msgid "Select moderator" +msgstr "" + #: src/view/com/util/Selector.tsx:107 msgid "Select option {i} of {numItems}" msgstr "" @@ -3523,6 +4164,10 @@ msgstr "Selecciona el servicio" msgid "Select some accounts below to follow" msgstr "" +#: src/components/ReportDialog/SubmitView.tsx:135 +msgid "Select the moderation service(s) to report to" +msgstr "" + #: src/view/com/auth/server-input/index.tsx:82 msgid "Select the service that hosts your data." msgstr "" @@ -3535,7 +4180,7 @@ msgstr "" msgid "Select topical feeds to follow from the list below" msgstr "" -#: src/screens/Onboarding/StepModeration/index.tsx:75 +#: src/screens/Onboarding/StepModeration/index.tsx:62 msgid "Select what you want to see (or not see), and we’ll handle the rest." msgstr "" @@ -3544,8 +4189,12 @@ msgid "Select which languages you want your subscribed feeds to include. If none msgstr "Selecciona qué idiomas quieres que incluyan tus canales de noticias suscritos. Si no seleccionas ninguno, se mostrarán todos los idiomas." #: src/view/screens/LanguageSettings.tsx:98 -msgid "Select your app language for the default text to display in the app" -msgstr "Selecciona el idioma de tu app para el texto que se mostrará por defecto en la app" +#~ msgid "Select your app language for the default text to display in the app" +#~ msgstr "Selecciona el idioma de tu app para el texto que se mostrará por defecto en la app" + +#: src/view/screens/LanguageSettings.tsx:98 +msgid "Select your app language for the default text to display in the app." +msgstr "" #: src/screens/Onboarding/StepInterests/index.tsx:196 msgid "Select your interests from the options below" @@ -3581,14 +4230,23 @@ msgctxt "action" msgid "Send Email" msgstr "Enviar el mensaje" -#: src/view/shell/Drawer.tsx:295 -#: src/view/shell/Drawer.tsx:316 +#: src/view/shell/Drawer.tsx:298 +#: src/view/shell/Drawer.tsx:319 msgid "Send feedback" msgstr "Enviar comentarios" +#: src/components/ReportDialog/SubmitView.tsx:214 +#: src/components/ReportDialog/SubmitView.tsx:218 +msgid "Send report" +msgstr "" + #: src/view/com/modals/report/SendReportButton.tsx:45 -msgid "Send Report" -msgstr "Enviar el informe" +#~ msgid "Send Report" +#~ msgstr "Enviar el informe" + +#: src/components/ReportDialog/SelectLabelerView.tsx:46 +msgid "Send report to {0}" +msgstr "" #: src/view/com/modals/DeleteAccount.tsx:133 msgid "Sends email with confirmation code for account deletion" @@ -3599,34 +4257,38 @@ msgid "Server address" msgstr "" #: src/view/com/modals/ContentFilteringSettings.tsx:311 -msgid "Set {value} for {labelGroup} content moderation policy" -msgstr "" +#~ msgid "Set {value} for {labelGroup} content moderation policy" +#~ msgstr "" #: src/view/com/modals/ContentFilteringSettings.tsx:160 #: src/view/com/modals/ContentFilteringSettings.tsx:179 -msgctxt "action" -msgid "Set Age" +#~ msgctxt "action" +#~ msgid "Set Age" +#~ msgstr "" + +#: src/screens/Moderation/index.tsx:306 +msgid "Set birthdate" msgstr "" #: src/view/screens/Settings/index.tsx:488 -msgid "Set color theme to dark" -msgstr "" +#~ msgid "Set color theme to dark" +#~ msgstr "" #: src/view/screens/Settings/index.tsx:481 -msgid "Set color theme to light" -msgstr "" +#~ msgid "Set color theme to light" +#~ msgstr "" #: src/view/screens/Settings/index.tsx:475 -msgid "Set color theme to system setting" -msgstr "" +#~ msgid "Set color theme to system setting" +#~ msgstr "" #: src/view/screens/Settings/index.tsx:514 -msgid "Set dark theme to the dark theme" -msgstr "" +#~ msgid "Set dark theme to the dark theme" +#~ msgstr "" #: src/view/screens/Settings/index.tsx:507 -msgid "Set dark theme to the dim theme" -msgstr "" +#~ msgid "Set dark theme to the dim theme" +#~ msgstr "" #: src/view/com/auth/login/SetNewPasswordForm.tsx:104 msgid "Set new password" @@ -3668,6 +4330,26 @@ msgstr "" msgid "Sets Bluesky username" msgstr "" +#: src/view/screens/Settings/index.tsx:503 +msgid "Sets color theme to dark" +msgstr "" + +#: src/view/screens/Settings/index.tsx:496 +msgid "Sets color theme to light" +msgstr "" + +#: src/view/screens/Settings/index.tsx:490 +msgid "Sets color theme to system setting" +msgstr "" + +#: src/view/screens/Settings/index.tsx:529 +msgid "Sets dark theme to the dark theme" +msgstr "" + +#: src/view/screens/Settings/index.tsx:522 +msgid "Sets dark theme to the dim theme" +msgstr "" + #: src/view/com/auth/login/ForgotPasswordForm.tsx:157 msgid "Sets email for password reset" msgstr "" @@ -3676,16 +4358,28 @@ msgstr "" msgid "Sets hosting provider for password reset" msgstr "" +#: src/view/com/modals/crop-image/CropImage.web.tsx:123 +msgid "Sets image aspect ratio to square" +msgstr "" + +#: src/view/com/modals/crop-image/CropImage.web.tsx:113 +msgid "Sets image aspect ratio to tall" +msgstr "" + +#: src/view/com/modals/crop-image/CropImage.web.tsx:103 +msgid "Sets image aspect ratio to wide" +msgstr "" + #: src/view/com/auth/create/Step1.tsx:97 #: src/view/com/auth/login/LoginForm.tsx:151 msgid "Sets server for the Bluesky client" msgstr "" -#: src/Navigation.tsx:137 -#: src/view/screens/Settings/index.tsx:294 -#: src/view/shell/desktop/LeftNav.tsx:433 -#: src/view/shell/Drawer.tsx:567 -#: src/view/shell/Drawer.tsx:568 +#: src/Navigation.tsx:139 +#: src/view/screens/Settings/index.tsx:309 +#: src/view/shell/desktop/LeftNav.tsx:437 +#: src/view/shell/Drawer.tsx:570 +#: src/view/shell/Drawer.tsx:571 msgid "Settings" msgstr "Configuraciones" @@ -3693,28 +4387,39 @@ msgstr "Configuraciones" msgid "Sexual activity or erotic nudity." msgstr "Actividad sexual o desnudez erótica." +#: src/lib/moderation/useGlobalLabelStrings.ts:38 +msgid "Sexually Suggestive" +msgstr "" + #: src/view/com/lightbox/Lightbox.tsx:141 msgctxt "action" msgid "Share" msgstr "" -#: src/view/com/profile/ProfileHeader.tsx:295 -#: src/view/com/util/forms/PostDropdownBtn.tsx:231 +#: src/view/com/profile/ProfileMenu.tsx:215 +#: src/view/com/profile/ProfileMenu.tsx:224 +#: src/view/com/util/forms/PostDropdownBtn.tsx:228 #: src/view/com/util/forms/PostDropdownBtn.tsx:237 -#: src/view/com/util/post-ctrls/PostCtrls.tsx:215 -#: src/view/screens/ProfileList.tsx:418 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:218 +#: src/view/screens/ProfileList.tsx:388 msgid "Share" msgstr "Compartir" -#: src/view/screens/ProfileFeed.tsx:305 +#: src/view/com/profile/ProfileMenu.tsx:373 +#: src/view/com/util/forms/PostDropdownBtn.tsx:347 +msgid "Share anyway" +msgstr "" + +#: src/view/screens/ProfileFeed.tsx:361 +#: src/view/screens/ProfileFeed.tsx:363 msgid "Share feed" msgstr "Compartir las noticias" -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:43 -#: src/view/com/modals/ContentFilteringSettings.tsx:266 -#: src/view/com/util/moderation/ContentHider.tsx:107 -#: src/view/com/util/moderation/PostHider.tsx:108 -#: src/view/screens/Settings/index.tsx:344 +#: src/components/moderation/ContentHider.tsx:115 +#: src/components/moderation/GlobalModerationLabelPref.tsx:45 +#: src/components/moderation/PostHider.tsx:107 +#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:54 +#: src/view/screens/Settings/index.tsx:359 msgid "Show" msgstr "Mostrar" @@ -3722,21 +4427,31 @@ msgstr "Mostrar" msgid "Show all replies" msgstr "" -#: src/view/com/util/moderation/ScreenHider.tsx:132 +#: src/components/moderation/ScreenHider.tsx:162 +#: src/components/moderation/ScreenHider.tsx:165 msgid "Show anyway" msgstr "Mostrar de todas maneras" +#: src/lib/moderation/useLabelBehaviorDescription.ts:27 +#: src/lib/moderation/useLabelBehaviorDescription.ts:63 +msgid "Show badge" +msgstr "" + +#: src/lib/moderation/useLabelBehaviorDescription.ts:61 +msgid "Show badge and filter from feeds" +msgstr "" + #: src/view/com/modals/EmbedConsent.tsx:87 msgid "Show embeds from {0}" msgstr "" -#: src/view/com/profile/ProfileHeader.tsx:459 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:193 msgid "Show follows similar to {0}" msgstr "" -#: src/view/com/post-thread/PostThreadItem.tsx:538 -#: src/view/com/post/Post.tsx:198 -#: src/view/com/posts/FeedItem.tsx:363 +#: src/view/com/post-thread/PostThreadItem.tsx:507 +#: src/view/com/post/Post.tsx:201 +#: src/view/com/posts/FeedItem.tsx:355 msgid "Show More" msgstr "" @@ -3788,40 +4503,48 @@ msgstr "Mostrar publicaciones que se han publicado nuevamente" msgid "Show reposts in Following" msgstr "" -#: src/view/com/util/moderation/ContentHider.tsx:67 -#: src/view/com/util/moderation/PostHider.tsx:61 +#: src/components/moderation/ContentHider.tsx:68 +#: src/components/moderation/PostHider.tsx:64 msgid "Show the content" msgstr "" -#: src/view/com/notifications/FeedItem.tsx:347 +#: src/view/com/notifications/FeedItem.tsx:351 msgid "Show users" msgstr "Mostrar usuarios" -#: src/view/com/profile/ProfileHeader.tsx:462 -msgid "Shows a list of users similar to this user." +#: src/lib/moderation/useLabelBehaviorDescription.ts:58 +msgid "Show warning" msgstr "" -#: src/view/com/post-thread/PostThreadFollowBtn.tsx:124 -#: src/view/com/profile/ProfileHeader.tsx:506 +#: src/lib/moderation/useLabelBehaviorDescription.ts:56 +msgid "Show warning and filter from feeds" +msgstr "" + +#: src/view/com/profile/ProfileHeader.tsx:462 +#~ msgid "Shows a list of users similar to this user." +#~ msgstr "" + +#: src/view/com/post-thread/PostThreadFollowBtn.tsx:127 msgid "Shows posts from {0} in your feed" msgstr "" -#: src/view/com/auth/HomeLoggedOutCTA.tsx:70 +#: src/view/com/auth/HomeLoggedOutCTA.tsx:72 #: src/view/com/auth/login/Login.tsx:98 -#: src/view/com/auth/SplashScreen.tsx:79 -#: src/view/shell/bottom-bar/BottomBar.tsx:285 -#: src/view/shell/bottom-bar/BottomBar.tsx:286 -#: src/view/shell/bottom-bar/BottomBar.tsx:288 +#: src/view/com/auth/SplashScreen.tsx:81 +#: src/view/shell/bottom-bar/BottomBar.tsx:289 +#: src/view/shell/bottom-bar/BottomBar.tsx:290 +#: src/view/shell/bottom-bar/BottomBar.tsx:292 #: src/view/shell/bottom-bar/BottomBarWeb.tsx:178 #: src/view/shell/bottom-bar/BottomBarWeb.tsx:179 #: src/view/shell/bottom-bar/BottomBarWeb.tsx:181 #: src/view/shell/NavSignupCard.tsx:58 #: src/view/shell/NavSignupCard.tsx:59 +#: src/view/shell/NavSignupCard.tsx:61 msgid "Sign in" msgstr "Iniciar sesión" -#: src/view/com/auth/HomeLoggedOutCTA.tsx:78 -#: src/view/com/auth/SplashScreen.tsx:82 +#: src/view/com/auth/HomeLoggedOutCTA.tsx:82 +#: src/view/com/auth/SplashScreen.tsx:86 #: src/view/com/auth/SplashScreen.web.tsx:91 msgid "Sign In" msgstr "Iniciar sesión" @@ -3830,7 +4553,7 @@ msgstr "Iniciar sesión" msgid "Sign in as {0}" msgstr "Iniciar sesión como {0}" -#: src/view/com/auth/login/ChooseAccountForm.tsx:118 +#: src/view/com/auth/login/ChooseAccountForm.tsx:122 #: src/view/com/auth/login/Login.tsx:116 msgid "Sign in as..." msgstr "Iniciar sesión como ..." @@ -3839,16 +4562,16 @@ msgstr "Iniciar sesión como ..." msgid "Sign into" msgstr "Iniciar sesión en" -#: src/view/com/modals/SwitchAccount.tsx:64 -#: src/view/com/modals/SwitchAccount.tsx:69 -#: src/view/screens/Settings/index.tsx:100 -#: src/view/screens/Settings/index.tsx:103 +#: src/view/com/modals/SwitchAccount.tsx:68 +#: src/view/com/modals/SwitchAccount.tsx:73 +#: src/view/screens/Settings/index.tsx:105 +#: src/view/screens/Settings/index.tsx:108 msgid "Sign out" msgstr "Cerrar sesión" -#: src/view/shell/bottom-bar/BottomBar.tsx:275 -#: src/view/shell/bottom-bar/BottomBar.tsx:276 -#: src/view/shell/bottom-bar/BottomBar.tsx:278 +#: src/view/shell/bottom-bar/BottomBar.tsx:279 +#: src/view/shell/bottom-bar/BottomBar.tsx:280 +#: src/view/shell/bottom-bar/BottomBar.tsx:282 #: src/view/shell/bottom-bar/BottomBarWeb.tsx:168 #: src/view/shell/bottom-bar/BottomBarWeb.tsx:169 #: src/view/shell/bottom-bar/BottomBarWeb.tsx:171 @@ -3862,25 +4585,26 @@ msgstr "Inscribirse" msgid "Sign up or sign in to join the conversation" msgstr "Regístrate o inicia sesión para unirte a la conversación" -#: src/view/com/util/moderation/ScreenHider.tsx:76 +#: src/components/moderation/ScreenHider.tsx:98 +#: src/lib/moderation/useGlobalLabelStrings.ts:28 msgid "Sign-in Required" msgstr "Se requiere iniciar sesión" -#: src/view/screens/Settings/index.tsx:355 +#: src/view/screens/Settings/index.tsx:370 msgid "Signed in as" msgstr "Se inició sesión como" -#: src/view/com/auth/login/ChooseAccountForm.tsx:103 +#: src/view/com/auth/login/ChooseAccountForm.tsx:107 msgid "Signed in as @{0}" msgstr "" -#: src/view/com/modals/SwitchAccount.tsx:66 +#: src/view/com/modals/SwitchAccount.tsx:70 msgid "Signs {0} out of Bluesky" msgstr "" #: src/screens/Onboarding/StepInterests/index.tsx:235 #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:195 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:33 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:35 msgid "Skip" msgstr "Saltarse este paso" @@ -3900,15 +4624,21 @@ msgstr "" #~ msgid "Something went wrong and we're not sure what." #~ msgstr "" -#: src/components/Lists.tsx:203 -msgid "Something went wrong!" +#: src/components/ReportDialog/index.tsx:52 +#: src/screens/Moderation/index.tsx:116 +#: src/screens/Profile/Sections/Labels.tsx:77 +msgid "Something went wrong, please try again." msgstr "" +#: src/components/Lists.tsx:203 +#~ msgid "Something went wrong!" +#~ msgstr "" + #: src/view/com/modals/Waitlist.tsx:51 #~ msgid "Something went wrong. Check your email and try again." #~ msgstr "" -#: src/App.native.tsx:66 +#: src/App.native.tsx:71 msgid "Sorry! Your session expired. Please log in again." msgstr "" @@ -3920,6 +4650,18 @@ msgstr "Clasificar respuestas" msgid "Sort replies to the same post by:" msgstr "Ordenar las respuestas a un mismo mensaje por:" +#: src/components/moderation/LabelsOnMeDialog.tsx:147 +msgid "Source:" +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:65 +msgid "Spam" +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:53 +msgid "Spam; excessive mentions or replies" +msgstr "" + #: src/screens/Onboarding/index.tsx:30 msgid "Sports" msgstr "" @@ -3932,7 +4674,7 @@ msgstr "Cuadrado" #~ msgid "Staging" #~ msgstr "Puesta en escena" -#: src/view/screens/Settings/index.tsx:871 +#: src/view/screens/Settings/index.tsx:901 msgid "Status page" msgstr "Página de estado" @@ -3940,37 +4682,50 @@ msgstr "Página de estado" msgid "Step {0} of {numSteps}" msgstr "" -#: src/view/screens/Settings/index.tsx:274 +#: src/view/screens/Settings/index.tsx:288 msgid "Storage cleared, you need to restart the app now." msgstr "" -#: src/Navigation.tsx:204 -#: src/view/screens/Settings/index.tsx:807 +#: src/Navigation.tsx:211 +#: src/view/screens/Settings/index.tsx:827 msgid "Storybook" msgstr "Libro de cuentos" -#: src/view/com/modals/AppealLabel.tsx:101 +#: src/components/moderation/LabelsOnMeDialog.tsx:256 +#: src/components/moderation/LabelsOnMeDialog.tsx:257 msgid "Submit" msgstr "Enviar" -#: src/view/screens/ProfileList.tsx:608 +#: src/view/screens/ProfileList.tsx:590 msgid "Subscribe" msgstr "Suscribirse" +#: src/screens/Profile/Sections/Labels.tsx:181 +msgid "Subscribe to @{0} to use these labels:" +msgstr "" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:222 +msgid "Subscribe to Labeler" +msgstr "" + #: src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx:173 #: src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx:308 msgid "Subscribe to the {0} feed" msgstr "" -#: src/view/screens/ProfileList.tsx:604 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:185 +msgid "Subscribe to this labeler" +msgstr "" + +#: src/view/screens/ProfileList.tsx:586 msgid "Subscribe to this list" msgstr "Suscribirse a esta lista" -#: src/view/screens/Search/Search.tsx:374 +#: src/view/screens/Search/Search.tsx:375 msgid "Suggested Follows" msgstr "Usuarios sugeridos a seguir" -#: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:64 +#: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:65 msgid "Suggested for you" msgstr "" @@ -3978,7 +4733,7 @@ msgstr "" msgid "Suggestive" msgstr "" -#: src/Navigation.tsx:214 +#: src/Navigation.tsx:226 #: src/view/screens/Support.tsx:30 #: src/view/screens/Support.tsx:33 msgid "Support" @@ -3988,29 +4743,29 @@ msgstr "Soporte" #~ msgid "Swipe up to see more" #~ msgstr "" -#: src/view/com/modals/SwitchAccount.tsx:117 +#: src/view/com/modals/SwitchAccount.tsx:121 msgid "Switch Account" msgstr "Cambiar a otra cuenta" -#: src/view/com/modals/SwitchAccount.tsx:97 -#: src/view/screens/Settings/index.tsx:130 +#: src/view/com/modals/SwitchAccount.tsx:101 +#: src/view/screens/Settings/index.tsx:135 msgid "Switch to {0}" msgstr "" -#: src/view/com/modals/SwitchAccount.tsx:98 -#: src/view/screens/Settings/index.tsx:131 +#: src/view/com/modals/SwitchAccount.tsx:102 +#: src/view/screens/Settings/index.tsx:136 msgid "Switches the account you are logged in to" msgstr "" -#: src/view/screens/Settings/index.tsx:472 +#: src/view/screens/Settings/index.tsx:487 msgid "System" msgstr "" -#: src/view/screens/Settings/index.tsx:795 +#: src/view/screens/Settings/index.tsx:815 msgid "System log" msgstr "Bitácora del sistema" -#: src/components/dialogs/MutedWords.tsx:337 +#: src/components/dialogs/MutedWords.tsx:324 msgid "tag" msgstr "" @@ -4038,30 +4793,49 @@ msgstr "" msgid "Terms" msgstr "Condiciones" -#: src/Navigation.tsx:224 -#: src/view/screens/Settings/index.tsx:885 +#: src/Navigation.tsx:236 +#: src/view/com/auth/create/Policies.tsx:59 +#: src/view/screens/Settings/index.tsx:915 #: src/view/screens/TermsOfService.tsx:29 -#: src/view/shell/Drawer.tsx:256 +#: src/view/shell/Drawer.tsx:259 msgid "Terms of Service" msgstr "Condiciones de servicio" -#: src/components/dialogs/MutedWords.tsx:337 +#: src/lib/moderation/useReportOptions.ts:58 +#: src/lib/moderation/useReportOptions.ts:79 +#: src/lib/moderation/useReportOptions.ts:87 +msgid "Terms used violate community standards" +msgstr "" + +#: src/components/dialogs/MutedWords.tsx:324 msgid "text" msgstr "" -#: src/view/com/modals/AppealLabel.tsx:70 -#: src/view/com/modals/report/InputIssueDetails.tsx:51 +#: src/components/moderation/LabelsOnMeDialog.tsx:220 msgid "Text input field" msgstr "Campo de introducción de texto" +#: src/components/ReportDialog/SubmitView.tsx:78 +msgid "Thank you. Your report has been sent." +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:466 +msgid "That contains the following:" +msgstr "" + #: src/view/com/auth/create/CreateAccount.tsx:94 msgid "That handle is already taken." msgstr "" -#: src/view/com/profile/ProfileHeader.tsx:263 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:274 +#: src/view/com/profile/ProfileMenu.tsx:349 msgid "The account will be able to interact with you after unblocking." msgstr "La cuenta podrá interactuar contigo tras el desbloqueo." +#: src/components/moderation/ModerationDetailsDialog.tsx:128 +msgid "the author" +msgstr "" + #: src/view/screens/CommunityGuidelines.tsx:36 msgid "The Community Guidelines have been moved to <0/>" msgstr "Las Directrices Comunitarias se ha trasladado a <0/>" @@ -4070,11 +4844,20 @@ msgstr "Las Directrices Comunitarias se ha trasladado a <0/>" msgid "The Copyright Policy has been moved to <0/>" msgstr "La Política de derechos de autor se han trasladado a <0/>" +#: src/components/moderation/LabelsOnMeDialog.tsx:49 +msgid "The following labels were applied to your account." +msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:50 +msgid "The following labels were applied to your content." +msgstr "" + #: src/screens/Onboarding/Layout.tsx:60 msgid "The following steps will help customize your Bluesky experience." msgstr "" -#: src/view/com/post-thread/PostThread.tsx:517 +#: src/view/com/post-thread/PostThread.tsx:153 +#: src/view/com/post-thread/PostThread.tsx:165 msgid "The post may have been deleted." msgstr "Es posible que se haya borrado la publicación." @@ -4094,20 +4877,21 @@ msgstr "Las condiciones de servicio se han trasladado a" msgid "There are many feeds to try:" msgstr "" -#: src/view/screens/ProfileFeed.tsx:550 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:113 +#: src/view/screens/ProfileFeed.tsx:543 msgid "There was an an issue contacting the server, please check your internet connection and try again." msgstr "" -#: src/view/com/posts/FeedErrorMessage.tsx:139 +#: src/view/com/posts/FeedErrorMessage.tsx:138 msgid "There was an an issue removing this feed. Please check your internet connection and try again." msgstr "" -#: src/view/screens/ProfileFeed.tsx:210 +#: src/view/screens/ProfileFeed.tsx:217 msgid "There was an an issue updating your feeds, please check your internet connection and try again." msgstr "" -#: src/view/screens/ProfileFeed.tsx:237 -#: src/view/screens/ProfileList.tsx:267 +#: src/view/screens/ProfileFeed.tsx:244 +#: src/view/screens/ProfileList.tsx:275 #: src/view/screens/SavedFeeds.tsx:209 #: src/view/screens/SavedFeeds.tsx:231 #: src/view/screens/SavedFeeds.tsx:252 @@ -4116,9 +4900,8 @@ msgstr "" #: src/view/com/auth/onboarding/RecommendedFeedsItem.tsx:57 #: src/view/com/auth/onboarding/RecommendedFeedsItem.tsx:66 -#: src/view/com/feeds/FeedSourceCard.tsx:115 -#: src/view/com/feeds/FeedSourceCard.tsx:129 -#: src/view/com/feeds/FeedSourceCard.tsx:183 +#: src/view/com/feeds/FeedSourceCard.tsx:110 +#: src/view/com/feeds/FeedSourceCard.tsx:123 msgid "There was an issue contacting your server" msgstr "" @@ -4126,7 +4909,7 @@ msgstr "" msgid "There was an issue fetching notifications. Tap here to try again." msgstr "" -#: src/view/com/posts/Feed.tsx:265 +#: src/view/com/posts/Feed.tsx:283 msgid "There was an issue fetching posts. Tap here to try again." msgstr "" @@ -4139,34 +4922,40 @@ msgstr "" msgid "There was an issue fetching your lists. Tap here to try again." msgstr "" -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:63 -#: src/view/com/modals/ContentFilteringSettings.tsx:126 +#: src/components/ReportDialog/SubmitView.tsx:83 +msgid "There was an issue sending your report. Please check your internet connection." +msgstr "" + +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:65 msgid "There was an issue syncing your preferences with the server" msgstr "" -#: src/view/screens/AppPasswords.tsx:66 +#: src/view/screens/AppPasswords.tsx:68 msgid "There was an issue with fetching your app passwords" msgstr "" -#: src/view/com/post-thread/PostThreadFollowBtn.tsx:93 -#: src/view/com/post-thread/PostThreadFollowBtn.tsx:105 -#: src/view/com/profile/ProfileHeader.tsx:157 -#: src/view/com/profile/ProfileHeader.tsx:178 -#: src/view/com/profile/ProfileHeader.tsx:217 -#: src/view/com/profile/ProfileHeader.tsx:230 -#: src/view/com/profile/ProfileHeader.tsx:250 -#: src/view/com/profile/ProfileHeader.tsx:272 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:98 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:120 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:134 +#: src/view/com/post-thread/PostThreadFollowBtn.tsx:96 +#: src/view/com/post-thread/PostThreadFollowBtn.tsx:108 +#: src/view/com/profile/ProfileMenu.tsx:106 +#: src/view/com/profile/ProfileMenu.tsx:117 +#: src/view/com/profile/ProfileMenu.tsx:132 +#: src/view/com/profile/ProfileMenu.tsx:143 +#: src/view/com/profile/ProfileMenu.tsx:157 +#: src/view/com/profile/ProfileMenu.tsx:170 msgid "There was an issue! {0}" msgstr "" #: src/view/screens/ProfileList.tsx:288 -#: src/view/screens/ProfileList.tsx:307 -#: src/view/screens/ProfileList.tsx:329 -#: src/view/screens/ProfileList.tsx:348 +#: src/view/screens/ProfileList.tsx:302 +#: src/view/screens/ProfileList.tsx:316 +#: src/view/screens/ProfileList.tsx:330 msgid "There was an issue. Please check your internet connection and try again." msgstr "" -#: src/view/com/util/ErrorBoundary.tsx:36 +#: src/view/com/util/ErrorBoundary.tsx:51 msgid "There was an unexpected issue in the application. Please let us know if this happened to you!" msgstr "Se ha producido un problema inesperado en la aplicación. Por favor, ¡avísanos si te ha ocurrido esto!" @@ -4182,19 +4971,32 @@ msgstr "" msgid "These are popular accounts you might like:" msgstr "" -#: src/view/com/util/moderation/ScreenHider.tsx:88 +#: src/components/moderation/ScreenHider.tsx:117 msgid "This {screenDescription} has been flagged:" msgstr "Esta {screenDescription} ha sido marcada:" -#: src/view/com/util/moderation/ScreenHider.tsx:83 +#: src/components/moderation/ScreenHider.tsx:112 msgid "This account has requested that users sign in to view their profile." msgstr "Esta cuenta ha solicitado que los usuarios inicien sesión para ver su perfil." +#: src/components/moderation/LabelsOnMeDialog.tsx:205 +msgid "This appeal will be sent to <0>{0}." +msgstr "" + +#: src/lib/moderation/useGlobalLabelStrings.ts:19 +msgid "This content has been hidden by the moderators." +msgstr "" + +#: src/lib/moderation/useGlobalLabelStrings.ts:24 +msgid "This content has received a general warning from moderators." +msgstr "" + #: src/view/com/modals/EmbedConsent.tsx:68 msgid "This content is hosted by {0}. Do you want to enable external media?" msgstr "" -#: src/view/com/modals/ModerationDetails.tsx:67 +#: src/components/moderation/ModerationDetailsDialog.tsx:78 +#: src/lib/moderation/useModerationCauseDescription.ts:77 msgid "This content is not available because one of the users involved has blocked the other." msgstr "" @@ -4203,16 +5005,20 @@ msgid "This content is not viewable without a Bluesky account." msgstr "Este contenido no se puede ver sin una cuenta Bluesky." #: src/view/screens/Settings/ExportCarDialog.tsx:75 -msgid "This feature is in beta. You can read more about repository exports in <0>this blogpost." +#~ msgid "This feature is in beta. You can read more about repository exports in <0>this blogpost." +#~ msgstr "" + +#: src/view/screens/Settings/ExportCarDialog.tsx:75 +msgid "This feature is in beta. You can read more about repository exports in <0>this blogpost." msgstr "" #: src/view/com/posts/FeedErrorMessage.tsx:114 msgid "This feed is currently receiving high traffic and is temporarily unavailable. Please try again later." msgstr "Este canal de noticias está recibiendo mucho tráfico y no está disponible temporalmente. Vuelve a intentarlo más tarde." -#: src/view/screens/Profile.tsx:420 +#: src/screens/Profile/Sections/Feed.tsx:50 #: src/view/screens/ProfileFeed.tsx:476 -#: src/view/screens/ProfileList.tsx:661 +#: src/view/screens/ProfileList.tsx:675 msgid "This feed is empty!" msgstr "" @@ -4220,7 +5026,7 @@ msgstr "" msgid "This feed is empty! You may need to follow more users or tune your language settings." msgstr "" -#: src/view/com/modals/BirthDateSettings.tsx:61 +#: src/components/dialogs/BirthDateSettings.tsx:41 msgid "This information is not shared with other users." msgstr "Esta información no se comparte con otros usuarios." @@ -4228,14 +5034,26 @@ msgstr "Esta información no se comparte con otros usuarios." msgid "This is important in case you ever need to change your email or reset your password." msgstr "Esto es importante por si alguna vez necesitas cambiar tu correo electrónico o restablecer tu contraseña." +#: src/components/moderation/ModerationDetailsDialog.tsx:125 +msgid "This label was applied by {0}." +msgstr "" + +#: src/screens/Profile/Sections/Labels.tsx:168 +msgid "This labeler hasn't declared what labels it publishes, and may not be active." +msgstr "" + #: src/view/com/modals/LinkWarning.tsx:58 msgid "This link is taking you to the following website:" msgstr "Este enlace te lleva al siguiente sitio web:" -#: src/view/screens/ProfileList.tsx:839 +#: src/view/screens/ProfileList.tsx:853 msgid "This list is empty!" msgstr "" +#: src/screens/Profile/ErrorState.tsx:40 +msgid "This moderation service is unavailable. See below for more details. If this issue persists, contact us." +msgstr "" + #: src/view/com/modals/AddAppPasswords.tsx:106 msgid "This name is already in use" msgstr "" @@ -4244,36 +5062,81 @@ msgstr "" msgid "This post has been deleted." msgstr "Esta publicación ha sido eliminada." -#: src/view/com/modals/ModerationDetails.tsx:62 +#: src/view/com/util/forms/PostDropdownBtn.tsx:344 +msgid "This post is only visible to logged-in users. It won't be visible to people who aren't logged in." +msgstr "" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:326 +msgid "This post will be hidden from feeds." +msgstr "" + +#: src/view/com/profile/ProfileMenu.tsx:370 +msgid "This profile is only visible to logged-in users. It won't be visible to people who aren't logged in." +msgstr "" + +#: src/view/com/auth/create/Policies.tsx:46 +msgid "This service has not provided terms of service or a privacy policy." +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:446 +msgid "This should create a domain record at:" +msgstr "" + +#: src/view/com/profile/ProfileFollowers.tsx:95 +msgid "This user doesn't have any followers." +msgstr "" + +#: src/components/moderation/ModerationDetailsDialog.tsx:73 +#: src/lib/moderation/useModerationCauseDescription.ts:68 msgid "This user has blocked you. You cannot view their content." msgstr "" -#: src/view/com/modals/ModerationDetails.tsx:42 -msgid "This user is included in the <0/> list which you have blocked." +#: src/lib/moderation/useGlobalLabelStrings.ts:30 +msgid "This user has requested that their content only be shown to signed-in users." msgstr "" +#: src/view/com/modals/ModerationDetails.tsx:42 +#~ msgid "This user is included in the <0/> list which you have blocked." +#~ msgstr "" + #: src/view/com/modals/ModerationDetails.tsx:74 -msgid "This user is included in the <0/> list which you have muted." +#~ msgid "This user is included in the <0/> list which you have muted." +#~ msgstr "" + +#: src/components/moderation/ModerationDetailsDialog.tsx:56 +msgid "This user is included in the <0>{0} list which you have blocked." +msgstr "" + +#: src/components/moderation/ModerationDetailsDialog.tsx:85 +msgid "This user is included in the <0>{0} list which you have muted." msgstr "" #: src/view/com/modals/ModerationDetails.tsx:74 #~ msgid "This user is included the <0/> list which you have muted." #~ msgstr "" +#: src/view/com/profile/ProfileFollows.tsx:94 +msgid "This user isn't following anyone." +msgstr "" + #: src/view/com/modals/SelfLabel.tsx:137 msgid "This warning is only available for posts with media attached." msgstr "Esta advertencia sólo está disponible para las publicaciones con medios adjuntos." -#: src/components/dialogs/MutedWords.tsx:285 +#: src/components/dialogs/MutedWords.tsx:284 msgid "This will delete {0} from your muted words. You can always add it back later." msgstr "" #: src/view/com/util/forms/PostDropdownBtn.tsx:282 -msgid "This will hide this post from your feeds." -msgstr "Esto ocultará esta entrada de tus contenidos." +#~ msgid "This will hide this post from your feeds." +#~ msgstr "Esto ocultará esta entrada de tus contenidos." + +#: src/view/screens/Settings/index.tsx:570 +msgid "Thread preferences" +msgstr "" #: src/view/screens/PreferencesThreads.tsx:53 -#: src/view/screens/Settings/index.tsx:565 +#: src/view/screens/Settings/index.tsx:580 msgid "Thread Preferences" msgstr "Preferencias de hilos" @@ -4281,10 +5144,14 @@ msgstr "Preferencias de hilos" msgid "Threaded Mode" msgstr "Modo con hilos" -#: src/Navigation.tsx:257 +#: src/Navigation.tsx:269 msgid "Threads Preferences" msgstr "" +#: src/components/ReportDialog/SelectLabelerView.tsx:35 +msgid "To whom would you like to send this report?" +msgstr "" + #: src/components/dialogs/MutedWords.tsx:113 msgid "Toggle between muted word options." msgstr "" @@ -4293,14 +5160,18 @@ msgstr "" msgid "Toggle dropdown" msgstr "Conmutar el menú desplegable" +#: src/screens/Moderation/index.tsx:334 +msgid "Toggle to enable or disable adult content" +msgstr "" + #: src/view/com/modals/EditImage.tsx:271 msgid "Transformations" msgstr "Transformaciones" -#: src/view/com/post-thread/PostThreadItem.tsx:685 -#: src/view/com/post-thread/PostThreadItem.tsx:687 -#: src/view/com/util/forms/PostDropdownBtn.tsx:215 -#: src/view/com/util/forms/PostDropdownBtn.tsx:217 +#: src/view/com/post-thread/PostThreadItem.tsx:644 +#: src/view/com/post-thread/PostThreadItem.tsx:646 +#: src/view/com/util/forms/PostDropdownBtn.tsx:212 +#: src/view/com/util/forms/PostDropdownBtn.tsx:214 msgid "Translate" msgstr "Traducir" @@ -4309,11 +5180,15 @@ msgctxt "action" msgid "Try again" msgstr "Intentar nuevamente" -#: src/view/screens/ProfileList.tsx:506 +#: src/view/com/modals/ChangeHandle.tsx:429 +msgid "Type:" +msgstr "" + +#: src/view/screens/ProfileList.tsx:478 msgid "Un-block list" msgstr "Desbloquear una lista" -#: src/view/screens/ProfileList.tsx:491 +#: src/view/screens/ProfileList.tsx:461 msgid "Un-mute list" msgstr "Desactivar la opción de silenciar la lista" @@ -4325,21 +5200,28 @@ msgstr "Desactivar la opción de silenciar la lista" msgid "Unable to contact your service. Please check your Internet connection." msgstr "No se puede contactar con tu servicio. Comprueba tu conexión a Internet." -#: src/view/com/profile/ProfileHeader.tsx:433 -#: src/view/screens/ProfileList.tsx:590 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:174 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:278 +#: src/view/com/profile/ProfileMenu.tsx:361 +#: src/view/screens/ProfileList.tsx:572 msgid "Unblock" msgstr "Desbloquear" -#: src/view/com/profile/ProfileHeader.tsx:436 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:179 msgctxt "action" msgid "Unblock" msgstr "" -#: src/view/com/profile/ProfileHeader.tsx:261 -#: src/view/com/profile/ProfileHeader.tsx:345 +#: src/view/com/profile/ProfileMenu.tsx:299 +#: src/view/com/profile/ProfileMenu.tsx:305 msgid "Unblock Account" msgstr "Desbloquear una cuenta" +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:272 +#: src/view/com/profile/ProfileMenu.tsx:343 +msgid "Unblock Account?" +msgstr "" + #: src/view/com/modals/Repost.tsx:42 #: src/view/com/modals/Repost.tsx:55 #: src/view/com/util/post-ctrls/RepostButton.tsx:60 @@ -4347,25 +5229,39 @@ msgstr "Desbloquear una cuenta" msgid "Undo repost" msgstr "Deshacer esta publicación" -#: src/view/com/profile/FollowButton.tsx:55 +#: src/view/com/auth/onboarding/RecommendedFollowsItem.tsx:141 +#: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:246 +msgid "Unfollow" +msgstr "" + +#: src/view/com/profile/FollowButton.tsx:60 msgctxt "action" msgid "Unfollow" msgstr "" -#: src/view/com/profile/ProfileHeader.tsx:485 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:213 msgid "Unfollow {0}" msgstr "" +#: src/view/com/profile/ProfileMenu.tsx:241 +#: src/view/com/profile/ProfileMenu.tsx:251 +msgid "Unfollow Account" +msgstr "" + #: src/view/com/auth/create/state.ts:262 msgid "Unfortunately, you do not meet the requirements to create an account." msgstr "Lamentablemente, no cumples los requisitos para crear una cuenta." -#: src/view/com/util/post-ctrls/PostCtrls.tsx:182 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:185 msgid "Unlike" msgstr "" +#: src/view/screens/ProfileFeed.tsx:572 +msgid "Unlike this feed" +msgstr "" + #: src/components/TagMenu/index.tsx:249 -#: src/view/screens/ProfileList.tsx:597 +#: src/view/screens/ProfileList.tsx:579 msgid "Unmute" msgstr "" @@ -4373,7 +5269,8 @@ msgstr "" msgid "Unmute {truncatedTag}" msgstr "" -#: src/view/com/profile/ProfileHeader.tsx:326 +#: src/view/com/profile/ProfileMenu.tsx:278 +#: src/view/com/profile/ProfileMenu.tsx:284 msgid "Unmute Account" msgstr "Desactivar la opción de silenciar la cuenta" @@ -4390,17 +5287,33 @@ msgstr "" msgid "Unmute thread" msgstr "Desactivar la opción de silenciar el hilo" -#: src/view/screens/ProfileFeed.tsx:354 -#: src/view/screens/ProfileList.tsx:581 +#: src/view/screens/ProfileFeed.tsx:294 +#: src/view/screens/ProfileList.tsx:563 msgid "Unpin" msgstr "" -#: src/view/screens/ProfileList.tsx:474 +#: src/view/screens/ProfileFeed.tsx:291 +msgid "Unpin from home" +msgstr "" + +#: src/view/screens/ProfileList.tsx:444 msgid "Unpin moderation list" msgstr "Desanclar la lista de moderación" #: src/view/screens/ProfileFeed.tsx:346 -msgid "Unsave" +#~ msgid "Unsave" +#~ msgstr "" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:220 +msgid "Unsubscribe" +msgstr "" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:184 +msgid "Unsubscribe from this labeler" +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:70 +msgid "Unwanted Sexual Content" msgstr "" #: src/view/com/modals/UserAddRemoveLists.tsx:70 @@ -4408,8 +5321,12 @@ msgid "Update {displayName} in Lists" msgstr "Actualizar {displayName} en Listas" #: src/lib/hooks/useOTAUpdate.ts:15 -msgid "Update Available" -msgstr "Actualización disponible" +#~ msgid "Update Available" +#~ msgstr "Actualización disponible" + +#: src/view/com/modals/ChangeHandle.tsx:509 +msgid "Update to {handle}" +msgstr "" #: src/view/com/auth/login/SetNewPasswordForm.tsx:204 msgid "Updating..." @@ -4419,11 +5336,38 @@ msgstr "Actualizando..." msgid "Upload a text file to:" msgstr "Carga un archivo de texto en:" -#: src/view/screens/AppPasswords.tsx:195 +#: src/view/com/util/UserAvatar.tsx:326 +#: src/view/com/util/UserAvatar.tsx:329 +#: src/view/com/util/UserBanner.tsx:116 +#: src/view/com/util/UserBanner.tsx:119 +msgid "Upload from Camera" +msgstr "" + +#: src/view/com/util/UserAvatar.tsx:343 +#: src/view/com/util/UserBanner.tsx:133 +msgid "Upload from Files" +msgstr "" + +#: src/view/com/util/UserAvatar.tsx:337 +#: src/view/com/util/UserAvatar.tsx:341 +#: src/view/com/util/UserBanner.tsx:127 +#: src/view/com/util/UserBanner.tsx:131 +msgid "Upload from Library" +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:409 +msgid "Use a file on your server" +msgstr "" + +#: src/view/screens/AppPasswords.tsx:197 msgid "Use app passwords to login to other Bluesky clients without giving full access to your account or password." msgstr "Utiliza las contraseñas de la app para iniciar sesión en otros clientes Bluesky sin dar acceso completo a tu cuenta o contraseña." -#: src/view/com/modals/ChangeHandle.tsx:515 +#: src/view/com/modals/ChangeHandle.tsx:518 +msgid "Use bsky.social as hosting provider" +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:517 msgid "Use default provider" msgstr "Utiliza un proveedor predeterminado" @@ -4437,6 +5381,10 @@ msgstr "" msgid "Use my default browser" msgstr "" +#: src/view/com/modals/ChangeHandle.tsx:401 +msgid "Use the DNS panel" +msgstr "" + #: src/view/com/modals/AddAppPasswords.tsx:155 msgid "Use this to sign into the other app along with your handle." msgstr "Utilízalo para iniciar sesión en la otra aplicación junto con tu identificador." @@ -4449,15 +5397,24 @@ msgstr "Utilízalo para iniciar sesión en la otra aplicación junto con tu iden msgid "Used by:" msgstr "Usado por:" -#: src/view/com/modals/ModerationDetails.tsx:54 +#: src/components/moderation/ModerationDetailsDialog.tsx:65 +#: src/lib/moderation/useModerationCauseDescription.ts:56 msgid "User Blocked" msgstr "" -#: src/view/com/modals/ModerationDetails.tsx:40 +#: src/lib/moderation/useModerationCauseDescription.ts:48 +msgid "User Blocked by \"{0}\"" +msgstr "" + +#: src/components/moderation/ModerationDetailsDialog.tsx:54 msgid "User Blocked by List" msgstr "" -#: src/view/com/modals/ModerationDetails.tsx:60 +#: src/lib/moderation/useModerationCauseDescription.ts:66 +msgid "User Blocking You" +msgstr "" + +#: src/components/moderation/ModerationDetailsDialog.tsx:71 msgid "User Blocks You" msgstr "" @@ -4470,13 +5427,13 @@ msgstr "Identificador del usuario" msgid "User list by {0}" msgstr "" -#: src/view/screens/ProfileList.tsx:763 +#: src/view/screens/ProfileList.tsx:777 msgid "User list by <0/>" msgstr "" #: src/view/com/lists/ListCard.tsx:83 #: src/view/com/modals/UserAddRemoveLists.tsx:196 -#: src/view/screens/ProfileList.tsx:761 +#: src/view/screens/ProfileList.tsx:775 msgid "User list by you" msgstr "" @@ -4497,7 +5454,7 @@ msgstr "Listas de usuarios" msgid "Username or email address" msgstr "Nombre de usuario o dirección de correo electrónico" -#: src/view/screens/ProfileList.tsx:797 +#: src/view/screens/ProfileList.tsx:811 msgid "Users" msgstr "Usuarios" @@ -4509,19 +5466,31 @@ msgstr "usuarios seguidos por <0/>" msgid "Users in \"{0}\"" msgstr "Usuarios en «{0}»" +#: src/components/LikesDialog.tsx:85 +msgid "Users that have liked this content or profile" +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:437 +msgid "Value:" +msgstr "" + #: src/view/com/auth/create/Step2.tsx:243 #~ msgid "Verification code" #~ msgstr "" -#: src/view/screens/Settings/index.tsx:910 +#: src/view/com/modals/ChangeHandle.tsx:510 +msgid "Verify {0}" +msgstr "" + +#: src/view/screens/Settings/index.tsx:940 msgid "Verify email" msgstr "Verificar el correo electrónico" -#: src/view/screens/Settings/index.tsx:935 +#: src/view/screens/Settings/index.tsx:965 msgid "Verify my email" msgstr "Verificar mi correo electrónico" -#: src/view/screens/Settings/index.tsx:944 +#: src/view/screens/Settings/index.tsx:974 msgid "Verify My Email" msgstr "Verificar mi correo electrónico" @@ -4538,7 +5507,7 @@ msgstr "" msgid "Video Games" msgstr "" -#: src/view/com/profile/ProfileHeader.tsx:662 +#: src/screens/Profile/Header/Shell.tsx:110 msgid "View {0}'s avatar" msgstr "" @@ -4546,11 +5515,23 @@ msgstr "" msgid "View debug entry" msgstr "Ver entrada de depuración" -#: src/view/com/posts/FeedSlice.tsx:103 +#: src/components/ReportDialog/SelectReportOptionView.tsx:133 +msgid "View details" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:128 +msgid "View details for reporting a copyright violation" +msgstr "" + +#: src/view/com/posts/FeedSlice.tsx:99 msgid "View full thread" msgstr "" -#: src/view/com/posts/FeedErrorMessage.tsx:172 +#: src/components/moderation/LabelsOnMe.tsx:51 +msgid "View information about these labels" +msgstr "" + +#: src/view/com/posts/FeedErrorMessage.tsx:166 msgid "View profile" msgstr "" @@ -4558,15 +5539,34 @@ msgstr "" msgid "View the avatar" msgstr "Ver el avatar" +#: src/components/LabelingServiceCard/index.tsx:140 +msgid "View the labeling service provided by @{0}" +msgstr "" + +#: src/view/screens/ProfileFeed.tsx:584 +msgid "View users who like this feed" +msgstr "" + #: src/view/com/modals/LinkWarning.tsx:75 +#: src/view/com/modals/LinkWarning.tsx:77 msgid "Visit Site" msgstr "Visitar el sitio" -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:42 -#: src/view/com/modals/ContentFilteringSettings.tsx:259 +#: src/components/moderation/GlobalModerationLabelPref.tsx:44 +#: src/lib/moderation/useLabelBehaviorDescription.ts:17 +#: src/lib/moderation/useLabelBehaviorDescription.ts:22 +#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:53 msgid "Warn" msgstr "" +#: src/lib/moderation/useLabelBehaviorDescription.ts:48 +msgid "Warn content" +msgstr "" + +#: src/lib/moderation/useLabelBehaviorDescription.ts:46 +msgid "Warn content and filter from feeds" +msgstr "" + #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:134 msgid "We also think you'll like \"For You\" by Skygaze:" msgstr "" @@ -4599,6 +5599,14 @@ msgstr "" msgid "We recommend our \"Discover\" feed:" msgstr "" +#: src/components/dialogs/BirthDateSettings.tsx:52 +msgid "We were unable to load your birth date preferences. Please try again." +msgstr "" + +#: src/screens/Moderation/index.tsx:387 +msgid "We were unable to load your configured labelers at this time." +msgstr "" + #: src/screens/Onboarding/StepInterests/index.tsx:133 msgid "We weren't able to connect. Please try again to continue setting up your account. If it continues to fail, you can skip this flow." msgstr "" @@ -4608,8 +5616,8 @@ msgid "We will let you know when your account is ready." msgstr "" #: src/view/com/modals/AppealLabel.tsx:48 -msgid "We'll look into your appeal promptly." -msgstr "" +#~ msgid "We'll look into your appeal promptly." +#~ msgstr "" #: src/screens/Onboarding/StepInterests/index.tsx:138 msgid "We'll use this to help customize your experience." @@ -4619,7 +5627,7 @@ msgstr "" msgid "We're so excited to have you join us!" msgstr "¡Nos hace mucha ilusión que te unas a nosotros!" -#: src/view/screens/ProfileList.tsx:86 +#: src/view/screens/ProfileList.tsx:89 msgid "We're sorry, but we were unable to resolve this list. If this persists, please contact the list creator, @{handleOrDid}." msgstr "" @@ -4627,16 +5635,20 @@ msgstr "" msgid "We're sorry, but we weren't able to load your muted words at this time. Please try again." msgstr "" -#: src/view/screens/Search/Search.tsx:254 +#: src/view/screens/Search/Search.tsx:255 msgid "We're sorry, but your search could not be completed. Please try again in a few minutes." msgstr "Lo sentimos, pero no se ha podido completar tu búsqueda. Vuelve a intentarlo dentro de unos minutos." -#: src/components/Lists.tsx:211 +#: src/components/Lists.tsx:194 #: src/view/screens/NotFound.tsx:48 msgid "We're sorry! We can't find the page you were looking for." msgstr "Lo sentimos. No encontramos la página que buscabas." -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:46 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:319 +msgid "We're sorry! You can only subscribe to ten labelers, and you've reached your limit of ten." +msgstr "" + +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:48 msgid "Welcome to <0>Bluesky" msgstr "Bienvenido a <0>Bluesky" @@ -4645,11 +5657,11 @@ msgid "What are your interests?" msgstr "" #: src/view/com/modals/report/Modal.tsx:169 -msgid "What is the issue with this {collectionName}?" -msgstr "¿Cuál es el problema con esta {collectionName}?" +#~ msgid "What is the issue with this {collectionName}?" +#~ msgstr "¿Cuál es el problema con esta {collectionName}?" #: src/view/com/auth/SplashScreen.tsx:59 -#: src/view/com/composer/Composer.tsx:286 +#: src/view/com/composer/Composer.tsx:295 msgid "What's up?" msgstr "¿Qué hay de nuevo?" @@ -4666,16 +5678,36 @@ msgstr "¿Qué idiomas te gustaría ver en tus noticias algorítmicas?" msgid "Who can reply" msgstr "Quién puede responder" +#: src/components/ReportDialog/SelectReportOptionView.tsx:44 +msgid "Why should this content be reviewed?" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:57 +msgid "Why should this feed be reviewed?" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:54 +msgid "Why should this list be reviewed?" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:51 +msgid "Why should this post be reviewed?" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:48 +msgid "Why should this user be reviewed?" +msgstr "" + #: src/view/com/modals/crop-image/CropImage.web.tsx:102 msgid "Wide" msgstr "Ancho" -#: src/view/com/composer/Composer.tsx:422 +#: src/view/com/composer/Composer.tsx:435 msgid "Write post" msgstr "Redactar una publicación" -#: src/view/com/composer/Composer.tsx:285 -#: src/view/com/composer/Prompt.tsx:33 +#: src/view/com/composer/Composer.tsx:294 +#: src/view/com/composer/Prompt.tsx:37 msgid "Write your reply" msgstr "Redactar tu respuesta" @@ -4705,6 +5737,10 @@ msgstr "Sí" msgid "You are in line." msgstr "" +#: src/view/com/profile/ProfileFollows.tsx:93 +msgid "You are not following anyone." +msgstr "" + #: src/view/com/posts/FollowingEmptyState.tsx:67 #: src/view/com/posts/FollowingEndOfFeed.tsx:68 msgid "You can also discover new Custom Feeds to follow." @@ -4723,6 +5759,10 @@ msgstr "" msgid "You can now sign in with your new password." msgstr "Ahora puedes iniciar sesión con tu nueva contraseña." +#: src/view/com/profile/ProfileFollowers.tsx:94 +msgid "You do not have any followers." +msgstr "" + #: src/view/com/modals/InviteCodes.tsx:66 msgid "You don't have any invite codes yet! We'll send you some when you've been on Bluesky for a little longer." msgstr "¡Aún no tienes códigos de invitación! Te enviaremos algunos cuando lleves un poco más de tiempo en Bluesky." @@ -4739,11 +5779,13 @@ msgstr "¡No tienes ninguna noticia guardada!" msgid "You don't have any saved feeds." msgstr "No tienes ninguna noticia guardada." -#: src/view/com/post-thread/PostThread.tsx:465 +#: src/view/com/post-thread/PostThread.tsx:159 msgid "You have blocked the author or you have been blocked by the author." msgstr "Has bloqueado al autor o has sido bloqueado por el autor." -#: src/view/com/modals/ModerationDetails.tsx:56 +#: src/components/moderation/ModerationDetailsDialog.tsx:67 +#: src/lib/moderation/useModerationCauseDescription.ts:50 +#: src/lib/moderation/useModerationCauseDescription.ts:58 msgid "You have blocked this user. You cannot view their content." msgstr "" @@ -4754,10 +5796,27 @@ msgstr "" msgid "You have entered an invalid code. It should look like XXXXX-XXXXX." msgstr "" -#: src/view/com/modals/ModerationDetails.tsx:87 -msgid "You have muted this user." +#: src/lib/moderation/useModerationCauseDescription.ts:109 +msgid "You have hidden this post" +msgstr "" + +#: src/components/moderation/ModerationDetailsDialog.tsx:102 +msgid "You have hidden this post." msgstr "" +#: src/components/moderation/ModerationDetailsDialog.tsx:95 +#: src/lib/moderation/useModerationCauseDescription.ts:92 +msgid "You have muted this account." +msgstr "" + +#: src/lib/moderation/useModerationCauseDescription.ts:86 +msgid "You have muted this user" +msgstr "" + +#: src/view/com/modals/ModerationDetails.tsx:87 +#~ msgid "You have muted this user." +#~ msgstr "" + #: src/view/com/feeds/ProfileFeedgens.tsx:136 msgid "You have no feeds." msgstr "No tienes noticias." @@ -4768,34 +5827,50 @@ msgid "You have no lists." msgstr "No tienes listas." #: src/view/screens/ModerationBlockedAccounts.tsx:132 -msgid "You have not blocked any accounts yet. To block an account, go to their profile and selected \"Block account\" from the menu on their account." -msgstr "Aún no has bloqueado ninguna cuenta. Para bloquear una cuenta, ve a su perfil y selecciona \"Bloquear cuenta\" en el menú de su cuenta." +msgid "You have not blocked any accounts yet. To block an account, go to their profile and select \"Block account\" from the menu on their account." +msgstr "" + +#: src/view/screens/ModerationBlockedAccounts.tsx:132 +#~ msgid "You have not blocked any accounts yet. To block an account, go to their profile and selected \"Block account\" from the menu on their account." +#~ msgstr "Aún no has bloqueado ninguna cuenta. Para bloquear una cuenta, ve a su perfil y selecciona \"Bloquear cuenta\" en el menú de su cuenta." -#: src/view/screens/AppPasswords.tsx:87 +#: src/view/screens/AppPasswords.tsx:89 msgid "You have not created any app passwords yet. You can create one by pressing the button below." msgstr "Aún no has creado ninguna contraseña de aplicación. Puedes crear una pulsando el botón de abajo." #: src/view/screens/ModerationMutedAccounts.tsx:131 -msgid "You have not muted any accounts yet. To mute an account, go to their profile and selected \"Mute account\" from the menu on their account." -msgstr "Aún no has silenciado ninguna cuenta. Para silenciar una cuenta, ve a su perfil y selecciona \"Silenciar cuenta\" en el menú de su cuenta." +msgid "You have not muted any accounts yet. To mute an account, go to their profile and select \"Mute account\" from the menu on their account." +msgstr "" + +#: src/view/screens/ModerationMutedAccounts.tsx:131 +#~ msgid "You have not muted any accounts yet. To mute an account, go to their profile and selected \"Mute account\" from the menu on their account." +#~ msgstr "Aún no has silenciado ninguna cuenta. Para silenciar una cuenta, ve a su perfil y selecciona \"Silenciar cuenta\" en el menú de su cuenta." #: src/components/dialogs/MutedWords.tsx:250 msgid "You haven't muted any words or tags yet" msgstr "" -#: src/view/com/modals/ContentFilteringSettings.tsx:175 -msgid "You must be 18 or older to enable adult content." +#: src/components/moderation/LabelsOnMeDialog.tsx:69 +msgid "You may appeal these labels if you feel they were placed in error." msgstr "" -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:103 +#: src/view/com/modals/ContentFilteringSettings.tsx:175 +#~ msgid "You must be 18 or older to enable adult content." +#~ msgstr "" + +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:110 msgid "You must be 18 years or older to enable adult content" msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:147 +#: src/components/ReportDialog/SubmitView.tsx:205 +msgid "You must select at least one labeler for a report" +msgstr "" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:144 msgid "You will no longer receive notifications for this thread" msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:150 +#: src/view/com/util/forms/PostDropdownBtn.tsx:147 msgid "You will now receive notifications for this thread" msgstr "" @@ -4803,7 +5878,7 @@ msgstr "" msgid "You will receive an email with a \"reset code.\" Enter that code here, then enter your new password." msgstr "Recibirás un correo electrónico con un \"código de restablecimiento\". Introduce ese código aquí y, a continuación, introduce tu nueva contraseña." -#: src/screens/Onboarding/StepModeration/index.tsx:72 +#: src/screens/Onboarding/StepModeration/index.tsx:59 msgid "You're in control" msgstr "" @@ -4817,6 +5892,11 @@ msgstr "" msgid "You're ready to go!" msgstr "" +#: src/components/moderation/ModerationDetailsDialog.tsx:99 +#: src/lib/moderation/useModerationCauseDescription.ts:101 +msgid "You've chosen to hide a word or tag within this post." +msgstr "" + #: src/view/com/posts/FollowingEndOfFeed.tsx:48 msgid "You've reached the end of your feed! Find some more accounts to follow." msgstr "" @@ -4885,26 +5965,26 @@ msgstr "" msgid "Your muted words" msgstr "" -#: src/view/com/modals/ChangePassword.tsx:155 +#: src/view/com/modals/ChangePassword.tsx:157 msgid "Your password has been changed successfully!" msgstr "" -#: src/view/com/composer/Composer.tsx:274 +#: src/view/com/composer/Composer.tsx:283 msgid "Your post has been published" msgstr "" #: src/screens/Onboarding/StepFinished.tsx:105 #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:59 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:59 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:61 msgid "Your posts, likes, and blocks are public. Mutes are private." msgstr "Tus publicaciones, Me gustas y bloqueos son públicos. Las cuentas silenciadas son privadas." -#: src/view/com/modals/SwitchAccount.tsx:84 -#: src/view/screens/Settings/index.tsx:118 +#: src/view/com/modals/SwitchAccount.tsx:88 +#: src/view/screens/Settings/index.tsx:123 msgid "Your profile" msgstr "Tu perfil" -#: src/view/com/composer/Composer.tsx:273 +#: src/view/com/composer/Composer.tsx:282 msgid "Your reply has been published" msgstr "" diff --git a/src/locale/locales/fi/messages.po b/src/locale/locales/fi/messages.po index f5b40f4214..9d3494cb8c 100644 --- a/src/locale/locales/fi/messages.po +++ b/src/locale/locales/fi/messages.po @@ -9,7 +9,7 @@ msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" "PO-Revision-Date: \n" -"Last-Translator:@jaoler.fi\n" +"Last-Translator: @jaoler.fi\n" "Language-Team: @pekka.bsky.social,@jaoler.fi,@rahi.bsky.social\n" "Plural-Forms: \n" @@ -21,7 +21,7 @@ msgstr "(ei sähköpostiosoitetta)" #~ msgid "{0, plural, one {# invite code available} other {# invite codes available}}" #~ msgstr "" -#: src/view/com/profile/ProfileHeader.tsx:593 +#: src/screens/Profile/Header/Metrics.tsx:45 msgid "{following} following" msgstr "{following} seuraajaa" @@ -39,7 +39,7 @@ msgstr "{following} seuraajaa" #~ msgid "{invitesAvailable} invite codes available" #~ msgstr "" -#: src/view/shell/Drawer.tsx:440 +#: src/view/shell/Drawer.tsx:443 msgid "{numUnreadNotifications} unread" msgstr "{numUnreadNotifications} lukematonta" @@ -47,7 +47,11 @@ msgstr "{numUnreadNotifications} lukematonta" msgid "<0/> members" msgstr "<0/> jäsentä" -#: src/view/com/profile/ProfileHeader.tsx:595 +#: src/view/shell/Drawer.tsx:97 +msgid "<0>{0} following" +msgstr "" + +#: src/screens/Profile/Header/Metrics.tsx:46 msgid "<0>{following} <1>following" msgstr "<0>{following} <1>seuraajaa" @@ -63,51 +67,60 @@ msgstr "<0>Seuraa joitakin<1>suositeltuja<2>käyttäjiä" msgid "<0>Welcome to<1>Bluesky" msgstr "<0>Tervetuloa<1>Blueskyhin" -#: src/view/com/profile/ProfileHeader.tsx:558 +#: src/screens/Profile/Header/Handle.tsx:42 msgid "⚠Invalid Handle" msgstr "⚠Virheellinen käyttäjätunnus" #: src/view/com/util/moderation/LabelInfo.tsx:45 -msgid "A content warning has been applied to this {0}." -msgstr "Tämä {0} sisältää sisältövaroituksen." +#~ msgid "A content warning has been applied to this {0}." +#~ msgstr "Tämä {0} sisältää sisältövaroituksen." #: src/lib/hooks/useOTAUpdate.ts:16 -msgid "A new version of the app is available. Please update to continue using the app." -msgstr "Sovelluksen uusi versio on saatavilla. Päivitä jatkaaksesi sovelluksen käyttöä." +#~ msgid "A new version of the app is available. Please update to continue using the app." +#~ msgstr "Sovelluksen uusi versio on saatavilla. Päivitä jatkaaksesi sovelluksen käyttöä." -#: src/view/com/util/ViewHeader.tsx:83 -#: src/view/screens/Search/Search.tsx:647 +#: src/view/com/util/ViewHeader.tsx:89 +#: src/view/screens/Search/Search.tsx:648 msgid "Access navigation links and settings" msgstr "Siirry navigointilinkkeihin ja asetuksiin" -#: src/view/com/home/HomeHeaderLayoutMobile.tsx:51 +#: src/view/com/home/HomeHeaderLayoutMobile.tsx:52 msgid "Access profile and other navigation links" msgstr "Siirry profiiliin ja muihin navigointilinkkeihin" #: src/view/com/modals/EditImage.tsx:299 -#: src/view/screens/Settings/index.tsx:451 +#: src/view/screens/Settings/index.tsx:466 msgid "Accessibility" msgstr "Saavutettavuus" +#: src/components/moderation/LabelsOnMe.tsx:42 +msgid "account" +msgstr "" + #: src/view/com/auth/login/LoginForm.tsx:166 -#: src/view/screens/Settings/index.tsx:308 -#: src/view/screens/Settings/index.tsx:721 +#: src/view/screens/Settings/index.tsx:323 +#: src/view/screens/Settings/index.tsx:739 msgid "Account" msgstr "Tili" -#: src/view/com/profile/ProfileHeader.tsx:246 +#: src/view/com/profile/ProfileMenu.tsx:139 msgid "Account blocked" msgstr "Tili on estetty" -#: src/view/com/profile/ProfileHeader.tsx:213 +#: src/view/com/profile/ProfileMenu.tsx:153 +msgid "Account followed" +msgstr "" + +#: src/view/com/profile/ProfileMenu.tsx:113 msgid "Account muted" msgstr "Tili on hiljennetty" -#: src/view/com/modals/ModerationDetails.tsx:86 +#: src/components/moderation/ModerationDetailsDialog.tsx:94 +#: src/lib/moderation/useModerationCauseDescription.ts:91 msgid "Account Muted" msgstr "Tili on hiljennetty" -#: src/view/com/modals/ModerationDetails.tsx:72 +#: src/components/moderation/ModerationDetailsDialog.tsx:83 msgid "Account Muted by List" msgstr "Tili on hiljennetty listalla" @@ -119,19 +132,24 @@ msgstr "Tilin asetukset" msgid "Account removed from quick access" msgstr "Tili poistettu pikalinkeistä" -#: src/view/com/profile/ProfileHeader.tsx:268 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:130 +#: src/view/com/profile/ProfileMenu.tsx:128 msgid "Account unblocked" msgstr "Tilin esto poistettu" -#: src/view/com/profile/ProfileHeader.tsx:226 +#: src/view/com/profile/ProfileMenu.tsx:166 +msgid "Account unfollowed" +msgstr "" + +#: src/view/com/profile/ProfileMenu.tsx:102 msgid "Account unmuted" msgstr "Tilin hiljennys poistettu" -#: src/components/dialogs/MutedWords.tsx:147 +#: src/components/dialogs/MutedWords.tsx:165 #: src/view/com/auth/onboarding/RecommendedFeedsItem.tsx:150 -#: src/view/com/modals/ListAddRemoveUsers.tsx:264 +#: src/view/com/modals/ListAddRemoveUsers.tsx:268 #: src/view/com/modals/UserAddRemoveLists.tsx:219 -#: src/view/screens/ProfileList.tsx:812 +#: src/view/screens/ProfileList.tsx:827 msgid "Add" msgstr "Lisää" @@ -139,12 +157,12 @@ msgstr "Lisää" msgid "Add a content warning" msgstr "Lisää sisältövaroitus" -#: src/view/screens/ProfileList.tsx:802 +#: src/view/screens/ProfileList.tsx:817 msgid "Add a user to this list" msgstr "Lisää käyttäjä tähän listaan" -#: src/view/screens/Settings/index.tsx:383 -#: src/view/screens/Settings/index.tsx:392 +#: src/view/screens/Settings/index.tsx:398 +#: src/view/screens/Settings/index.tsx:407 msgid "Add account" msgstr "Lisää tili" @@ -154,34 +172,34 @@ msgstr "Lisää tili" msgid "Add alt text" msgstr "Lisää ALT-teksti" -#: src/view/screens/AppPasswords.tsx:102 -#: src/view/screens/AppPasswords.tsx:143 -#: src/view/screens/AppPasswords.tsx:156 +#: src/view/screens/AppPasswords.tsx:104 +#: src/view/screens/AppPasswords.tsx:145 +#: src/view/screens/AppPasswords.tsx:158 msgid "Add App Password" msgstr "Lisää sovelluksen salasana" #: src/view/com/modals/report/InputIssueDetails.tsx:41 #: src/view/com/modals/report/Modal.tsx:191 -msgid "Add details" -msgstr "Lisää tiedot" +#~ msgid "Add details" +#~ msgstr "Lisää tiedot" #: src/view/com/modals/report/Modal.tsx:194 -msgid "Add details to report" -msgstr "Lisää tiedot raporttiin" +#~ msgid "Add details to report" +#~ msgstr "Lisää tiedot raporttiin" -#: src/view/com/composer/Composer.tsx:453 +#: src/view/com/composer/Composer.tsx:466 msgid "Add link card" msgstr "Lisää linkkikortti" -#: src/view/com/composer/Composer.tsx:458 +#: src/view/com/composer/Composer.tsx:471 msgid "Add link card:" msgstr "Lisää linkkikortti:" -#: src/components/dialogs/MutedWords.tsx:140 +#: src/components/dialogs/MutedWords.tsx:158 msgid "Add mute word for configured settings" msgstr "Lisää hiljennetty sana määritettyihin asetuksiin" -#: src/components/dialogs/MutedWords.tsx:74 +#: src/components/dialogs/MutedWords.tsx:87 msgid "Add muted words and tags" msgstr "Lisää hiljennetyt sanat ja tunnisteet" @@ -189,12 +207,12 @@ msgstr "Lisää hiljennetyt sanat ja tunnisteet" msgid "Add the following DNS record to your domain:" msgstr "Lisää seuraava DNS-merkintä verkkotunnukseesi:" -#: src/view/com/profile/ProfileHeader.tsx:310 +#: src/view/com/profile/ProfileMenu.tsx:263 +#: src/view/com/profile/ProfileMenu.tsx:266 msgid "Add to Lists" msgstr "Lisää listoihin" -#: src/view/com/feeds/FeedSourceCard.tsx:245 -#: src/view/screens/ProfileFeed.tsx:273 +#: src/view/com/feeds/FeedSourceCard.tsx:234 msgid "Add to my feeds" msgstr "Lisää syötteisiini" @@ -207,7 +225,7 @@ msgstr "Lisätty" msgid "Added to list" msgstr "Lisätty listaan" -#: src/view/com/feeds/FeedSourceCard.tsx:127 +#: src/view/com/feeds/FeedSourceCard.tsx:108 msgid "Added to my feeds" msgstr "Lisätty syötteisiini" @@ -215,19 +233,25 @@ msgstr "Lisätty syötteisiini" msgid "Adjust the number of likes a reply must have to be shown in your feed." msgstr "Säädä, kuinka monta tykkäystä vastauksen on saatava näkyäkseen syötteessäsi." +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:117 #: src/view/com/modals/SelfLabel.tsx:75 msgid "Adult Content" msgstr "Aikuissisältöä" #: src/view/com/modals/ContentFilteringSettings.tsx:141 -msgid "Adult content can only be enabled via the Web at <0/>." -msgstr "Aikuissisältö voidaan ottaa käyttöön vain verkon kautta osoitteessa <0/>." +#~ msgid "Adult content can only be enabled via the Web at <0/>." +#~ msgstr "Aikuissisältö voidaan ottaa käyttöön vain verkon kautta osoitteessa <0/>." #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:78 #~ msgid "Adult content can only be enabled via the Web at <0>bsky.app." #~ msgstr "" -#: src/view/screens/Settings/index.tsx:664 +#: src/components/moderation/ModerationLabelPref.tsx:114 +msgid "Adult content is disabled." +msgstr "" + +#: src/screens/Moderation/index.tsx:377 +#: src/view/screens/Settings/index.tsx:680 msgid "Advanced" msgstr "Edistynyt" @@ -236,11 +260,11 @@ msgid "All the feeds you've saved, right in one place." msgstr "Kaikki tallentamasi syötteet yhdessä paikassa." #: src/view/com/auth/login/ForgotPasswordForm.tsx:221 -#: src/view/com/modals/ChangePassword.tsx:168 +#: src/view/com/modals/ChangePassword.tsx:170 msgid "Already have a code?" msgstr "Onko sinulla jo koodi?" -#: src/view/com/auth/login/ChooseAccountForm.tsx:98 +#: src/view/com/auth/login/ChooseAccountForm.tsx:102 msgid "Already signed in as @{0}" msgstr "Kirjautuneena sisään nimellä @{0}" @@ -264,12 +288,18 @@ msgstr "Sähköposti on lähetetty osoitteeseen {0}. Siinä on vahvistuskoodi, j msgid "An email has been sent to your previous address, {0}. It includes a confirmation code which you can enter below." msgstr "Sähköposti on lähetetty aiempaan osoitteeseesi, {0}. Siinä on vahvistuskoodi, jonka voit syöttää alla." -#: src/view/com/profile/FollowButton.tsx:30 -#: src/view/com/profile/FollowButton.tsx:40 +#: src/lib/moderation/useReportOptions.ts:26 +msgid "An issue not included in these options" +msgstr "" + +#: src/view/com/profile/FollowButton.tsx:35 +#: src/view/com/profile/FollowButton.tsx:45 +#: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:188 +#: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:198 msgid "An issue occurred, please try again." msgstr "Tapahtui virhe, yritä uudelleen." -#: src/view/com/notifications/FeedItem.tsx:236 +#: src/view/com/notifications/FeedItem.tsx:240 #: src/view/com/threadgate/WhoCanReply.tsx:178 msgid "and" msgstr "ja" @@ -278,11 +308,15 @@ msgstr "ja" msgid "Animals" msgstr "Eläimet" +#: src/lib/moderation/useReportOptions.ts:31 +msgid "Anti-Social Behavior" +msgstr "" + #: src/view/screens/LanguageSettings.tsx:95 msgid "App Language" msgstr "Sovelluksen kieli" -#: src/view/screens/AppPasswords.tsx:228 +#: src/view/screens/AppPasswords.tsx:223 msgid "App password deleted" msgstr "Sovelluksen salasana poistettu" @@ -294,7 +328,7 @@ msgstr "Sovelluksen salasanan nimet voivat sisältää vain kirjaimia, numeroita msgid "App Password names must be at least 4 characters long." msgstr "Sovelluksen salasanojen nimien on oltava vähintään 4 merkkiä pitkiä." -#: src/view/screens/Settings/index.tsx:675 +#: src/view/screens/Settings/index.tsx:691 msgid "App password settings" msgstr "Sovelluksen salasanan asetukset" @@ -302,48 +336,64 @@ msgstr "Sovelluksen salasanan asetukset" #~ msgid "App passwords" #~ msgstr "" -#: src/Navigation.tsx:237 -#: src/view/screens/AppPasswords.tsx:187 -#: src/view/screens/Settings/index.tsx:684 +#: src/Navigation.tsx:251 +#: src/view/screens/AppPasswords.tsx:189 +#: src/view/screens/Settings/index.tsx:700 msgid "App Passwords" msgstr "Sovellussalasanat" +#: src/components/moderation/LabelsOnMeDialog.tsx:134 +#: src/components/moderation/LabelsOnMeDialog.tsx:137 +msgid "Appeal" +msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:202 +msgid "Appeal \"{0}\" label" +msgstr "" + #: src/view/com/util/forms/PostDropdownBtn.tsx:295 -msgid "Appeal content warning" -msgstr "Valita sisältövaroituksesta" +#~ msgid "Appeal content warning" +#~ msgstr "Valita sisältövaroituksesta" #: src/view/com/modals/AppealLabel.tsx:65 -msgid "Appeal Content Warning" -msgstr "Valita sisältövaroituksesta" +#~ msgid "Appeal Content Warning" +#~ msgstr "Valita sisältövaroituksesta" + +#: src/components/moderation/LabelsOnMeDialog.tsx:193 +msgid "Appeal submitted." +msgstr "" #: src/view/com/util/moderation/LabelInfo.tsx:52 -msgid "Appeal this decision" -msgstr "Valita tästä päätöksestä" +#~ msgid "Appeal this decision" +#~ msgstr "Valita tästä päätöksestä" #: src/view/com/util/moderation/LabelInfo.tsx:56 -msgid "Appeal this decision." -msgstr "Valita tästä päätöksestä." +#~ msgid "Appeal this decision." +#~ msgstr "Valita tästä päätöksestä." -#: src/view/screens/Settings/index.tsx:466 +#: src/view/screens/Settings/index.tsx:481 msgid "Appearance" msgstr "Ulkonäkö" -#: src/view/screens/AppPasswords.tsx:224 +#: src/view/screens/AppPasswords.tsx:265 msgid "Are you sure you want to delete the app password \"{name}\"?" msgstr "Haluatko varmasti poistaa sovellussalasanan \"{name}\"?" -#: src/view/com/composer/Composer.tsx:150 +#: src/view/com/feeds/FeedSourceCard.tsx:280 +msgid "Are you sure you want to remove {0} from your feeds?" +msgstr "" + +#: src/view/com/composer/Composer.tsx:508 msgid "Are you sure you'd like to discard this draft?" msgstr "Haluatko varmasti hylätä tämän luonnoksen?" -#: src/components/dialogs/MutedWords.tsx:233 -#: src/view/screens/ProfileList.tsx:365 +#: src/components/dialogs/MutedWords.tsx:282 msgid "Are you sure?" msgstr "Oletko varma?" #: src/view/com/util/forms/PostDropdownBtn.tsx:278 -msgid "Are you sure? This cannot be undone." -msgstr "Oletko varma? Tätä ei voi perua." +#~ msgid "Are you sure? This cannot be undone." +#~ msgstr "Oletko varma? Tätä ei voi perua." #: src/view/com/composer/select-language/SuggestedLanguage.tsx:60 msgid "Are you writing in <0>{0}?" @@ -357,78 +407,86 @@ msgstr "Taide" msgid "Artistic or non-erotic nudity." msgstr "Taiteellinen tai ei-eroottinen alastomuus." +#: src/components/moderation/LabelsOnMeDialog.tsx:247 +#: src/components/moderation/LabelsOnMeDialog.tsx:248 +#: src/screens/Profile/Header/Shell.tsx:97 #: src/view/com/auth/create/CreateAccount.tsx:158 -#: src/view/com/auth/login/ChooseAccountForm.tsx:151 +#: src/view/com/auth/login/ChooseAccountForm.tsx:155 #: src/view/com/auth/login/ForgotPasswordForm.tsx:174 #: src/view/com/auth/login/LoginForm.tsx:259 #: src/view/com/auth/login/SetNewPasswordForm.tsx:179 -#: src/view/com/modals/report/InputIssueDetails.tsx:46 -#: src/view/com/post-thread/PostThread.tsx:472 -#: src/view/com/post-thread/PostThread.tsx:522 -#: src/view/com/post-thread/PostThread.tsx:530 -#: src/view/com/profile/ProfileHeader.tsx:649 -#: src/view/com/util/ViewHeader.tsx:81 +#: src/view/com/util/ViewHeader.tsx:87 msgid "Back" msgstr "Takaisin" #: src/view/com/post-thread/PostThread.tsx:480 -msgctxt "action" -msgid "Back" -msgstr "Takaisin" +#~ msgctxt "action" +#~ msgid "Back" +#~ msgstr "Takaisin" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:136 msgid "Based on your interest in {interestsText}" msgstr "Perustuen kiinnostukseesi {interestsText}" -#: src/view/screens/Settings/index.tsx:523 +#: src/view/screens/Settings/index.tsx:538 msgid "Basics" msgstr "Perusasiat" -#: src/view/com/auth/create/Step1.tsx:250 -#: src/view/com/modals/BirthDateSettings.tsx:73 +#: src/components/dialogs/BirthDateSettings.tsx:107 +#: src/view/com/auth/create/Step1.tsx:227 msgid "Birthday" msgstr "Syntymäpäivä" -#: src/view/screens/Settings/index.tsx:340 +#: src/view/screens/Settings/index.tsx:355 msgid "Birthday:" msgstr "Syntymäpäivä:" -#: src/view/com/profile/ProfileHeader.tsx:239 -#: src/view/com/profile/ProfileHeader.tsx:346 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:278 +#: src/view/com/profile/ProfileMenu.tsx:361 +msgid "Block" +msgstr "" + +#: src/view/com/profile/ProfileMenu.tsx:300 +#: src/view/com/profile/ProfileMenu.tsx:307 msgid "Block Account" msgstr "Estä käyttäjä" -#: src/view/screens/ProfileList.tsx:556 +#: src/view/com/profile/ProfileMenu.tsx:344 +msgid "Block Account?" +msgstr "" + +#: src/view/screens/ProfileList.tsx:530 msgid "Block accounts" msgstr "Estä käyttäjät" -#: src/view/screens/ProfileList.tsx:506 +#: src/view/screens/ProfileList.tsx:478 +#: src/view/screens/ProfileList.tsx:634 msgid "Block list" msgstr "Estettyjen lista" -#: src/view/screens/ProfileList.tsx:316 +#: src/view/screens/ProfileList.tsx:629 msgid "Block these accounts?" msgstr "Estetäänkö nämä käyttäjät?" #: src/view/screens/ProfileList.tsx:320 -msgid "Block this List" -msgstr "Estä tämä lista" +#~ msgid "Block this List" +#~ msgstr "Estä tämä lista" #: src/view/com/lists/ListCard.tsx:110 -#: src/view/com/util/post-embeds/QuoteEmbed.tsx:61 +#: src/view/com/util/post-embeds/QuoteEmbed.tsx:55 msgid "Blocked" msgstr "Estetty" -#: src/view/screens/Moderation.tsx:142 +#: src/screens/Moderation/index.tsx:269 msgid "Blocked accounts" msgstr "Estetyt käyttäjät" -#: src/Navigation.tsx:130 +#: src/Navigation.tsx:134 #: src/view/screens/ModerationBlockedAccounts.tsx:107 msgid "Blocked Accounts" msgstr "Estetyt käyttäjät" -#: src/view/com/profile/ProfileHeader.tsx:241 +#: src/view/com/profile/ProfileMenu.tsx:356 msgid "Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you." msgstr "Estetyt käyttäjät eivät voi vastata viesteihisi, mainita sinua tai muuten olla vuorovaikutuksessa kanssasi." @@ -436,15 +494,23 @@ msgstr "Estetyt käyttäjät eivät voi vastata viesteihisi, mainita sinua tai m msgid "Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you. You will not see their content and they will be prevented from seeing yours." msgstr "Estetyt käyttäjät eivät voi vastata viesteihisi, mainita sinua tai muuten olla vuorovaikutuksessa kanssasi. Et näe heidän sisältöään ja he eivät näe sinun sisältöäsi." -#: src/view/com/post-thread/PostThread.tsx:324 +#: src/view/com/post-thread/PostThread.tsx:313 msgid "Blocked post." msgstr "Estetty viesti." -#: src/view/screens/ProfileList.tsx:318 +#: src/screens/Profile/Sections/Labels.tsx:153 +msgid "Blocking does not prevent this labeler from placing labels on your account." +msgstr "" + +#: src/view/screens/ProfileList.tsx:631 msgid "Blocking is public. Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you." msgstr "Estäminen on julkista. Estetyt käyttäjät eivät voi vastata viesteihisi, mainita sinua tai muuten olla vuorovaikutuksessa kanssasi." -#: src/view/com/auth/HomeLoggedOutCTA.tsx:93 +#: src/view/com/profile/ProfileMenu.tsx:353 +msgid "Blocking will not prevent labels from being applied on your account, but it will stop this account from replying in your threads or interacting with you." +msgstr "" + +#: src/view/com/auth/HomeLoggedOutCTA.tsx:97 #: src/view/com/auth/SplashScreen.web.tsx:133 msgid "Blog" msgstr "Blogi" @@ -460,25 +526,25 @@ msgid "Bluesky is an open network where you can choose your hosting provider. Cu msgstr "Bluesky on avoin verkko, jossa voit valita palveluntarjoajasi. Räätälöity palveluntarjoajan määritys on nyt saatavilla betavaiheen kehittäjille." #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:80 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:80 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:82 msgid "Bluesky is flexible." msgstr "Bluesky on joustava." #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:69 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:69 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:71 msgid "Bluesky is open." msgstr "Bluesky on avoin." #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:56 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:56 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:58 msgid "Bluesky is public." msgstr "Bluesky on julkinen." #: src/view/com/modals/Waitlist.tsx:70 -msgid "Bluesky uses invites to build a healthier community. If you don't know anybody with an invite, you can sign up for the waitlist and we'll send one soon." -msgstr "Bluesky käyttää kutsuja rakentaakseen terveellisemmän yhteisön. Jos et tunne ketään, jolla on kutsu, voit ilmoittautua odotuslistalle, niin lähetämme sinulle pian yhden." +#~ msgid "Bluesky uses invites to build a healthier community. If you don't know anybody with an invite, you can sign up for the waitlist and we'll send one soon." +#~ msgstr "Bluesky käyttää kutsuja rakentaakseen terveellisemmän yhteisön. Jos et tunne ketään, jolla on kutsu, voit ilmoittautua odotuslistalle, niin lähetämme sinulle pian yhden." -#: src/view/screens/Moderation.tsx:245 +#: src/screens/Moderation/index.tsx:535 msgid "Bluesky will not show your profile and posts to logged-out users. Other apps may not honor this request. This does not make your account private." msgstr "Bluesky ei näytä profiiliasi ja viestejäsi kirjautumattomille käyttäjille. Toiset sovellukset eivät ehkä noudata tätä asetusta. Tämä ei tee tilistäsi yksityistä." @@ -486,15 +552,23 @@ msgstr "Bluesky ei näytä profiiliasi ja viestejäsi kirjautumattomille käytt #~ msgid "Bluesky.Social" #~ msgstr "" +#: src/lib/moderation/useLabelBehaviorDescription.ts:53 +msgid "Blur images" +msgstr "" + +#: src/lib/moderation/useLabelBehaviorDescription.ts:51 +msgid "Blur images and filter from feeds" +msgstr "" + #: src/screens/Onboarding/index.tsx:33 msgid "Books" msgstr "Kirjat" -#: src/view/screens/Settings/index.tsx:859 +#: src/view/screens/Settings/index.tsx:889 msgid "Build version {0} {1}" msgstr "Versio {0} {1}" -#: src/view/com/auth/HomeLoggedOutCTA.tsx:87 +#: src/view/com/auth/HomeLoggedOutCTA.tsx:91 #: src/view/com/auth/SplashScreen.web.tsx:128 msgid "Business" msgstr "Yritys" @@ -511,17 +585,23 @@ msgstr "käyttäjä —" msgid "by {0}" msgstr "käyttäjältä {0}" +#: src/components/LabelingServiceCard/index.tsx:57 +msgid "By {0}" +msgstr "" + #: src/view/com/profile/ProfileSubpageHeader.tsx:161 msgid "by <0/>" msgstr "käyttäjältä <0/>" +#: src/view/com/auth/create/Policies.tsx:87 +msgid "By creating an account you agree to the {els}." +msgstr "" + #: src/view/com/profile/ProfileSubpageHeader.tsx:159 msgid "by you" msgstr "sinulta" -#: src/view/com/composer/photos/OpenCameraBtn.tsx:60 -#: src/view/com/util/UserAvatar.tsx:224 -#: src/view/com/util/UserBanner.tsx:40 +#: src/view/com/composer/photos/OpenCameraBtn.tsx:77 msgid "Camera" msgstr "Kamera" @@ -529,29 +609,33 @@ msgstr "Kamera" msgid "Can only contain letters, numbers, spaces, dashes, and underscores. Must be at least 4 characters long, but no more than 32 characters long." msgstr "Voi sisältää vain kirjaimia, numeroita, välilyöntejä, viivoja ja alaviivoja. Täytyy olla vähintään 4 merkkiä pitkä, mutta enintään 32 merkkiä pitkä." -#: src/components/Prompt.tsx:91 -#: src/view/com/composer/Composer.tsx:307 -#: src/view/com/composer/Composer.tsx:312 +#: src/components/Menu/index.tsx:213 +#: src/components/Prompt.tsx:116 +#: src/components/Prompt.tsx:118 +#: src/components/TagMenu/index.tsx:268 +#: src/view/com/composer/Composer.tsx:316 +#: src/view/com/composer/Composer.tsx:321 #: src/view/com/modals/ChangeEmail.tsx:218 #: src/view/com/modals/ChangeEmail.tsx:220 -#: src/view/com/modals/ChangePassword.tsx:265 -#: src/view/com/modals/ChangePassword.tsx:268 +#: src/view/com/modals/ChangeHandle.tsx:153 +#: src/view/com/modals/ChangePassword.tsx:267 +#: src/view/com/modals/ChangePassword.tsx:270 #: src/view/com/modals/CreateOrEditList.tsx:355 +#: src/view/com/modals/crop-image/CropImage.web.tsx:137 #: src/view/com/modals/EditImage.tsx:323 #: src/view/com/modals/EditProfile.tsx:249 #: src/view/com/modals/InAppBrowserConsent.tsx:78 +#: src/view/com/modals/InAppBrowserConsent.tsx:80 #: src/view/com/modals/LinkWarning.tsx:87 +#: src/view/com/modals/LinkWarning.tsx:89 #: src/view/com/modals/Repost.tsx:87 #: src/view/com/modals/VerifyEmail.tsx:247 #: src/view/com/modals/VerifyEmail.tsx:253 -#: src/view/com/modals/Waitlist.tsx:142 -#: src/view/screens/Search/Search.tsx:693 -#: src/view/shell/desktop/Search.tsx:238 +#: src/view/screens/Search/Search.tsx:717 +#: src/view/shell/desktop/Search.tsx:239 msgid "Cancel" msgstr "Peruuta" -#: src/view/com/modals/Confirm.tsx:88 -#: src/view/com/modals/Confirm.tsx:91 #: src/view/com/modals/CreateOrEditList.tsx:360 #: src/view/com/modals/DeleteAccount.tsx:156 #: src/view/com/modals/DeleteAccount.tsx:234 @@ -581,25 +665,33 @@ msgid "Cancel quote post" msgstr "Peruuta uudelleenpostaus" #: src/view/com/modals/ListAddRemoveUsers.tsx:87 -#: src/view/shell/desktop/Search.tsx:234 +#: src/view/shell/desktop/Search.tsx:235 msgid "Cancel search" msgstr "Peruuta haku" #: src/view/com/modals/Waitlist.tsx:136 -msgid "Cancel waitlist signup" -msgstr "Peruuta odotuslistalle liittyminen" +#~ msgid "Cancel waitlist signup" +#~ msgstr "Peruuta odotuslistalle liittyminen" + +#: src/view/com/modals/LinkWarning.tsx:88 +msgid "Cancels opening the linked website" +msgstr "" + +#: src/view/com/modals/VerifyEmail.tsx:152 +msgid "Change" +msgstr "" -#: src/view/screens/Settings/index.tsx:334 +#: src/view/screens/Settings/index.tsx:349 msgctxt "action" msgid "Change" msgstr "Vaihda" -#: src/view/screens/Settings/index.tsx:696 +#: src/view/screens/Settings/index.tsx:712 msgid "Change handle" msgstr "Vaihda käyttäjätunnus" #: src/view/com/modals/ChangeHandle.tsx:161 -#: src/view/screens/Settings/index.tsx:705 +#: src/view/screens/Settings/index.tsx:723 msgid "Change Handle" msgstr "Vaihda käyttäjätunnus" @@ -607,11 +699,12 @@ msgstr "Vaihda käyttäjätunnus" msgid "Change my email" msgstr "Vaihda sähköpostiosoitteeni" -#: src/view/screens/Settings/index.tsx:732 +#: src/view/screens/Settings/index.tsx:750 msgid "Change password" msgstr "Vaihda salasana" -#: src/view/screens/Settings/index.tsx:741 +#: src/view/com/modals/ChangePassword.tsx:141 +#: src/view/screens/Settings/index.tsx:761 msgid "Change Password" msgstr "Vaihda salasana" @@ -620,8 +713,8 @@ msgid "Change post language to {0}" msgstr "Vaihda julkaisun kieleksi {0}" #: src/view/screens/Settings/index.tsx:733 -msgid "Change your Bluesky password" -msgstr "Vaihda Bluesky-salasanasi" +#~ msgid "Change your Bluesky password" +#~ msgstr "Vaihda Bluesky-salasanasi" #: src/view/com/modals/ChangeEmail.tsx:109 msgid "Change Your Email" @@ -649,8 +742,8 @@ msgid "Choose \"Everybody\" or \"Nobody\"" msgstr "Valitse \"Kaikki\" tai \"Ei kukaan\"" #: src/view/screens/Settings/index.tsx:697 -msgid "Choose a new Bluesky username or create" -msgstr "Valitse uusi Bluesky-käyttäjätunnus tai luo" +#~ msgid "Choose a new Bluesky username or create" +#~ msgstr "Valitse uusi Bluesky-käyttäjätunnus tai luo" #: src/view/com/auth/server-input/index.tsx:79 msgid "Choose Service" @@ -661,7 +754,7 @@ msgid "Choose the algorithms that power your custom feeds." msgstr "Valitse algoritmit, jotka ohjaavat mukautettuja syötteitäsi." #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:83 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:83 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:85 msgid "Choose the algorithms that power your experience with custom feeds." msgstr "Valitse algoritmit, jotka ohjaavat kokemustasi mukautettujen syötteiden kanssa." @@ -673,53 +766,62 @@ msgstr "Valitse algoritmit, jotka ohjaavat kokemustasi mukautettujen syötteiden msgid "Choose your main feeds" msgstr "Valitse pääsyötteet" -#: src/view/com/auth/create/Step1.tsx:219 +#: src/view/com/auth/create/Step1.tsx:196 msgid "Choose your password" msgstr "Valitse salasanasi" -#: src/view/screens/Settings/index.tsx:834 -#: src/view/screens/Settings/index.tsx:835 +#: src/view/screens/Settings/index.tsx:864 msgid "Clear all legacy storage data" msgstr "Tyhjennä kaikki vanhan tietomallin mukaiset tiedot" -#: src/view/screens/Settings/index.tsx:837 +#: src/view/screens/Settings/index.tsx:867 msgid "Clear all legacy storage data (restart after this)" msgstr "Tyhjennä kaikki vanhan tietomallin tiedot (käynnistä uudelleen tämän jälkeen)" -#: src/view/screens/Settings/index.tsx:846 -#: src/view/screens/Settings/index.tsx:847 +#: src/view/screens/Settings/index.tsx:876 msgid "Clear all storage data" msgstr "Tyhjennä kaikki tallennukset" -#: src/view/screens/Settings/index.tsx:849 +#: src/view/screens/Settings/index.tsx:879 msgid "Clear all storage data (restart after this)" msgstr "Tyhjennä kaikki tallennukset (käynnistä uudelleen tämän jälkeen)" #: src/view/com/util/forms/SearchInput.tsx:88 -#: src/view/screens/Search/Search.tsx:697 +#: src/view/screens/Search/Search.tsx:698 msgid "Clear search query" msgstr "Tyhjennä hakukysely" +#: src/view/screens/Settings/index.tsx:865 +msgid "Clears all legacy storage data" +msgstr "" + +#: src/view/screens/Settings/index.tsx:877 +msgid "Clears all storage data" +msgstr "" + #: src/view/screens/Support.tsx:40 msgid "click here" msgstr "klikkaa tästä" -#: src/components/RichText.tsx:189 -#: src/components/TagMenu/index.web.tsx:125 +#: src/components/TagMenu/index.web.tsx:138 msgid "Click here to open tag menu for {tag}" msgstr "Avaa tästä valikko tunnisteelle {tag}" +#: src/components/RichText.tsx:191 +msgid "Click here to open tag menu for #{tag}" +msgstr "" + #: src/screens/Onboarding/index.tsx:35 msgid "Climate" msgstr "Ilmasto" -#: src/view/com/modals/ChangePassword.tsx:265 -#: src/view/com/modals/ChangePassword.tsx:268 +#: src/view/com/modals/ChangePassword.tsx:267 +#: src/view/com/modals/ChangePassword.tsx:270 msgid "Close" msgstr "Sulje" -#: src/components/Dialog/index.web.tsx:80 -#: src/components/Dialog/index.web.tsx:194 +#: src/components/Dialog/index.web.tsx:84 +#: src/components/Dialog/index.web.tsx:198 msgid "Close active dialog" msgstr "Sulje aktiivinen ikkuna" @@ -727,27 +829,28 @@ msgstr "Sulje aktiivinen ikkuna" msgid "Close alert" msgstr "Sulje hälytys" -#: src/view/com/util/BottomSheetCustomBackdrop.tsx:33 +#: src/view/com/util/BottomSheetCustomBackdrop.tsx:36 msgid "Close bottom drawer" msgstr "Sulje alavalinnat" -#: src/view/com/lightbox/ImageViewing/components/ImageDefaultHeader.tsx:26 +#: src/view/com/lightbox/ImageViewing/components/ImageDefaultHeader.tsx:36 msgid "Close image" msgstr "Sulje kuva" -#: src/view/com/lightbox/Lightbox.web.tsx:119 +#: src/view/com/lightbox/Lightbox.web.tsx:129 msgid "Close image viewer" msgstr "Sulje kuvankatselu" -#: src/view/shell/index.web.tsx:51 +#: src/view/shell/index.web.tsx:55 msgid "Close navigation footer" msgstr "Sulje alanavigointi" -#: src/components/TagMenu/index.tsx:266 +#: src/components/Menu/index.tsx:207 +#: src/components/TagMenu/index.tsx:262 msgid "Close this dialog" msgstr "Sulje tämä valintaikkuna" -#: src/view/shell/index.web.tsx:52 +#: src/view/shell/index.web.tsx:56 msgid "Closes bottom navigation bar" msgstr "Sulkee alanavigaation" @@ -755,15 +858,15 @@ msgstr "Sulkee alanavigaation" msgid "Closes password update alert" msgstr "Sulkee salasanan päivitysilmoituksen" -#: src/view/com/composer/Composer.tsx:309 +#: src/view/com/composer/Composer.tsx:318 msgid "Closes post composer and discards post draft" msgstr "Sulkee editorin ja hylkää luonnoksen" -#: src/view/com/lightbox/ImageViewing/components/ImageDefaultHeader.tsx:27 +#: src/view/com/lightbox/ImageViewing/components/ImageDefaultHeader.tsx:37 msgid "Closes viewer for header image" msgstr "Sulkee kuvan katseluohjelman" -#: src/view/com/notifications/FeedItem.tsx:317 +#: src/view/com/notifications/FeedItem.tsx:321 msgid "Collapses list of users for a given notification" msgstr "Pienentää käyttäjäluettelon annetulle ilmoitukselle" @@ -775,7 +878,7 @@ msgstr "Komedia" msgid "Comics" msgstr "Sarjakuvat" -#: src/Navigation.tsx:227 +#: src/Navigation.tsx:241 #: src/view/screens/CommunityGuidelines.tsx:32 msgid "Community Guidelines" msgstr "Yhteisöohjeet" @@ -788,7 +891,7 @@ msgstr "Suorita käyttöönotto loppuun ja aloita tilisi käyttö" msgid "Complete the challenge" msgstr "Tee haaste loppuun" -#: src/view/com/composer/Composer.tsx:424 +#: src/view/com/composer/Composer.tsx:437 msgid "Compose posts up to {MAX_GRAPHEME_LENGTH} characters in length" msgstr "Laadi viestejä, joiden pituus on enintään {MAX_GRAPHEME_LENGTH} merkkiä" @@ -796,12 +899,18 @@ msgstr "Laadi viestejä, joiden pituus on enintään {MAX_GRAPHEME_LENGTH} merkk msgid "Compose reply" msgstr "Kirjoita vastaus" -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:67 +#: src/components/moderation/GlobalModerationLabelPref.tsx:69 +#: src/components/moderation/ModerationLabelPref.tsx:149 +#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:81 msgid "Configure content filtering setting for category: {0}" msgstr "Määritä sisällönsuodatusasetus aiheille: {0}" -#: src/components/Prompt.tsx:113 -#: src/view/com/modals/AppealLabel.tsx:98 +#: src/components/moderation/ModerationLabelPref.tsx:116 +msgid "Configured in <0>moderation settings." +msgstr "" + +#: src/components/Prompt.tsx:152 +#: src/components/Prompt.tsx:155 #: src/view/com/modals/SelfLabel.tsx:154 #: src/view/com/modals/VerifyEmail.tsx:231 #: src/view/com/modals/VerifyEmail.tsx:233 @@ -812,9 +921,9 @@ msgstr "Vahvista" #: src/view/com/modals/Confirm.tsx:75 #: src/view/com/modals/Confirm.tsx:78 -msgctxt "action" -msgid "Confirm" -msgstr "Vahvista" +#~ msgctxt "action" +#~ msgid "Confirm" +#~ msgstr "Vahvista" #: src/view/com/modals/ChangeEmail.tsx:193 #: src/view/com/modals/ChangeEmail.tsx:195 @@ -830,18 +939,27 @@ msgid "Confirm delete account" msgstr "Vahvista tilin poisto" #: src/view/com/modals/ContentFilteringSettings.tsx:156 -msgid "Confirm your age to enable adult content." -msgstr "Vahvista ikäsi nähdäksesi ikärajarajoitettua sisältöä" +#~ msgid "Confirm your age to enable adult content." +#~ msgstr "Vahvista ikäsi nähdäksesi ikärajarajoitettua sisältöä" + +#: src/screens/Moderation/index.tsx:303 +msgid "Confirm your age:" +msgstr "" + +#: src/screens/Moderation/index.tsx:294 +msgid "Confirm your birthdate" +msgstr "" #: src/view/com/modals/ChangeEmail.tsx:157 +#: src/view/com/modals/DeleteAccount.tsx:176 #: src/view/com/modals/DeleteAccount.tsx:182 #: src/view/com/modals/VerifyEmail.tsx:165 msgid "Confirmation code" msgstr "Vahvistuskoodi" #: src/view/com/modals/Waitlist.tsx:120 -msgid "Confirms signing up {email} to the waitlist" -msgstr "Vahvistaa sähköpostiosoitteen {email} - rekisteröinnin odotuslistalle" +#~ msgid "Confirms signing up {email} to the waitlist" +#~ msgstr "Vahvistaa sähköpostiosoitteen {email} - rekisteröinnin odotuslistalle" #: src/view/com/auth/create/CreateAccount.tsx:193 #: src/view/com/auth/login/LoginForm.tsx:278 @@ -852,25 +970,40 @@ msgstr "Yhdistetään..." msgid "Contact support" msgstr "Ota yhteyttä tukeen" +#: src/components/moderation/LabelsOnMe.tsx:42 +msgid "content" +msgstr "" + +#: src/lib/moderation/useGlobalLabelStrings.ts:18 +msgid "Content Blocked" +msgstr "" + #: src/view/screens/Moderation.tsx:83 -msgid "Content filtering" -msgstr "Sisällönsuodatus" +#~ msgid "Content filtering" +#~ msgstr "Sisällönsuodatus" #: src/view/com/modals/ContentFilteringSettings.tsx:44 -msgid "Content Filtering" -msgstr "Sisällönsuodatus" +#~ msgid "Content Filtering" +#~ msgstr "Sisällönsuodatus" + +#: src/screens/Moderation/index.tsx:287 +msgid "Content filters" +msgstr "" #: src/view/com/modals/lang-settings/ContentLanguagesSettings.tsx:74 #: src/view/screens/LanguageSettings.tsx:278 msgid "Content Languages" msgstr "Sisältöjen kielet" -#: src/view/com/modals/ModerationDetails.tsx:65 +#: src/components/moderation/ModerationDetailsDialog.tsx:76 +#: src/lib/moderation/useModerationCauseDescription.ts:75 msgid "Content Not Available" msgstr "Sisältö ei ole saatavilla" -#: src/view/com/modals/ModerationDetails.tsx:33 -#: src/view/com/util/moderation/ScreenHider.tsx:78 +#: src/components/moderation/ModerationDetailsDialog.tsx:47 +#: src/components/moderation/ScreenHider.tsx:100 +#: src/lib/moderation/useGlobalLabelStrings.ts:22 +#: src/lib/moderation/useModerationCauseDescription.ts:38 msgid "Content Warning" msgstr "Sisältövaroitus" @@ -878,19 +1011,24 @@ msgstr "Sisältövaroitus" msgid "Content warnings" msgstr "Sisältövaroitukset" +#: src/components/Menu/index.web.tsx:84 +msgid "Context menu backdrop, click to close the menu." +msgstr "" + #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:170 #: src/screens/Onboarding/StepFollowingFeed.tsx:153 #: src/screens/Onboarding/StepInterests/index.tsx:248 -#: src/screens/Onboarding/StepModeration/index.tsx:118 +#: src/screens/Onboarding/StepModeration/index.tsx:102 #: src/screens/Onboarding/StepTopicalFeeds.tsx:114 #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:148 #: src/view/com/auth/onboarding/RecommendedFollows.tsx:209 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:96 msgid "Continue" msgstr "Jatka" #: src/screens/Onboarding/StepFollowingFeed.tsx:150 #: src/screens/Onboarding/StepInterests/index.tsx:245 -#: src/screens/Onboarding/StepModeration/index.tsx:115 +#: src/screens/Onboarding/StepModeration/index.tsx:99 #: src/screens/Onboarding/StepTopicalFeeds.tsx:111 msgid "Continue to next step" msgstr "Jatka seuraavaan vaiheeseen" @@ -912,13 +1050,14 @@ msgstr "Ruoanlaitto" msgid "Copied" msgstr "Kopioitu" -#: src/view/screens/Settings/index.tsx:241 +#: src/view/screens/Settings/index.tsx:247 msgid "Copied build version to clipboard" msgstr "Ohjelmiston versio kopioitu leikepöydälle" #: src/view/com/modals/AddAppPasswords.tsx:76 +#: src/view/com/modals/ChangeHandle.tsx:327 #: src/view/com/modals/InviteCodes.tsx:152 -#: src/view/com/util/forms/PostDropdownBtn.tsx:143 +#: src/view/com/util/forms/PostDropdownBtn.tsx:158 msgid "Copied to clipboard" msgstr "Kopioitu leikepöydälle" @@ -930,32 +1069,38 @@ msgstr "Kopioi sovellussalasanan" msgid "Copy" msgstr "Kopioi" -#: src/view/screens/ProfileList.tsx:418 +#: src/view/com/modals/ChangeHandle.tsx:481 +msgid "Copy {0}" +msgstr "" + +#: src/view/screens/ProfileList.tsx:388 msgid "Copy link to list" msgstr "Kopioi listan linkki" -#: src/view/com/util/forms/PostDropdownBtn.tsx:184 +#: src/view/com/util/forms/PostDropdownBtn.tsx:228 +#: src/view/com/util/forms/PostDropdownBtn.tsx:237 msgid "Copy link to post" msgstr "Kopioi julkaisun linkki" #: src/view/com/profile/ProfileHeader.tsx:295 -msgid "Copy link to profile" -msgstr "Kopioi linkki profiiliin" +#~ msgid "Copy link to profile" +#~ msgstr "Kopioi linkki profiiliin" -#: src/view/com/util/forms/PostDropdownBtn.tsx:170 +#: src/view/com/util/forms/PostDropdownBtn.tsx:220 +#: src/view/com/util/forms/PostDropdownBtn.tsx:222 msgid "Copy post text" msgstr "Kopioi viestin teksti" -#: src/Navigation.tsx:232 +#: src/Navigation.tsx:246 #: src/view/screens/CopyrightPolicy.tsx:29 msgid "Copyright Policy" msgstr "Tekijänoikeuskäytäntö" -#: src/view/screens/ProfileFeed.tsx:97 +#: src/view/screens/ProfileFeed.tsx:102 msgid "Could not load feed" msgstr "Syötettä ei voitu ladata" -#: src/view/screens/ProfileList.tsx:888 +#: src/view/screens/ProfileList.tsx:907 msgid "Could not load list" msgstr "Listaa ei voitu ladata" @@ -963,13 +1108,13 @@ msgstr "Listaa ei voitu ladata" #~ msgid "Country" #~ msgstr "Maa" -#: src/view/com/auth/HomeLoggedOutCTA.tsx:62 -#: src/view/com/auth/SplashScreen.tsx:71 +#: src/view/com/auth/HomeLoggedOutCTA.tsx:64 +#: src/view/com/auth/SplashScreen.tsx:73 #: src/view/com/auth/SplashScreen.web.tsx:81 msgid "Create a new account" msgstr "Luo uusi tili" -#: src/view/screens/Settings/index.tsx:384 +#: src/view/screens/Settings/index.tsx:399 msgid "Create a new Bluesky account" msgstr "Luo uusi Bluesky-tili" @@ -986,19 +1131,23 @@ msgstr "Luo sovellussalasana" msgid "Create new account" msgstr "Luo uusi tili" -#: src/view/screens/AppPasswords.tsx:249 +#: src/components/ReportDialog/SelectReportOptionView.tsx:94 +msgid "Create report for {0}" +msgstr "" + +#: src/view/screens/AppPasswords.tsx:246 msgid "Created {0}" msgstr "{0} luotu" #: src/view/screens/ProfileFeed.tsx:616 -msgid "Created by <0/>" -msgstr "Luonut <0/>" +#~ msgid "Created by <0/>" +#~ msgstr "Luonut <0/>" #: src/view/screens/ProfileFeed.tsx:614 -msgid "Created by you" -msgstr "Sinun luoma sisältö" +#~ msgid "Created by you" +#~ msgstr "Sinun luoma sisältö" -#: src/view/com/composer/Composer.tsx:455 +#: src/view/com/composer/Composer.tsx:468 msgid "Creates a card with a thumbnail. The card links to {url}" msgstr "Luo kortin pikkukuvan kanssa. Kortti linkittyy osoitteeseen {url}" @@ -1028,8 +1177,8 @@ msgstr "Muokkaa mediaa ulkoisista sivustoista." #~ msgid "Danger Zone" #~ msgstr "" -#: src/view/screens/Settings/index.tsx:485 -#: src/view/screens/Settings/index.tsx:511 +#: src/view/screens/Settings/index.tsx:500 +#: src/view/screens/Settings/index.tsx:526 msgid "Dark" msgstr "Tumma" @@ -1037,15 +1186,25 @@ msgstr "Tumma" msgid "Dark mode" msgstr "Tumma ulkoasu" -#: src/view/screens/Settings/index.tsx:498 +#: src/view/screens/Settings/index.tsx:513 msgid "Dark Theme" msgstr "Tumma teema" +#: src/view/screens/Settings/index.tsx:837 +msgid "Debug Moderation" +msgstr "" + #: src/view/screens/Debug.tsx:83 msgid "Debug panel" msgstr "Vianetsintäpaneeli" -#: src/view/screens/Settings/index.tsx:772 +#: src/view/com/util/forms/PostDropdownBtn.tsx:319 +#: src/view/screens/AppPasswords.tsx:268 +#: src/view/screens/ProfileList.tsx:613 +msgid "Delete" +msgstr "" + +#: src/view/screens/Settings/index.tsx:792 msgid "Delete account" msgstr "Poista käyttäjätili" @@ -1053,13 +1212,15 @@ msgstr "Poista käyttäjätili" msgid "Delete Account" msgstr "Poista käyttäjätili" -#: src/view/screens/AppPasswords.tsx:222 -#: src/view/screens/AppPasswords.tsx:242 +#: src/view/screens/AppPasswords.tsx:239 msgid "Delete app password" msgstr "Poista sovellussalasana" -#: src/view/screens/ProfileList.tsx:364 -#: src/view/screens/ProfileList.tsx:445 +#: src/view/screens/AppPasswords.tsx:263 +msgid "Delete app password?" +msgstr "" + +#: src/view/screens/ProfileList.tsx:415 msgid "Delete List" msgstr "Poista lista" @@ -1071,23 +1232,28 @@ msgstr "Poista käyttäjätilini" #~ msgid "Delete my account…" #~ msgstr "" -#: src/view/screens/Settings/index.tsx:784 +#: src/view/screens/Settings/index.tsx:804 msgid "Delete My Account…" msgstr "Poista tilini…" -#: src/view/com/util/forms/PostDropdownBtn.tsx:273 +#: src/view/com/util/forms/PostDropdownBtn.tsx:302 +#: src/view/com/util/forms/PostDropdownBtn.tsx:304 msgid "Delete post" msgstr "Poista viesti" -#: src/view/com/util/forms/PostDropdownBtn.tsx:277 +#: src/view/screens/ProfileList.tsx:608 +msgid "Delete this list?" +msgstr "" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:314 msgid "Delete this post?" msgstr "Poista tämä viesti?" -#: src/view/com/util/post-embeds/QuoteEmbed.tsx:70 +#: src/view/com/util/post-embeds/QuoteEmbed.tsx:64 msgid "Deleted" msgstr "Poistettu" -#: src/view/com/post-thread/PostThread.tsx:316 +#: src/view/com/post-thread/PostThread.tsx:305 msgid "Deleted post." msgstr "Poistettu viesti." @@ -1102,23 +1268,35 @@ msgstr "Kuvaus" #~ msgid "Developer Tools" #~ msgstr "" -#: src/view/com/composer/Composer.tsx:218 +#: src/view/com/composer/Composer.tsx:217 msgid "Did you want to say anything?" msgstr "Haluatko sanoa jotain?" -#: src/view/screens/Settings/index.tsx:504 +#: src/view/screens/Settings/index.tsx:519 msgid "Dim" msgstr "Himmeä" -#: src/view/com/composer/Composer.tsx:151 +#: src/lib/moderation/useLabelBehaviorDescription.ts:32 +#: src/lib/moderation/useLabelBehaviorDescription.ts:42 +#: src/lib/moderation/useLabelBehaviorDescription.ts:68 +#: src/screens/Moderation/index.tsx:343 +msgid "Disabled" +msgstr "" + +#: src/view/com/composer/Composer.tsx:510 msgid "Discard" msgstr "Hylkää" #: src/view/com/composer/Composer.tsx:145 -msgid "Discard draft" -msgstr "Hylkää luonnos" +#~ msgid "Discard draft" +#~ msgstr "Hylkää luonnos" -#: src/view/screens/Moderation.tsx:226 +#: src/view/com/composer/Composer.tsx:507 +msgid "Discard draft?" +msgstr "" + +#: src/screens/Moderation/index.tsx:520 +#: src/screens/Moderation/index.tsx:524 msgid "Discourage apps from showing my account to logged-out users" msgstr "Estä sovelluksia näyttämästä tiliäni kirjautumattomille käyttäjille" @@ -1143,13 +1321,25 @@ msgstr "Näyttönimi" msgid "Display Name" msgstr "Näyttönimi" -#: src/view/com/modals/ChangeHandle.tsx:487 +#: src/view/com/modals/ChangeHandle.tsx:398 +msgid "DNS Panel" +msgstr "" + +#: src/lib/moderation/useGlobalLabelStrings.ts:39 +msgid "Does not include nudity." +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:482 +msgid "Domain Value" +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:489 msgid "Domain verified!" msgstr "Verkkotunnus vahvistettu!" #: src/view/com/auth/create/Step1.tsx:170 -msgid "Don't have an invite code?" -msgstr "Eikö sinulla ole kutsukoodia?" +#~ msgid "Don't have an invite code?" +#~ msgstr "Eikö sinulla ole kutsukoodia?" #: src/view/com/auth/onboarding/RecommendedFollows.tsx:86 #: src/view/com/modals/EditImage.tsx:333 @@ -1164,19 +1354,19 @@ msgctxt "action" msgid "Done" msgstr "Valmis" +#: src/components/dialogs/BirthDateSettings.tsx:119 +#: src/components/dialogs/BirthDateSettings.tsx:125 #: src/view/com/auth/server-input/index.tsx:165 #: src/view/com/auth/server-input/index.tsx:166 #: src/view/com/modals/AddAppPasswords.tsx:226 #: src/view/com/modals/AltImage.tsx:139 -#: src/view/com/modals/ContentFilteringSettings.tsx:88 -#: src/view/com/modals/ContentFilteringSettings.tsx:96 #: src/view/com/modals/crop-image/CropImage.web.tsx:152 #: src/view/com/modals/InviteCodes.tsx:80 #: src/view/com/modals/InviteCodes.tsx:123 #: src/view/com/modals/ListAddRemoveUsers.tsx:142 #: src/view/screens/PreferencesFollowingFeed.tsx:311 -#: src/view/screens/Settings/ExportCarDialog.tsx:93 #: src/view/screens/Settings/ExportCarDialog.tsx:94 +#: src/view/screens/Settings/ExportCarDialog.tsx:95 msgid "Done" msgstr "Valmis" @@ -1189,8 +1379,8 @@ msgid "Double tap to sign in" msgstr "Kaksoisnapauta kirjautuaksesi sisään" #: src/view/screens/Settings/index.tsx:755 -msgid "Download Bluesky account data (repository)" -msgstr "Lataa Bluesky-tilin tiedot (repository)" +#~ msgid "Download Bluesky account data (repository)" +#~ msgstr "Lataa Bluesky-tilin tiedot (repository)" #: src/view/screens/Settings/ExportCarDialog.tsx:59 #: src/view/screens/Settings/ExportCarDialog.tsx:63 @@ -1201,18 +1391,30 @@ msgstr "Lataa CAR tiedosto" msgid "Drop to add images" msgstr "Raahaa tähän lisätäksesi kuvia" -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:111 +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:120 msgid "Due to Apple policies, adult content can only be enabled on the web after completing sign up." msgstr "Applen sääntöjen vuoksi aikuisviihde voidaan ottaa käyttöön vasta rekisteröitymisen jälkeen." +#: src/view/com/modals/ChangeHandle.tsx:257 +msgid "e.g. alice" +msgstr "" + #: src/view/com/modals/EditProfile.tsx:185 msgid "e.g. Alice Roberts" msgstr "esim. Mikko Mallikas" +#: src/view/com/modals/ChangeHandle.tsx:381 +msgid "e.g. alice.com" +msgstr "" + #: src/view/com/modals/EditProfile.tsx:203 msgid "e.g. Artist, dog-lover, and avid reader." msgstr "esim. Taiteilija, koiraharrastaja ja innokas lukija." +#: src/lib/moderation/useGlobalLabelStrings.ts:43 +msgid "E.g. artistic nudes." +msgstr "" + #: src/view/com/modals/CreateOrEditList.tsx:283 msgid "e.g. Great Posters" msgstr "esim. Loistavat kirjoittajat" @@ -1238,12 +1440,17 @@ msgctxt "action" msgid "Edit" msgstr "Muokkaa" +#: src/view/com/util/UserAvatar.tsx:299 +#: src/view/com/util/UserBanner.tsx:85 +msgid "Edit avatar" +msgstr "" + #: src/view/com/composer/photos/Gallery.tsx:144 #: src/view/com/modals/EditImage.tsx:207 msgid "Edit image" msgstr "Muokkaa kuvaa" -#: src/view/screens/ProfileList.tsx:433 +#: src/view/screens/ProfileList.tsx:403 msgid "Edit list details" msgstr "Muokkaa listan tietoja" @@ -1251,7 +1458,7 @@ msgstr "Muokkaa listan tietoja" msgid "Edit Moderation List" msgstr "Muokkaa moderaatiolistaa" -#: src/Navigation.tsx:242 +#: src/Navigation.tsx:256 #: src/view/screens/Feeds.tsx:434 #: src/view/screens/SavedFeeds.tsx:84 msgid "Edit My Feeds" @@ -1261,15 +1468,17 @@ msgstr "Muokkaa syötteitäni" msgid "Edit my profile" msgstr "Muokkaa profiiliani" -#: src/view/com/profile/ProfileHeader.tsx:418 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:172 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:161 msgid "Edit profile" msgstr "Muokkaa profiilia" -#: src/view/com/profile/ProfileHeader.tsx:423 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:175 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:164 msgid "Edit Profile" msgstr "Muokkaa profiilia" -#: src/view/com/home/HomeHeaderLayout.web.tsx:59 +#: src/view/com/home/HomeHeaderLayout.web.tsx:62 #: src/view/screens/Feeds.tsx:355 msgid "Edit Saved Feeds" msgstr "Muokkaa tallennettuja syötteitä" @@ -1290,14 +1499,13 @@ msgstr "Muokkaa profiilin kuvausta" msgid "Education" msgstr "Koulutus" -#: src/view/com/auth/create/Step1.tsx:199 +#: src/view/com/auth/create/Step1.tsx:176 #: src/view/com/auth/login/ForgotPasswordForm.tsx:156 #: src/view/com/modals/ChangeEmail.tsx:141 -#: src/view/com/modals/Waitlist.tsx:88 msgid "Email" msgstr "Sähköposti" -#: src/view/com/auth/create/Step1.tsx:190 +#: src/view/com/auth/create/Step1.tsx:167 #: src/view/com/auth/login/ForgotPasswordForm.tsx:147 msgid "Email address" msgstr "Sähköpostiosoite" @@ -1315,7 +1523,7 @@ msgstr "Sähköpostiosoite päivitetty" msgid "Email verified" msgstr "Sähköpostiosoite vahvistettu" -#: src/view/screens/Settings/index.tsx:312 +#: src/view/screens/Settings/index.tsx:327 msgid "Email:" msgstr "Sähköpostiosoite:" @@ -1323,12 +1531,16 @@ msgstr "Sähköpostiosoite:" msgid "Enable {0} only" msgstr "Ota käyttöön vain {0}" -#: src/view/com/modals/ContentFilteringSettings.tsx:167 +#: src/screens/Moderation/index.tsx:331 +msgid "Enable adult content" +msgstr "" + +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:94 msgid "Enable Adult Content" msgstr "Ota aikuissisältö käyttöön" -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:76 -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:77 +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:78 +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:79 msgid "Enable adult content in your feeds" msgstr "Näytä aikuissisältöä syötteissäsi" @@ -1344,7 +1556,11 @@ msgstr "Ota mediatoistimet käyttöön kohteille" msgid "Enable this setting to only see replies between people you follow." msgstr "Ota tämä asetus käyttöön nähdäksesi vastaukset vain seuraamiltasi ihmisiltä." -#: src/view/screens/Profile.tsx:455 +#: src/screens/Moderation/index.tsx:341 +msgid "Enabled" +msgstr "" + +#: src/screens/Profile/Sections/Feed.tsx:84 msgid "End of feed" msgstr "Syötteen loppu" @@ -1352,8 +1568,8 @@ msgstr "Syötteen loppu" msgid "Enter a name for this App Password" msgstr "Anna sovellusalasanalle nimi" -#: src/components/dialogs/MutedWords.tsx:87 -#: src/components/dialogs/MutedWords.tsx:88 +#: src/components/dialogs/MutedWords.tsx:100 +#: src/components/dialogs/MutedWords.tsx:101 msgid "Enter a word or tag" msgstr "Kirjoita sana tai tunniste" @@ -1361,7 +1577,7 @@ msgstr "Kirjoita sana tai tunniste" msgid "Enter Confirmation Code" msgstr "Syötä vahvistuskoodi" -#: src/view/com/modals/ChangePassword.tsx:151 +#: src/view/com/modals/ChangePassword.tsx:153 msgid "Enter the code you received to change your password." msgstr "Anna saamasi koodi vaihtaaksesi salasanasi." @@ -1373,16 +1589,16 @@ msgstr "Anna verkkotunnus, jota haluat käyttää" msgid "Enter the email you used to create your account. We'll send you a \"reset code\" so you can set a new password." msgstr "Anna sähköpostiosoite, jotaa käytit tilin luomiseen. Lähetämme sinulle \"nollauskoodin\", jotta voit määritellä uuden salasanan." -#: src/view/com/auth/create/Step1.tsx:251 -#: src/view/com/modals/BirthDateSettings.tsx:74 +#: src/components/dialogs/BirthDateSettings.tsx:108 +#: src/view/com/auth/create/Step1.tsx:228 msgid "Enter your birth date" msgstr "Syötä syntymäaikasi" #: src/view/com/modals/Waitlist.tsx:78 -msgid "Enter your email" -msgstr "Syötä sähköpostiosoitteesi" +#~ msgid "Enter your email" +#~ msgstr "Syötä sähköpostiosoitteesi" -#: src/view/com/auth/create/Step1.tsx:195 +#: src/view/com/auth/create/Step1.tsx:172 msgid "Enter your email address" msgstr "Syötä sähköpostiosoitteesi" @@ -1396,7 +1612,7 @@ msgstr "Syötä uusi sähköpostiosoitteesi alle" #: src/view/com/auth/create/Step2.tsx:188 #~ msgid "Enter your phone number" -msgstr "Syötä puhelinnumerosi" +#~ msgstr "Syötä puhelinnumerosi" #: src/view/com/auth/login/Login.tsx:99 msgid "Enter your username and password" @@ -1414,24 +1630,36 @@ msgstr "Virhe:" msgid "Everybody" msgstr "Kaikki" +#: src/lib/moderation/useReportOptions.ts:66 +msgid "Excessive mentions or replies" +msgstr "" + +#: src/view/com/modals/DeleteAccount.tsx:231 +msgid "Exits account deletion process" +msgstr "" + #: src/view/com/modals/ChangeHandle.tsx:150 msgid "Exits handle change process" msgstr "Peruuttaa käyttäjätunnuksen vaihtamisen" -#: src/view/com/lightbox/Lightbox.web.tsx:120 +#: src/view/com/modals/crop-image/CropImage.web.tsx:135 +msgid "Exits image cropping process" +msgstr "" + +#: src/view/com/lightbox/Lightbox.web.tsx:130 msgid "Exits image view" msgstr "Poistuu kuvan katselutilasta" #: src/view/com/modals/ListAddRemoveUsers.tsx:88 -#: src/view/shell/desktop/Search.tsx:235 +#: src/view/shell/desktop/Search.tsx:236 msgid "Exits inputting search query" msgstr "Poistuu hakukyselyn kirjoittamisesta" #: src/view/com/modals/Waitlist.tsx:138 -msgid "Exits signing up for waitlist with {email}" -msgstr "Poistuu odotuslistalle liittymisestä sähköpostilla {email}" +#~ msgid "Exits signing up for waitlist with {email}" +#~ msgstr "Poistuu odotuslistalle liittymisestä sähköpostilla {email}" -#: src/view/com/lightbox/Lightbox.web.tsx:163 +#: src/view/com/lightbox/Lightbox.web.tsx:183 msgid "Expand alt text" msgstr "Laajenna ALT-teksti" @@ -1440,12 +1668,20 @@ msgstr "Laajenna ALT-teksti" msgid "Expand or collapse the full post you are replying to" msgstr "Laajenna tai pienennä viesti johon olit vastaamassa" -#: src/view/screens/Settings/index.tsx:753 +#: src/lib/moderation/useGlobalLabelStrings.ts:47 +msgid "Explicit or potentially disturbing media." +msgstr "" + +#: src/lib/moderation/useGlobalLabelStrings.ts:35 +msgid "Explicit sexual images." +msgstr "" + +#: src/view/screens/Settings/index.tsx:773 msgid "Export my data" msgstr "Vie tietoni" #: src/view/screens/Settings/ExportCarDialog.tsx:44 -#: src/view/screens/Settings/index.tsx:764 +#: src/view/screens/Settings/index.tsx:784 msgid "Export My Data" msgstr "Vie tietoni" @@ -1458,13 +1694,13 @@ msgstr "Ulkoiset mediat" msgid "External media may allow websites to collect information about you and your device. No information is sent or requested until you press the \"play\" button." msgstr "Ulkoiset mediat voivat sallia verkkosivustojen kerätä tietoja sinusta ja laitteestasi. Tietoja ei lähetetä eikä pyydetä, ennen kuin painat \"toista\"-painiketta." -#: src/Navigation.tsx:261 +#: src/Navigation.tsx:275 #: src/view/screens/PreferencesExternalEmbeds.tsx:52 -#: src/view/screens/Settings/index.tsx:657 +#: src/view/screens/Settings/index.tsx:673 msgid "External Media Preferences" msgstr "Ulkoisten medioiden asetukset" -#: src/view/screens/Settings/index.tsx:648 +#: src/view/screens/Settings/index.tsx:664 msgid "External media settings" msgstr "Ulkoisten medioiden asetukset" @@ -1477,7 +1713,7 @@ msgstr "Sovellussalasanan luominen epäonnistui." msgid "Failed to create the list. Check your internet connection and try again." msgstr "Listan luominen epäonnistui. Tarkista internetyhteytesi ja yritä uudelleen." -#: src/view/com/util/forms/PostDropdownBtn.tsx:110 +#: src/view/com/util/forms/PostDropdownBtn.tsx:125 msgid "Failed to delete post, please try again" msgstr "Viestin poistaminen epäonnistui, yritä uudelleen" @@ -1486,11 +1722,15 @@ msgstr "Viestin poistaminen epäonnistui, yritä uudelleen" msgid "Failed to load recommended feeds" msgstr "Suositeltujen syötteiden lataaminen epäonnistui" -#: src/Navigation.tsx:192 +#: src/view/com/lightbox/Lightbox.tsx:83 +msgid "Failed to save image: {0}" +msgstr "" + +#: src/Navigation.tsx:196 msgid "Feed" msgstr "Syöte" -#: src/view/com/feeds/FeedSourceCard.tsx:231 +#: src/view/com/feeds/FeedSourceCard.tsx:218 msgid "Feed by {0}" msgstr "Syöte käyttäjältä {0}" @@ -1503,18 +1743,18 @@ msgstr "Syöte ei ole käytettävissä" #~ msgstr "Syötteen asetukset" #: src/view/shell/desktop/RightNav.tsx:61 -#: src/view/shell/Drawer.tsx:311 +#: src/view/shell/Drawer.tsx:314 msgid "Feedback" msgstr "Palaute" -#: src/Navigation.tsx:442 +#: src/Navigation.tsx:464 #: src/view/screens/Feeds.tsx:419 #: src/view/screens/Feeds.tsx:524 -#: src/view/screens/Profile.tsx:184 -#: src/view/shell/bottom-bar/BottomBar.tsx:181 -#: src/view/shell/desktop/LeftNav.tsx:342 -#: src/view/shell/Drawer.tsx:476 -#: src/view/shell/Drawer.tsx:477 +#: src/view/screens/Profile.tsx:192 +#: src/view/shell/bottom-bar/BottomBar.tsx:183 +#: src/view/shell/desktop/LeftNav.tsx:346 +#: src/view/shell/Drawer.tsx:479 +#: src/view/shell/Drawer.tsx:480 msgid "Feeds" msgstr "Syötteet" @@ -1538,6 +1778,14 @@ msgstr "Syötteet ovat käyttäjien rakentamia mukautettuja algoritmeja, jotka v msgid "Feeds can be topical as well!" msgstr "Syötteet voivat olla myös aihepiirikohtaisia!" +#: src/view/com/modals/ChangeHandle.tsx:482 +msgid "File Contents" +msgstr "" + +#: src/lib/moderation/useLabelBehaviorDescription.ts:66 +msgid "Filter from feeds" +msgstr "" + #: src/screens/Onboarding/StepFinished.tsx:151 msgid "Finalizing" msgstr "Viimeistely" @@ -1548,15 +1796,15 @@ msgstr "Viimeistely" msgid "Find accounts to follow" msgstr "Etsi seurattavia tilejä" -#: src/view/screens/Search/Search.tsx:440 +#: src/view/screens/Search/Search.tsx:441 msgid "Find users on Bluesky" msgstr "Etsi käyttäjiä Bluesky-palvelusta" -#: src/view/screens/Search/Search.tsx:438 +#: src/view/screens/Search/Search.tsx:439 msgid "Find users with the search tool on the right" msgstr "Etsi käyttäjiä oikealla olevan hakutyökalun avulla" -#: src/view/com/auth/onboarding/RecommendedFollowsItem.tsx:150 +#: src/view/com/auth/onboarding/RecommendedFollowsItem.tsx:155 msgid "Finding similar accounts..." msgstr "Etsitään samankaltaisia käyttäjätilejä" @@ -1590,22 +1838,29 @@ msgid "Flip vertically" msgstr "Käännä pystysuunnassa" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:181 -#: src/view/com/post-thread/PostThreadFollowBtn.tsx:136 -#: src/view/com/profile/ProfileHeader.tsx:513 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:229 +#: src/view/com/auth/onboarding/RecommendedFollowsItem.tsx:141 +#: src/view/com/post-thread/PostThreadFollowBtn.tsx:139 +#: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:246 msgid "Follow" msgstr "Seuraa" -#: src/view/com/profile/FollowButton.tsx:64 +#: src/view/com/profile/FollowButton.tsx:69 msgctxt "action" msgid "Follow" msgstr "Seuraa" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:58 -#: src/view/com/post-thread/PostThreadFollowBtn.tsx:122 -#: src/view/com/profile/ProfileHeader.tsx:504 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:214 +#: src/view/com/post-thread/PostThreadFollowBtn.tsx:125 msgid "Follow {0}" msgstr "Seuraa {0}" +#: src/view/com/profile/ProfileMenu.tsx:242 +#: src/view/com/profile/ProfileMenu.tsx:253 +msgid "Follow Account" +msgstr "" + #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:179 msgid "Follow All" msgstr "Seuraa kaikkia" @@ -1618,7 +1873,7 @@ msgstr "Seuraa valittuja tilejä ja siirry seuraavaan vaiheeseen" msgid "Follow some users to get started. We can recommend you more users based on who you find interesting." msgstr "Seuraa joitakin käyttäjiä aloittaaksesi. Suosittelemme sinulle lisää käyttäjiä sen perusteella, ketä pidät mielenkiintoisena." -#: src/view/com/profile/ProfileCard.tsx:194 +#: src/view/com/profile/ProfileCard.tsx:216 msgid "Followed by {0}" msgstr "Seuraajina {0}" @@ -1630,33 +1885,39 @@ msgstr "Seuratut käyttäjät" msgid "Followed users only" msgstr "Vain seuratut käyttäjät" -#: src/view/com/notifications/FeedItem.tsx:166 +#: src/view/com/notifications/FeedItem.tsx:170 msgid "followed you" msgstr "seurasi sinua" +#: src/view/com/profile/ProfileFollowers.tsx:109 #: src/view/screens/ProfileFollowers.tsx:25 msgid "Followers" msgstr "Seuraajat" -#: src/view/com/post-thread/PostThreadFollowBtn.tsx:136 -#: src/view/com/profile/ProfileHeader.tsx:495 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:227 +#: src/view/com/post-thread/PostThreadFollowBtn.tsx:139 +#: src/view/com/profile/ProfileFollows.tsx:108 #: src/view/screens/ProfileFollows.tsx:25 msgid "Following" msgstr "Seuraa" -#: src/view/com/profile/ProfileHeader.tsx:149 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:89 msgid "Following {0}" msgstr "Seuraa {0}" -#: src/Navigation.tsx:248 -#: src/view/com/home/HomeHeaderLayout.web.tsx:45 -#: src/view/com/home/HomeHeaderLayoutMobile.tsx:83 +#: src/view/screens/Settings/index.tsx:549 +msgid "Following feed preferences" +msgstr "" + +#: src/Navigation.tsx:262 +#: src/view/com/home/HomeHeaderLayout.web.tsx:50 +#: src/view/com/home/HomeHeaderLayoutMobile.tsx:84 #: src/view/screens/PreferencesFollowingFeed.tsx:104 -#: src/view/screens/Settings/index.tsx:543 +#: src/view/screens/Settings/index.tsx:558 msgid "Following Feed Preferences" msgstr "Seuratut -syötteen asetukset" -#: src/view/com/profile/ProfileHeader.tsx:546 +#: src/screens/Profile/Header/Handle.tsx:24 msgid "Follows you" msgstr "Seuraa sinua" @@ -1689,7 +1950,16 @@ msgstr "Unohtunut salasana" msgid "Forgot Password" msgstr "Unohtunut salasana" -#: src/view/com/posts/FeedItem.tsx:189 +#: src/lib/moderation/useReportOptions.ts:52 +msgid "Frequently Posts Unwanted Content" +msgstr "" + +#: src/screens/Hashtag.tsx:108 +#: src/screens/Hashtag.tsx:148 +msgid "From @{sanitizedAuthor}" +msgstr "" + +#: src/view/com/posts/FeedItem.tsx:179 msgctxt "from-feed" msgid "From <0/>" msgstr "Lähde: <0/>" @@ -1703,27 +1973,46 @@ msgstr "Galleria" msgid "Get Started" msgstr "Aloita tästä" +#: src/lib/moderation/useReportOptions.ts:37 +msgid "Glaring violations of law or terms of service" +msgstr "" + +#: src/components/moderation/ScreenHider.tsx:144 +#: src/components/moderation/ScreenHider.tsx:153 #: src/view/com/auth/LoggedOut.tsx:81 #: src/view/com/auth/LoggedOut.tsx:82 -#: src/view/com/util/moderation/ScreenHider.tsx:123 -#: src/view/shell/desktop/LeftNav.tsx:104 +#: src/view/screens/NotFound.tsx:55 +#: src/view/screens/ProfileFeed.tsx:111 +#: src/view/screens/ProfileList.tsx:916 +#: src/view/shell/desktop/LeftNav.tsx:108 msgid "Go back" msgstr "Palaa takaisin" -#: src/view/screens/ProfileFeed.tsx:106 -#: src/view/screens/ProfileFeed.tsx:111 -#: src/view/screens/ProfileList.tsx:897 -#: src/view/screens/ProfileList.tsx:902 +#: src/screens/Profile/ErrorState.tsx:62 +#: src/screens/Profile/ErrorState.tsx:66 +#: src/view/screens/NotFound.tsx:54 +#: src/view/screens/ProfileFeed.tsx:116 +#: src/view/screens/ProfileList.tsx:921 msgid "Go Back" msgstr "Palaa takaisin" +#: src/components/ReportDialog/SelectReportOptionView.tsx:74 +#: src/components/ReportDialog/SubmitView.tsx:104 #: src/screens/Onboarding/Layout.tsx:104 #: src/screens/Onboarding/Layout.tsx:193 msgid "Go back to previous step" msgstr "Palaa edelliseen vaiheeseen" -#: src/view/screens/Search/Search.tsx:747 -#: src/view/shell/desktop/Search.tsx:262 +#: src/view/screens/NotFound.tsx:55 +msgid "Go home" +msgstr "" + +#: src/view/screens/NotFound.tsx:54 +msgid "Go Home" +msgstr "" + +#: src/view/screens/Search/Search.tsx:748 +#: src/view/shell/desktop/Search.tsx:263 msgid "Go to @{queryMaybeHandle}" msgstr "Siirry @{queryMaybeHandle}" @@ -1731,24 +2020,40 @@ msgstr "Siirry @{queryMaybeHandle}" #: src/view/com/auth/login/ForgotPasswordForm.tsx:218 #: src/view/com/auth/login/LoginForm.tsx:288 #: src/view/com/auth/login/SetNewPasswordForm.tsx:195 -#: src/view/com/modals/ChangePassword.tsx:165 +#: src/view/com/modals/ChangePassword.tsx:167 msgid "Go to next" msgstr "Siirry seuraavaan" +#: src/lib/moderation/useGlobalLabelStrings.ts:46 +msgid "Graphic Media" +msgstr "" + #: src/view/com/modals/ChangeHandle.tsx:265 msgid "Handle" msgstr "Käyttäjätunnus" +#: src/lib/moderation/useReportOptions.ts:32 +msgid "Harassment, trolling, or intolerance" +msgstr "" + +#: src/Navigation.tsx:282 +msgid "Hashtag" +msgstr "" + #: src/components/RichText.tsx:188 -msgid "Hashtag: {tag}" -msgstr "Tunniste: {tag}" +#~ msgid "Hashtag: {tag}" +#~ msgstr "Tunniste: {tag}" + +#: src/components/RichText.tsx:190 +msgid "Hashtag: #{tag}" +msgstr "" #: src/view/com/auth/create/CreateAccount.tsx:208 msgid "Having trouble?" msgstr "Ongelmia?" #: src/view/shell/desktop/RightNav.tsx:90 -#: src/view/shell/Drawer.tsx:321 +#: src/view/shell/Drawer.tsx:324 msgid "Help" msgstr "Ohje" @@ -1768,39 +2073,45 @@ msgstr "Tässä on joitakin aihepiirikohtaisia syötteitä kiinnostuksiesi perus msgid "Here is your app password." msgstr "Tässä on sovelluksesi salasana." -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:41 -#: src/view/com/modals/ContentFilteringSettings.tsx:251 -#: src/view/com/util/moderation/ContentHider.tsx:105 -#: src/view/com/util/moderation/PostHider.tsx:108 +#: src/components/moderation/ContentHider.tsx:115 +#: src/components/moderation/GlobalModerationLabelPref.tsx:43 +#: src/components/moderation/PostHider.tsx:107 +#: src/lib/moderation/useLabelBehaviorDescription.ts:15 +#: src/lib/moderation/useLabelBehaviorDescription.ts:20 +#: src/lib/moderation/useLabelBehaviorDescription.ts:25 +#: src/lib/moderation/useLabelBehaviorDescription.ts:30 +#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:52 +#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:76 +#: src/view/com/util/forms/PostDropdownBtn.tsx:328 msgid "Hide" msgstr "Piilota" -#: src/view/com/modals/ContentFilteringSettings.tsx:224 -#: src/view/com/notifications/FeedItem.tsx:325 +#: src/view/com/notifications/FeedItem.tsx:329 msgctxt "action" msgid "Hide" msgstr "Piilota" -#: src/view/com/util/forms/PostDropdownBtn.tsx:232 +#: src/view/com/util/forms/PostDropdownBtn.tsx:276 +#: src/view/com/util/forms/PostDropdownBtn.tsx:278 msgid "Hide post" msgstr "Piilota viesti" -#: src/view/com/util/moderation/ContentHider.tsx:67 -#: src/view/com/util/moderation/PostHider.tsx:61 +#: src/components/moderation/ContentHider.tsx:67 +#: src/components/moderation/PostHider.tsx:64 msgid "Hide the content" msgstr "Piilota sisältö" -#: src/view/com/util/forms/PostDropdownBtn.tsx:236 +#: src/view/com/util/forms/PostDropdownBtn.tsx:325 msgid "Hide this post?" msgstr "Piilota tämä viesti?" -#: src/view/com/notifications/FeedItem.tsx:315 +#: src/view/com/notifications/FeedItem.tsx:319 msgid "Hide user list" msgstr "Piilota käyttäjäluettelo" #: src/view/com/profile/ProfileHeader.tsx:487 -msgid "Hides posts from {0} in your feed" -msgstr "Piilottaa viestit käyttäjältä {0} syötteessäsi" +#~ msgid "Hides posts from {0} in your feed" +#~ msgstr "Piilottaa viestit käyttäjältä {0} syötteessäsi" #: src/view/com/posts/FeedErrorMessage.tsx:111 msgid "Hmm, some kind of issue occurred when contacting the feed server. Please let the feed owner know about this issue." @@ -1822,11 +2133,19 @@ msgstr "Hmm, syötteen palvelin antoi virheellisen vastauksen. Ilmoita asiasta s msgid "Hmm, we're having trouble finding this feed. It may have been deleted." msgstr "Hmm, meillä on vaikeuksia löytää tätä syötettä. Se saattaa olla poistettu." -#: src/Navigation.tsx:435 -#: src/view/shell/bottom-bar/BottomBar.tsx:137 -#: src/view/shell/desktop/LeftNav.tsx:306 -#: src/view/shell/Drawer.tsx:398 -#: src/view/shell/Drawer.tsx:399 +#: src/screens/Moderation/index.tsx:61 +msgid "Hmmmm, it seems we're having trouble loading this data. See below for more details. If this issue persists, please contact us." +msgstr "" + +#: src/screens/Profile/ErrorState.tsx:31 +msgid "Hmmmm, we couldn't load that moderation service." +msgstr "" + +#: src/Navigation.tsx:454 +#: src/view/shell/bottom-bar/BottomBar.tsx:139 +#: src/view/shell/desktop/LeftNav.tsx:310 +#: src/view/shell/Drawer.tsx:401 +#: src/view/shell/Drawer.tsx:402 msgid "Home" msgstr "Koti" @@ -1837,8 +2156,13 @@ msgstr "Koti" #~ msgid "Home Feed Preferences" #~ msgstr "Aloitussivun syötteiden asetukset" -#: src/view/com/auth/create/Step1.tsx:82 +#: src/view/com/modals/ChangeHandle.tsx:421 +msgid "Host:" +msgstr "" + +#: src/view/com/auth/create/Step1.tsx:75 #: src/view/com/auth/login/ForgotPasswordForm.tsx:120 +#: src/view/com/modals/ChangeHandle.tsx:280 msgid "Hosting provider" msgstr "Hostingyritys" @@ -1858,7 +2182,7 @@ msgstr "Minulla on vahvistuskoodi" msgid "I have my own domain" msgstr "Minulla on oma verkkotunnus" -#: src/view/com/lightbox/Lightbox.web.tsx:165 +#: src/view/com/lightbox/Lightbox.web.tsx:185 msgid "If alt text is long, toggles alt text expanded state" msgstr "Jos ALT-teksti on pitkä, vaihtaa ALT-tekstin laajennetun tilan" @@ -1866,10 +2190,26 @@ msgstr "Jos ALT-teksti on pitkä, vaihtaa ALT-tekstin laajennetun tilan" msgid "If none are selected, suitable for all ages." msgstr "Jos mitään ei ole valittu, sopii kaikenikäisille." -#: src/view/com/modals/ChangePassword.tsx:146 +#: src/view/com/auth/create/Policies.tsx:91 +msgid "If you are not yet an adult according to the laws of your country, your parent or legal guardian must read these Terms on your behalf." +msgstr "" + +#: src/view/screens/ProfileList.tsx:610 +msgid "If you delete this list, you won't be able to recover it." +msgstr "" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:316 +msgid "If you remove this post, you won't be able to recover it." +msgstr "" + +#: src/view/com/modals/ChangePassword.tsx:148 msgid "If you want to change your password, we will send you a code to verify that this is your account." msgstr "Jos haluat vaihtaa salasanasi, lähetämme sinulle koodin varmistaaksemme, että tämä on tilisi." +#: src/lib/moderation/useReportOptions.ts:36 +msgid "Illegal and Urgent" +msgstr "" + #: src/view/com/util/images/Gallery.tsx:38 msgid "Image" msgstr "Kuva" @@ -1880,8 +2220,12 @@ msgstr "Kuvan ALT-teksti" #: src/view/com/util/UserAvatar.tsx:311 #: src/view/com/util/UserBanner.tsx:118 -msgid "Image options" -msgstr "Kuva-asetukset" +#~ msgid "Image options" +#~ msgstr "Kuva-asetukset" + +#: src/lib/moderation/useReportOptions.ts:47 +msgid "Impersonation or false claims about identity or affiliation" +msgstr "" #: src/view/com/auth/login/SetNewPasswordForm.tsx:138 msgid "Input code sent to your email for password reset" @@ -1891,11 +2235,11 @@ msgstr "Syötä sähköpostiisi lähetetty koodi salasanan nollaamista varten" msgid "Input confirmation code for account deletion" msgstr "Syötä vahvistuskoodi tilin poistoa varten" -#: src/view/com/auth/create/Step1.tsx:200 +#: src/view/com/auth/create/Step1.tsx:177 msgid "Input email for Bluesky account" msgstr "Syötä sähköposti Bluesky-tiliä varten" -#: src/view/com/auth/create/Step1.tsx:158 +#: src/view/com/auth/create/Step1.tsx:151 msgid "Input invite code to proceed" msgstr "Syötä kutsukoodi jatkaaksesi" @@ -1928,18 +2272,22 @@ msgstr "Syötä käyttäjätunnus tai sähköpostiosoite, jonka käytit rekister #~ msgstr "Syötä sinulle tekstattu varmennuskoodi" #: src/view/com/modals/Waitlist.tsx:90 -msgid "Input your email to get on the Bluesky waitlist" -msgstr "Syötä sähköpostiosoitteesi päästäksesi Bluesky-jonoon" +#~ msgid "Input your email to get on the Bluesky waitlist" +#~ msgstr "Syötä sähköpostiosoitteesi päästäksesi Bluesky-jonoon" #: src/view/com/auth/login/LoginForm.tsx:229 msgid "Input your password" msgstr "Syötä salasanasi" +#: src/view/com/modals/ChangeHandle.tsx:390 +msgid "Input your preferred hosting provider" +msgstr "" + #: src/view/com/auth/create/Step2.tsx:80 msgid "Input your user handle" msgstr "Syötä käyttäjätunnuksesi" -#: src/view/com/post-thread/PostThreadItem.tsx:226 +#: src/view/com/post-thread/PostThreadItem.tsx:221 msgid "Invalid or unsupported post record" msgstr "Virheellinen tai ei tuettu tietue" @@ -1955,8 +2303,8 @@ msgstr "Virheellinen käyttäjätunnus tai salasana" msgid "Invite a Friend" msgstr "Kutsu ystävä" -#: src/view/com/auth/create/Step1.tsx:148 -#: src/view/com/auth/create/Step1.tsx:157 +#: src/view/com/auth/create/Step1.tsx:141 +#: src/view/com/auth/create/Step1.tsx:150 msgid "Invite code" msgstr "Kutsukoodi" @@ -1980,42 +2328,74 @@ msgstr "Kutsukoodit: 1 saatavilla" msgid "It shows posts from the people you follow as they happen." msgstr "Se näyttää viestejä seuraamiltasi ihmisiltä reaaliajassa." -#: src/view/com/auth/HomeLoggedOutCTA.tsx:99 +#: src/view/com/auth/HomeLoggedOutCTA.tsx:103 #: src/view/com/auth/SplashScreen.web.tsx:138 msgid "Jobs" msgstr "Työpaikat" #: src/view/com/modals/Waitlist.tsx:67 -msgid "Join the waitlist" -msgstr "Liity odotuslistalle" +#~ msgid "Join the waitlist" +#~ msgstr "Liity odotuslistalle" #: src/view/com/auth/create/Step1.tsx:174 #: src/view/com/auth/create/Step1.tsx:178 -msgid "Join the waitlist." -msgstr "Liity odotuslistalle." +#~ msgid "Join the waitlist." +#~ msgstr "Liity odotuslistalle." #: src/view/com/modals/Waitlist.tsx:128 -msgid "Join Waitlist" -msgstr "Liity odotuslistalle" +#~ msgid "Join Waitlist" +#~ msgstr "Liity odotuslistalle" #: src/screens/Onboarding/index.tsx:24 msgid "Journalism" msgstr "Journalismi" +#: src/components/moderation/LabelsOnMe.tsx:59 +msgid "label has been placed on this {labelTarget}" +msgstr "" + +#: src/components/moderation/ContentHider.tsx:144 +msgid "Labeled by {0}." +msgstr "" + +#: src/components/moderation/ContentHider.tsx:142 +msgid "Labeled by the author." +msgstr "" + +#: src/view/screens/Profile.tsx:186 +msgid "Labels" +msgstr "" + +#: src/screens/Profile/Sections/Labels.tsx:143 +msgid "Labels are annotations on users and content. They can be used to hide, warn, and categorize the network." +msgstr "" + +#: src/components/moderation/LabelsOnMe.tsx:61 +msgid "labels have been placed on this {labelTarget}" +msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:63 +msgid "Labels on your account" +msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:65 +msgid "Labels on your content" +msgstr "" + #: src/view/com/composer/select-language/SelectLangBtn.tsx:104 msgid "Language selection" msgstr "Kielen valinta" -#: src/view/screens/Settings/index.tsx:594 +#: src/view/screens/Settings/index.tsx:610 msgid "Language settings" msgstr "Kielen asetukset" -#: src/Navigation.tsx:140 +#: src/Navigation.tsx:144 #: src/view/screens/LanguageSettings.tsx:89 msgid "Language Settings" msgstr "Kielen asetukset" -#: src/view/screens/Settings/index.tsx:603 +#: src/view/screens/Settings/index.tsx:619 msgid "Languages" msgstr "Kielet" @@ -2024,27 +2404,31 @@ msgid "Last step!" msgstr "Viimeinen vaihe!" #: src/view/com/util/moderation/ContentHider.tsx:103 -msgid "Learn more" -msgstr "Lue lisää" +#~ msgid "Learn more" +#~ msgstr "Lue lisää" -#: src/view/com/util/moderation/PostAlerts.tsx:47 -#: src/view/com/util/moderation/ProfileHeaderAlerts.tsx:65 -#: src/view/com/util/moderation/ScreenHider.tsx:104 +#: src/components/moderation/ScreenHider.tsx:129 msgid "Learn More" msgstr "Lue lisää" -#: src/view/com/util/moderation/ContentHider.tsx:85 -#: src/view/com/util/moderation/PostAlerts.tsx:40 -#: src/view/com/util/moderation/PostHider.tsx:78 -#: src/view/com/util/moderation/ProfileHeaderAlerts.tsx:49 -#: src/view/com/util/moderation/ScreenHider.tsx:101 +#: src/components/moderation/ContentHider.tsx:65 +#: src/components/moderation/ContentHider.tsx:128 +msgid "Learn more about the moderation applied to this content." +msgstr "" + +#: src/components/moderation/PostHider.tsx:85 +#: src/components/moderation/ScreenHider.tsx:126 msgid "Learn more about this warning" msgstr "Lue lisää tästä varoituksesta" -#: src/view/screens/Moderation.tsx:262 +#: src/screens/Moderation/index.tsx:551 msgid "Learn more about what is public on Bluesky." msgstr "Lue lisää siitä, mikä on julkista Blueskyssa." +#: src/components/moderation/ContentHider.tsx:152 +msgid "Learn more." +msgstr "" + #: src/view/com/modals/lang-settings/ContentLanguagesSettings.tsx:82 msgid "Leave them all unchecked to see any language." msgstr "Jätä kaikki valitsematta nähdäksesi minkä tahansa kielen." @@ -2057,7 +2441,7 @@ msgstr "Poistuminen Blueskysta" msgid "left to go." msgstr "jäljellä." -#: src/view/screens/Settings/index.tsx:278 +#: src/view/screens/Settings/index.tsx:292 msgid "Legacy storage cleared, you need to restart the app now." msgstr "Legacy tietovarasto tyhjennetty, sinun on käynnistettävä sovellus uudelleen nyt." @@ -2072,56 +2456,65 @@ msgstr "Aloitetaan!" #: src/view/com/util/UserAvatar.tsx:248 #: src/view/com/util/UserBanner.tsx:62 -msgid "Library" -msgstr "Kirjasto" +#~ msgid "Library" +#~ msgstr "Kirjasto" -#: src/view/screens/Settings/index.tsx:479 +#: src/view/screens/Settings/index.tsx:494 msgid "Light" msgstr "Vaalea" -#: src/view/com/util/post-ctrls/PostCtrls.tsx:182 -#: src/view/com/util/post-ctrls/PostCtrls.tsx:216 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:185 msgid "Like" msgstr "Tykkää" -#: src/view/screens/ProfileFeed.tsx:591 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:257 +#: src/view/screens/ProfileFeed.tsx:572 msgid "Like this feed" msgstr "Tykkää tästä syötteestä" -#: src/Navigation.tsx:197 +#: src/components/LikesDialog.tsx:87 +#: src/Navigation.tsx:201 +#: src/Navigation.tsx:206 msgid "Liked by" msgstr "Tykänneet" +#: src/screens/Profile/ProfileLabelerLikedBy.tsx:42 #: src/view/screens/PostLikedBy.tsx:27 #: src/view/screens/ProfileFeedLikedBy.tsx:27 msgid "Liked By" msgstr "Tykänneet" -#: src/view/com/feeds/FeedSourceCard.tsx:279 +#: src/view/com/feeds/FeedSourceCard.tsx:268 msgid "Liked by {0} {1}" msgstr "Tykänneet {0} {1}" -#: src/view/screens/ProfileFeed.tsx:606 +#: src/components/LabelingServiceCard/index.tsx:72 +msgid "Liked by {count} {0}" +msgstr "" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:277 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:291 +#: src/view/screens/ProfileFeed.tsx:587 msgid "Liked by {likeCount} {0}" msgstr "Tykkäyksiä {likeCount} {0}" -#: src/view/com/notifications/FeedItem.tsx:170 +#: src/view/com/notifications/FeedItem.tsx:174 msgid "liked your custom feed" msgstr "tykkäsi mukautetusta syötteestäsi" -#: src/view/com/notifications/FeedItem.tsx:155 +#: src/view/com/notifications/FeedItem.tsx:159 msgid "liked your post" msgstr "tykkäsi viestistäsi" -#: src/view/screens/Profile.tsx:183 +#: src/view/screens/Profile.tsx:191 msgid "Likes" msgstr "Tykkäykset" -#: src/view/com/post-thread/PostThreadItem.tsx:183 +#: src/view/com/post-thread/PostThreadItem.tsx:182 msgid "Likes on this post" msgstr "Tykkäykset tässä viestissä" -#: src/Navigation.tsx:166 +#: src/Navigation.tsx:170 msgid "List" msgstr "Lista" @@ -2129,15 +2522,15 @@ msgstr "Lista" msgid "List Avatar" msgstr "Listan kuvake" -#: src/view/screens/ProfileList.tsx:324 +#: src/view/screens/ProfileList.tsx:311 msgid "List blocked" msgstr "Lista estetty" -#: src/view/com/feeds/FeedSourceCard.tsx:233 +#: src/view/com/feeds/FeedSourceCard.tsx:220 msgid "List by {0}" msgstr "Listan on luonut {0}" -#: src/view/screens/ProfileList.tsx:378 +#: src/view/screens/ProfileList.tsx:355 msgid "List deleted" msgstr "Lista poistettu" @@ -2149,39 +2542,40 @@ msgstr "Lista hiljennetty" msgid "List Name" msgstr "Listan nimi" -#: src/view/screens/ProfileList.tsx:343 +#: src/view/screens/ProfileList.tsx:325 msgid "List unblocked" msgstr "Listaa estosta poistetut" -#: src/view/screens/ProfileList.tsx:302 +#: src/view/screens/ProfileList.tsx:297 msgid "List unmuted" msgstr "Listaa hiljennyksestä poistetut" -#: src/Navigation.tsx:110 -#: src/view/screens/Profile.tsx:185 -#: src/view/shell/desktop/LeftNav.tsx:379 -#: src/view/shell/Drawer.tsx:492 -#: src/view/shell/Drawer.tsx:493 +#: src/Navigation.tsx:114 +#: src/view/screens/Profile.tsx:187 +#: src/view/screens/Profile.tsx:193 +#: src/view/shell/desktop/LeftNav.tsx:383 +#: src/view/shell/Drawer.tsx:495 +#: src/view/shell/Drawer.tsx:496 msgid "Lists" msgstr "Listat" #: src/view/com/post-thread/PostThread.tsx:333 #: src/view/com/post-thread/PostThread.tsx:341 -msgid "Load more posts" -msgstr "Lataa lisää viestejä" +#~ msgid "Load more posts" +#~ msgstr "Lataa lisää viestejä" #: src/view/screens/Notifications.tsx:159 msgid "Load new notifications" msgstr "Lataa uusia ilmoituksia" -#: src/view/com/feeds/FeedPage.tsx:115 -#: src/view/screens/Profile.tsx:440 +#: src/screens/Profile/Sections/Feed.tsx:70 +#: src/view/com/feeds/FeedPage.tsx:124 #: src/view/screens/ProfileFeed.tsx:495 -#: src/view/screens/ProfileList.tsx:681 +#: src/view/screens/ProfileList.tsx:695 msgid "Load new posts" msgstr "Lataa uusia viestejä" -#: src/view/com/composer/text-input/mobile/Autocomplete.tsx:95 +#: src/view/com/composer/text-input/mobile/Autocomplete.tsx:99 msgid "Loading..." msgstr "Ladataan..." @@ -2189,7 +2583,7 @@ msgstr "Ladataan..." #~ msgid "Local dev server" #~ msgstr "" -#: src/Navigation.tsx:207 +#: src/Navigation.tsx:221 msgid "Log" msgstr "Loki" @@ -2200,11 +2594,11 @@ msgstr "Loki" msgid "Log out" msgstr "Kirjaudu ulos" -#: src/view/screens/Moderation.tsx:155 +#: src/screens/Moderation/index.tsx:444 msgid "Logged-out visibility" msgstr "Näkyvyys kirjautumattomana" -#: src/view/com/auth/login/ChooseAccountForm.tsx:133 +#: src/view/com/auth/login/ChooseAccountForm.tsx:137 msgid "Login to account that is not listed" msgstr "Kirjaudu tiliin, joka ei ole luettelossa" @@ -2212,7 +2606,7 @@ msgstr "Kirjaudu tiliin, joka ei ole luettelossa" msgid "Make sure this is where you intend to go!" msgstr "Varmista, että olet menossa oikeaan paikkaan!" -#: src/components/dialogs/MutedWords.tsx:71 +#: src/components/dialogs/MutedWords.tsx:83 msgid "Manage your muted words and tags" msgstr "Hallinnoi hiljennettyjä sanojasi ja tunnisteitasi" @@ -2224,7 +2618,7 @@ msgstr "Ei saa olla pidempi kuin 253 merkkiä" msgid "May only contain letters and numbers" msgstr "Ei saa olla pidempi kuin 253 merkkiä" -#: src/view/screens/Profile.tsx:182 +#: src/view/screens/Profile.tsx:190 msgid "Media" msgstr "Media" @@ -2236,36 +2630,44 @@ msgstr "mainitut käyttäjät" msgid "Mentioned users" msgstr "Mainitut käyttäjät" -#: src/view/com/util/ViewHeader.tsx:81 -#: src/view/screens/Search/Search.tsx:623 +#: src/view/com/util/ViewHeader.tsx:87 +#: src/view/screens/Search/Search.tsx:647 msgid "Menu" msgstr "Valikko" -#: src/view/com/posts/FeedErrorMessage.tsx:197 +#: src/view/com/posts/FeedErrorMessage.tsx:192 msgid "Message from server: {0}" msgstr "Viesti palvelimelta: {0}" -#: src/Navigation.tsx:115 -#: src/view/screens/Moderation.tsx:66 -#: src/view/screens/Settings/index.tsx:625 -#: src/view/shell/desktop/LeftNav.tsx:397 -#: src/view/shell/Drawer.tsx:511 -#: src/view/shell/Drawer.tsx:512 +#: src/lib/moderation/useReportOptions.ts:45 +msgid "Misleading Account" +msgstr "" + +#: src/Navigation.tsx:119 +#: src/screens/Moderation/index.tsx:106 +#: src/view/screens/Settings/index.tsx:641 +#: src/view/shell/desktop/LeftNav.tsx:401 +#: src/view/shell/Drawer.tsx:514 +#: src/view/shell/Drawer.tsx:515 msgid "Moderation" msgstr "Moderointi" +#: src/components/moderation/ModerationDetailsDialog.tsx:113 +msgid "Moderation details" +msgstr "" + #: src/view/com/lists/ListCard.tsx:93 #: src/view/com/modals/UserAddRemoveLists.tsx:206 msgid "Moderation list by {0}" msgstr "Moderointilista käyttäjältä {0}" -#: src/view/screens/ProfileList.tsx:774 +#: src/view/screens/ProfileList.tsx:789 msgid "Moderation list by <0/>" msgstr "Moderointilista käyttäjältä <0/>" #: src/view/com/lists/ListCard.tsx:91 #: src/view/com/modals/UserAddRemoveLists.tsx:204 -#: src/view/screens/ProfileList.tsx:772 +#: src/view/screens/ProfileList.tsx:787 msgid "Moderation list by you" msgstr "Sinun moderointilistasi" @@ -2277,36 +2679,47 @@ msgstr "Moderointilista luotu" msgid "Moderation list updated" msgstr "Moderointilista päivitetty" -#: src/view/screens/Moderation.tsx:114 +#: src/screens/Moderation/index.tsx:245 msgid "Moderation lists" msgstr "Moderointilistat" -#: src/Navigation.tsx:120 +#: src/Navigation.tsx:124 #: src/view/screens/ModerationModlists.tsx:58 msgid "Moderation Lists" msgstr "Moderointilistat" -#: src/view/screens/Settings/index.tsx:619 +#: src/view/screens/Settings/index.tsx:635 msgid "Moderation settings" msgstr "Moderointiasetukset" -#: src/view/com/modals/ModerationDetails.tsx:35 +#: src/Navigation.tsx:216 +msgid "Moderation states" +msgstr "" + +#: src/screens/Moderation/index.tsx:217 +msgid "Moderation tools" +msgstr "" + +#: src/components/moderation/ModerationDetailsDialog.tsx:49 +#: src/lib/moderation/useModerationCauseDescription.ts:40 msgid "Moderator has chosen to set a general warning on the content." msgstr "Ylläpitäjä on asettanut yleisen varoituksen sisällölle." -#: src/view/shell/desktop/Feeds.tsx:63 +#: src/view/com/post-thread/PostThreadItem.tsx:541 +msgid "More" +msgstr "" + +#: src/view/shell/desktop/Feeds.tsx:65 msgid "More feeds" msgstr "Lisää syötteitä" -#: src/view/com/profile/ProfileHeader.tsx:523 -#: src/view/screens/ProfileFeed.tsx:363 -#: src/view/screens/ProfileList.tsx:617 +#: src/view/screens/ProfileList.tsx:599 msgid "More options" msgstr "Lisää asetuksia" #: src/view/com/util/forms/PostDropdownBtn.tsx:315 -msgid "More post options" -msgstr "Lisää viestiasetuksia" +#~ msgid "More post options" +#~ msgstr "Lisää viestiasetuksia" #: src/view/screens/PreferencesThreads.tsx:82 msgid "Most-liked replies first" @@ -2316,58 +2729,67 @@ msgstr "Eniten tykätyt vastaukset ensin" msgid "Must be at least 3 characters" msgstr "Täytyy olla vähintään 3 merkkiä" -#: src/components/TagMenu/index.tsx:253 +#: src/components/TagMenu/index.tsx:249 msgid "Mute" msgstr "Hiljennä" -#: src/components/TagMenu/index.web.tsx:91 +#: src/components/TagMenu/index.web.tsx:105 msgid "Mute {truncatedTag}" msgstr "Hiljennä {truncatedTag}" -#: src/view/com/profile/ProfileHeader.tsx:327 +#: src/view/com/profile/ProfileMenu.tsx:279 +#: src/view/com/profile/ProfileMenu.tsx:286 msgid "Mute Account" msgstr "Hiljennä käyttäjä" -#: src/view/screens/ProfileList.tsx:544 +#: src/view/screens/ProfileList.tsx:518 msgid "Mute accounts" msgstr "Hiljennä käyttäjät" + +#: src/components/TagMenu/index.tsx:209 +msgid "Mute all {displayTag} posts" +msgstr "" + #: src/components/TagMenu/index.tsx:211 -msgid "Mute all {tag} posts" -msgstr "Hiljennä kaikki {tag}-viestit" +#~ msgid "Mute all {tag} posts" +#~ msgstr "Hiljennä kaikki {tag}-viestit" -#: src/components/dialogs/MutedWords.tsx:131 +#: src/components/dialogs/MutedWords.tsx:149 msgid "Mute in tags only" msgstr "Hiljennä vain tunnisteissa" -#: src/components/dialogs/MutedWords.tsx:116 +#: src/components/dialogs/MutedWords.tsx:134 msgid "Mute in text & tags" msgstr "Hiljennä tekstissä ja tunnisteissa" -#: src/view/screens/ProfileList.tsx:491 +#: src/view/screens/ProfileList.tsx:461 +#: src/view/screens/ProfileList.tsx:624 msgid "Mute list" msgstr "Hiljennä lista" -#: src/view/screens/ProfileList.tsx:275 +#: src/view/screens/ProfileList.tsx:619 msgid "Mute these accounts?" msgstr "Hiljennä nämä käyttäjät?" #: src/view/screens/ProfileList.tsx:279 -msgid "Mute this List" -msgstr "Hiljennä tämä lista" +#~ msgid "Mute this List" +#~ msgstr "Hiljennä tämä lista" -#: src/components/dialogs/MutedWords.tsx:109 +#: src/components/dialogs/MutedWords.tsx:127 msgid "Mute this word in post text and tags" msgstr "Hiljennä tämä sana viesteissä ja tunnisteissa" -#: src/components/dialogs/MutedWords.tsx:124 +#: src/components/dialogs/MutedWords.tsx:142 msgid "Mute this word in tags only" msgstr "Hiljennä tämä sana vain tunnisteissa" -#: src/view/com/util/forms/PostDropdownBtn.tsx:202 +#: src/view/com/util/forms/PostDropdownBtn.tsx:251 +#: src/view/com/util/forms/PostDropdownBtn.tsx:257 msgid "Mute thread" msgstr "Hiljennä keskustelu" -#: src/view/com/util/forms/PostDropdownBtn.tsx:216 +#: src/view/com/util/forms/PostDropdownBtn.tsx:267 +#: src/view/com/util/forms/PostDropdownBtn.tsx:269 msgid "Mute words & tags" msgstr "Hiljennä sanat ja tunnisteet" @@ -2375,11 +2797,11 @@ msgstr "Hiljennä sanat ja tunnisteet" msgid "Muted" msgstr "Hiljennetty" -#: src/view/screens/Moderation.tsx:128 +#: src/screens/Moderation/index.tsx:257 msgid "Muted accounts" msgstr "Hiljennetyt käyttäjät" -#: src/Navigation.tsx:125 +#: src/Navigation.tsx:129 #: src/view/screens/ModerationMutedAccounts.tsx:107 msgid "Muted Accounts" msgstr "Hiljennetyt käyttäjätilit" @@ -2388,15 +2810,20 @@ msgstr "Hiljennetyt käyttäjätilit" msgid "Muted accounts have their posts removed from your feed and from your notifications. Mutes are completely private." msgstr "Hiljennettyjen käyttäjien viestit poistetaan syötteestäsi ja ilmoituksistasi. Hiljennykset ovat täysin yksityisiä." -#: src/view/screens/Moderation.tsx:100 +#: src/lib/moderation/useModerationCauseDescription.ts:85 +msgid "Muted by \"{0}\"" +msgstr "" + +#: src/screens/Moderation/index.tsx:233 msgid "Muted words & tags" msgstr "Hiljennetyt sanat ja tunnisteet" -#: src/view/screens/ProfileList.tsx:277 +#: src/view/screens/ProfileList.tsx:621 msgid "Muting is private. Muted accounts can interact with you, but you will not see their posts or receive notifications from them." msgstr "Hiljennys on yksityinen. Hiljennetyt käyttäjät voivat edelleen vuorovaikuttaa kanssasi, mutta et näe heidän viestejään tai saa ilmoituksia heiltä." -#: src/view/com/modals/BirthDateSettings.tsx:56 +#: src/components/dialogs/BirthDateSettings.tsx:35 +#: src/components/dialogs/BirthDateSettings.tsx:38 msgid "My Birthday" msgstr "Syntymäpäiväni" @@ -2408,13 +2835,17 @@ msgstr "Omat syötteet" msgid "My Profile" msgstr "Profiilini" -#: src/view/screens/Settings/index.tsx:582 +#: src/view/screens/Settings/index.tsx:592 +msgid "My saved feeds" +msgstr "" + +#: src/view/screens/Settings/index.tsx:598 msgid "My Saved Feeds" msgstr "Omat tallennetut syötteet" #: src/view/com/auth/server-input/index.tsx:118 -msgid "my-server.com" -msgstr "oma-palvelimeni.com" +#~ msgid "my-server.com" +#~ msgstr "oma-palvelimeni.com" #: src/view/com/modals/AddAppPasswords.tsx:179 #: src/view/com/modals/CreateOrEditList.tsx:290 @@ -2425,6 +2856,12 @@ msgstr "Nimi" msgid "Name is required" msgstr "Nimi vaaditaan" +#: src/lib/moderation/useReportOptions.ts:57 +#: src/lib/moderation/useReportOptions.ts:78 +#: src/lib/moderation/useReportOptions.ts:86 +msgid "Name or Description Violates Community Standards" +msgstr "" + #: src/screens/Onboarding/index.tsx:25 msgid "Nature" msgstr "Luonto" @@ -2433,7 +2870,7 @@ msgstr "Luonto" #: src/view/com/auth/login/ForgotPasswordForm.tsx:219 #: src/view/com/auth/login/LoginForm.tsx:289 #: src/view/com/auth/login/SetNewPasswordForm.tsx:196 -#: src/view/com/modals/ChangePassword.tsx:166 +#: src/view/com/modals/ChangePassword.tsx:168 msgid "Navigates to the next screen" msgstr "Siirtyy seuraavalle näytölle" @@ -2441,13 +2878,17 @@ msgstr "Siirtyy seuraavalle näytölle" msgid "Navigates to your profile" msgstr "Siirtyy profiiliisi" +#: src/components/ReportDialog/SelectReportOptionView.tsx:124 +msgid "Need to report a copyright violation?" +msgstr "" + #: src/view/com/modals/EmbedConsent.tsx:107 #: src/view/com/modals/EmbedConsent.tsx:123 msgid "Never load embeds from {0}" msgstr "Älä koskaan lataa upotuksia taholta {0}" #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:72 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:72 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:74 msgid "Never lose access to your followers and data." msgstr "Älä koskaan menetä pääsyä seuraajiisi ja tietoihisi." @@ -2456,8 +2897,12 @@ msgid "Never lose access to your followers or data." msgstr "Älä koskaan menetä pääsyä seuraajiisi tai tietoihisi." #: src/components/dialogs/MutedWords.tsx:244 -msgid "Nevermind" -msgstr "Ei väliä" +#~ msgid "Nevermind" +#~ msgstr "Ei väliä" + +#: src/view/com/modals/ChangeHandle.tsx:520 +msgid "Nevermind, create a handle for me" +msgstr "" #: src/view/screens/Lists.tsx:76 msgctxt "action" @@ -2473,29 +2918,30 @@ msgid "New Moderation List" msgstr "Uusi moderointilista" #: src/view/com/auth/login/SetNewPasswordForm.tsx:150 +#: src/view/com/modals/ChangePassword.tsx:212 msgid "New password" msgstr "Uusi salasana" -#: src/view/com/modals/ChangePassword.tsx:215 +#: src/view/com/modals/ChangePassword.tsx:217 msgid "New Password" msgstr "Uusi salasana" -#: src/view/com/feeds/FeedPage.tsx:126 +#: src/view/com/feeds/FeedPage.tsx:135 msgctxt "action" msgid "New post" msgstr "Uusi viesti" #: src/view/screens/Feeds.tsx:555 #: src/view/screens/Notifications.tsx:168 -#: src/view/screens/Profile.tsx:382 +#: src/view/screens/Profile.tsx:450 #: src/view/screens/ProfileFeed.tsx:433 -#: src/view/screens/ProfileList.tsx:196 -#: src/view/screens/ProfileList.tsx:224 -#: src/view/shell/desktop/LeftNav.tsx:248 +#: src/view/screens/ProfileList.tsx:199 +#: src/view/screens/ProfileList.tsx:227 +#: src/view/shell/desktop/LeftNav.tsx:252 msgid "New post" msgstr "Uusi viesti" -#: src/view/shell/desktop/LeftNav.tsx:258 +#: src/view/shell/desktop/LeftNav.tsx:262 msgctxt "action" msgid "New Post" msgstr "Uusi viesti" @@ -2519,8 +2965,8 @@ msgstr "Uutiset" #: src/view/com/auth/login/SetNewPasswordForm.tsx:187 #: src/view/com/auth/login/SetNewPasswordForm.tsx:198 #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:79 -#: src/view/com/modals/ChangePassword.tsx:251 #: src/view/com/modals/ChangePassword.tsx:253 +#: src/view/com/modals/ChangePassword.tsx:255 msgid "Next" msgstr "Seuraava" @@ -2529,7 +2975,7 @@ msgctxt "action" msgid "Next" msgstr "Seuraava" -#: src/view/com/lightbox/Lightbox.web.tsx:149 +#: src/view/com/lightbox/Lightbox.web.tsx:169 msgid "Next image" msgstr "Seuraava kuva" @@ -2542,12 +2988,16 @@ msgstr "Seuraava kuva" msgid "No" msgstr "Ei" -#: src/view/screens/ProfileFeed.tsx:584 -#: src/view/screens/ProfileList.tsx:754 +#: src/view/screens/ProfileFeed.tsx:561 +#: src/view/screens/ProfileList.tsx:769 msgid "No description" msgstr "Ei kuvausta" -#: src/view/com/profile/ProfileHeader.tsx:170 +#: src/view/com/modals/ChangeHandle.tsx:406 +msgid "No DNS Panel" +msgstr "" + +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:111 msgid "No longer following {0}" msgstr "Et enää seuraa käyttäjää {0}" @@ -2555,18 +3005,22 @@ msgstr "Et enää seuraa käyttäjää {0}" msgid "No notifications yet!" msgstr "Ei vielä ilmoituksia!" -#: src/view/com/composer/text-input/mobile/Autocomplete.tsx:97 -#: src/view/com/composer/text-input/web/Autocomplete.tsx:191 +#: src/view/com/composer/text-input/mobile/Autocomplete.tsx:101 +#: src/view/com/composer/text-input/web/Autocomplete.tsx:195 msgid "No result" msgstr "Ei tuloksia" +#: src/components/Lists.tsx:189 +msgid "No results found" +msgstr "" + #: src/view/screens/Feeds.tsx:495 msgid "No results found for \"{query}\"" msgstr "Ei tuloksia haulle \"{query}\"" #: src/view/com/modals/ListAddRemoveUsers.tsx:127 -#: src/view/screens/Search/Search.tsx:281 -#: src/view/screens/Search/Search.tsx:309 +#: src/view/screens/Search/Search.tsx:282 +#: src/view/screens/Search/Search.tsx:310 msgid "No results found for {query}" msgstr "Ei tuloksia haulle {query}" @@ -2578,12 +3032,21 @@ msgstr "Ei kiitos" msgid "Nobody" msgstr "Ei ketään" -#: src/view/com/modals/SelfLabel.tsx:135 -msgid "Not Applicable." +#: src/components/LikedByList.tsx:102 +#: src/components/LikesDialog.tsx:99 +msgid "Nobody has liked this yet. Maybe you should be the first!" +msgstr "" + +#: src/lib/moderation/useGlobalLabelStrings.ts:42 +msgid "Non-sexual Nudity" +msgstr "" + +#: src/view/com/modals/SelfLabel.tsx:135 +msgid "Not Applicable." msgstr "Ei sovellettavissa." -#: src/Navigation.tsx:105 -#: src/view/screens/Profile.tsx:106 +#: src/Navigation.tsx:109 +#: src/view/screens/Profile.tsx:97 msgid "Not Found" msgstr "Ei löytynyt" @@ -2592,17 +3055,22 @@ msgstr "Ei löytynyt" msgid "Not right now" msgstr "Ei juuri nyt" -#: src/view/screens/Moderation.tsx:252 +#: src/view/com/profile/ProfileMenu.tsx:368 +#: src/view/com/util/forms/PostDropdownBtn.tsx:342 +msgid "Note about sharing" +msgstr "" + +#: src/screens/Moderation/index.tsx:542 msgid "Note: Bluesky is an open and public network. This setting only limits the visibility of your content on the Bluesky app and website, and other apps may not respect this setting. Your content may still be shown to logged-out users by other apps and websites." msgstr "Huomio: Bluesky on avoin ja julkinen verkosto. Tämä asetus rajoittaa vain sisältösi näkyvyyttä Bluesky-sovelluksessa ja -sivustolla, eikä muut sovellukset ehkä kunnioita tässä asetuksissaan. Sisältösi voi silti näkyä uloskirjautuneille käyttäjille muissa sovelluksissa ja verkkosivustoilla." -#: src/Navigation.tsx:450 +#: src/Navigation.tsx:469 #: src/view/screens/Notifications.tsx:124 #: src/view/screens/Notifications.tsx:148 -#: src/view/shell/bottom-bar/BottomBar.tsx:205 -#: src/view/shell/desktop/LeftNav.tsx:361 -#: src/view/shell/Drawer.tsx:435 -#: src/view/shell/Drawer.tsx:436 +#: src/view/shell/bottom-bar/BottomBar.tsx:207 +#: src/view/shell/desktop/LeftNav.tsx:365 +#: src/view/shell/Drawer.tsx:438 +#: src/view/shell/Drawer.tsx:439 msgid "Notifications" msgstr "Ilmoitukset" @@ -2610,7 +3078,15 @@ msgstr "Ilmoitukset" msgid "Nudity" msgstr "Alastomuus" -#: src/view/com/util/ErrorBoundary.tsx:35 +#: src/lib/moderation/useReportOptions.ts:71 +msgid "Nudity or pornography not labeled as such" +msgstr "" + +#: src/lib/moderation/useLabelBehaviorDescription.ts:11 +msgid "Off" +msgstr "" + +#: src/view/com/util/ErrorBoundary.tsx:49 msgid "Oh no!" msgstr "Voi ei!" @@ -2618,6 +3094,10 @@ msgstr "Voi ei!" msgid "Oh no! Something went wrong." msgstr "Voi ei! Jokin meni pieleen." +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:127 +msgid "OK" +msgstr "" + #: src/view/com/auth/login/PasswordUpdatedForm.tsx:41 msgid "Okay" msgstr "Selvä" @@ -2626,11 +3106,11 @@ msgstr "Selvä" msgid "Oldest replies first" msgstr "Vanhimmat vastaukset ensin" -#: src/view/screens/Settings/index.tsx:234 +#: src/view/screens/Settings/index.tsx:240 msgid "Onboarding reset" msgstr "Käyttöönoton nollaus" -#: src/view/com/composer/Composer.tsx:382 +#: src/view/com/composer/Composer.tsx:391 msgid "One or more images is missing alt text." msgstr "Yksi tai useampi kuva on ilman vaihtoehtoista Alt-tekstiä." @@ -2638,8 +3118,13 @@ msgstr "Yksi tai useampi kuva on ilman vaihtoehtoista Alt-tekstiä." msgid "Only {0} can reply." msgstr "Vain {0} voi vastata." -#: src/view/screens/AppPasswords.tsx:65 -#: src/view/screens/Profile.tsx:106 +#: src/components/Lists.tsx:83 +msgid "Oops, something went wrong!" +msgstr "" + +#: src/components/Lists.tsx:157 +#: src/view/screens/AppPasswords.tsx:67 +#: src/view/screens/Profile.tsx:97 msgid "Oops!" msgstr "Hups!" @@ -2648,30 +3133,47 @@ msgid "Open" msgstr "Avaa" #: src/view/screens/Moderation.tsx:75 -msgid "Open content filtering settings" -msgstr "Avaa sisällönsuodatusasetukset" +#~ msgid "Open content filtering settings" +#~ msgstr "Avaa sisällönsuodatusasetukset" -#: src/view/com/composer/Composer.tsx:477 -#: src/view/com/composer/Composer.tsx:478 +#: src/view/com/composer/Composer.tsx:490 +#: src/view/com/composer/Composer.tsx:491 msgid "Open emoji picker" msgstr "Avaa emoji-valitsin" -#: src/view/screens/Settings/index.tsx:712 +#: src/view/screens/ProfileFeed.tsx:299 +msgid "Open feed options menu" +msgstr "" + +#: src/view/screens/Settings/index.tsx:730 msgid "Open links with in-app browser" msgstr "Avaa linkit sovelluksen sisäisellä selaimella" +#: src/screens/Moderation/index.tsx:229 +msgid "Open muted words and tags settings" +msgstr "" + #: src/view/screens/Moderation.tsx:92 -msgid "Open muted words settings" -msgstr "Avaa hiljennettyjen sanojen asetukset" +#~ msgid "Open muted words settings" +#~ msgstr "Avaa hiljennettyjen sanojen asetukset" -#: src/view/com/home/HomeHeaderLayoutMobile.tsx:49 +#: src/view/com/home/HomeHeaderLayoutMobile.tsx:50 msgid "Open navigation" msgstr "Avaa navigointi" -#: src/view/screens/Settings/index.tsx:804 +#: src/view/com/util/forms/PostDropdownBtn.tsx:183 +msgid "Open post options menu" +msgstr "" + +#: src/view/screens/Settings/index.tsx:824 +#: src/view/screens/Settings/index.tsx:834 msgid "Open storybook page" msgstr "Avaa storybook-sivu" +#: src/view/screens/Settings/index.tsx:812 +msgid "Open system log" +msgstr "" + #: src/view/com/util/forms/DropdownButton.tsx:154 msgid "Opens {numItems} options" msgstr "Avaa {numItems} asetusta" @@ -2680,11 +3182,11 @@ msgstr "Avaa {numItems} asetusta" msgid "Opens additional details for a debug entry" msgstr "Avaa debug lisätiedot" -#: src/view/com/notifications/FeedItem.tsx:348 +#: src/view/com/notifications/FeedItem.tsx:353 msgid "Opens an expanded list of users in this notification" msgstr "Avaa laajennetun listan tämän ilmoituksen käyttäjistä" -#: src/view/com/composer/photos/OpenCameraBtn.tsx:61 +#: src/view/com/composer/photos/OpenCameraBtn.tsx:78 msgid "Opens camera on device" msgstr "Avaa laitteen kameran" @@ -2692,7 +3194,7 @@ msgstr "Avaa laitteen kameran" msgid "Opens composer" msgstr "Avaa editorin" -#: src/view/screens/Settings/index.tsx:595 +#: src/view/screens/Settings/index.tsx:611 msgid "Opens configurable language settings" msgstr "Avaa mukautettavat kielen asetukset" @@ -2701,20 +3203,30 @@ msgid "Opens device photo gallery" msgstr "Avaa laitteen valokuvat" #: src/view/com/profile/ProfileHeader.tsx:420 -msgid "Opens editor for profile display name, avatar, background image, and description" -msgstr "Avaa editorin profiilin näyttönimeä, avataria, taustakuvaa ja kuvausta varten" +#~ msgid "Opens editor for profile display name, avatar, background image, and description" +#~ msgstr "Avaa editorin profiilin näyttönimeä, avataria, taustakuvaa ja kuvausta varten" -#: src/view/screens/Settings/index.tsx:649 +#: src/view/screens/Settings/index.tsx:665 msgid "Opens external embeds settings" msgstr "Avaa ulkoiset upotusasetukset" +#: src/view/com/auth/HomeLoggedOutCTA.tsx:56 +#: src/view/com/auth/SplashScreen.tsx:70 +msgid "Opens flow to create a new Bluesky account" +msgstr "" + +#: src/view/com/auth/HomeLoggedOutCTA.tsx:74 +#: src/view/com/auth/SplashScreen.tsx:83 +msgid "Opens flow to sign into your existing Bluesky account" +msgstr "" + #: src/view/com/profile/ProfileHeader.tsx:575 -msgid "Opens followers list" -msgstr "Avaa seuraajalistan" +#~ msgid "Opens followers list" +#~ msgstr "Avaa seuraajalistan" #: src/view/com/profile/ProfileHeader.tsx:594 -msgid "Opens following list" -msgstr "Avaa seurattavien listan" +#~ msgid "Opens following list" +#~ msgstr "Avaa seurattavien listan" #: src/view/screens/Settings.tsx:412 #~ msgid "Opens invite code list" @@ -2724,15 +3236,35 @@ msgstr "Avaa seurattavien listan" msgid "Opens list of invite codes" msgstr "Avaa kutsukoodien luettelon" +#: src/view/screens/Settings/index.tsx:794 +msgid "Opens modal for account deletion confirmation. Requires email code" +msgstr "" + #: src/view/screens/Settings/index.tsx:774 -msgid "Opens modal for account deletion confirmation. Requires email code." -msgstr "Avaa tilin poistovahvistuksen. Vaatii sähköpostikoodin." +#~ msgid "Opens modal for account deletion confirmation. Requires email code." +#~ msgstr "Avaa tilin poistovahvistuksen. Vaatii sähköpostikoodin." + +#: src/view/screens/Settings/index.tsx:752 +msgid "Opens modal for changing your Bluesky password" +msgstr "" + +#: src/view/screens/Settings/index.tsx:714 +msgid "Opens modal for choosing a new Bluesky handle" +msgstr "" + +#: src/view/screens/Settings/index.tsx:775 +msgid "Opens modal for downloading your Bluesky account data (repository)" +msgstr "" + +#: src/view/screens/Settings/index.tsx:966 +msgid "Opens modal for email verification" +msgstr "" #: src/view/com/modals/ChangeHandle.tsx:281 msgid "Opens modal for using custom domain" msgstr "Avaa asetukset oman verkkotunnuksen käyttöönottoon" -#: src/view/screens/Settings/index.tsx:620 +#: src/view/screens/Settings/index.tsx:636 msgid "Opens moderation settings" msgstr "Avaa moderointiasetukset" @@ -2740,32 +3272,45 @@ msgstr "Avaa moderointiasetukset" msgid "Opens password reset form" msgstr "Avaa salasanan palautuslomakkeen" -#: src/view/com/home/HomeHeaderLayout.web.tsx:60 +#: src/view/com/home/HomeHeaderLayout.web.tsx:63 #: src/view/screens/Feeds.tsx:356 msgid "Opens screen to edit Saved Feeds" msgstr "Avaa näkymän tallennettujen syötteiden muokkaamiseen" -#: src/view/screens/Settings/index.tsx:576 +#: src/view/screens/Settings/index.tsx:593 msgid "Opens screen with all saved feeds" msgstr "Avaa näkymän kaikkiin tallennettuihin syötteisiin" +#: src/view/screens/Settings/index.tsx:692 +msgid "Opens the app password settings" +msgstr "" + #: src/view/screens/Settings/index.tsx:676 -msgid "Opens the app password settings page" -msgstr "Avaa sovellussalasanojen asetukset" +#~ msgid "Opens the app password settings page" +#~ msgstr "Avaa sovellussalasanojen asetukset" + +#: src/view/screens/Settings/index.tsx:550 +msgid "Opens the Following feed preferences" +msgstr "" #: src/view/screens/Settings/index.tsx:535 -msgid "Opens the home feed preferences" -msgstr "Avaa aloitussivun asetukset" +#~ msgid "Opens the home feed preferences" +#~ msgstr "Avaa aloitussivun asetukset" -#: src/view/screens/Settings/index.tsx:805 +#: src/view/com/modals/LinkWarning.tsx:76 +msgid "Opens the linked website" +msgstr "" + +#: src/view/screens/Settings/index.tsx:825 +#: src/view/screens/Settings/index.tsx:835 msgid "Opens the storybook page" msgstr "Avaa storybook-sivun" -#: src/view/screens/Settings/index.tsx:793 +#: src/view/screens/Settings/index.tsx:813 msgid "Opens the system log page" msgstr "Avaa järjestelmän lokisivun" -#: src/view/screens/Settings/index.tsx:556 +#: src/view/screens/Settings/index.tsx:571 msgid "Opens the threads preferences" msgstr "Avaa keskusteluasetukset" @@ -2773,11 +3318,19 @@ msgstr "Avaa keskusteluasetukset" msgid "Option {0} of {numItems}" msgstr "Asetus {0}/{numItems}" +#: src/components/ReportDialog/SubmitView.tsx:162 +msgid "Optionally provide additional information below:" +msgstr "" + #: src/view/com/modals/Threadgate.tsx:89 msgid "Or combine these options:" msgstr "Tai yhdistä nämä asetukset:" -#: src/view/com/auth/login/ChooseAccountForm.tsx:138 +#: src/lib/moderation/useReportOptions.ts:25 +msgid "Other" +msgstr "" + +#: src/view/com/auth/login/ChooseAccountForm.tsx:142 msgid "Other account" msgstr "Toinen tili" @@ -2789,6 +3342,7 @@ msgstr "Toinen tili" msgid "Other..." msgstr "Muu..." +#: src/components/Lists.tsx:190 #: src/view/screens/NotFound.tsx:45 msgid "Page not found" msgstr "Sivua ei löytynyt" @@ -2797,14 +3351,20 @@ msgstr "Sivua ei löytynyt" msgid "Page Not Found" msgstr "Sivua ei löytynyt" -#: src/view/com/auth/create/Step1.tsx:214 -#: src/view/com/auth/create/Step1.tsx:224 +#: src/view/com/auth/create/Step1.tsx:191 +#: src/view/com/auth/create/Step1.tsx:201 +#: src/view/com/auth/login/LoginForm.tsx:210 #: src/view/com/auth/login/LoginForm.tsx:226 #: src/view/com/auth/login/SetNewPasswordForm.tsx:161 +#: src/view/com/modals/DeleteAccount.tsx:195 #: src/view/com/modals/DeleteAccount.tsx:202 msgid "Password" msgstr "Salasana" +#: src/view/com/modals/ChangePassword.tsx:142 +msgid "Password Changed" +msgstr "" + #: src/view/com/auth/login/Login.tsx:157 msgid "Password updated" msgstr "Salasana päivitetty" @@ -2813,11 +3373,11 @@ msgstr "Salasana päivitetty" msgid "Password updated!" msgstr "Salasana päivitetty!" -#: src/Navigation.tsx:160 +#: src/Navigation.tsx:164 msgid "People followed by @{0}" msgstr "Henkilöt, joita @{0} seuraa" -#: src/Navigation.tsx:153 +#: src/Navigation.tsx:157 msgid "People following @{0}" msgstr "Henkilöt, jotka seuraavat käyttäjää @{0}" @@ -2841,11 +3401,15 @@ msgstr "Lemmikit" msgid "Pictures meant for adults." msgstr "Aikuisille tarkoitetut kuvat." -#: src/view/screens/ProfileFeed.tsx:354 -#: src/view/screens/ProfileList.tsx:581 +#: src/view/screens/ProfileFeed.tsx:291 +#: src/view/screens/ProfileList.tsx:563 msgid "Pin to home" msgstr "Kiinnitä etusivulle" +#: src/view/screens/ProfileFeed.tsx:294 +msgid "Pin to Home" +msgstr "" + #: src/view/screens/SavedFeeds.tsx:88 msgid "Pinned Feeds" msgstr "Kiinnitetyt syötteet" @@ -2891,6 +3455,10 @@ msgstr "Anna nimi sovellussalasanalle. Kaikki välilyönnit eivät ole sallittuj msgid "Please enter a unique name for this App Password or use our randomly generated one." msgstr "Anna uniikki nimi tälle sovellussalasanalle tai käytä satunnaisesti luotua." +#: src/components/dialogs/MutedWords.tsx:68 +msgid "Please enter a valid word, tag, or phrase to mute" +msgstr "" + #: src/view/com/auth/create/state.ts:170 #~ msgid "Please enter the code you received by SMS." #~ msgstr "Anna tekstiviestitse saamasi koodi." @@ -2907,10 +3475,14 @@ msgstr "Anna sähköpostiosoitteesi." msgid "Please enter your password as well:" msgstr "Anna myös salasanasi:" +#: src/components/moderation/LabelsOnMeDialog.tsx:222 +msgid "Please explain why you think this label was incorrectly applied by {0}" +msgstr "" + #: src/view/com/modals/AppealLabel.tsx:72 #: src/view/com/modals/AppealLabel.tsx:75 -msgid "Please tell us why you think this content warning was incorrectly applied!" -msgstr "Kerro meille, miksi luulet, että tämä sisältövaroitus on sovellettu virheellisesti!" +#~ msgid "Please tell us why you think this content warning was incorrectly applied!" +#~ msgstr "Kerro meille, miksi luulet, että tämä sisältövaroitus on sovellettu virheellisesti!" #: src/view/com/modals/AppealLabel.tsx:72 #: src/view/com/modals/AppealLabel.tsx:75 @@ -2921,7 +3493,7 @@ msgstr "Kerro meille, miksi luulet, että tämä sisältövaroitus on sovellettu msgid "Please Verify Your Email" msgstr "Vahvista sähköpostiosoitteesi" -#: src/view/com/composer/Composer.tsx:222 +#: src/view/com/composer/Composer.tsx:221 msgid "Please wait for your link card to finish loading" msgstr "Odota, että linkkikortti latautuu kokonaan" @@ -2933,13 +3505,17 @@ msgstr "Politiikka" msgid "Porn" msgstr "Porno" -#: src/view/com/composer/Composer.tsx:357 -#: src/view/com/composer/Composer.tsx:365 +#: src/lib/moderation/useGlobalLabelStrings.ts:34 +msgid "Pornography" +msgstr "" + +#: src/view/com/composer/Composer.tsx:366 +#: src/view/com/composer/Composer.tsx:374 msgctxt "action" msgid "Post" msgstr "Lähetä" -#: src/view/com/post-thread/PostThread.tsx:303 +#: src/view/com/post-thread/PostThread.tsx:292 msgctxt "description" msgid "Post" msgstr "Viesti" @@ -2948,20 +3524,30 @@ msgstr "Viesti" msgid "Post by {0}" msgstr "Lähettäjä {0}" -#: src/Navigation.tsx:172 -#: src/Navigation.tsx:179 -#: src/Navigation.tsx:186 +#: src/Navigation.tsx:176 +#: src/Navigation.tsx:183 +#: src/Navigation.tsx:190 msgid "Post by @{0}" msgstr "Lähettäjä @{0}" -#: src/view/com/util/forms/PostDropdownBtn.tsx:90 +#: src/view/com/util/forms/PostDropdownBtn.tsx:105 msgid "Post deleted" msgstr "Viesti poistettu" -#: src/view/com/post-thread/PostThread.tsx:462 +#: src/view/com/post-thread/PostThread.tsx:157 msgid "Post hidden" msgstr "Viesti piilotettu" +#: src/components/moderation/ModerationDetailsDialog.tsx:98 +#: src/lib/moderation/useModerationCauseDescription.ts:99 +msgid "Post Hidden by Muted Word" +msgstr "" + +#: src/components/moderation/ModerationDetailsDialog.tsx:101 +#: src/lib/moderation/useModerationCauseDescription.ts:108 +msgid "Post Hidden by You" +msgstr "" + #: src/view/com/composer/select-language/SelectLangBtn.tsx:87 msgid "Post language" msgstr "Lähetyskieli" @@ -2970,19 +3556,20 @@ msgstr "Lähetyskieli" msgid "Post Languages" msgstr "Lähetyskielet" -#: src/view/com/post-thread/PostThread.tsx:514 +#: src/view/com/post-thread/PostThread.tsx:152 +#: src/view/com/post-thread/PostThread.tsx:164 msgid "Post not found" msgstr "Viestiä ei löydy" -#: src/components/TagMenu/index.tsx:257 +#: src/components/TagMenu/index.tsx:253 msgid "posts" msgstr "viestit" -#: src/view/screens/Profile.tsx:180 +#: src/view/screens/Profile.tsx:188 msgid "Posts" msgstr "Viestit" -#: src/components/dialogs/MutedWords.tsx:77 +#: src/components/dialogs/MutedWords.tsx:90 msgid "Posts can be muted based on their text, their tags, or both." msgstr "Viestejä voidaan hiljentää niiden tekstin, tunnisteiden tai molempien perusteella." @@ -2994,7 +3581,11 @@ msgstr "Piilotetut viestit" msgid "Potentially Misleading Link" msgstr "Mahdollisesti harhaanjohtava linkki" -#: src/view/com/lightbox/Lightbox.web.tsx:135 +#: src/components/Lists.tsx:88 +msgid "Press to retry" +msgstr "" + +#: src/view/com/lightbox/Lightbox.web.tsx:150 msgid "Previous image" msgstr "Edellinen kuva" @@ -3006,15 +3597,16 @@ msgstr "Ensisijainen kieli" msgid "Prioritize Your Follows" msgstr "Aseta seurattavat tärkeysjärjestykseen" -#: src/view/screens/Settings/index.tsx:632 +#: src/view/screens/Settings/index.tsx:648 #: src/view/shell/desktop/RightNav.tsx:72 msgid "Privacy" msgstr "Yksityisyys" -#: src/Navigation.tsx:217 +#: src/Navigation.tsx:231 +#: src/view/com/auth/create/Policies.tsx:69 #: src/view/screens/PrivacyPolicy.tsx:29 -#: src/view/screens/Settings/index.tsx:891 -#: src/view/shell/Drawer.tsx:262 +#: src/view/screens/Settings/index.tsx:921 +#: src/view/shell/Drawer.tsx:265 msgid "Privacy Policy" msgstr "Yksityisyydensuojakäytäntö" @@ -3022,11 +3614,16 @@ msgstr "Yksityisyydensuojakäytäntö" msgid "Processing..." msgstr "Käsitellään..." -#: src/view/shell/bottom-bar/BottomBar.tsx:247 -#: src/view/shell/desktop/LeftNav.tsx:415 +#: src/view/screens/DebugMod.tsx:888 +#: src/view/screens/Profile.tsx:340 +msgid "profile" +msgstr "" + +#: src/view/shell/bottom-bar/BottomBar.tsx:251 +#: src/view/shell/desktop/LeftNav.tsx:419 #: src/view/shell/Drawer.tsx:70 -#: src/view/shell/Drawer.tsx:546 -#: src/view/shell/Drawer.tsx:547 +#: src/view/shell/Drawer.tsx:549 +#: src/view/shell/Drawer.tsx:550 msgid "Profile" msgstr "Profiili" @@ -3034,7 +3631,7 @@ msgstr "Profiili" msgid "Profile updated" msgstr "Profiili päivitetty" -#: src/view/screens/Settings/index.tsx:949 +#: src/view/screens/Settings/index.tsx:979 msgid "Protect your account by verifying your email." msgstr "Suojaa tilisi vahvistamalla sähköpostiosoitteesi." @@ -3050,11 +3647,11 @@ msgstr "Julkinen, jaettava käyttäjäluettelo hiljennettyjen tai estettyjen kä msgid "Public, shareable lists which can drive feeds." msgstr "Julkinen, jaettava lista, joka voi ohjata syötteitä." -#: src/view/com/composer/Composer.tsx:342 +#: src/view/com/composer/Composer.tsx:351 msgid "Publish post" msgstr "Julkaise viesti" -#: src/view/com/composer/Composer.tsx:342 +#: src/view/com/composer/Composer.tsx:351 msgid "Publish reply" msgstr "Julkaise vastaus" @@ -3080,6 +3677,10 @@ msgstr "Satunnainen (tunnetaan myös nimellä \"Lähettäjän ruletti\")" msgid "Ratios" msgstr "Suhdeluvut" +#: src/view/screens/Search/Search.tsx:776 +msgid "Recent Searches" +msgstr "" + #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:116 msgid "Recommended Feeds" msgstr "Suositellut syötteet" @@ -3088,36 +3689,50 @@ msgstr "Suositellut syötteet" msgid "Recommended Users" msgstr "Suositellut käyttäjät" -#: src/components/dialogs/MutedWords.tsx:249 -#: src/view/com/modals/ListAddRemoveUsers.tsx:264 +#: src/components/dialogs/MutedWords.tsx:287 +#: src/view/com/feeds/FeedSourceCard.tsx:283 +#: src/view/com/modals/ListAddRemoveUsers.tsx:268 #: src/view/com/modals/SelfLabel.tsx:83 #: src/view/com/modals/UserAddRemoveLists.tsx:219 -#: src/view/com/util/UserAvatar.tsx:285 -#: src/view/com/util/UserBanner.tsx:91 +#: src/view/com/posts/FeedErrorMessage.tsx:204 msgid "Remove" msgstr "Poista" #: src/view/com/feeds/FeedSourceCard.tsx:108 -msgid "Remove {0} from my feeds?" -msgstr "Poistetaanko {0} syötteistäni?" +#~ msgid "Remove {0} from my feeds?" +#~ msgstr "Poistetaanko {0} syötteistäni?" #: src/view/com/util/AccountDropdownBtn.tsx:22 msgid "Remove account" msgstr "Poista tili" -#: src/view/com/posts/FeedErrorMessage.tsx:131 -#: src/view/com/posts/FeedErrorMessage.tsx:166 +#: src/view/com/util/UserAvatar.tsx:358 +msgid "Remove Avatar" +msgstr "" + +#: src/view/com/util/UserBanner.tsx:148 +msgid "Remove Banner" +msgstr "" + +#: src/view/com/posts/FeedErrorMessage.tsx:160 msgid "Remove feed" msgstr "Poista syöte" -#: src/view/com/feeds/FeedSourceCard.tsx:107 -#: src/view/com/feeds/FeedSourceCard.tsx:169 -#: src/view/com/feeds/FeedSourceCard.tsx:174 -#: src/view/com/feeds/FeedSourceCard.tsx:245 -#: src/view/screens/ProfileFeed.tsx:273 +#: src/view/com/posts/FeedErrorMessage.tsx:201 +msgid "Remove feed?" +msgstr "" + +#: src/view/com/feeds/FeedSourceCard.tsx:173 +#: src/view/com/feeds/FeedSourceCard.tsx:233 +#: src/view/screens/ProfileFeed.tsx:334 +#: src/view/screens/ProfileFeed.tsx:340 msgid "Remove from my feeds" msgstr "Poista syötteistäni" +#: src/view/com/feeds/FeedSourceCard.tsx:278 +msgid "Remove from my feeds?" +msgstr "" + #: src/view/com/composer/photos/Gallery.tsx:167 msgid "Remove image" msgstr "Poista kuva" @@ -3126,7 +3741,7 @@ msgstr "Poista kuva" msgid "Remove image preview" msgstr "Poista kuvan esikatselu" -#: src/components/dialogs/MutedWords.tsx:294 +#: src/components/dialogs/MutedWords.tsx:330 msgid "Remove mute word from your list" msgstr "Poista hiljennetty sana listaltasi" @@ -3135,28 +3750,35 @@ msgid "Remove repost" msgstr "Poista uudelleenjako" #: src/view/com/feeds/FeedSourceCard.tsx:175 -msgid "Remove this feed from my feeds?" -msgstr "Poistetaanko tämä syöte omista syötteistäni?" +#~ msgid "Remove this feed from my feeds?" +#~ msgstr "Poistetaanko tämä syöte omista syötteistäni?" + +#: src/view/com/posts/FeedErrorMessage.tsx:202 +msgid "Remove this feed from your saved feeds" +msgstr "" #: src/view/com/posts/FeedErrorMessage.tsx:132 -msgid "Remove this feed from your saved feeds?" -msgstr "Poistetaanko tämä syöte tallennetuista syötteistäsi?" +#~ msgid "Remove this feed from your saved feeds?" +#~ msgstr "Poistetaanko tämä syöte tallennetuista syötteistäsi?" #: src/view/com/modals/ListAddRemoveUsers.tsx:199 #: src/view/com/modals/UserAddRemoveLists.tsx:152 msgid "Removed from list" msgstr "Poistettu listalta" -#: src/view/com/feeds/FeedSourceCard.tsx:113 -#: src/view/com/feeds/FeedSourceCard.tsx:180 +#: src/view/com/feeds/FeedSourceCard.tsx:121 msgid "Removed from my feeds" msgstr "Poistettu syötteistäni" +#: src/view/screens/ProfileFeed.tsx:208 +msgid "Removed from your feeds" +msgstr "" + #: src/view/com/composer/ExternalEmbed.tsx:71 msgid "Removes default thumbnail from {0}" msgstr "Poistaa {0} oletuskuvakkeen" -#: src/view/screens/Profile.tsx:181 +#: src/view/screens/Profile.tsx:189 msgid "Replies" msgstr "Vastaukset" @@ -3164,7 +3786,7 @@ msgstr "Vastaukset" msgid "Replies to this thread are disabled" msgstr "Tähän keskusteluun vastaaminen on estetty" -#: src/view/com/composer/Composer.tsx:355 +#: src/view/com/composer/Composer.tsx:364 msgctxt "action" msgid "Reply" msgstr "Vastaa" @@ -3173,33 +3795,55 @@ msgstr "Vastaa" msgid "Reply Filters" msgstr "Vastaussuodattimet" -#: src/view/com/post/Post.tsx:167 -#: src/view/com/posts/FeedItem.tsx:287 +#: src/view/com/post/Post.tsx:166 +#: src/view/com/posts/FeedItem.tsx:280 msgctxt "description" msgid "Reply to <0/>" msgstr "Vastaa käyttäjälle <0/>" #: src/view/com/modals/report/Modal.tsx:166 -msgid "Report {collectionName}" -msgstr "Raportoi {collectionName}" +#~ msgid "Report {collectionName}" +#~ msgstr "Raportoi {collectionName}" -#: src/view/com/profile/ProfileHeader.tsx:361 +#: src/view/com/profile/ProfileMenu.tsx:319 +#: src/view/com/profile/ProfileMenu.tsx:322 msgid "Report Account" msgstr "Ilmoita tili" -#: src/view/screens/ProfileFeed.tsx:293 +#: src/view/screens/ProfileFeed.tsx:351 +#: src/view/screens/ProfileFeed.tsx:353 msgid "Report feed" msgstr "Ilmoita syöte" -#: src/view/screens/ProfileList.tsx:459 +#: src/view/screens/ProfileList.tsx:429 msgid "Report List" msgstr "Ilmoita luettelo" -#: src/view/com/modals/report/SendReportButton.tsx:37 -#: src/view/com/util/forms/PostDropdownBtn.tsx:255 +#: src/view/com/util/forms/PostDropdownBtn.tsx:292 +#: src/view/com/util/forms/PostDropdownBtn.tsx:294 msgid "Report post" msgstr "Ilmoita viesti" +#: src/components/ReportDialog/SelectReportOptionView.tsx:43 +msgid "Report this content" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:56 +msgid "Report this feed" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:53 +msgid "Report this list" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:50 +msgid "Report this post" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:47 +msgid "Report this user" +msgstr "" + #: src/view/com/modals/Repost.tsx:43 #: src/view/com/modals/Repost.tsx:48 #: src/view/com/modals/Repost.tsx:53 @@ -3221,19 +3865,19 @@ msgstr "Uudelleenjaa tai lainaa viestiä" msgid "Reposted By" msgstr "Uudelleenjakanut" -#: src/view/com/posts/FeedItem.tsx:207 +#: src/view/com/posts/FeedItem.tsx:197 msgid "Reposted by {0}" msgstr "Uudelleenjakanut {0}" -#: src/view/com/posts/FeedItem.tsx:224 +#: src/view/com/posts/FeedItem.tsx:214 msgid "Reposted by <0/>" msgstr "Uudelleenjakanut <0/>" -#: src/view/com/notifications/FeedItem.tsx:162 +#: src/view/com/notifications/FeedItem.tsx:166 msgid "reposted your post" msgstr "uudelleenjakoi viestisi" -#: src/view/com/post-thread/PostThreadItem.tsx:188 +#: src/view/com/post-thread/PostThreadItem.tsx:187 msgid "Reposts of this post" msgstr "Tämän viestin uudelleenjulkaisut" @@ -3246,33 +3890,35 @@ msgstr "Pyydä muutosta" #~ msgid "Request code" #~ msgstr "Pyydä koodia" -#: src/view/com/modals/ChangePassword.tsx:239 #: src/view/com/modals/ChangePassword.tsx:241 +#: src/view/com/modals/ChangePassword.tsx:243 msgid "Request Code" msgstr "Pyydä koodia" -#: src/view/screens/Settings/index.tsx:456 +#: src/view/screens/Settings/index.tsx:471 msgid "Require alt text before posting" msgstr "Vaadi vaihtoehtoista ALT-tekstiä ennen julkaisua" -#: src/view/com/auth/create/Step1.tsx:153 +#: src/view/com/auth/create/Step1.tsx:146 msgid "Required for this provider" msgstr "Vaaditaan tälle instanssille" #: src/view/com/auth/login/SetNewPasswordForm.tsx:124 #: src/view/com/auth/login/SetNewPasswordForm.tsx:136 +#: src/view/com/modals/ChangePassword.tsx:185 msgid "Reset code" msgstr "Nollauskoodi" -#: src/view/com/modals/ChangePassword.tsx:190 +#: src/view/com/modals/ChangePassword.tsx:192 msgid "Reset Code" msgstr "Nollauskoodi" #: src/view/screens/Settings/index.tsx:824 -msgid "Reset onboarding" -msgstr "Nollaa käyttöönotto" +#~ msgid "Reset onboarding" +#~ msgstr "Nollaa käyttöönotto" -#: src/view/screens/Settings/index.tsx:827 +#: src/view/screens/Settings/index.tsx:854 +#: src/view/screens/Settings/index.tsx:857 msgid "Reset onboarding state" msgstr "Nollaa käyttöönoton tila" @@ -3281,18 +3927,19 @@ msgid "Reset password" msgstr "Nollaa salasana" #: src/view/screens/Settings/index.tsx:814 -msgid "Reset preferences" -msgstr "Nollaa asetukset" +#~ msgid "Reset preferences" +#~ msgstr "Nollaa asetukset" -#: src/view/screens/Settings/index.tsx:817 +#: src/view/screens/Settings/index.tsx:844 +#: src/view/screens/Settings/index.tsx:847 msgid "Reset preferences state" msgstr "Nollaa asetusten tila" -#: src/view/screens/Settings/index.tsx:825 +#: src/view/screens/Settings/index.tsx:855 msgid "Resets the onboarding state" msgstr "Nollaa käyttöönoton tilan" -#: src/view/screens/Settings/index.tsx:815 +#: src/view/screens/Settings/index.tsx:845 msgid "Resets the preferences state" msgstr "Nollaa asetusten tilan" @@ -3305,6 +3952,7 @@ msgstr "Yrittää uudelleen kirjautumista" msgid "Retries the last action, which errored out" msgstr "Yrittää uudelleen viimeisintä toimintoa, joka epäonnistui" +#: src/components/Lists.tsx:98 #: src/screens/Onboarding/StepInterests/index.tsx:221 #: src/screens/Onboarding/StepInterests/index.tsx:224 #: src/view/com/auth/create/CreateAccount.tsx:181 @@ -3320,10 +3968,19 @@ msgstr "Yritä uudelleen" #~ msgid "Retry." #~ msgstr "Yritä uudelleen." -#: src/view/screens/ProfileList.tsx:898 +#: src/view/screens/ProfileList.tsx:917 msgid "Return to previous page" msgstr "Palaa edelliselle sivulle" +#: src/view/screens/NotFound.tsx:59 +msgid "Returns to home page" +msgstr "" + +#: src/view/screens/NotFound.tsx:58 +#: src/view/screens/ProfileFeed.tsx:112 +msgid "Returns to previous page" +msgstr "" + #: src/view/shell/desktop/RightNav.tsx:55 #~ msgid "SANDBOX. Posts and accounts are not permanent." #~ msgstr "HIEKKALAATIKKO. Viestit ja tilit eivät ole pysyviä." @@ -3334,12 +3991,10 @@ msgctxt "action" msgid "Save" msgstr "Tallenna" -#: src/view/com/modals/BirthDateSettings.tsx:94 -#: src/view/com/modals/BirthDateSettings.tsx:97 +#: src/components/dialogs/BirthDateSettings.tsx:125 #: src/view/com/modals/ChangeHandle.tsx:173 #: src/view/com/modals/CreateOrEditList.tsx:337 #: src/view/com/modals/EditProfile.tsx:224 -#: src/view/screens/ProfileFeed.tsx:346 msgid "Save" msgstr "Tallenna" @@ -3347,6 +4002,10 @@ msgstr "Tallenna" msgid "Save alt text" msgstr "Tallenna vaihtoehtoinen ALT-teksti" +#: src/components/dialogs/BirthDateSettings.tsx:119 +msgid "Save birthday" +msgstr "" + #: src/view/com/modals/EditProfile.tsx:232 msgid "Save Changes" msgstr "Tallenna muutokset" @@ -3359,10 +4018,23 @@ msgstr "Tallenna käyttäjätunnuksen muutos" msgid "Save image crop" msgstr "Tallenna kuvan rajaus" +#: src/view/screens/ProfileFeed.tsx:335 +#: src/view/screens/ProfileFeed.tsx:341 +msgid "Save to my feeds" +msgstr "" + #: src/view/screens/SavedFeeds.tsx:122 msgid "Saved Feeds" msgstr "Tallennetut syötteet" +#: src/view/com/lightbox/Lightbox.tsx:81 +msgid "Saved to your camera roll." +msgstr "" + +#: src/view/screens/ProfileFeed.tsx:212 +msgid "Saved to your feeds" +msgstr "" + #: src/view/com/modals/EditProfile.tsx:225 msgid "Saves any changes to your profile" msgstr "Tallentaa kaikki muutokset profiiliisi" @@ -3371,43 +4043,55 @@ msgstr "Tallentaa kaikki muutokset profiiliisi" msgid "Saves handle change to {handle}" msgstr "Tallentaa käyttäjätunnuksen muutoksen muotoon {handle}" +#: src/view/com/modals/crop-image/CropImage.web.tsx:145 +msgid "Saves image crop settings" +msgstr "" + #: src/screens/Onboarding/index.tsx:36 msgid "Science" msgstr "Tiede" -#: src/view/screens/ProfileList.tsx:854 +#: src/view/screens/ProfileList.tsx:873 msgid "Scroll to top" msgstr "Vieritä alkuun" -#: src/Navigation.tsx:440 +#: src/Navigation.tsx:459 #: src/view/com/auth/LoggedOut.tsx:122 #: src/view/com/modals/ListAddRemoveUsers.tsx:75 #: src/view/com/util/forms/SearchInput.tsx:67 #: src/view/com/util/forms/SearchInput.tsx:79 -#: src/view/screens/Search/Search.tsx:419 -#: src/view/screens/Search/Search.tsx:668 -#: src/view/screens/Search/Search.tsx:686 -#: src/view/shell/bottom-bar/BottomBar.tsx:159 -#: src/view/shell/desktop/LeftNav.tsx:324 -#: src/view/shell/desktop/Search.tsx:214 -#: src/view/shell/desktop/Search.tsx:223 -#: src/view/shell/Drawer.tsx:362 -#: src/view/shell/Drawer.tsx:363 +#: src/view/screens/Search/Search.tsx:420 +#: src/view/screens/Search/Search.tsx:669 +#: src/view/screens/Search/Search.tsx:687 +#: src/view/shell/bottom-bar/BottomBar.tsx:161 +#: src/view/shell/desktop/LeftNav.tsx:328 +#: src/view/shell/desktop/Search.tsx:215 +#: src/view/shell/desktop/Search.tsx:224 +#: src/view/shell/Drawer.tsx:365 +#: src/view/shell/Drawer.tsx:366 msgid "Search" msgstr "Haku" -#: src/view/screens/Search/Search.tsx:735 -#: src/view/shell/desktop/Search.tsx:255 +#: src/view/screens/Search/Search.tsx:736 +#: src/view/shell/desktop/Search.tsx:256 msgid "Search for \"{query}\"" msgstr "Haku hakusanalla \"{query}\"" #: src/components/TagMenu/index.tsx:145 -msgid "Search for all posts by @{authorHandle} with tag {tag}" -msgstr "Etsi kaikki viestit käyttäjältä @{authorHandle} tunnisteella {tag}" +msgid "Search for all posts by @{authorHandle} with tag {displayTag}" +msgstr "" + +#: src/components/TagMenu/index.tsx:145 +#~ msgid "Search for all posts by @{authorHandle} with tag {tag}" +#~ msgstr "Etsi kaikki viestit käyttäjältä @{authorHandle} tunnisteella {tag}" + +#: src/components/TagMenu/index.tsx:94 +msgid "Search for all posts with tag {displayTag}" +msgstr "" #: src/components/TagMenu/index.tsx:90 -msgid "Search for all posts with tag {tag}" -msgstr "Etsi kaikki viestit tunnisteella {tag}" +#~ msgid "Search for all posts with tag {tag}" +#~ msgstr "Etsi kaikki viestit tunnisteella {tag}" #: src/view/com/auth/LoggedOut.tsx:104 #: src/view/com/auth/LoggedOut.tsx:105 @@ -3419,21 +4103,29 @@ msgstr "Hae käyttäjiä" msgid "Security Step Required" msgstr "Turvatarkistus vaaditaan" -#: src/components/TagMenu/index.web.tsx:50 +#: src/components/TagMenu/index.web.tsx:66 msgid "See {truncatedTag} posts" msgstr "Näytä {truncatedTag}-viestit" -#: src/components/TagMenu/index.web.tsx:67 +#: src/components/TagMenu/index.web.tsx:83 msgid "See {truncatedTag} posts by user" msgstr "Näytä käyttäjän {truncatedTag} viestit" #: src/components/TagMenu/index.tsx:128 -msgid "See <0>{tag} posts" -msgstr "Näytä <0>{tag}-viestit" +msgid "See <0>{displayTag} posts" +msgstr "" + +#: src/components/TagMenu/index.tsx:187 +msgid "See <0>{displayTag} posts by this user" +msgstr "" + +#: src/components/TagMenu/index.tsx:128 +#~ msgid "See <0>{tag} posts" +#~ msgstr "Näytä <0>{tag}-viestit" #: src/components/TagMenu/index.tsx:189 -msgid "See <0>{tag} posts by this user" -msgstr "Näytä tämän käyttäjän <0>{tag}-viestit" +#~ msgid "See <0>{tag} posts by this user" +#~ msgstr "Näytä tämän käyttäjän <0>{tag}-viestit" #: src/view/screens/SavedFeeds.tsx:163 msgid "See this guide" @@ -3455,11 +4147,19 @@ msgstr "Valitse {item}" msgid "Select from an existing account" msgstr "Valitse olemassa olevalta tililtä" +#: src/view/screens/LanguageSettings.tsx:299 +msgid "Select languages" +msgstr "" + +#: src/components/ReportDialog/SelectLabelerView.tsx:32 +msgid "Select moderator" +msgstr "" + #: src/view/com/util/Selector.tsx:107 msgid "Select option {i} of {numItems}" msgstr "Valitse vaihtoehto {i} / {numItems}" -#: src/view/com/auth/create/Step1.tsx:103 +#: src/view/com/auth/create/Step1.tsx:96 #: src/view/com/auth/login/LoginForm.tsx:150 msgid "Select service" msgstr "Valitse palvelu" @@ -3468,6 +4168,10 @@ msgstr "Valitse palvelu" msgid "Select some accounts below to follow" msgstr "Valitse alla olevista tileistä jotain seurattavaksi" +#: src/components/ReportDialog/SubmitView.tsx:135 +msgid "Select the moderation service(s) to report to" +msgstr "" + #: src/view/com/auth/server-input/index.tsx:82 msgid "Select the service that hosts your data." msgstr "Valitse palvelu, joka hostaa tietojasi." @@ -3480,7 +4184,7 @@ msgstr "Valitse palvelu, joka hostaa tietojasi." msgid "Select topical feeds to follow from the list below" msgstr "Valitse ajankohtaisia syötteitä alla olevasta listasta" -#: src/screens/Onboarding/StepModeration/index.tsx:75 +#: src/screens/Onboarding/StepModeration/index.tsx:62 msgid "Select what you want to see (or not see), and we’ll handle the rest." msgstr "Valitse, mitä haluat nähdä (tai olla näkemättä) ja me huolehdimme lopusta." @@ -3489,8 +4193,12 @@ msgid "Select which languages you want your subscribed feeds to include. If none msgstr "Valitse, mitä kieliä haluat tilattujen syötteidesi sisältävän. Jos mitään ei ole valittu, kaikki kielet näytetään." #: src/view/screens/LanguageSettings.tsx:98 -msgid "Select your app language for the default text to display in the app" -msgstr "Valitse sovelluksen oletuskieli, joka näytetään sovelluksessa" +#~ msgid "Select your app language for the default text to display in the app" +#~ msgstr "Valitse sovelluksen oletuskieli, joka näytetään sovelluksessa" + +#: src/view/screens/LanguageSettings.tsx:98 +msgid "Select your app language for the default text to display in the app." +msgstr "" #: src/screens/Onboarding/StepInterests/index.tsx:196 msgid "Select your interests from the options below" @@ -3526,14 +4234,23 @@ msgctxt "action" msgid "Send Email" msgstr "Lähetä sähköposti" -#: src/view/shell/Drawer.tsx:295 -#: src/view/shell/Drawer.tsx:316 +#: src/view/shell/Drawer.tsx:298 +#: src/view/shell/Drawer.tsx:319 msgid "Send feedback" msgstr "Lähetä palautetta" +#: src/components/ReportDialog/SubmitView.tsx:214 +#: src/components/ReportDialog/SubmitView.tsx:218 +msgid "Send report" +msgstr "" + #: src/view/com/modals/report/SendReportButton.tsx:45 -msgid "Send Report" -msgstr "Lähetä raportti" +#~ msgid "Send Report" +#~ msgstr "Lähetä raportti" + +#: src/components/ReportDialog/SelectLabelerView.tsx:46 +msgid "Send report to {0}" +msgstr "" #: src/view/com/modals/DeleteAccount.tsx:133 msgid "Sends email with confirmation code for account deletion" @@ -3544,40 +4261,44 @@ msgid "Server address" msgstr "Palvelimen osoite" #: src/view/com/modals/ContentFilteringSettings.tsx:311 -msgid "Set {value} for {labelGroup} content moderation policy" -msgstr "Aseta {value} {labelGroup} sisällön moderointisäännöksi" +#~ msgid "Set {value} for {labelGroup} content moderation policy" +#~ msgstr "Aseta {value} {labelGroup} sisällön moderointisäännöksi" #: src/view/com/modals/ContentFilteringSettings.tsx:160 #: src/view/com/modals/ContentFilteringSettings.tsx:179 -msgctxt "action" -msgid "Set Age" -msgstr "Aseta ikä" +#~ msgctxt "action" +#~ msgid "Set Age" +#~ msgstr "Aseta ikä" + +#: src/screens/Moderation/index.tsx:306 +msgid "Set birthdate" +msgstr "" #: src/view/screens/Settings/index.tsx:488 -msgid "Set color theme to dark" -msgstr "Aseta väriteema tummaksi" +#~ msgid "Set color theme to dark" +#~ msgstr "Aseta väriteema tummaksi" #: src/view/screens/Settings/index.tsx:481 -msgid "Set color theme to light" -msgstr "Aseta väriteema vaaleaksi" +#~ msgid "Set color theme to light" +#~ msgstr "Aseta väriteema vaaleaksi" #: src/view/screens/Settings/index.tsx:475 -msgid "Set color theme to system setting" -msgstr "Aseta väriteema järjestelmäasetuksiin" +#~ msgid "Set color theme to system setting" +#~ msgstr "Aseta väriteema järjestelmäasetuksiin" #: src/view/screens/Settings/index.tsx:514 -msgid "Set dark theme to the dark theme" -msgstr "Aseta tumma teema tummaksi" +#~ msgid "Set dark theme to the dark theme" +#~ msgstr "Aseta tumma teema tummaksi" #: src/view/screens/Settings/index.tsx:507 -msgid "Set dark theme to the dim theme" -msgstr "Aseta tumma teema hämäräksi" +#~ msgid "Set dark theme to the dim theme" +#~ msgstr "Aseta tumma teema hämäräksi" #: src/view/com/auth/login/SetNewPasswordForm.tsx:104 msgid "Set new password" msgstr "Aseta uusi salasana" -#: src/view/com/auth/create/Step1.tsx:225 +#: src/view/com/auth/create/Step1.tsx:202 msgid "Set password" msgstr "Aseta salasana" @@ -3613,6 +4334,26 @@ msgstr "Luo tili" msgid "Sets Bluesky username" msgstr "Asettaa Bluesky-käyttäjätunnuksen" +#: src/view/screens/Settings/index.tsx:503 +msgid "Sets color theme to dark" +msgstr "" + +#: src/view/screens/Settings/index.tsx:496 +msgid "Sets color theme to light" +msgstr "" + +#: src/view/screens/Settings/index.tsx:490 +msgid "Sets color theme to system setting" +msgstr "" + +#: src/view/screens/Settings/index.tsx:529 +msgid "Sets dark theme to the dark theme" +msgstr "" + +#: src/view/screens/Settings/index.tsx:522 +msgid "Sets dark theme to the dim theme" +msgstr "" + #: src/view/com/auth/login/ForgotPasswordForm.tsx:157 msgid "Sets email for password reset" msgstr "Asettaa sähköpostin salasanan palautusta varten" @@ -3621,16 +4362,28 @@ msgstr "Asettaa sähköpostin salasanan palautusta varten" msgid "Sets hosting provider for password reset" msgstr "Asettaa palveluntarjoajan salasanan palautusta varten" -#: src/view/com/auth/create/Step1.tsx:104 +#: src/view/com/modals/crop-image/CropImage.web.tsx:123 +msgid "Sets image aspect ratio to square" +msgstr "" + +#: src/view/com/modals/crop-image/CropImage.web.tsx:113 +msgid "Sets image aspect ratio to tall" +msgstr "" + +#: src/view/com/modals/crop-image/CropImage.web.tsx:103 +msgid "Sets image aspect ratio to wide" +msgstr "" + +#: src/view/com/auth/create/Step1.tsx:97 #: src/view/com/auth/login/LoginForm.tsx:151 msgid "Sets server for the Bluesky client" msgstr "Asettaa palvelimen Bluesky-ohjelmalle" -#: src/Navigation.tsx:135 -#: src/view/screens/Settings/index.tsx:294 -#: src/view/shell/desktop/LeftNav.tsx:433 -#: src/view/shell/Drawer.tsx:567 -#: src/view/shell/Drawer.tsx:568 +#: src/Navigation.tsx:139 +#: src/view/screens/Settings/index.tsx:309 +#: src/view/shell/desktop/LeftNav.tsx:437 +#: src/view/shell/Drawer.tsx:570 +#: src/view/shell/Drawer.tsx:571 msgid "Settings" msgstr "Asetukset" @@ -3638,26 +4391,39 @@ msgstr "Asetukset" msgid "Sexual activity or erotic nudity." msgstr "Erotiikka tai muu aikuisviihde." +#: src/lib/moderation/useGlobalLabelStrings.ts:38 +msgid "Sexually Suggestive" +msgstr "" + #: src/view/com/lightbox/Lightbox.tsx:141 msgctxt "action" msgid "Share" msgstr "Jaa" -#: src/view/com/profile/ProfileHeader.tsx:295 -#: src/view/com/util/forms/PostDropdownBtn.tsx:184 -#: src/view/screens/ProfileList.tsx:418 +#: src/view/com/profile/ProfileMenu.tsx:215 +#: src/view/com/profile/ProfileMenu.tsx:224 +#: src/view/com/util/forms/PostDropdownBtn.tsx:228 +#: src/view/com/util/forms/PostDropdownBtn.tsx:237 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:218 +#: src/view/screens/ProfileList.tsx:388 msgid "Share" msgstr "Jaa" -#: src/view/screens/ProfileFeed.tsx:305 +#: src/view/com/profile/ProfileMenu.tsx:373 +#: src/view/com/util/forms/PostDropdownBtn.tsx:347 +msgid "Share anyway" +msgstr "" + +#: src/view/screens/ProfileFeed.tsx:361 +#: src/view/screens/ProfileFeed.tsx:363 msgid "Share feed" msgstr "Jaa syöte" -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:43 -#: src/view/com/modals/ContentFilteringSettings.tsx:266 -#: src/view/com/util/moderation/ContentHider.tsx:107 -#: src/view/com/util/moderation/PostHider.tsx:108 -#: src/view/screens/Settings/index.tsx:344 +#: src/components/moderation/ContentHider.tsx:115 +#: src/components/moderation/GlobalModerationLabelPref.tsx:45 +#: src/components/moderation/PostHider.tsx:107 +#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:54 +#: src/view/screens/Settings/index.tsx:359 msgid "Show" msgstr "Näytä" @@ -3665,21 +4431,31 @@ msgstr "Näytä" msgid "Show all replies" msgstr "Näytä kaikki vastaukset" -#: src/view/com/util/moderation/ScreenHider.tsx:132 +#: src/components/moderation/ScreenHider.tsx:162 +#: src/components/moderation/ScreenHider.tsx:165 msgid "Show anyway" msgstr "Näytä silti" +#: src/lib/moderation/useLabelBehaviorDescription.ts:27 +#: src/lib/moderation/useLabelBehaviorDescription.ts:63 +msgid "Show badge" +msgstr "" + +#: src/lib/moderation/useLabelBehaviorDescription.ts:61 +msgid "Show badge and filter from feeds" +msgstr "" + #: src/view/com/modals/EmbedConsent.tsx:87 msgid "Show embeds from {0}" msgstr "Näytä upotukset taholta {0}" -#: src/view/com/profile/ProfileHeader.tsx:459 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:193 msgid "Show follows similar to {0}" msgstr "Näytä seurannat samankaltaisilta käyttäjiltä kuin {0}" -#: src/view/com/post-thread/PostThreadItem.tsx:538 -#: src/view/com/post/Post.tsx:198 -#: src/view/com/posts/FeedItem.tsx:363 +#: src/view/com/post-thread/PostThreadItem.tsx:507 +#: src/view/com/post/Post.tsx:201 +#: src/view/com/posts/FeedItem.tsx:355 msgid "Show More" msgstr "Näytä lisää" @@ -3731,40 +4507,48 @@ msgstr "Näytä uudelleenjulkaisut" msgid "Show reposts in Following" msgstr "Näytä uudelleenjulkaisut seurattavissa" -#: src/view/com/util/moderation/ContentHider.tsx:67 -#: src/view/com/util/moderation/PostHider.tsx:61 +#: src/components/moderation/ContentHider.tsx:68 +#: src/components/moderation/PostHider.tsx:64 msgid "Show the content" msgstr "Näytä sisältö" -#: src/view/com/notifications/FeedItem.tsx:346 +#: src/view/com/notifications/FeedItem.tsx:351 msgid "Show users" msgstr "Näytä käyttäjät" +#: src/lib/moderation/useLabelBehaviorDescription.ts:58 +msgid "Show warning" +msgstr "" + +#: src/lib/moderation/useLabelBehaviorDescription.ts:56 +msgid "Show warning and filter from feeds" +msgstr "" + #: src/view/com/profile/ProfileHeader.tsx:462 -msgid "Shows a list of users similar to this user." -msgstr "Näyttää luettelon käyttäjistä, jotka ovat samankaltaisia kuin tämä käyttäjä." +#~ msgid "Shows a list of users similar to this user." +#~ msgstr "Näyttää luettelon käyttäjistä, jotka ovat samankaltaisia kuin tämä käyttäjä." -#: src/view/com/post-thread/PostThreadFollowBtn.tsx:124 -#: src/view/com/profile/ProfileHeader.tsx:506 +#: src/view/com/post-thread/PostThreadFollowBtn.tsx:127 msgid "Shows posts from {0} in your feed" msgstr "Näyttää viestit käyttäjältä {0} syötteessäsi" -#: src/view/com/auth/HomeLoggedOutCTA.tsx:70 +#: src/view/com/auth/HomeLoggedOutCTA.tsx:72 #: src/view/com/auth/login/Login.tsx:98 -#: src/view/com/auth/SplashScreen.tsx:79 -#: src/view/shell/bottom-bar/BottomBar.tsx:285 -#: src/view/shell/bottom-bar/BottomBar.tsx:286 -#: src/view/shell/bottom-bar/BottomBar.tsx:288 +#: src/view/com/auth/SplashScreen.tsx:81 +#: src/view/shell/bottom-bar/BottomBar.tsx:289 +#: src/view/shell/bottom-bar/BottomBar.tsx:290 +#: src/view/shell/bottom-bar/BottomBar.tsx:292 #: src/view/shell/bottom-bar/BottomBarWeb.tsx:178 #: src/view/shell/bottom-bar/BottomBarWeb.tsx:179 #: src/view/shell/bottom-bar/BottomBarWeb.tsx:181 #: src/view/shell/NavSignupCard.tsx:58 #: src/view/shell/NavSignupCard.tsx:59 +#: src/view/shell/NavSignupCard.tsx:61 msgid "Sign in" msgstr "Kirjaudu sisään" -#: src/view/com/auth/HomeLoggedOutCTA.tsx:78 -#: src/view/com/auth/SplashScreen.tsx:82 +#: src/view/com/auth/HomeLoggedOutCTA.tsx:82 +#: src/view/com/auth/SplashScreen.tsx:86 #: src/view/com/auth/SplashScreen.web.tsx:91 msgid "Sign In" msgstr "Kirjaudu sisään" @@ -3773,7 +4557,7 @@ msgstr "Kirjaudu sisään" msgid "Sign in as {0}" msgstr "Kirjaudu sisään nimellä {0}" -#: src/view/com/auth/login/ChooseAccountForm.tsx:118 +#: src/view/com/auth/login/ChooseAccountForm.tsx:122 #: src/view/com/auth/login/Login.tsx:116 msgid "Sign in as..." msgstr "Kirjaudu sisään nimellä..." @@ -3782,16 +4566,16 @@ msgstr "Kirjaudu sisään nimellä..." msgid "Sign into" msgstr "Kirjaudu sisään" -#: src/view/com/modals/SwitchAccount.tsx:64 -#: src/view/com/modals/SwitchAccount.tsx:69 -#: src/view/screens/Settings/index.tsx:100 -#: src/view/screens/Settings/index.tsx:103 +#: src/view/com/modals/SwitchAccount.tsx:68 +#: src/view/com/modals/SwitchAccount.tsx:73 +#: src/view/screens/Settings/index.tsx:105 +#: src/view/screens/Settings/index.tsx:108 msgid "Sign out" msgstr "Kirjaudu ulos" -#: src/view/shell/bottom-bar/BottomBar.tsx:275 -#: src/view/shell/bottom-bar/BottomBar.tsx:276 -#: src/view/shell/bottom-bar/BottomBar.tsx:278 +#: src/view/shell/bottom-bar/BottomBar.tsx:279 +#: src/view/shell/bottom-bar/BottomBar.tsx:280 +#: src/view/shell/bottom-bar/BottomBar.tsx:282 #: src/view/shell/bottom-bar/BottomBarWeb.tsx:168 #: src/view/shell/bottom-bar/BottomBarWeb.tsx:169 #: src/view/shell/bottom-bar/BottomBarWeb.tsx:171 @@ -3805,25 +4589,26 @@ msgstr "Rekisteröidy" msgid "Sign up or sign in to join the conversation" msgstr "Rekisteröidy tai kirjaudu sisään liittyäksesi keskusteluun" -#: src/view/com/util/moderation/ScreenHider.tsx:76 +#: src/components/moderation/ScreenHider.tsx:98 +#: src/lib/moderation/useGlobalLabelStrings.ts:28 msgid "Sign-in Required" msgstr "Sisäänkirjautuminen vaaditaan" -#: src/view/screens/Settings/index.tsx:355 +#: src/view/screens/Settings/index.tsx:370 msgid "Signed in as" msgstr "Kirjautunut sisään nimellä" -#: src/view/com/auth/login/ChooseAccountForm.tsx:103 +#: src/view/com/auth/login/ChooseAccountForm.tsx:107 msgid "Signed in as @{0}" msgstr "Kirjautunut sisään käyttäjätunnuksella @{0}" -#: src/view/com/modals/SwitchAccount.tsx:66 +#: src/view/com/modals/SwitchAccount.tsx:70 msgid "Signs {0} out of Bluesky" msgstr "{0} kirjautuu ulos Blueskysta" #: src/screens/Onboarding/StepInterests/index.tsx:235 #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:195 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:33 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:35 msgid "Skip" msgstr "Ohita" @@ -3843,11 +4628,17 @@ msgstr "Ohjelmistokehitys" #~ msgid "Something went wrong and we're not sure what." #~ msgstr "" +#: src/components/ReportDialog/index.tsx:52 +#: src/screens/Moderation/index.tsx:116 +#: src/screens/Profile/Sections/Labels.tsx:77 +msgid "Something went wrong, please try again." +msgstr "" + #: src/view/com/modals/Waitlist.tsx:51 -msgid "Something went wrong. Check your email and try again." -msgstr "Jotain meni pieleen. Tarkista sähköpostisi ja yritä uudelleen." +#~ msgid "Something went wrong. Check your email and try again." +#~ msgstr "Jotain meni pieleen. Tarkista sähköpostisi ja yritä uudelleen." -#: src/App.native.tsx:63 +#: src/App.native.tsx:71 msgid "Sorry! Your session expired. Please log in again." msgstr "Pahoittelut! Istuntosi on vanhentunut. Kirjaudu sisään uudelleen." @@ -3859,6 +4650,18 @@ msgstr "Lajittele vastaukset" msgid "Sort replies to the same post by:" msgstr "Lajittele saman viestin vastaukset seuraavasti:" +#: src/components/moderation/LabelsOnMeDialog.tsx:147 +msgid "Source:" +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:65 +msgid "Spam" +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:53 +msgid "Spam; excessive mentions or replies" +msgstr "" + #: src/screens/Onboarding/index.tsx:30 msgid "Sports" msgstr "Urheilu" @@ -3871,7 +4674,7 @@ msgstr "Neliö" #~ msgid "Staging" #~ msgstr "" -#: src/view/screens/Settings/index.tsx:871 +#: src/view/screens/Settings/index.tsx:901 msgid "Status page" msgstr "Tilasivu" @@ -3879,37 +4682,50 @@ msgstr "Tilasivu" msgid "Step {0} of {numSteps}" msgstr "Vaihe {0}/{numSteps}" -#: src/view/screens/Settings/index.tsx:274 +#: src/view/screens/Settings/index.tsx:288 msgid "Storage cleared, you need to restart the app now." msgstr "Tallennustila tyhjennetty, sinun on käynnistettävä sovellus uudelleen." -#: src/Navigation.tsx:202 -#: src/view/screens/Settings/index.tsx:807 +#: src/Navigation.tsx:211 +#: src/view/screens/Settings/index.tsx:827 msgid "Storybook" msgstr "Storybook" -#: src/view/com/modals/AppealLabel.tsx:101 +#: src/components/moderation/LabelsOnMeDialog.tsx:256 +#: src/components/moderation/LabelsOnMeDialog.tsx:257 msgid "Submit" msgstr "Lähetä" -#: src/view/screens/ProfileList.tsx:608 +#: src/view/screens/ProfileList.tsx:590 msgid "Subscribe" msgstr "Tilaa" +#: src/screens/Profile/Sections/Labels.tsx:181 +msgid "Subscribe to @{0} to use these labels:" +msgstr "" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:222 +msgid "Subscribe to Labeler" +msgstr "" + #: src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx:173 -#: src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx:307 +#: src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx:308 msgid "Subscribe to the {0} feed" msgstr "Tilaa {0}-syöte" -#: src/view/screens/ProfileList.tsx:604 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:185 +msgid "Subscribe to this labeler" +msgstr "" + +#: src/view/screens/ProfileList.tsx:586 msgid "Subscribe to this list" msgstr "Tilaa tämä lista" -#: src/view/screens/Search/Search.tsx:374 +#: src/view/screens/Search/Search.tsx:375 msgid "Suggested Follows" msgstr "Ehdotetut seurattavat" -#: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:64 +#: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:65 msgid "Suggested for you" msgstr "Suositeltua sinulle" @@ -3917,7 +4733,7 @@ msgstr "Suositeltua sinulle" msgid "Suggestive" msgstr "Viittaava" -#: src/Navigation.tsx:212 +#: src/Navigation.tsx:226 #: src/view/screens/Support.tsx:30 #: src/view/screens/Support.tsx:33 msgid "Support" @@ -3927,35 +4743,39 @@ msgstr "Tuki" #~ msgid "Swipe up to see more" #~ msgstr "" -#: src/view/com/modals/SwitchAccount.tsx:117 +#: src/view/com/modals/SwitchAccount.tsx:121 msgid "Switch Account" msgstr "Vaihda tiliä" -#: src/view/com/modals/SwitchAccount.tsx:97 -#: src/view/screens/Settings/index.tsx:130 +#: src/view/com/modals/SwitchAccount.tsx:101 +#: src/view/screens/Settings/index.tsx:135 msgid "Switch to {0}" msgstr "Vaihda käyttäjään {0}" -#: src/view/com/modals/SwitchAccount.tsx:98 -#: src/view/screens/Settings/index.tsx:131 +#: src/view/com/modals/SwitchAccount.tsx:102 +#: src/view/screens/Settings/index.tsx:136 msgid "Switches the account you are logged in to" msgstr "Vaihtaa sisäänkirjautuneen käyttäjän tilin" -#: src/view/screens/Settings/index.tsx:472 +#: src/view/screens/Settings/index.tsx:487 msgid "System" msgstr "Järjestelmä" -#: src/view/screens/Settings/index.tsx:795 +#: src/view/screens/Settings/index.tsx:815 msgid "System log" msgstr "Järjestelmäloki" -#: src/components/dialogs/MutedWords.tsx:288 +#: src/components/dialogs/MutedWords.tsx:324 msgid "tag" msgstr "tunniste" +#: src/components/TagMenu/index.tsx:78 +msgid "Tag menu: {displayTag}" +msgstr "" + #: src/components/TagMenu/index.tsx:74 -msgid "Tag menu: {tag}" -msgstr "Tunnistevalikko: {tag}" +#~ msgid "Tag menu: {tag}" +#~ msgstr "Tunnistevalikko: {tag}" #: src/view/com/modals/crop-image/CropImage.web.tsx:112 msgid "Tall" @@ -3973,30 +4793,49 @@ msgstr "Teknologia" msgid "Terms" msgstr "Ehdot" -#: src/Navigation.tsx:222 -#: src/view/screens/Settings/index.tsx:885 +#: src/Navigation.tsx:236 +#: src/view/com/auth/create/Policies.tsx:59 +#: src/view/screens/Settings/index.tsx:915 #: src/view/screens/TermsOfService.tsx:29 -#: src/view/shell/Drawer.tsx:256 +#: src/view/shell/Drawer.tsx:259 msgid "Terms of Service" msgstr "Käyttöehdot" -#: src/components/dialogs/MutedWords.tsx:288 +#: src/lib/moderation/useReportOptions.ts:58 +#: src/lib/moderation/useReportOptions.ts:79 +#: src/lib/moderation/useReportOptions.ts:87 +msgid "Terms used violate community standards" +msgstr "" + +#: src/components/dialogs/MutedWords.tsx:324 msgid "text" msgstr "teksti" -#: src/view/com/modals/AppealLabel.tsx:70 -#: src/view/com/modals/report/InputIssueDetails.tsx:51 +#: src/components/moderation/LabelsOnMeDialog.tsx:220 msgid "Text input field" msgstr "Tekstikenttä" +#: src/components/ReportDialog/SubmitView.tsx:78 +msgid "Thank you. Your report has been sent." +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:466 +msgid "That contains the following:" +msgstr "" + #: src/view/com/auth/create/CreateAccount.tsx:94 msgid "That handle is already taken." msgstr "Tuo käyttätunnus on jo käytössä." -#: src/view/com/profile/ProfileHeader.tsx:263 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:274 +#: src/view/com/profile/ProfileMenu.tsx:349 msgid "The account will be able to interact with you after unblocking." msgstr "Tili voi olla vuorovaikutuksessa kanssasi, kun estäminen on poistettu." +#: src/components/moderation/ModerationDetailsDialog.tsx:128 +msgid "the author" +msgstr "" + #: src/view/screens/CommunityGuidelines.tsx:36 msgid "The Community Guidelines have been moved to <0/>" msgstr "Yhteisöohjeet on siirretty kohtaan <0/>" @@ -4005,11 +4844,20 @@ msgstr "Yhteisöohjeet on siirretty kohtaan <0/>" msgid "The Copyright Policy has been moved to <0/>" msgstr "Tekijänoikeuskäytäntö on siirretty kohtaan <0/>" +#: src/components/moderation/LabelsOnMeDialog.tsx:49 +msgid "The following labels were applied to your account." +msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:50 +msgid "The following labels were applied to your content." +msgstr "" + #: src/screens/Onboarding/Layout.tsx:60 msgid "The following steps will help customize your Bluesky experience." msgstr "Seuraavat vaiheet auttavat mukauttamaan Bluesky-kokemustasi." -#: src/view/com/post-thread/PostThread.tsx:517 +#: src/view/com/post-thread/PostThread.tsx:153 +#: src/view/com/post-thread/PostThread.tsx:165 msgid "The post may have been deleted." msgstr "Viesti saattaa olla poistettu." @@ -4029,20 +4877,21 @@ msgstr "Käyttöehdot on siirretty kohtaan" msgid "There are many feeds to try:" msgstr "On monia syötteitä kokeiltavaksi:" -#: src/view/screens/ProfileFeed.tsx:550 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:113 +#: src/view/screens/ProfileFeed.tsx:543 msgid "There was an an issue contacting the server, please check your internet connection and try again." msgstr "Emme saaneet yhteyttä palvelimeen, tarkista internetyhteytesi ja yritä uudelleen." -#: src/view/com/posts/FeedErrorMessage.tsx:139 +#: src/view/com/posts/FeedErrorMessage.tsx:138 msgid "There was an an issue removing this feed. Please check your internet connection and try again." msgstr "Syötteen poistossa on ongelmia. Tarkista internetyhteytesi ja yritä uudelleen." -#: src/view/screens/ProfileFeed.tsx:210 +#: src/view/screens/ProfileFeed.tsx:217 msgid "There was an an issue updating your feeds, please check your internet connection and try again." msgstr "Syötteiden päivittämisessä on ongelmia, tarkista internetyhteytesi ja yritä uudelleen." -#: src/view/screens/ProfileFeed.tsx:237 -#: src/view/screens/ProfileList.tsx:267 +#: src/view/screens/ProfileFeed.tsx:244 +#: src/view/screens/ProfileList.tsx:275 #: src/view/screens/SavedFeeds.tsx:209 #: src/view/screens/SavedFeeds.tsx:231 #: src/view/screens/SavedFeeds.tsx:252 @@ -4051,9 +4900,8 @@ msgstr "Yhteydenotto palvelimeen epäonnistui" #: src/view/com/auth/onboarding/RecommendedFeedsItem.tsx:57 #: src/view/com/auth/onboarding/RecommendedFeedsItem.tsx:66 -#: src/view/com/feeds/FeedSourceCard.tsx:115 -#: src/view/com/feeds/FeedSourceCard.tsx:129 -#: src/view/com/feeds/FeedSourceCard.tsx:183 +#: src/view/com/feeds/FeedSourceCard.tsx:110 +#: src/view/com/feeds/FeedSourceCard.tsx:123 msgid "There was an issue contacting your server" msgstr "Yhteydenotto palvelimeen epäonnistui" @@ -4061,7 +4909,7 @@ msgstr "Yhteydenotto palvelimeen epäonnistui" msgid "There was an issue fetching notifications. Tap here to try again." msgstr "Ongelma ilmoitusten hakemisessa. Napauta tästä yrittääksesi uudelleen." -#: src/view/com/posts/Feed.tsx:263 +#: src/view/com/posts/Feed.tsx:283 msgid "There was an issue fetching posts. Tap here to try again." msgstr "Ongelma viestien hakemisessa. Napauta tästä yrittääksesi uudelleen." @@ -4074,34 +4922,40 @@ msgstr "Ongelma listan hakemisessa. Napauta tästä yrittääksesi uudelleen." msgid "There was an issue fetching your lists. Tap here to try again." msgstr "Ongelma listojesi hakemisessa. Napauta tästä yrittääksesi uudelleen." -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:63 -#: src/view/com/modals/ContentFilteringSettings.tsx:126 +#: src/components/ReportDialog/SubmitView.tsx:83 +msgid "There was an issue sending your report. Please check your internet connection." +msgstr "" + +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:65 msgid "There was an issue syncing your preferences with the server" msgstr "Ongelma asetuksiesi synkronoinnissa palvelimelle" -#: src/view/screens/AppPasswords.tsx:66 +#: src/view/screens/AppPasswords.tsx:68 msgid "There was an issue with fetching your app passwords" msgstr "Sovellussalasanojen hakemisessa tapahtui virhe" -#: src/view/com/post-thread/PostThreadFollowBtn.tsx:93 -#: src/view/com/post-thread/PostThreadFollowBtn.tsx:105 -#: src/view/com/profile/ProfileHeader.tsx:157 -#: src/view/com/profile/ProfileHeader.tsx:178 -#: src/view/com/profile/ProfileHeader.tsx:217 -#: src/view/com/profile/ProfileHeader.tsx:230 -#: src/view/com/profile/ProfileHeader.tsx:250 -#: src/view/com/profile/ProfileHeader.tsx:272 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:98 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:120 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:134 +#: src/view/com/post-thread/PostThreadFollowBtn.tsx:96 +#: src/view/com/post-thread/PostThreadFollowBtn.tsx:108 +#: src/view/com/profile/ProfileMenu.tsx:106 +#: src/view/com/profile/ProfileMenu.tsx:117 +#: src/view/com/profile/ProfileMenu.tsx:132 +#: src/view/com/profile/ProfileMenu.tsx:143 +#: src/view/com/profile/ProfileMenu.tsx:157 +#: src/view/com/profile/ProfileMenu.tsx:170 msgid "There was an issue! {0}" msgstr "Ilmeni ongelma! {0}" #: src/view/screens/ProfileList.tsx:288 -#: src/view/screens/ProfileList.tsx:307 -#: src/view/screens/ProfileList.tsx:329 -#: src/view/screens/ProfileList.tsx:348 +#: src/view/screens/ProfileList.tsx:302 +#: src/view/screens/ProfileList.tsx:316 +#: src/view/screens/ProfileList.tsx:330 msgid "There was an issue. Please check your internet connection and try again." msgstr "Ilmeni joku ongelma. Tarkista internet-yhteys ja yritä uudelleen." -#: src/view/com/util/ErrorBoundary.tsx:36 +#: src/view/com/util/ErrorBoundary.tsx:51 msgid "There was an unexpected issue in the application. Please let us know if this happened to you!" msgstr "Sovelluksessa ilmeni odottamaton ongelma. Kerro meille, jos tämä tapahtui sinulle!" @@ -4117,19 +4971,32 @@ msgstr "Blueskyyn on tullut paljon uusia käyttäjiä! Aktivoimme tilisi niin pi msgid "These are popular accounts you might like:" msgstr "Nämä ovat suosittuja tilejä, joista saatat pitää:" -#: src/view/com/util/moderation/ScreenHider.tsx:88 +#: src/components/moderation/ScreenHider.tsx:117 msgid "This {screenDescription} has been flagged:" msgstr "Tämä {screenDescription} on liputettu:" -#: src/view/com/util/moderation/ScreenHider.tsx:83 +#: src/components/moderation/ScreenHider.tsx:112 msgid "This account has requested that users sign in to view their profile." msgstr "Tämä tili pyytää käyttäjiä kirjautumaan sisään nähdäkseen profiilinsa." +#: src/components/moderation/LabelsOnMeDialog.tsx:205 +msgid "This appeal will be sent to <0>{0}." +msgstr "" + +#: src/lib/moderation/useGlobalLabelStrings.ts:19 +msgid "This content has been hidden by the moderators." +msgstr "" + +#: src/lib/moderation/useGlobalLabelStrings.ts:24 +msgid "This content has received a general warning from moderators." +msgstr "" + #: src/view/com/modals/EmbedConsent.tsx:68 msgid "This content is hosted by {0}. Do you want to enable external media?" msgstr "Tämä sisältö on hostattu palvelussa {0}. Haluatko sallia ulkoisen median?" -#: src/view/com/modals/ModerationDetails.tsx:67 +#: src/components/moderation/ModerationDetailsDialog.tsx:78 +#: src/lib/moderation/useModerationCauseDescription.ts:77 msgid "This content is not available because one of the users involved has blocked the other." msgstr "Tämä sisältö ei ole saatavilla, koska toinen käyttäjistä on estänyt toisen." @@ -4138,16 +5005,20 @@ msgid "This content is not viewable without a Bluesky account." msgstr "Tätä sisältöä ei voi katsoa ilman Bluesky-tiliä." #: src/view/screens/Settings/ExportCarDialog.tsx:75 -msgid "This feature is in beta. You can read more about repository exports in <0>this blogpost." -msgstr "Tämä ominaisuus on betavaiheessa. Voit lukea lisää pakettivarastojen vientitoiminnosta <0>tässä blogikirjoituksessa." +#~ msgid "This feature is in beta. You can read more about repository exports in <0>this blogpost." +#~ msgstr "Tämä ominaisuus on betavaiheessa. Voit lukea lisää pakettivarastojen vientitoiminnosta <0>tässä blogikirjoituksessa." + +#: src/view/screens/Settings/ExportCarDialog.tsx:75 +msgid "This feature is in beta. You can read more about repository exports in <0>this blogpost." +msgstr "" #: src/view/com/posts/FeedErrorMessage.tsx:114 msgid "This feed is currently receiving high traffic and is temporarily unavailable. Please try again later." msgstr "Tämä syöte saa tällä hetkellä paljon liikennettä ja on tilapäisesti pois käytöstä. Yritä uudelleen myöhemmin." -#: src/view/screens/Profile.tsx:420 +#: src/screens/Profile/Sections/Feed.tsx:50 #: src/view/screens/ProfileFeed.tsx:476 -#: src/view/screens/ProfileList.tsx:661 +#: src/view/screens/ProfileList.tsx:675 msgid "This feed is empty!" msgstr "Tämä syöte on tyhjä!" @@ -4155,7 +5026,7 @@ msgstr "Tämä syöte on tyhjä!" msgid "This feed is empty! You may need to follow more users or tune your language settings." msgstr "Tämä syöte on tyhjä! Sinun on ehkä seurattava useampia käyttäjiä tai säädettävä kieliasetuksiasi." -#: src/view/com/modals/BirthDateSettings.tsx:61 +#: src/components/dialogs/BirthDateSettings.tsx:41 msgid "This information is not shared with other users." msgstr "Tätä tietoa ei jaeta muiden käyttäjien kanssa." @@ -4163,14 +5034,26 @@ msgstr "Tätä tietoa ei jaeta muiden käyttäjien kanssa." msgid "This is important in case you ever need to change your email or reset your password." msgstr "Tämä on tärkeää, jos sinun tarvitsee vaihtaa sähköpostiosoitteesi tai palauttaa salasanasi." +#: src/components/moderation/ModerationDetailsDialog.tsx:125 +msgid "This label was applied by {0}." +msgstr "" + +#: src/screens/Profile/Sections/Labels.tsx:168 +msgid "This labeler hasn't declared what labels it publishes, and may not be active." +msgstr "" + #: src/view/com/modals/LinkWarning.tsx:58 msgid "This link is taking you to the following website:" msgstr "Tämä linkki vie sinut tälle verkkosivustolle:" -#: src/view/screens/ProfileList.tsx:834 +#: src/view/screens/ProfileList.tsx:853 msgid "This list is empty!" msgstr "Tämä lista on tyhjä!" +#: src/screens/Profile/ErrorState.tsx:40 +msgid "This moderation service is unavailable. See below for more details. If this issue persists, contact us." +msgstr "" + #: src/view/com/modals/AddAppPasswords.tsx:106 msgid "This name is already in use" msgstr "Tämä nimi on jo käytössä" @@ -4179,36 +5062,81 @@ msgstr "Tämä nimi on jo käytössä" msgid "This post has been deleted." msgstr "Tämä viesti on poistettu." -#: src/view/com/modals/ModerationDetails.tsx:62 +#: src/view/com/util/forms/PostDropdownBtn.tsx:344 +msgid "This post is only visible to logged-in users. It won't be visible to people who aren't logged in." +msgstr "" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:326 +msgid "This post will be hidden from feeds." +msgstr "" + +#: src/view/com/profile/ProfileMenu.tsx:370 +msgid "This profile is only visible to logged-in users. It won't be visible to people who aren't logged in." +msgstr "" + +#: src/view/com/auth/create/Policies.tsx:46 +msgid "This service has not provided terms of service or a privacy policy." +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:446 +msgid "This should create a domain record at:" +msgstr "" + +#: src/view/com/profile/ProfileFollowers.tsx:95 +msgid "This user doesn't have any followers." +msgstr "" + +#: src/components/moderation/ModerationDetailsDialog.tsx:73 +#: src/lib/moderation/useModerationCauseDescription.ts:68 msgid "This user has blocked you. You cannot view their content." msgstr "Tämä käyttäjä on estänyt sinut. Et voi nähdä heidän sisältöään." +#: src/lib/moderation/useGlobalLabelStrings.ts:30 +msgid "This user has requested that their content only be shown to signed-in users." +msgstr "" + #: src/view/com/modals/ModerationDetails.tsx:42 -msgid "This user is included in the <0/> list which you have blocked." -msgstr "Tämä käyttäjä on <0/>-listassa, jonka olet estänyt." +#~ msgid "This user is included in the <0/> list which you have blocked." +#~ msgstr "Tämä käyttäjä on <0/>-listassa, jonka olet estänyt." #: src/view/com/modals/ModerationDetails.tsx:74 -msgid "This user is included in the <0/> list which you have muted." -msgstr "Tämä käyttäjä on <0/>-listassa, jonka olet hiljentänyt." +#~ msgid "This user is included in the <0/> list which you have muted." +#~ msgstr "Tämä käyttäjä on <0/>-listassa, jonka olet hiljentänyt." + +#: src/components/moderation/ModerationDetailsDialog.tsx:56 +msgid "This user is included in the <0>{0} list which you have blocked." +msgstr "" + +#: src/components/moderation/ModerationDetailsDialog.tsx:85 +msgid "This user is included in the <0>{0} list which you have muted." +msgstr "" #: src/view/com/modals/ModerationDetails.tsx:74 #~ msgid "This user is included the <0/> list which you have muted." #~ msgstr "" +#: src/view/com/profile/ProfileFollows.tsx:94 +msgid "This user isn't following anyone." +msgstr "" + #: src/view/com/modals/SelfLabel.tsx:137 msgid "This warning is only available for posts with media attached." msgstr "Tämä varoitus on saatavilla vain viesteille, joihin on liitetty mediatiedosto." -#: src/components/dialogs/MutedWords.tsx:236 +#: src/components/dialogs/MutedWords.tsx:284 msgid "This will delete {0} from your muted words. You can always add it back later." msgstr "Tämä poistaa {0}:n hiljennetyistä sanoistasi. Voit lisätä sen takaisin myöhemmin." #: src/view/com/util/forms/PostDropdownBtn.tsx:237 -msgid "This will hide this post from your feeds." -msgstr "Tämä piilottaa tämän viestin syötteistäsi." +#~ msgid "This will hide this post from your feeds." +#~ msgstr "Tämä piilottaa tämän viestin syötteistäsi." + +#: src/view/screens/Settings/index.tsx:570 +msgid "Thread preferences" +msgstr "" #: src/view/screens/PreferencesThreads.tsx:53 -#: src/view/screens/Settings/index.tsx:565 +#: src/view/screens/Settings/index.tsx:580 msgid "Thread Preferences" msgstr "Keskusteluketjun asetukset" @@ -4216,11 +5144,15 @@ msgstr "Keskusteluketjun asetukset" msgid "Threaded Mode" msgstr "Ketjumainen näkymä" -#: src/Navigation.tsx:255 +#: src/Navigation.tsx:269 msgid "Threads Preferences" msgstr "Keskusteluketjujen asetukset" -#: src/components/dialogs/MutedWords.tsx:95 +#: src/components/ReportDialog/SelectLabelerView.tsx:35 +msgid "To whom would you like to send this report?" +msgstr "" + +#: src/components/dialogs/MutedWords.tsx:113 msgid "Toggle between muted word options." msgstr "Vaihda hiljennysvaihtoehtojen välillä." @@ -4228,13 +5160,18 @@ msgstr "Vaihda hiljennysvaihtoehtojen välillä." msgid "Toggle dropdown" msgstr "Vaihda pudotusvalikko" +#: src/screens/Moderation/index.tsx:334 +msgid "Toggle to enable or disable adult content" +msgstr "" + #: src/view/com/modals/EditImage.tsx:271 msgid "Transformations" msgstr "Muutokset" -#: src/view/com/post-thread/PostThreadItem.tsx:685 -#: src/view/com/post-thread/PostThreadItem.tsx:687 -#: src/view/com/util/forms/PostDropdownBtn.tsx:156 +#: src/view/com/post-thread/PostThreadItem.tsx:644 +#: src/view/com/post-thread/PostThreadItem.tsx:646 +#: src/view/com/util/forms/PostDropdownBtn.tsx:212 +#: src/view/com/util/forms/PostDropdownBtn.tsx:214 msgid "Translate" msgstr "Käännä" @@ -4243,11 +5180,15 @@ msgctxt "action" msgid "Try again" msgstr "Yritä uudelleen" -#: src/view/screens/ProfileList.tsx:506 +#: src/view/com/modals/ChangeHandle.tsx:429 +msgid "Type:" +msgstr "" + +#: src/view/screens/ProfileList.tsx:478 msgid "Un-block list" msgstr "Poista listan esto" -#: src/view/screens/ProfileList.tsx:491 +#: src/view/screens/ProfileList.tsx:461 msgid "Un-mute list" msgstr "Poista listan hiljennys" @@ -4259,21 +5200,28 @@ msgstr "Poista listan hiljennys" msgid "Unable to contact your service. Please check your Internet connection." msgstr "Yhteys palveluusi ei onnistu. Tarkista internet-yhteytesi." -#: src/view/com/profile/ProfileHeader.tsx:433 -#: src/view/screens/ProfileList.tsx:590 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:174 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:278 +#: src/view/com/profile/ProfileMenu.tsx:361 +#: src/view/screens/ProfileList.tsx:572 msgid "Unblock" msgstr "Poista esto" -#: src/view/com/profile/ProfileHeader.tsx:435 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:179 msgctxt "action" msgid "Unblock" msgstr "Poista esto" -#: src/view/com/profile/ProfileHeader.tsx:261 -#: src/view/com/profile/ProfileHeader.tsx:345 +#: src/view/com/profile/ProfileMenu.tsx:299 +#: src/view/com/profile/ProfileMenu.tsx:305 msgid "Unblock Account" msgstr "Poista tilin esto" +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:272 +#: src/view/com/profile/ProfileMenu.tsx:343 +msgid "Unblock Account?" +msgstr "" + #: src/view/com/modals/Repost.tsx:42 #: src/view/com/modals/Repost.tsx:55 #: src/view/com/util/post-ctrls/RepostButton.tsx:60 @@ -4281,65 +5229,104 @@ msgstr "Poista tilin esto" msgid "Undo repost" msgstr "Kumoa uudelleenjako" -#: src/view/com/profile/FollowButton.tsx:55 +#: src/view/com/auth/onboarding/RecommendedFollowsItem.tsx:141 +#: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:246 +msgid "Unfollow" +msgstr "" + +#: src/view/com/profile/FollowButton.tsx:60 msgctxt "action" msgid "Unfollow" msgstr "Lopeta seuraaminen" -#: src/view/com/profile/ProfileHeader.tsx:485 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:213 msgid "Unfollow {0}" msgstr "Lopeta seuraaminen {0}" +#: src/view/com/profile/ProfileMenu.tsx:241 +#: src/view/com/profile/ProfileMenu.tsx:251 +msgid "Unfollow Account" +msgstr "" + #: src/view/com/auth/create/state.ts:262 msgid "Unfortunately, you do not meet the requirements to create an account." msgstr "Valitettavasti et täytä tilin luomisen vaatimuksia." -#: src/view/com/util/post-ctrls/PostCtrls.tsx:182 -#: src/view/com/util/post-ctrls/PostCtrls.tsx:216 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:185 msgid "Unlike" msgstr "En tykkää" -#: src/components/TagMenu/index.tsx:253 -#: src/view/screens/ProfileList.tsx:597 +#: src/view/screens/ProfileFeed.tsx:572 +msgid "Unlike this feed" +msgstr "" + +#: src/components/TagMenu/index.tsx:249 +#: src/view/screens/ProfileList.tsx:579 msgid "Unmute" msgstr "Poista hiljennys" -#: src/components/TagMenu/index.web.tsx:90 +#: src/components/TagMenu/index.web.tsx:104 msgid "Unmute {truncatedTag}" msgstr "Poista hiljennys {truncatedTag}" -#: src/view/com/profile/ProfileHeader.tsx:326 +#: src/view/com/profile/ProfileMenu.tsx:278 +#: src/view/com/profile/ProfileMenu.tsx:284 msgid "Unmute Account" msgstr "Poista tilin hiljennys" +#: src/components/TagMenu/index.tsx:208 +msgid "Unmute all {displayTag} posts" +msgstr "" + #: src/components/TagMenu/index.tsx:210 -msgid "Unmute all {tag} posts" -msgstr "Poista hiljennys kaikista {tag}-viesteistä" +#~ msgid "Unmute all {tag} posts" +#~ msgstr "Poista hiljennys kaikista {tag}-viesteistä" -#: src/view/com/util/forms/PostDropdownBtn.tsx:202 +#: src/view/com/util/forms/PostDropdownBtn.tsx:251 +#: src/view/com/util/forms/PostDropdownBtn.tsx:256 msgid "Unmute thread" msgstr "Poista keskusteluketjun hiljennys" -#: src/view/screens/ProfileFeed.tsx:353 -#: src/view/screens/ProfileList.tsx:580 +#: src/view/screens/ProfileFeed.tsx:294 +#: src/view/screens/ProfileList.tsx:563 msgid "Unpin" msgstr "Poista kiinnitys" -#: src/view/screens/ProfileList.tsx:474 +#: src/view/screens/ProfileFeed.tsx:291 +msgid "Unpin from home" +msgstr "" + +#: src/view/screens/ProfileList.tsx:444 msgid "Unpin moderation list" msgstr "Poista moderointilistan kiinnitys" #: src/view/screens/ProfileFeed.tsx:346 -msgid "Unsave" -msgstr "Poista tallennus" +#~ msgid "Unsave" +#~ msgstr "Poista tallennus" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:220 +msgid "Unsubscribe" +msgstr "" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:184 +msgid "Unsubscribe from this labeler" +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:70 +msgid "Unwanted Sexual Content" +msgstr "" #: src/view/com/modals/UserAddRemoveLists.tsx:70 msgid "Update {displayName} in Lists" msgstr "Päivitä {displayName} listoissa" #: src/lib/hooks/useOTAUpdate.ts:15 -msgid "Update Available" -msgstr "Päivitys saatavilla" +#~ msgid "Update Available" +#~ msgstr "Päivitys saatavilla" + +#: src/view/com/modals/ChangeHandle.tsx:509 +msgid "Update to {handle}" +msgstr "" #: src/view/com/auth/login/SetNewPasswordForm.tsx:204 msgid "Updating..." @@ -4349,11 +5336,38 @@ msgstr "Päivitetään..." msgid "Upload a text file to:" msgstr "Lataa tekstitiedosto kohteeseen:" -#: src/view/screens/AppPasswords.tsx:195 +#: src/view/com/util/UserAvatar.tsx:326 +#: src/view/com/util/UserAvatar.tsx:329 +#: src/view/com/util/UserBanner.tsx:116 +#: src/view/com/util/UserBanner.tsx:119 +msgid "Upload from Camera" +msgstr "" + +#: src/view/com/util/UserAvatar.tsx:343 +#: src/view/com/util/UserBanner.tsx:133 +msgid "Upload from Files" +msgstr "" + +#: src/view/com/util/UserAvatar.tsx:337 +#: src/view/com/util/UserAvatar.tsx:341 +#: src/view/com/util/UserBanner.tsx:127 +#: src/view/com/util/UserBanner.tsx:131 +msgid "Upload from Library" +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:409 +msgid "Use a file on your server" +msgstr "" + +#: src/view/screens/AppPasswords.tsx:197 msgid "Use app passwords to login to other Bluesky clients without giving full access to your account or password." msgstr "Käytä sovellussalasanoja kirjautuaksesi muihin Bluesky-sovelluksiin antamatta niille täyttä hallintaa tilillesi tai salasanallesi." -#: src/view/com/modals/ChangeHandle.tsx:515 +#: src/view/com/modals/ChangeHandle.tsx:518 +msgid "Use bsky.social as hosting provider" +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:517 msgid "Use default provider" msgstr "Käytä oletustoimittajaa" @@ -4367,6 +5381,10 @@ msgstr "Käytä sovelluksen sisäistä selainta" msgid "Use my default browser" msgstr "Käytä oletusselaintani" +#: src/view/com/modals/ChangeHandle.tsx:401 +msgid "Use the DNS panel" +msgstr "" + #: src/view/com/modals/AddAppPasswords.tsx:155 msgid "Use this to sign into the other app along with your handle." msgstr "Käytä tätä kirjautuaksesi toiseen sovellukseen käyttäjätunnuksellasi." @@ -4379,15 +5397,24 @@ msgstr "Käytä tätä kirjautuaksesi toiseen sovellukseen käyttäjätunnuksell msgid "Used by:" msgstr "Käyttänyt:" -#: src/view/com/modals/ModerationDetails.tsx:54 +#: src/components/moderation/ModerationDetailsDialog.tsx:65 +#: src/lib/moderation/useModerationCauseDescription.ts:56 msgid "User Blocked" msgstr "Käyttäjä estetty" -#: src/view/com/modals/ModerationDetails.tsx:40 +#: src/lib/moderation/useModerationCauseDescription.ts:48 +msgid "User Blocked by \"{0}\"" +msgstr "" + +#: src/components/moderation/ModerationDetailsDialog.tsx:54 msgid "User Blocked by List" msgstr "Käyttäjä estetty listan vuoksi" -#: src/view/com/modals/ModerationDetails.tsx:60 +#: src/lib/moderation/useModerationCauseDescription.ts:66 +msgid "User Blocking You" +msgstr "" + +#: src/components/moderation/ModerationDetailsDialog.tsx:71 msgid "User Blocks You" msgstr "Käyttäjä on estänyt sinut" @@ -4400,13 +5427,13 @@ msgstr "Käyttäjätunnus" msgid "User list by {0}" msgstr "Käyttäjälistan on tehnyt {0}" -#: src/view/screens/ProfileList.tsx:762 +#: src/view/screens/ProfileList.tsx:777 msgid "User list by <0/>" msgstr "Käyttäjälistan on tehnyt <0/>" #: src/view/com/lists/ListCard.tsx:83 #: src/view/com/modals/UserAddRemoveLists.tsx:196 -#: src/view/screens/ProfileList.tsx:760 +#: src/view/screens/ProfileList.tsx:775 msgid "User list by you" msgstr "Sinun käyttäjälistasi" @@ -4427,7 +5454,7 @@ msgstr "Käyttäjälistat" msgid "Username or email address" msgstr "Käyttäjätunnus tai sähköpostiosoite" -#: src/view/screens/ProfileList.tsx:796 +#: src/view/screens/ProfileList.tsx:811 msgid "Users" msgstr "Käyttäjät" @@ -4439,19 +5466,31 @@ msgstr "käyttäjät, joita <0/> seuraa" msgid "Users in \"{0}\"" msgstr "Käyttäjät ryhmässä \"{0}\"" +#: src/components/LikesDialog.tsx:85 +msgid "Users that have liked this content or profile" +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:437 +msgid "Value:" +msgstr "" + #: src/view/com/auth/create/Step2.tsx:243 #~ msgid "Verification code" #~ msgstr "Varmistuskoodi" -#: src/view/screens/Settings/index.tsx:910 +#: src/view/com/modals/ChangeHandle.tsx:510 +msgid "Verify {0}" +msgstr "" + +#: src/view/screens/Settings/index.tsx:940 msgid "Verify email" msgstr "Varmista sähköposti" -#: src/view/screens/Settings/index.tsx:935 +#: src/view/screens/Settings/index.tsx:965 msgid "Verify my email" msgstr "Vahvista sähköpostini" -#: src/view/screens/Settings/index.tsx:944 +#: src/view/screens/Settings/index.tsx:974 msgid "Verify My Email" msgstr "Vahvista sähköpostini" @@ -4468,7 +5507,7 @@ msgstr "Vahvista sähköpostisi" msgid "Video Games" msgstr "Videopelit" -#: src/view/com/profile/ProfileHeader.tsx:662 +#: src/screens/Profile/Header/Shell.tsx:110 msgid "View {0}'s avatar" msgstr "Katso {0}:n avatar" @@ -4476,11 +5515,23 @@ msgstr "Katso {0}:n avatar" msgid "View debug entry" msgstr "Katso vianmääritystietue" -#: src/view/com/posts/FeedSlice.tsx:103 +#: src/components/ReportDialog/SelectReportOptionView.tsx:133 +msgid "View details" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:128 +msgid "View details for reporting a copyright violation" +msgstr "" + +#: src/view/com/posts/FeedSlice.tsx:99 msgid "View full thread" msgstr "Katso koko keskusteluketju" -#: src/view/com/posts/FeedErrorMessage.tsx:172 +#: src/components/moderation/LabelsOnMe.tsx:51 +msgid "View information about these labels" +msgstr "" + +#: src/view/com/posts/FeedErrorMessage.tsx:166 msgid "View profile" msgstr "Katso profiilia" @@ -4488,19 +5539,42 @@ msgstr "Katso profiilia" msgid "View the avatar" msgstr "Katso avatar" +#: src/components/LabelingServiceCard/index.tsx:140 +msgid "View the labeling service provided by @{0}" +msgstr "" + +#: src/view/screens/ProfileFeed.tsx:584 +msgid "View users who like this feed" +msgstr "" + #: src/view/com/modals/LinkWarning.tsx:75 +#: src/view/com/modals/LinkWarning.tsx:77 msgid "Visit Site" msgstr "Vieraile sivustolla" -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:42 -#: src/view/com/modals/ContentFilteringSettings.tsx:259 +#: src/components/moderation/GlobalModerationLabelPref.tsx:44 +#: src/lib/moderation/useLabelBehaviorDescription.ts:17 +#: src/lib/moderation/useLabelBehaviorDescription.ts:22 +#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:53 msgid "Warn" msgstr "Varoita" +#: src/lib/moderation/useLabelBehaviorDescription.ts:48 +msgid "Warn content" +msgstr "" + +#: src/lib/moderation/useLabelBehaviorDescription.ts:46 +msgid "Warn content and filter from feeds" +msgstr "" + #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:134 msgid "We also think you'll like \"For You\" by Skygaze:" msgstr "Uskomme myös, että pitäisit Skygazen \"For You\" -syötteestä:" +#: src/screens/Hashtag.tsx:132 +msgid "We couldn't find any results for that hashtag." +msgstr "" + #: src/screens/Deactivated.tsx:133 msgid "We estimate {estimatedTime} until your account is ready." msgstr "Arvioimme, että tilisi valmistumiseen on {estimatedTime} aikaa." @@ -4517,7 +5591,7 @@ msgstr "Emme enää löytäneet viestejä seurattavilta. Tässä on uusin tekij #~ msgid "We recommend \"For You\" by Skygaze:" #~ msgstr "" -#: src/components/dialogs/MutedWords.tsx:161 +#: src/components/dialogs/MutedWords.tsx:204 msgid "We recommend avoiding common words that appear in many posts, since it can result in no posts being shown." msgstr "Suosittelemme välttämään yleisiä sanoja, jotka esiintyvät monissa viesteissä. Se voi johtaa siihen, ettei viestejä näytetä." @@ -4525,6 +5599,14 @@ msgstr "Suosittelemme välttämään yleisiä sanoja, jotka esiintyvät monissa msgid "We recommend our \"Discover\" feed:" msgstr "Suosittelemme \"Tutustu\"-syötettämme:" +#: src/components/dialogs/BirthDateSettings.tsx:52 +msgid "We were unable to load your birth date preferences. Please try again." +msgstr "" + +#: src/screens/Moderation/index.tsx:387 +msgid "We were unable to load your configured labelers at this time." +msgstr "" + #: src/screens/Onboarding/StepInterests/index.tsx:133 msgid "We weren't able to connect. Please try again to continue setting up your account. If it continues to fail, you can skip this flow." msgstr "Yhteyden muodostaminen ei onnistunut. Yritä uudelleen jatkaaksesi tilisi määritystä. Jos ongelma jatkuu, voit ohittaa tämän vaiheen." @@ -4534,8 +5616,8 @@ msgid "We will let you know when your account is ready." msgstr "Ilmoitamme sinulle, kun tilisi on valmis." #: src/view/com/modals/AppealLabel.tsx:48 -msgid "We'll look into your appeal promptly." -msgstr "Käsittelemme vetoomuksesi pikaisesti." +#~ msgid "We'll look into your appeal promptly." +#~ msgstr "Käsittelemme vetoomuksesi pikaisesti." #: src/screens/Onboarding/StepInterests/index.tsx:138 msgid "We'll use this to help customize your experience." @@ -4545,23 +5627,28 @@ msgstr "Käytämme tätä mukauttaaksemme kokemustasi." msgid "We're so excited to have you join us!" msgstr "Olemme innoissamme, että liityt joukkoomme!" -#: src/view/screens/ProfileList.tsx:86 +#: src/view/screens/ProfileList.tsx:89 msgid "We're sorry, but we were unable to resolve this list. If this persists, please contact the list creator, @{handleOrDid}." msgstr "Pahoittelemme, emme saaneet avattua tätä listaa. Jos ongelma jatkuu, ota yhteyttä listan tekijään: @{handleOrDid}." -#: src/components/dialogs/MutedWords.tsx:182 +#: src/components/dialogs/MutedWords.tsx:230 msgid "We're sorry, but we weren't able to load your muted words at this time. Please try again." msgstr "Pahoittelemme, emme pystyneet lataamaan hiljennettyjä sanojasi tällä hetkellä. Yritä uudelleen." -#: src/view/screens/Search/Search.tsx:254 +#: src/view/screens/Search/Search.tsx:255 msgid "We're sorry, but your search could not be completed. Please try again in a few minutes." msgstr "Pahoittelemme, hakuasi ei voitu suorittaa loppuun. Yritä uudelleen muutaman minuutin kuluttua." +#: src/components/Lists.tsx:194 #: src/view/screens/NotFound.tsx:48 msgid "We're sorry! We can't find the page you were looking for." msgstr "Pahoittelut! Emme löydä etsimääsi sivua." -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:46 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:319 +msgid "We're sorry! You can only subscribe to ten labelers, and you've reached your limit of ten." +msgstr "" + +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:48 msgid "Welcome to <0>Bluesky" msgstr "Tervetuloa <0>Bluesky:iin" @@ -4570,11 +5657,11 @@ msgid "What are your interests?" msgstr "Mitkä ovat kiinnostuksenkohteesi?" #: src/view/com/modals/report/Modal.tsx:169 -msgid "What is the issue with this {collectionName}?" -msgstr "Mikä on ongelma tämän {collectionName} kanssa?" +#~ msgid "What is the issue with this {collectionName}?" +#~ msgstr "Mikä on ongelma tämän {collectionName} kanssa?" #: src/view/com/auth/SplashScreen.tsx:59 -#: src/view/com/composer/Composer.tsx:286 +#: src/view/com/composer/Composer.tsx:295 msgid "What's up?" msgstr "Mitä kuuluu?" @@ -4591,16 +5678,36 @@ msgstr "Mitä kieliä haluaisit nähdä algoritmisissä syötteissä?" msgid "Who can reply" msgstr "Kuka voi vastata" +#: src/components/ReportDialog/SelectReportOptionView.tsx:44 +msgid "Why should this content be reviewed?" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:57 +msgid "Why should this feed be reviewed?" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:54 +msgid "Why should this list be reviewed?" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:51 +msgid "Why should this post be reviewed?" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:48 +msgid "Why should this user be reviewed?" +msgstr "" + #: src/view/com/modals/crop-image/CropImage.web.tsx:102 msgid "Wide" msgstr "Leveä" -#: src/view/com/composer/Composer.tsx:422 +#: src/view/com/composer/Composer.tsx:435 msgid "Write post" msgstr "Kirjoita viesti" -#: src/view/com/composer/Composer.tsx:285 -#: src/view/com/composer/Prompt.tsx:33 +#: src/view/com/composer/Composer.tsx:294 +#: src/view/com/composer/Prompt.tsx:37 msgid "Write your reply" msgstr "Kirjoita vastauksesi" @@ -4630,6 +5737,10 @@ msgstr "Kyllä" msgid "You are in line." msgstr "Olet jonossa." +#: src/view/com/profile/ProfileFollows.tsx:93 +msgid "You are not following anyone." +msgstr "" + #: src/view/com/posts/FollowingEmptyState.tsx:67 #: src/view/com/posts/FollowingEndOfFeed.tsx:68 msgid "You can also discover new Custom Feeds to follow." @@ -4648,6 +5759,10 @@ msgstr "Voit muuttaa näitä asetuksia myöhemmin." msgid "You can now sign in with your new password." msgstr "Voit nyt kirjautua sisään uudella salasanallasi." +#: src/view/com/profile/ProfileFollowers.tsx:94 +msgid "You do not have any followers." +msgstr "" + #: src/view/com/modals/InviteCodes.tsx:66 msgid "You don't have any invite codes yet! We'll send you some when you've been on Bluesky for a little longer." msgstr "Sinulla ei ole vielä kutsukoodia! Lähetämme sinulle sellaisen, kun olet ollut Bluesky-palvelussa hieman pidempään." @@ -4664,11 +5779,13 @@ msgstr "Sinulla ei ole tallennettuja syötteitä!" msgid "You don't have any saved feeds." msgstr "Sinulla ei ole tallennettuja syötteitä." -#: src/view/com/post-thread/PostThread.tsx:465 +#: src/view/com/post-thread/PostThread.tsx:159 msgid "You have blocked the author or you have been blocked by the author." msgstr "Olet estänyt tekijän tai sinut on estetty tekijän toimesta." -#: src/view/com/modals/ModerationDetails.tsx:56 +#: src/components/moderation/ModerationDetailsDialog.tsx:67 +#: src/lib/moderation/useModerationCauseDescription.ts:50 +#: src/lib/moderation/useModerationCauseDescription.ts:58 msgid "You have blocked this user. You cannot view their content." msgstr "Olet estänyt tämän käyttäjän. Et voi nähdä heidän sisältöään." @@ -4679,9 +5796,26 @@ msgstr "Olet estänyt tämän käyttäjän. Et voi nähdä heidän sisältöää msgid "You have entered an invalid code. It should look like XXXXX-XXXXX." msgstr "Olet syöttänyt virheellisen koodin. Sen tulisi näyttää muodoltaan XXXXX-XXXXX." +#: src/lib/moderation/useModerationCauseDescription.ts:109 +msgid "You have hidden this post" +msgstr "" + +#: src/components/moderation/ModerationDetailsDialog.tsx:102 +msgid "You have hidden this post." +msgstr "" + +#: src/components/moderation/ModerationDetailsDialog.tsx:95 +#: src/lib/moderation/useModerationCauseDescription.ts:92 +msgid "You have muted this account." +msgstr "" + +#: src/lib/moderation/useModerationCauseDescription.ts:86 +msgid "You have muted this user" +msgstr "" + #: src/view/com/modals/ModerationDetails.tsx:87 -msgid "You have muted this user." -msgstr "Olet hiljentänyt tämän käyttäjän." +#~ msgid "You have muted this user." +#~ msgstr "Olet hiljentänyt tämän käyttäjän." #: src/view/com/feeds/ProfileFeedgens.tsx:136 msgid "You have no feeds." @@ -4693,34 +5827,50 @@ msgid "You have no lists." msgstr "Sinulla ei ole listoja." #: src/view/screens/ModerationBlockedAccounts.tsx:132 -msgid "You have not blocked any accounts yet. To block an account, go to their profile and selected \"Block account\" from the menu on their account." -msgstr "Et ole vielä estänyt yhtään käyttäjää. Estääksesi käyttäjän, siirry heidän profiiliinsa ja valitse \"Estä käyttäjä\"-vaihtoehto heidän tilinsä valikosta." +msgid "You have not blocked any accounts yet. To block an account, go to their profile and select \"Block account\" from the menu on their account." +msgstr "" + +#: src/view/screens/ModerationBlockedAccounts.tsx:132 +#~ msgid "You have not blocked any accounts yet. To block an account, go to their profile and selected \"Block account\" from the menu on their account." +#~ msgstr "Et ole vielä estänyt yhtään käyttäjää. Estääksesi käyttäjän, siirry heidän profiiliinsa ja valitse \"Estä käyttäjä\"-vaihtoehto heidän tilinsä valikosta." -#: src/view/screens/AppPasswords.tsx:87 +#: src/view/screens/AppPasswords.tsx:89 msgid "You have not created any app passwords yet. You can create one by pressing the button below." msgstr "Et ole vielä luonut yhtään sovelluksen salasanaa. Voit luoda sellaisen painamalla alla olevaa painiketta." #: src/view/screens/ModerationMutedAccounts.tsx:131 -msgid "You have not muted any accounts yet. To mute an account, go to their profile and selected \"Mute account\" from the menu on their account." -msgstr "Et ole vielä hiljentänyt yhtään käyttäjää. Hiljentääksesi käyttäjän, siirry heidän profiiliinsa ja valitse \"Hiljennä käyttäjä\"-vaihtoehto heidän tilinsä valikosta." +msgid "You have not muted any accounts yet. To mute an account, go to their profile and select \"Mute account\" from the menu on their account." +msgstr "" + +#: src/view/screens/ModerationMutedAccounts.tsx:131 +#~ msgid "You have not muted any accounts yet. To mute an account, go to their profile and selected \"Mute account\" from the menu on their account." +#~ msgstr "Et ole vielä hiljentänyt yhtään käyttäjää. Hiljentääksesi käyttäjän, siirry heidän profiiliinsa ja valitse \"Hiljennä käyttäjä\"-vaihtoehto heidän tilinsä valikosta." -#: src/components/dialogs/MutedWords.tsx:202 +#: src/components/dialogs/MutedWords.tsx:250 msgid "You haven't muted any words or tags yet" msgstr "Et ole vielä hiljentänyt yhtään sanaa tai tunnistetta" +#: src/components/moderation/LabelsOnMeDialog.tsx:69 +msgid "You may appeal these labels if you feel they were placed in error." +msgstr "" + #: src/view/com/modals/ContentFilteringSettings.tsx:175 -msgid "You must be 18 or older to enable adult content." -msgstr "Sinun on oltava vähintään 18-vuotias katsoaksesi aikuissisältöä." +#~ msgid "You must be 18 or older to enable adult content." +#~ msgstr "Sinun on oltava vähintään 18-vuotias katsoaksesi aikuissisältöä." -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:103 +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:110 msgid "You must be 18 years or older to enable adult content" msgstr "Sinun on oltava vähintään 18-vuotias katsoaksesi aikuissisältöä" -#: src/view/com/util/forms/PostDropdownBtn.tsx:129 +#: src/components/ReportDialog/SubmitView.tsx:205 +msgid "You must select at least one labeler for a report" +msgstr "" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:144 msgid "You will no longer receive notifications for this thread" msgstr "Et enää saa ilmoituksia tästä keskustelusta" -#: src/view/com/util/forms/PostDropdownBtn.tsx:132 +#: src/view/com/util/forms/PostDropdownBtn.tsx:147 msgid "You will now receive notifications for this thread" msgstr "Saat nyt ilmoituksia tästä keskustelusta" @@ -4728,7 +5878,7 @@ msgstr "Saat nyt ilmoituksia tästä keskustelusta" msgid "You will receive an email with a \"reset code.\" Enter that code here, then enter your new password." msgstr "Saat sähköpostin \"nollauskoodin\". Syötä koodi tähän ja syötä sitten uusi salasanasi." -#: src/screens/Onboarding/StepModeration/index.tsx:72 +#: src/screens/Onboarding/StepModeration/index.tsx:59 msgid "You're in control" msgstr "Sinulla on ohjat" @@ -4742,11 +5892,16 @@ msgstr "Olet jonossa" msgid "You're ready to go!" msgstr "Olet valmis aloittamaan!" +#: src/components/moderation/ModerationDetailsDialog.tsx:99 +#: src/lib/moderation/useModerationCauseDescription.ts:101 +msgid "You've chosen to hide a word or tag within this post." +msgstr "" + #: src/view/com/posts/FollowingEndOfFeed.tsx:48 msgid "You've reached the end of your feed! Find some more accounts to follow." msgstr "Olet saavuttanut syötteesi lopun! Etsi lisää käyttäjiä seurattavaksi." -#: src/view/com/auth/create/Step1.tsx:74 +#: src/view/com/auth/create/Step1.tsx:67 msgid "Your account" msgstr "Tilisi" @@ -4758,7 +5913,7 @@ msgstr "Tilisi on poistettu" msgid "Your account repository, containing all public data records, can be downloaded as a \"CAR\" file. This file does not include media embeds, such as images, or your private data, which must be fetched separately." msgstr "Tilisi arkisto, joka sisältää kaikki julkiset tietueet, voidaan ladata \"CAR\"-tiedostona. Tämä tiedosto ei sisällä upotettuja mediaelementtejä, kuten kuvia, tai yksityisiä tietojasi, jotka on haettava erikseen." -#: src/view/com/auth/create/Step1.tsx:238 +#: src/view/com/auth/create/Step1.tsx:215 msgid "Your birth date" msgstr "Syntymäaikasi" @@ -4777,8 +5932,8 @@ msgid "Your email appears to be invalid." msgstr "Sähköpostiosoitteesi näyttää olevan virheellinen." #: src/view/com/modals/Waitlist.tsx:109 -msgid "Your email has been saved! We'll be in touch soon." -msgstr "Sähköpostiosoitteesi on tallennettu! Olemme pian yhteydessä." +#~ msgid "Your email has been saved! We'll be in touch soon." +#~ msgstr "Sähköpostiosoitteesi on tallennettu! Olemme pian yhteydessä." #: src/view/com/modals/ChangeEmail.tsx:125 msgid "Your email has been updated but not verified. As a next step, please verify your new email." @@ -4806,30 +5961,30 @@ msgstr "Käyttäjätunnuksesi tulee olemaan <0>@{0}" #~ msgid "Your invite codes are hidden when logged in using an App Password" #~ msgstr "" -#: src/components/dialogs/MutedWords.tsx:173 +#: src/components/dialogs/MutedWords.tsx:221 msgid "Your muted words" msgstr "Hiljentämäsi sanat" -#: src/view/com/modals/ChangePassword.tsx:155 +#: src/view/com/modals/ChangePassword.tsx:157 msgid "Your password has been changed successfully!" msgstr "Salasanasi on vaihdettu onnistuneesti!" -#: src/view/com/composer/Composer.tsx:274 +#: src/view/com/composer/Composer.tsx:283 msgid "Your post has been published" msgstr "Viestisi on julkaistu" #: src/screens/Onboarding/StepFinished.tsx:105 #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:59 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:59 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:61 msgid "Your posts, likes, and blocks are public. Mutes are private." msgstr "Julkaisusi, tykkäyksesi ja estosi ovat julkisia. Hiljennykset ovat yksityisiä." -#: src/view/com/modals/SwitchAccount.tsx:84 -#: src/view/screens/Settings/index.tsx:118 +#: src/view/com/modals/SwitchAccount.tsx:88 +#: src/view/screens/Settings/index.tsx:123 msgid "Your profile" msgstr "Profiilisi" -#: src/view/com/composer/Composer.tsx:273 +#: src/view/com/composer/Composer.tsx:282 msgid "Your reply has been published" msgstr "Vastauksesi on julkaistu" diff --git a/src/locale/locales/fr/messages.po b/src/locale/locales/fr/messages.po index 37af8b3862..04dce8242a 100644 --- a/src/locale/locales/fr/messages.po +++ b/src/locale/locales/fr/messages.po @@ -17,11 +17,11 @@ msgstr "" msgid "(no email)" msgstr "(pas d’e-mail)" -#: src/view/com/profile/ProfileHeader.tsx:593 +#: src/screens/Profile/Header/Metrics.tsx:45 msgid "{following} following" msgstr "{following} abonnements" -#: src/view/shell/Drawer.tsx:440 +#: src/view/shell/Drawer.tsx:443 msgid "{numUnreadNotifications} unread" msgstr "{numUnreadNotifications} non lus" @@ -29,7 +29,11 @@ msgstr "{numUnreadNotifications} non lus" msgid "<0/> members" msgstr "<0/> membres" -#: src/view/com/profile/ProfileHeader.tsx:595 +#: src/view/shell/Drawer.tsx:97 +msgid "<0>{0} following" +msgstr "" + +#: src/screens/Profile/Header/Metrics.tsx:46 msgid "<0>{following} <1>following" msgstr "<0>{following} <1>abonnements" @@ -45,20 +49,20 @@ msgstr "<0>Suivre certains<1>comptes<2>recommandés" msgid "<0>Welcome to<1>Bluesky" msgstr "<0>Bienvenue sur<1>Bluesky" -#: src/view/com/profile/ProfileHeader.tsx:558 +#: src/screens/Profile/Header/Handle.tsx:42 msgid "⚠Invalid Handle" msgstr "⚠Pseudo invalide" #: src/view/com/util/moderation/LabelInfo.tsx:45 -msgid "A content warning has been applied to this {0}." -msgstr "Un avertissement sur le contenu a été appliqué sur ce {0}." +#~ msgid "A content warning has been applied to this {0}." +#~ msgstr "Un avertissement sur le contenu a été appliqué sur ce {0}." #: src/lib/hooks/useOTAUpdate.ts:16 -msgid "A new version of the app is available. Please update to continue using the app." -msgstr "Une nouvelle version de l’application est disponible. Veuillez faire la mise à jour pour continuer à utiliser l’application." +#~ msgid "A new version of the app is available. Please update to continue using the app." +#~ msgstr "Une nouvelle version de l’application est disponible. Veuillez faire la mise à jour pour continuer à utiliser l’application." #: src/view/com/util/ViewHeader.tsx:89 -#: src/view/screens/Search/Search.tsx:647 +#: src/view/screens/Search/Search.tsx:648 msgid "Access navigation links and settings" msgstr "Accède aux liens de navigation et aux paramètres" @@ -67,29 +71,38 @@ msgid "Access profile and other navigation links" msgstr "Accède au profil et aux autres liens de navigation" #: src/view/com/modals/EditImage.tsx:299 -#: src/view/screens/Settings/index.tsx:451 +#: src/view/screens/Settings/index.tsx:466 msgid "Accessibility" msgstr "Accessibilité" +#: src/components/moderation/LabelsOnMe.tsx:42 +msgid "account" +msgstr "" + #: src/view/com/auth/login/LoginForm.tsx:166 -#: src/view/screens/Settings/index.tsx:308 -#: src/view/screens/Settings/index.tsx:721 +#: src/view/screens/Settings/index.tsx:323 +#: src/view/screens/Settings/index.tsx:739 msgid "Account" msgstr "Compte" -#: src/view/com/profile/ProfileHeader.tsx:246 +#: src/view/com/profile/ProfileMenu.tsx:139 msgid "Account blocked" msgstr "Compte bloqué" -#: src/view/com/profile/ProfileHeader.tsx:213 +#: src/view/com/profile/ProfileMenu.tsx:153 +msgid "Account followed" +msgstr "" + +#: src/view/com/profile/ProfileMenu.tsx:113 msgid "Account muted" msgstr "Compte masqué" -#: src/view/com/modals/ModerationDetails.tsx:86 +#: src/components/moderation/ModerationDetailsDialog.tsx:94 +#: src/lib/moderation/useModerationCauseDescription.ts:91 msgid "Account Muted" msgstr "Compte masqué" -#: src/view/com/modals/ModerationDetails.tsx:72 +#: src/components/moderation/ModerationDetailsDialog.tsx:83 msgid "Account Muted by List" msgstr "Compte masqué par liste" @@ -101,19 +114,24 @@ msgstr "Options de compte" msgid "Account removed from quick access" msgstr "Compte supprimé de l’accès rapide" -#: src/view/com/profile/ProfileHeader.tsx:268 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:130 +#: src/view/com/profile/ProfileMenu.tsx:128 msgid "Account unblocked" msgstr "Compte débloqué" -#: src/view/com/profile/ProfileHeader.tsx:226 +#: src/view/com/profile/ProfileMenu.tsx:166 +msgid "Account unfollowed" +msgstr "" + +#: src/view/com/profile/ProfileMenu.tsx:102 msgid "Account unmuted" msgstr "Compte démasqué" #: src/components/dialogs/MutedWords.tsx:165 #: src/view/com/auth/onboarding/RecommendedFeedsItem.tsx:150 -#: src/view/com/modals/ListAddRemoveUsers.tsx:264 +#: src/view/com/modals/ListAddRemoveUsers.tsx:268 #: src/view/com/modals/UserAddRemoveLists.tsx:219 -#: src/view/screens/ProfileList.tsx:813 +#: src/view/screens/ProfileList.tsx:827 msgid "Add" msgstr "Ajouter" @@ -121,12 +139,12 @@ msgstr "Ajouter" msgid "Add a content warning" msgstr "Ajouter un avertissement sur le contenu" -#: src/view/screens/ProfileList.tsx:803 +#: src/view/screens/ProfileList.tsx:817 msgid "Add a user to this list" msgstr "Ajouter un compte à cette liste" -#: src/view/screens/Settings/index.tsx:383 -#: src/view/screens/Settings/index.tsx:392 +#: src/view/screens/Settings/index.tsx:398 +#: src/view/screens/Settings/index.tsx:407 msgid "Add account" msgstr "Ajouter un compte" @@ -136,26 +154,26 @@ msgstr "Ajouter un compte" msgid "Add alt text" msgstr "Ajouter un texte alt" -#: src/view/screens/AppPasswords.tsx:102 -#: src/view/screens/AppPasswords.tsx:143 -#: src/view/screens/AppPasswords.tsx:156 +#: src/view/screens/AppPasswords.tsx:104 +#: src/view/screens/AppPasswords.tsx:145 +#: src/view/screens/AppPasswords.tsx:158 msgid "Add App Password" msgstr "Ajouter un mot de passe d’application" #: src/view/com/modals/report/InputIssueDetails.tsx:41 #: src/view/com/modals/report/Modal.tsx:191 -msgid "Add details" -msgstr "Ajouter des détails" +#~ msgid "Add details" +#~ msgstr "Ajouter des détails" #: src/view/com/modals/report/Modal.tsx:194 -msgid "Add details to report" -msgstr "Ajouter des détails au rapport" +#~ msgid "Add details to report" +#~ msgstr "Ajouter des détails au rapport" -#: src/view/com/composer/Composer.tsx:453 +#: src/view/com/composer/Composer.tsx:466 msgid "Add link card" msgstr "Ajouter une carte de lien" -#: src/view/com/composer/Composer.tsx:458 +#: src/view/com/composer/Composer.tsx:471 msgid "Add link card:" msgstr "Ajouter une carte de lien :" @@ -171,12 +189,12 @@ msgstr "Ajouter des mots et des mots-clés masqués" msgid "Add the following DNS record to your domain:" msgstr "Ajoutez l’enregistrement DNS suivant à votre domaine :" -#: src/view/com/profile/ProfileHeader.tsx:310 +#: src/view/com/profile/ProfileMenu.tsx:263 +#: src/view/com/profile/ProfileMenu.tsx:266 msgid "Add to Lists" msgstr "Ajouter aux listes" -#: src/view/com/feeds/FeedSourceCard.tsx:245 -#: src/view/screens/ProfileFeed.tsx:273 +#: src/view/com/feeds/FeedSourceCard.tsx:234 msgid "Add to my feeds" msgstr "Ajouter à mes fils d’actu" @@ -189,7 +207,7 @@ msgstr "Ajouté" msgid "Added to list" msgstr "Ajouté à la liste" -#: src/view/com/feeds/FeedSourceCard.tsx:127 +#: src/view/com/feeds/FeedSourceCard.tsx:108 msgid "Added to my feeds" msgstr "Ajouté à mes fils d’actu" @@ -197,15 +215,21 @@ msgstr "Ajouté à mes fils d’actu" msgid "Adjust the number of likes a reply must have to be shown in your feed." msgstr "Définissez le nombre de likes qu’une réponse doit avoir pour être affichée dans votre fil d’actu." +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:117 #: src/view/com/modals/SelfLabel.tsx:75 msgid "Adult Content" msgstr "Contenu pour adultes" #: src/view/com/modals/ContentFilteringSettings.tsx:141 -msgid "Adult content can only be enabled via the Web at <0/>." -msgstr "Le contenu pour adultes ne peut être activé que via le Web à <0/>." +#~ msgid "Adult content can only be enabled via the Web at <0/>." +#~ msgstr "Le contenu pour adultes ne peut être activé que via le Web à <0/>." -#: src/view/screens/Settings/index.tsx:664 +#: src/components/moderation/ModerationLabelPref.tsx:114 +msgid "Adult content is disabled." +msgstr "" + +#: src/screens/Moderation/index.tsx:377 +#: src/view/screens/Settings/index.tsx:680 msgid "Advanced" msgstr "Avancé" @@ -214,11 +238,11 @@ msgid "All the feeds you've saved, right in one place." msgstr "Tous les fils d’actu que vous avez enregistrés, au même endroit." #: src/view/com/auth/login/ForgotPasswordForm.tsx:221 -#: src/view/com/modals/ChangePassword.tsx:168 +#: src/view/com/modals/ChangePassword.tsx:170 msgid "Already have a code?" msgstr "Avez-vous déjà un code ?" -#: src/view/com/auth/login/ChooseAccountForm.tsx:98 +#: src/view/com/auth/login/ChooseAccountForm.tsx:102 msgid "Already signed in as @{0}" msgstr "Déjà connecté·e en tant que @{0}" @@ -242,12 +266,18 @@ msgstr "Un e-mail a été envoyé à {0}. Il comprend un code de confirmation qu msgid "An email has been sent to your previous address, {0}. It includes a confirmation code which you can enter below." msgstr "Un courriel a été envoyé à votre ancienne adresse, {0}. Il comprend un code de confirmation que vous pouvez saisir ici." -#: src/view/com/profile/FollowButton.tsx:30 -#: src/view/com/profile/FollowButton.tsx:40 +#: src/lib/moderation/useReportOptions.ts:26 +msgid "An issue not included in these options" +msgstr "" + +#: src/view/com/profile/FollowButton.tsx:35 +#: src/view/com/profile/FollowButton.tsx:45 +#: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:188 +#: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:198 msgid "An issue occurred, please try again." msgstr "Un problème est survenu, veuillez réessayer." -#: src/view/com/notifications/FeedItem.tsx:237 +#: src/view/com/notifications/FeedItem.tsx:240 #: src/view/com/threadgate/WhoCanReply.tsx:178 msgid "and" msgstr "et" @@ -256,11 +286,15 @@ msgstr "et" msgid "Animals" msgstr "Animaux" +#: src/lib/moderation/useReportOptions.ts:31 +msgid "Anti-Social Behavior" +msgstr "" + #: src/view/screens/LanguageSettings.tsx:95 msgid "App Language" msgstr "Langue de l’application" -#: src/view/screens/AppPasswords.tsx:228 +#: src/view/screens/AppPasswords.tsx:223 msgid "App password deleted" msgstr "Mot de passe d’application supprimé" @@ -272,53 +306,69 @@ msgstr "Les noms de mots de passe d’application ne peuvent contenir que des le msgid "App Password names must be at least 4 characters long." msgstr "Les noms de mots de passe d’application doivent comporter au moins 4 caractères." -#: src/view/screens/Settings/index.tsx:675 +#: src/view/screens/Settings/index.tsx:691 msgid "App password settings" msgstr "Paramètres de mot de passe d’application" -#: src/Navigation.tsx:239 -#: src/view/screens/AppPasswords.tsx:187 -#: src/view/screens/Settings/index.tsx:684 +#: src/Navigation.tsx:251 +#: src/view/screens/AppPasswords.tsx:189 +#: src/view/screens/Settings/index.tsx:700 msgid "App Passwords" msgstr "Mots de passe d’application" +#: src/components/moderation/LabelsOnMeDialog.tsx:134 +#: src/components/moderation/LabelsOnMeDialog.tsx:137 +msgid "Appeal" +msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:202 +msgid "Appeal \"{0}\" label" +msgstr "" + #: src/view/com/util/forms/PostDropdownBtn.tsx:337 #: src/view/com/util/forms/PostDropdownBtn.tsx:346 -msgid "Appeal content warning" -msgstr "Faire appel de l’avertissement sur le contenu" +#~ msgid "Appeal content warning" +#~ msgstr "Faire appel de l’avertissement sur le contenu" #: src/view/com/modals/AppealLabel.tsx:65 -msgid "Appeal Content Warning" -msgstr "Faire appel de l’avertissement sur le contenu" +#~ msgid "Appeal Content Warning" +#~ msgstr "Faire appel de l’avertissement sur le contenu" + +#: src/components/moderation/LabelsOnMeDialog.tsx:193 +msgid "Appeal submitted." +msgstr "" #: src/view/com/util/moderation/LabelInfo.tsx:52 -msgid "Appeal this decision" -msgstr "Faire appel de cette décision" +#~ msgid "Appeal this decision" +#~ msgstr "Faire appel de cette décision" #: src/view/com/util/moderation/LabelInfo.tsx:56 -msgid "Appeal this decision." -msgstr "Faire appel de cette décision." +#~ msgid "Appeal this decision." +#~ msgstr "Faire appel de cette décision." -#: src/view/screens/Settings/index.tsx:466 +#: src/view/screens/Settings/index.tsx:481 msgid "Appearance" msgstr "Affichage" -#: src/view/screens/AppPasswords.tsx:224 +#: src/view/screens/AppPasswords.tsx:265 msgid "Are you sure you want to delete the app password \"{name}\"?" msgstr "Êtes-vous sûr de vouloir supprimer le mot de passe de l’application « {name} » ?" -#: src/view/com/composer/Composer.tsx:150 +#: src/view/com/feeds/FeedSourceCard.tsx:280 +msgid "Are you sure you want to remove {0} from your feeds?" +msgstr "" + +#: src/view/com/composer/Composer.tsx:508 msgid "Are you sure you'd like to discard this draft?" msgstr "Êtes-vous sûr de vouloir rejeter ce brouillon ?" #: src/components/dialogs/MutedWords.tsx:282 -#: src/view/screens/ProfileList.tsx:365 msgid "Are you sure?" msgstr "Vous confirmez ?" #: src/view/com/util/forms/PostDropdownBtn.tsx:322 -msgid "Are you sure? This cannot be undone." -msgstr "Vous confirmez ? Cela ne pourra pas être annulé." +#~ msgid "Are you sure? This cannot be undone." +#~ msgstr "Vous confirmez ? Cela ne pourra pas être annulé." #: src/view/com/composer/select-language/SuggestedLanguage.tsx:60 msgid "Are you writing in <0>{0}?" @@ -332,78 +382,86 @@ msgstr "Art" msgid "Artistic or non-erotic nudity." msgstr "Nudité artistique ou non érotique." +#: src/components/moderation/LabelsOnMeDialog.tsx:247 +#: src/components/moderation/LabelsOnMeDialog.tsx:248 +#: src/screens/Profile/Header/Shell.tsx:97 #: src/view/com/auth/create/CreateAccount.tsx:158 -#: src/view/com/auth/login/ChooseAccountForm.tsx:151 +#: src/view/com/auth/login/ChooseAccountForm.tsx:155 #: src/view/com/auth/login/ForgotPasswordForm.tsx:174 #: src/view/com/auth/login/LoginForm.tsx:259 #: src/view/com/auth/login/SetNewPasswordForm.tsx:179 -#: src/view/com/modals/report/InputIssueDetails.tsx:46 -#: src/view/com/post-thread/PostThread.tsx:472 -#: src/view/com/post-thread/PostThread.tsx:522 -#: src/view/com/post-thread/PostThread.tsx:530 -#: src/view/com/profile/ProfileHeader.tsx:649 #: src/view/com/util/ViewHeader.tsx:87 msgid "Back" msgstr "Arrière" #: src/view/com/post-thread/PostThread.tsx:480 -msgctxt "action" -msgid "Back" -msgstr "Retour" +#~ msgctxt "action" +#~ msgid "Back" +#~ msgstr "Retour" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:136 msgid "Based on your interest in {interestsText}" msgstr "En fonction de votre intérêt pour {interestsText}" -#: src/view/screens/Settings/index.tsx:523 +#: src/view/screens/Settings/index.tsx:538 msgid "Basics" msgstr "Principes de base" +#: src/components/dialogs/BirthDateSettings.tsx:107 #: src/view/com/auth/create/Step1.tsx:227 -#: src/view/com/modals/BirthDateSettings.tsx:73 msgid "Birthday" msgstr "Date de naissance" -#: src/view/screens/Settings/index.tsx:340 +#: src/view/screens/Settings/index.tsx:355 msgid "Birthday:" msgstr "Date de naissance :" -#: src/view/com/profile/ProfileHeader.tsx:239 -#: src/view/com/profile/ProfileHeader.tsx:346 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:278 +#: src/view/com/profile/ProfileMenu.tsx:361 +msgid "Block" +msgstr "" + +#: src/view/com/profile/ProfileMenu.tsx:300 +#: src/view/com/profile/ProfileMenu.tsx:307 msgid "Block Account" msgstr "Bloquer ce compte" -#: src/view/screens/ProfileList.tsx:556 +#: src/view/com/profile/ProfileMenu.tsx:344 +msgid "Block Account?" +msgstr "" + +#: src/view/screens/ProfileList.tsx:530 msgid "Block accounts" msgstr "Bloquer ces comptes" -#: src/view/screens/ProfileList.tsx:506 +#: src/view/screens/ProfileList.tsx:478 +#: src/view/screens/ProfileList.tsx:634 msgid "Block list" msgstr "Liste de blocage" -#: src/view/screens/ProfileList.tsx:316 +#: src/view/screens/ProfileList.tsx:629 msgid "Block these accounts?" msgstr "Bloquer ces comptes ?" #: src/view/screens/ProfileList.tsx:320 -msgid "Block this List" -msgstr "Bloquer cette liste" +#~ msgid "Block this List" +#~ msgstr "Bloquer cette liste" #: src/view/com/lists/ListCard.tsx:110 -#: src/view/com/util/post-embeds/QuoteEmbed.tsx:61 +#: src/view/com/util/post-embeds/QuoteEmbed.tsx:55 msgid "Blocked" msgstr "Bloqué" -#: src/view/screens/Moderation.tsx:142 +#: src/screens/Moderation/index.tsx:269 msgid "Blocked accounts" msgstr "Comptes bloqués" -#: src/Navigation.tsx:132 +#: src/Navigation.tsx:134 #: src/view/screens/ModerationBlockedAccounts.tsx:107 msgid "Blocked Accounts" msgstr "Comptes bloqués" -#: src/view/com/profile/ProfileHeader.tsx:241 +#: src/view/com/profile/ProfileMenu.tsx:356 msgid "Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you." msgstr "Les comptes bloqués ne peuvent pas répondre à vos discussions, vous mentionner ou interagir avec vous." @@ -411,15 +469,23 @@ msgstr "Les comptes bloqués ne peuvent pas répondre à vos discussions, vous m msgid "Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you. You will not see their content and they will be prevented from seeing yours." msgstr "Les comptes bloqués ne peuvent pas répondre à vos discussions, vous mentionner ou interagir avec vous. Vous ne verrez pas leur contenu et ils ne pourront pas voir le vôtre." -#: src/view/com/post-thread/PostThread.tsx:324 +#: src/view/com/post-thread/PostThread.tsx:313 msgid "Blocked post." msgstr "Post bloqué." -#: src/view/screens/ProfileList.tsx:318 +#: src/screens/Profile/Sections/Labels.tsx:153 +msgid "Blocking does not prevent this labeler from placing labels on your account." +msgstr "" + +#: src/view/screens/ProfileList.tsx:631 msgid "Blocking is public. Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you." msgstr "Le blocage est public. Les comptes bloqués ne peuvent pas répondre à vos discussions, vous mentionner ou interagir avec vous." -#: src/view/com/auth/HomeLoggedOutCTA.tsx:93 +#: src/view/com/profile/ProfileMenu.tsx:353 +msgid "Blocking will not prevent labels from being applied on your account, but it will stop this account from replying in your threads or interacting with you." +msgstr "" + +#: src/view/com/auth/HomeLoggedOutCTA.tsx:97 #: src/view/com/auth/SplashScreen.web.tsx:133 msgid "Blog" msgstr "Blog" @@ -435,33 +501,41 @@ msgid "Bluesky is an open network where you can choose your hosting provider. Cu msgstr "Bluesky est un réseau ouvert où vous pouvez choisir votre hébergeur. L’auto-hébergement est désormais disponible en version bêta pour les développeurs." #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:80 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:80 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:82 msgid "Bluesky is flexible." msgstr "Bluesky est adaptable." #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:69 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:69 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:71 msgid "Bluesky is open." msgstr "Bluesky est ouvert." #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:56 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:56 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:58 msgid "Bluesky is public." msgstr "Bluesky est public." -#: src/view/screens/Moderation.tsx:245 +#: src/screens/Moderation/index.tsx:535 msgid "Bluesky will not show your profile and posts to logged-out users. Other apps may not honor this request. This does not make your account private." msgstr "Bluesky n’affichera pas votre profil et vos posts à des personnes non connectées. Il est possible que d’autres applications n’honorent pas cette demande. Cela ne privatise pas votre compte." +#: src/lib/moderation/useLabelBehaviorDescription.ts:53 +msgid "Blur images" +msgstr "" + +#: src/lib/moderation/useLabelBehaviorDescription.ts:51 +msgid "Blur images and filter from feeds" +msgstr "" + #: src/screens/Onboarding/index.tsx:33 msgid "Books" msgstr "Livres" -#: src/view/screens/Settings/index.tsx:859 +#: src/view/screens/Settings/index.tsx:889 msgid "Build version {0} {1}" msgstr "Version Build {0} {1}" -#: src/view/com/auth/HomeLoggedOutCTA.tsx:87 +#: src/view/com/auth/HomeLoggedOutCTA.tsx:91 #: src/view/com/auth/SplashScreen.web.tsx:128 msgid "Business" msgstr "Affaires" @@ -474,17 +548,23 @@ msgstr "par —" msgid "by {0}" msgstr "par {0}" +#: src/components/LabelingServiceCard/index.tsx:57 +msgid "By {0}" +msgstr "" + #: src/view/com/profile/ProfileSubpageHeader.tsx:161 msgid "by <0/>" msgstr "par <0/>" +#: src/view/com/auth/create/Policies.tsx:87 +msgid "By creating an account you agree to the {els}." +msgstr "" + #: src/view/com/profile/ProfileSubpageHeader.tsx:159 msgid "by you" msgstr "par vous" -#: src/view/com/composer/photos/OpenCameraBtn.tsx:60 -#: src/view/com/util/UserAvatar.tsx:224 -#: src/view/com/util/UserBanner.tsx:40 +#: src/view/com/composer/photos/OpenCameraBtn.tsx:77 msgid "Camera" msgstr "Caméra" @@ -492,28 +572,33 @@ msgstr "Caméra" msgid "Can only contain letters, numbers, spaces, dashes, and underscores. Must be at least 4 characters long, but no more than 32 characters long." msgstr "Ne peut contenir que des lettres, des chiffres, des espaces, des tirets et des tirets bas. La longueur doit être d’au moins 4 caractères, mais pas plus de 32." -#: src/components/Prompt.tsx:101 -#: src/view/com/composer/Composer.tsx:307 -#: src/view/com/composer/Composer.tsx:312 +#: src/components/Menu/index.tsx:213 +#: src/components/Prompt.tsx:116 +#: src/components/Prompt.tsx:118 +#: src/components/TagMenu/index.tsx:268 +#: src/view/com/composer/Composer.tsx:316 +#: src/view/com/composer/Composer.tsx:321 #: src/view/com/modals/ChangeEmail.tsx:218 #: src/view/com/modals/ChangeEmail.tsx:220 -#: src/view/com/modals/ChangePassword.tsx:265 -#: src/view/com/modals/ChangePassword.tsx:268 +#: src/view/com/modals/ChangeHandle.tsx:153 +#: src/view/com/modals/ChangePassword.tsx:267 +#: src/view/com/modals/ChangePassword.tsx:270 #: src/view/com/modals/CreateOrEditList.tsx:355 +#: src/view/com/modals/crop-image/CropImage.web.tsx:137 #: src/view/com/modals/EditImage.tsx:323 #: src/view/com/modals/EditProfile.tsx:249 #: src/view/com/modals/InAppBrowserConsent.tsx:78 +#: src/view/com/modals/InAppBrowserConsent.tsx:80 #: src/view/com/modals/LinkWarning.tsx:87 +#: src/view/com/modals/LinkWarning.tsx:89 #: src/view/com/modals/Repost.tsx:87 #: src/view/com/modals/VerifyEmail.tsx:247 #: src/view/com/modals/VerifyEmail.tsx:253 -#: src/view/screens/Search/Search.tsx:716 -#: src/view/shell/desktop/Search.tsx:238 +#: src/view/screens/Search/Search.tsx:717 +#: src/view/shell/desktop/Search.tsx:239 msgid "Cancel" msgstr "Annuler" -#: src/view/com/modals/Confirm.tsx:88 -#: src/view/com/modals/Confirm.tsx:91 #: src/view/com/modals/CreateOrEditList.tsx:360 #: src/view/com/modals/DeleteAccount.tsx:156 #: src/view/com/modals/DeleteAccount.tsx:234 @@ -543,21 +628,29 @@ msgid "Cancel quote post" msgstr "Annuler la citation" #: src/view/com/modals/ListAddRemoveUsers.tsx:87 -#: src/view/shell/desktop/Search.tsx:234 +#: src/view/shell/desktop/Search.tsx:235 msgid "Cancel search" msgstr "Annuler la recherche" -#: src/view/screens/Settings/index.tsx:334 +#: src/view/com/modals/LinkWarning.tsx:88 +msgid "Cancels opening the linked website" +msgstr "" + +#: src/view/com/modals/VerifyEmail.tsx:152 +msgid "Change" +msgstr "" + +#: src/view/screens/Settings/index.tsx:349 msgctxt "action" msgid "Change" msgstr "Modifier" -#: src/view/screens/Settings/index.tsx:696 +#: src/view/screens/Settings/index.tsx:712 msgid "Change handle" msgstr "Modifier le pseudo" #: src/view/com/modals/ChangeHandle.tsx:161 -#: src/view/screens/Settings/index.tsx:705 +#: src/view/screens/Settings/index.tsx:723 msgid "Change Handle" msgstr "Modifier le pseudo" @@ -565,11 +658,12 @@ msgstr "Modifier le pseudo" msgid "Change my email" msgstr "Modifier mon e-mail" -#: src/view/screens/Settings/index.tsx:732 +#: src/view/screens/Settings/index.tsx:750 msgid "Change password" msgstr "Modifier le mot de passe" -#: src/view/screens/Settings/index.tsx:741 +#: src/view/com/modals/ChangePassword.tsx:141 +#: src/view/screens/Settings/index.tsx:761 msgid "Change Password" msgstr "Modifier le mot de passe" @@ -578,8 +672,8 @@ msgid "Change post language to {0}" msgstr "Modifier la langue de post en {0}" #: src/view/screens/Settings/index.tsx:733 -msgid "Change your Bluesky password" -msgstr "Changer votre mot de passe pour Bluesky" +#~ msgid "Change your Bluesky password" +#~ msgstr "Changer votre mot de passe pour Bluesky" #: src/view/com/modals/ChangeEmail.tsx:109 msgid "Change Your Email" @@ -607,8 +701,8 @@ msgid "Choose \"Everybody\" or \"Nobody\"" msgstr "Choisir « Tout le monde » ou « Personne »" #: src/view/screens/Settings/index.tsx:697 -msgid "Choose a new Bluesky username or create" -msgstr "Choisir un nouveau pseudo Bluesky ou en créer un" +#~ msgid "Choose a new Bluesky username or create" +#~ msgstr "Choisir un nouveau pseudo Bluesky ou en créer un" #: src/view/com/auth/server-input/index.tsx:79 msgid "Choose Service" @@ -619,7 +713,7 @@ msgid "Choose the algorithms that power your custom feeds." msgstr "Choisissez les algorithmes qui alimentent vos fils d’actu personnalisés." #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:83 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:83 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:85 msgid "Choose the algorithms that power your experience with custom feeds." msgstr "Choisissez les algorithmes qui alimentent votre expérience avec des fils d’actu personnalisés." @@ -631,29 +725,35 @@ msgstr "Choisissez vos principaux fils d’actu" msgid "Choose your password" msgstr "Choisissez votre mot de passe" -#: src/view/screens/Settings/index.tsx:834 -#: src/view/screens/Settings/index.tsx:835 +#: src/view/screens/Settings/index.tsx:864 msgid "Clear all legacy storage data" msgstr "Effacer toutes les données de stockage existantes" -#: src/view/screens/Settings/index.tsx:837 +#: src/view/screens/Settings/index.tsx:867 msgid "Clear all legacy storage data (restart after this)" msgstr "Effacer toutes les données de stockage existantes (redémarrer ensuite)" -#: src/view/screens/Settings/index.tsx:846 -#: src/view/screens/Settings/index.tsx:847 +#: src/view/screens/Settings/index.tsx:876 msgid "Clear all storage data" msgstr "Effacer toutes les données de stockage" -#: src/view/screens/Settings/index.tsx:849 +#: src/view/screens/Settings/index.tsx:879 msgid "Clear all storage data (restart after this)" msgstr "Effacer toutes les données de stockage (redémarrer ensuite)" #: src/view/com/util/forms/SearchInput.tsx:88 -#: src/view/screens/Search/Search.tsx:697 +#: src/view/screens/Search/Search.tsx:698 msgid "Clear search query" msgstr "Effacer la recherche" +#: src/view/screens/Settings/index.tsx:865 +msgid "Clears all legacy storage data" +msgstr "" + +#: src/view/screens/Settings/index.tsx:877 +msgid "Clears all storage data" +msgstr "" + #: src/view/screens/Support.tsx:40 msgid "click here" msgstr "cliquez ici" @@ -670,8 +770,8 @@ msgstr "Cliquez ici pour ouvrir le menu de mot-clé pour #{tag}" msgid "Climate" msgstr "Climat" -#: src/view/com/modals/ChangePassword.tsx:265 -#: src/view/com/modals/ChangePassword.tsx:268 +#: src/view/com/modals/ChangePassword.tsx:267 +#: src/view/com/modals/ChangePassword.tsx:270 msgid "Close" msgstr "Fermer" @@ -684,27 +784,28 @@ msgstr "Fermer le dialogue actif" msgid "Close alert" msgstr "Fermer l’alerte" -#: src/view/com/util/BottomSheetCustomBackdrop.tsx:33 +#: src/view/com/util/BottomSheetCustomBackdrop.tsx:36 msgid "Close bottom drawer" msgstr "Fermer le tiroir du bas" -#: src/view/com/lightbox/ImageViewing/components/ImageDefaultHeader.tsx:26 +#: src/view/com/lightbox/ImageViewing/components/ImageDefaultHeader.tsx:36 msgid "Close image" msgstr "Fermer l’image" -#: src/view/com/lightbox/Lightbox.web.tsx:119 +#: src/view/com/lightbox/Lightbox.web.tsx:129 msgid "Close image viewer" msgstr "Fermer la visionneuse d’images" -#: src/view/shell/index.web.tsx:51 +#: src/view/shell/index.web.tsx:55 msgid "Close navigation footer" msgstr "Fermer le pied de page de navigation" +#: src/components/Menu/index.tsx:207 #: src/components/TagMenu/index.tsx:262 msgid "Close this dialog" msgstr "Fermer ce dialogue" -#: src/view/shell/index.web.tsx:52 +#: src/view/shell/index.web.tsx:56 msgid "Closes bottom navigation bar" msgstr "Ferme la barre de navigation du bas" @@ -712,15 +813,15 @@ msgstr "Ferme la barre de navigation du bas" msgid "Closes password update alert" msgstr "Ferme la notification de mise à jour du mot de passe" -#: src/view/com/composer/Composer.tsx:309 +#: src/view/com/composer/Composer.tsx:318 msgid "Closes post composer and discards post draft" msgstr "Ferme la fenêtre de rédaction et supprime le brouillon" -#: src/view/com/lightbox/ImageViewing/components/ImageDefaultHeader.tsx:27 +#: src/view/com/lightbox/ImageViewing/components/ImageDefaultHeader.tsx:37 msgid "Closes viewer for header image" msgstr "Ferme la visionneuse pour l’image d’en-tête" -#: src/view/com/notifications/FeedItem.tsx:318 +#: src/view/com/notifications/FeedItem.tsx:321 msgid "Collapses list of users for a given notification" msgstr "Réduit la liste des comptes pour une notification donnée" @@ -732,7 +833,7 @@ msgstr "Comédie" msgid "Comics" msgstr "Bandes dessinées" -#: src/Navigation.tsx:229 +#: src/Navigation.tsx:241 #: src/view/screens/CommunityGuidelines.tsx:32 msgid "Community Guidelines" msgstr "Directives communautaires" @@ -745,7 +846,7 @@ msgstr "Terminez le didacticiel et commencez à utiliser votre compte" msgid "Complete the challenge" msgstr "Compléter le défi" -#: src/view/com/composer/Composer.tsx:424 +#: src/view/com/composer/Composer.tsx:437 msgid "Compose posts up to {MAX_GRAPHEME_LENGTH} characters in length" msgstr "Permet d’écrire des posts de {MAX_GRAPHEME_LENGTH} caractères maximum" @@ -753,12 +854,18 @@ msgstr "Permet d’écrire des posts de {MAX_GRAPHEME_LENGTH} caractères maximu msgid "Compose reply" msgstr "Rédiger une réponse" -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:67 +#: src/components/moderation/GlobalModerationLabelPref.tsx:69 +#: src/components/moderation/ModerationLabelPref.tsx:149 +#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:81 msgid "Configure content filtering setting for category: {0}" msgstr "Configurer les paramètres de filtrage de contenu pour la catégorie : {0}" -#: src/components/Prompt.tsx:124 -#: src/view/com/modals/AppealLabel.tsx:98 +#: src/components/moderation/ModerationLabelPref.tsx:116 +msgid "Configured in <0>moderation settings." +msgstr "" + +#: src/components/Prompt.tsx:152 +#: src/components/Prompt.tsx:155 #: src/view/com/modals/SelfLabel.tsx:154 #: src/view/com/modals/VerifyEmail.tsx:231 #: src/view/com/modals/VerifyEmail.tsx:233 @@ -769,9 +876,9 @@ msgstr "Confirmer" #: src/view/com/modals/Confirm.tsx:75 #: src/view/com/modals/Confirm.tsx:78 -msgctxt "action" -msgid "Confirm" -msgstr "Confirmer" +#~ msgctxt "action" +#~ msgid "Confirm" +#~ msgstr "Confirmer" #: src/view/com/modals/ChangeEmail.tsx:193 #: src/view/com/modals/ChangeEmail.tsx:195 @@ -787,10 +894,19 @@ msgid "Confirm delete account" msgstr "Confirmer la suppression du compte" #: src/view/com/modals/ContentFilteringSettings.tsx:156 -msgid "Confirm your age to enable adult content." -msgstr "Confirmez votre âge pour activer le contenu pour adultes." +#~ msgid "Confirm your age to enable adult content." +#~ msgstr "Confirmez votre âge pour activer le contenu pour adultes." + +#: src/screens/Moderation/index.tsx:303 +msgid "Confirm your age:" +msgstr "" + +#: src/screens/Moderation/index.tsx:294 +msgid "Confirm your birthdate" +msgstr "" #: src/view/com/modals/ChangeEmail.tsx:157 +#: src/view/com/modals/DeleteAccount.tsx:176 #: src/view/com/modals/DeleteAccount.tsx:182 #: src/view/com/modals/VerifyEmail.tsx:165 msgid "Confirmation code" @@ -805,25 +921,40 @@ msgstr "Connexion…" msgid "Contact support" msgstr "Contacter le support" +#: src/components/moderation/LabelsOnMe.tsx:42 +msgid "content" +msgstr "" + +#: src/lib/moderation/useGlobalLabelStrings.ts:18 +msgid "Content Blocked" +msgstr "" + #: src/view/screens/Moderation.tsx:83 -msgid "Content filtering" -msgstr "Filtrage du contenu" +#~ msgid "Content filtering" +#~ msgstr "Filtrage du contenu" #: src/view/com/modals/ContentFilteringSettings.tsx:44 -msgid "Content Filtering" -msgstr "Filtrage du contenu" +#~ msgid "Content Filtering" +#~ msgstr "Filtrage du contenu" + +#: src/screens/Moderation/index.tsx:287 +msgid "Content filters" +msgstr "" #: src/view/com/modals/lang-settings/ContentLanguagesSettings.tsx:74 #: src/view/screens/LanguageSettings.tsx:278 msgid "Content Languages" msgstr "Langues du contenu" -#: src/view/com/modals/ModerationDetails.tsx:65 +#: src/components/moderation/ModerationDetailsDialog.tsx:76 +#: src/lib/moderation/useModerationCauseDescription.ts:75 msgid "Content Not Available" msgstr "Contenu non disponible" -#: src/view/com/modals/ModerationDetails.tsx:33 -#: src/view/com/util/moderation/ScreenHider.tsx:78 +#: src/components/moderation/ModerationDetailsDialog.tsx:47 +#: src/components/moderation/ScreenHider.tsx:100 +#: src/lib/moderation/useGlobalLabelStrings.ts:22 +#: src/lib/moderation/useModerationCauseDescription.ts:38 msgid "Content Warning" msgstr "Avertissement sur le contenu" @@ -831,19 +962,24 @@ msgstr "Avertissement sur le contenu" msgid "Content warnings" msgstr "Avertissements sur le contenu" +#: src/components/Menu/index.web.tsx:84 +msgid "Context menu backdrop, click to close the menu." +msgstr "" + #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:170 #: src/screens/Onboarding/StepFollowingFeed.tsx:153 #: src/screens/Onboarding/StepInterests/index.tsx:248 -#: src/screens/Onboarding/StepModeration/index.tsx:118 +#: src/screens/Onboarding/StepModeration/index.tsx:102 #: src/screens/Onboarding/StepTopicalFeeds.tsx:114 #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:148 #: src/view/com/auth/onboarding/RecommendedFollows.tsx:209 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:96 msgid "Continue" msgstr "Continuer" #: src/screens/Onboarding/StepFollowingFeed.tsx:150 #: src/screens/Onboarding/StepInterests/index.tsx:245 -#: src/screens/Onboarding/StepModeration/index.tsx:115 +#: src/screens/Onboarding/StepModeration/index.tsx:99 #: src/screens/Onboarding/StepTopicalFeeds.tsx:111 msgid "Continue to next step" msgstr "Passer à l’étape suivante" @@ -865,13 +1001,14 @@ msgstr "Cuisine" msgid "Copied" msgstr "Copié" -#: src/view/screens/Settings/index.tsx:241 +#: src/view/screens/Settings/index.tsx:247 msgid "Copied build version to clipboard" msgstr "Version de build copiée dans le presse-papier" #: src/view/com/modals/AddAppPasswords.tsx:76 +#: src/view/com/modals/ChangeHandle.tsx:327 #: src/view/com/modals/InviteCodes.tsx:152 -#: src/view/com/util/forms/PostDropdownBtn.tsx:161 +#: src/view/com/util/forms/PostDropdownBtn.tsx:158 msgid "Copied to clipboard" msgstr "Copié dans le presse-papier" @@ -883,44 +1020,48 @@ msgstr "Copie le mot de passe d’application" msgid "Copy" msgstr "Copie" -#: src/view/screens/ProfileList.tsx:418 +#: src/view/com/modals/ChangeHandle.tsx:481 +msgid "Copy {0}" +msgstr "" + +#: src/view/screens/ProfileList.tsx:388 msgid "Copy link to list" msgstr "Copier le lien vers la liste" -#: src/view/com/util/forms/PostDropdownBtn.tsx:231 +#: src/view/com/util/forms/PostDropdownBtn.tsx:228 #: src/view/com/util/forms/PostDropdownBtn.tsx:237 msgid "Copy link to post" msgstr "Copier le lien vers le post" #: src/view/com/profile/ProfileHeader.tsx:295 -msgid "Copy link to profile" -msgstr "Copier le lien vers le profil" +#~ msgid "Copy link to profile" +#~ msgstr "Copier le lien vers le profil" -#: src/view/com/util/forms/PostDropdownBtn.tsx:223 -#: src/view/com/util/forms/PostDropdownBtn.tsx:225 +#: src/view/com/util/forms/PostDropdownBtn.tsx:220 +#: src/view/com/util/forms/PostDropdownBtn.tsx:222 msgid "Copy post text" msgstr "Copier le texte du post" -#: src/Navigation.tsx:234 +#: src/Navigation.tsx:246 #: src/view/screens/CopyrightPolicy.tsx:29 msgid "Copyright Policy" msgstr "Politique sur les droits d’auteur" -#: src/view/screens/ProfileFeed.tsx:97 +#: src/view/screens/ProfileFeed.tsx:102 msgid "Could not load feed" msgstr "Impossible de charger le fil d’actu" -#: src/view/screens/ProfileList.tsx:893 +#: src/view/screens/ProfileList.tsx:907 msgid "Could not load list" msgstr "Impossible de charger la liste" -#: src/view/com/auth/HomeLoggedOutCTA.tsx:62 -#: src/view/com/auth/SplashScreen.tsx:71 +#: src/view/com/auth/HomeLoggedOutCTA.tsx:64 +#: src/view/com/auth/SplashScreen.tsx:73 #: src/view/com/auth/SplashScreen.web.tsx:81 msgid "Create a new account" msgstr "Créer un nouveau compte" -#: src/view/screens/Settings/index.tsx:384 +#: src/view/screens/Settings/index.tsx:399 msgid "Create a new Bluesky account" msgstr "Créer un compte Bluesky" @@ -937,19 +1078,23 @@ msgstr "Créer un mot de passe d’application" msgid "Create new account" msgstr "Créer un nouveau compte" -#: src/view/screens/AppPasswords.tsx:249 +#: src/components/ReportDialog/SelectReportOptionView.tsx:94 +msgid "Create report for {0}" +msgstr "" + +#: src/view/screens/AppPasswords.tsx:246 msgid "Created {0}" msgstr "{0} créé" #: src/view/screens/ProfileFeed.tsx:616 -msgid "Created by <0/>" -msgstr "Créée par <0/>" +#~ msgid "Created by <0/>" +#~ msgstr "Créée par <0/>" #: src/view/screens/ProfileFeed.tsx:614 -msgid "Created by you" -msgstr "Créée par vous" +#~ msgid "Created by you" +#~ msgstr "Créée par vous" -#: src/view/com/composer/Composer.tsx:455 +#: src/view/com/composer/Composer.tsx:468 msgid "Creates a card with a thumbnail. The card links to {url}" msgstr "Crée une carte avec une miniature. La carte pointe vers {url}" @@ -975,8 +1120,8 @@ msgstr "Les fils d’actu personnalisés élaborés par la communauté vous font msgid "Customize media from external sites." msgstr "Personnaliser les médias provenant de sites externes." -#: src/view/screens/Settings/index.tsx:485 -#: src/view/screens/Settings/index.tsx:511 +#: src/view/screens/Settings/index.tsx:500 +#: src/view/screens/Settings/index.tsx:526 msgid "Dark" msgstr "Sombre" @@ -984,15 +1129,25 @@ msgstr "Sombre" msgid "Dark mode" msgstr "Mode sombre" -#: src/view/screens/Settings/index.tsx:498 +#: src/view/screens/Settings/index.tsx:513 msgid "Dark Theme" msgstr "Thème sombre" +#: src/view/screens/Settings/index.tsx:837 +msgid "Debug Moderation" +msgstr "" + #: src/view/screens/Debug.tsx:83 msgid "Debug panel" msgstr "Panneau de débug" -#: src/view/screens/Settings/index.tsx:772 +#: src/view/com/util/forms/PostDropdownBtn.tsx:319 +#: src/view/screens/AppPasswords.tsx:268 +#: src/view/screens/ProfileList.tsx:613 +msgid "Delete" +msgstr "" + +#: src/view/screens/Settings/index.tsx:792 msgid "Delete account" msgstr "Supprimer le compte" @@ -1000,13 +1155,15 @@ msgstr "Supprimer le compte" msgid "Delete Account" msgstr "Supprimer le compte" -#: src/view/screens/AppPasswords.tsx:222 -#: src/view/screens/AppPasswords.tsx:242 +#: src/view/screens/AppPasswords.tsx:239 msgid "Delete app password" msgstr "Supprimer le mot de passe de l’appli" -#: src/view/screens/ProfileList.tsx:364 -#: src/view/screens/ProfileList.tsx:445 +#: src/view/screens/AppPasswords.tsx:263 +msgid "Delete app password?" +msgstr "" + +#: src/view/screens/ProfileList.tsx:415 msgid "Delete List" msgstr "Supprimer la liste" @@ -1014,24 +1171,28 @@ msgstr "Supprimer la liste" msgid "Delete my account" msgstr "Supprimer mon compte" -#: src/view/screens/Settings/index.tsx:784 +#: src/view/screens/Settings/index.tsx:804 msgid "Delete My Account…" msgstr "Supprimer mon compte…" -#: src/view/com/util/forms/PostDropdownBtn.tsx:317 -#: src/view/com/util/forms/PostDropdownBtn.tsx:326 +#: src/view/com/util/forms/PostDropdownBtn.tsx:302 +#: src/view/com/util/forms/PostDropdownBtn.tsx:304 msgid "Delete post" msgstr "Supprimer le post" -#: src/view/com/util/forms/PostDropdownBtn.tsx:321 +#: src/view/screens/ProfileList.tsx:608 +msgid "Delete this list?" +msgstr "" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:314 msgid "Delete this post?" msgstr "Supprimer ce post ?" -#: src/view/com/util/post-embeds/QuoteEmbed.tsx:70 +#: src/view/com/util/post-embeds/QuoteEmbed.tsx:64 msgid "Deleted" msgstr "Supprimé" -#: src/view/com/post-thread/PostThread.tsx:316 +#: src/view/com/post-thread/PostThread.tsx:305 msgid "Deleted post." msgstr "Post supprimé." @@ -1042,23 +1203,35 @@ msgstr "Post supprimé." msgid "Description" msgstr "Description" -#: src/view/com/composer/Composer.tsx:218 +#: src/view/com/composer/Composer.tsx:217 msgid "Did you want to say anything?" msgstr "Vous vouliez dire quelque chose ?" -#: src/view/screens/Settings/index.tsx:504 +#: src/view/screens/Settings/index.tsx:519 msgid "Dim" msgstr "Atténué" -#: src/view/com/composer/Composer.tsx:151 +#: src/lib/moderation/useLabelBehaviorDescription.ts:32 +#: src/lib/moderation/useLabelBehaviorDescription.ts:42 +#: src/lib/moderation/useLabelBehaviorDescription.ts:68 +#: src/screens/Moderation/index.tsx:343 +msgid "Disabled" +msgstr "" + +#: src/view/com/composer/Composer.tsx:510 msgid "Discard" msgstr "Ignorer" #: src/view/com/composer/Composer.tsx:145 -msgid "Discard draft" -msgstr "Ignorer le brouillon" +#~ msgid "Discard draft" +#~ msgstr "Ignorer le brouillon" + +#: src/view/com/composer/Composer.tsx:507 +msgid "Discard draft?" +msgstr "" -#: src/view/screens/Moderation.tsx:226 +#: src/screens/Moderation/index.tsx:520 +#: src/screens/Moderation/index.tsx:524 msgid "Discourage apps from showing my account to logged-out users" msgstr "Empêcher les applis de montrer mon compte aux personnes non connectées" @@ -1079,7 +1252,19 @@ msgstr "Afficher le nom" msgid "Display Name" msgstr "Afficher le nom" -#: src/view/com/modals/ChangeHandle.tsx:487 +#: src/view/com/modals/ChangeHandle.tsx:398 +msgid "DNS Panel" +msgstr "" + +#: src/lib/moderation/useGlobalLabelStrings.ts:39 +msgid "Does not include nudity." +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:482 +msgid "Domain Value" +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:489 msgid "Domain verified!" msgstr "Domaine vérifié !" @@ -1096,19 +1281,19 @@ msgctxt "action" msgid "Done" msgstr "Terminer" +#: src/components/dialogs/BirthDateSettings.tsx:119 +#: src/components/dialogs/BirthDateSettings.tsx:125 #: src/view/com/auth/server-input/index.tsx:165 #: src/view/com/auth/server-input/index.tsx:166 #: src/view/com/modals/AddAppPasswords.tsx:226 #: src/view/com/modals/AltImage.tsx:139 -#: src/view/com/modals/ContentFilteringSettings.tsx:88 -#: src/view/com/modals/ContentFilteringSettings.tsx:96 #: src/view/com/modals/crop-image/CropImage.web.tsx:152 #: src/view/com/modals/InviteCodes.tsx:80 #: src/view/com/modals/InviteCodes.tsx:123 #: src/view/com/modals/ListAddRemoveUsers.tsx:142 #: src/view/screens/PreferencesFollowingFeed.tsx:311 -#: src/view/screens/Settings/ExportCarDialog.tsx:93 #: src/view/screens/Settings/ExportCarDialog.tsx:94 +#: src/view/screens/Settings/ExportCarDialog.tsx:95 msgid "Done" msgstr "Terminé" @@ -1121,8 +1306,8 @@ msgid "Double tap to sign in" msgstr "Tapotez deux fois pour vous connecter" #: src/view/screens/Settings/index.tsx:755 -msgid "Download Bluesky account data (repository)" -msgstr "Télécharger les données du compte Bluesky (dépôt)" +#~ msgid "Download Bluesky account data (repository)" +#~ msgstr "Télécharger les données du compte Bluesky (dépôt)" #: src/view/screens/Settings/ExportCarDialog.tsx:59 #: src/view/screens/Settings/ExportCarDialog.tsx:63 @@ -1133,18 +1318,30 @@ msgstr "Télécharger le fichier CAR" msgid "Drop to add images" msgstr "Déposer pour ajouter des images" -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:111 +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:120 msgid "Due to Apple policies, adult content can only be enabled on the web after completing sign up." msgstr "En raison des politiques d’Apple, le contenu pour adultes ne peut être activé que via le Web une fois l’inscription terminée." +#: src/view/com/modals/ChangeHandle.tsx:257 +msgid "e.g. alice" +msgstr "" + #: src/view/com/modals/EditProfile.tsx:185 msgid "e.g. Alice Roberts" msgstr "ex. Alice Dupont" +#: src/view/com/modals/ChangeHandle.tsx:381 +msgid "e.g. alice.com" +msgstr "" + #: src/view/com/modals/EditProfile.tsx:203 msgid "e.g. Artist, dog-lover, and avid reader." msgstr "ex. Artiste, amoureuse des chiens et lectrice passionnée." +#: src/lib/moderation/useGlobalLabelStrings.ts:43 +msgid "E.g. artistic nudes." +msgstr "" + #: src/view/com/modals/CreateOrEditList.tsx:283 msgid "e.g. Great Posters" msgstr "ex. Les meilleurs comptes" @@ -1170,12 +1367,17 @@ msgctxt "action" msgid "Edit" msgstr "Modifier" +#: src/view/com/util/UserAvatar.tsx:299 +#: src/view/com/util/UserBanner.tsx:85 +msgid "Edit avatar" +msgstr "" + #: src/view/com/composer/photos/Gallery.tsx:144 #: src/view/com/modals/EditImage.tsx:207 msgid "Edit image" msgstr "Modifier l’image" -#: src/view/screens/ProfileList.tsx:433 +#: src/view/screens/ProfileList.tsx:403 msgid "Edit list details" msgstr "Modifier les infos de la liste" @@ -1183,7 +1385,7 @@ msgstr "Modifier les infos de la liste" msgid "Edit Moderation List" msgstr "Modifier la liste de modération" -#: src/Navigation.tsx:244 +#: src/Navigation.tsx:256 #: src/view/screens/Feeds.tsx:434 #: src/view/screens/SavedFeeds.tsx:84 msgid "Edit My Feeds" @@ -1193,11 +1395,13 @@ msgstr "Modifier mes fils d’actu" msgid "Edit my profile" msgstr "Modifier mon profil" -#: src/view/com/profile/ProfileHeader.tsx:418 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:172 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:161 msgid "Edit profile" msgstr "Modifier le profil" -#: src/view/com/profile/ProfileHeader.tsx:423 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:175 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:164 msgid "Edit Profile" msgstr "Modifier le profil" @@ -1246,7 +1450,7 @@ msgstr "E-mail mis à jour" msgid "Email verified" msgstr "Adresse e-mail vérifiée" -#: src/view/screens/Settings/index.tsx:312 +#: src/view/screens/Settings/index.tsx:327 msgid "Email:" msgstr "E-mail :" @@ -1254,12 +1458,16 @@ msgstr "E-mail :" msgid "Enable {0} only" msgstr "Activer {0} uniquement" -#: src/view/com/modals/ContentFilteringSettings.tsx:167 +#: src/screens/Moderation/index.tsx:331 +msgid "Enable adult content" +msgstr "" + +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:94 msgid "Enable Adult Content" msgstr "Activer le contenu pour adultes" -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:76 -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:77 +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:78 +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:79 msgid "Enable adult content in your feeds" msgstr "Activer le contenu pour adultes dans vos fils d’actu" @@ -1275,7 +1483,11 @@ msgstr "Activer les lecteurs médias pour" msgid "Enable this setting to only see replies between people you follow." msgstr "Activez ce paramètre pour ne voir que les réponses des personnes que vous suivez." -#: src/view/screens/Profile.tsx:455 +#: src/screens/Moderation/index.tsx:341 +msgid "Enabled" +msgstr "" + +#: src/screens/Profile/Sections/Feed.tsx:84 msgid "End of feed" msgstr "Fin du fil d’actu" @@ -1292,7 +1504,7 @@ msgstr "Saisir un mot ou un mot-clé" msgid "Enter Confirmation Code" msgstr "Entrer un code de confirmation" -#: src/view/com/modals/ChangePassword.tsx:151 +#: src/view/com/modals/ChangePassword.tsx:153 msgid "Enter the code you received to change your password." msgstr "Saisissez le code que vous avez reçu pour modifier votre mot de passe." @@ -1304,8 +1516,8 @@ msgstr "Entrez le domaine que vous voulez utiliser" msgid "Enter the email you used to create your account. We'll send you a \"reset code\" so you can set a new password." msgstr "Saisissez l’e-mail que vous avez utilisé pour créer votre compte. Nous vous enverrons un « code de réinitialisation » afin changer votre mot de passe." +#: src/components/dialogs/BirthDateSettings.tsx:108 #: src/view/com/auth/create/Step1.tsx:228 -#: src/view/com/modals/BirthDateSettings.tsx:74 msgid "Enter your birth date" msgstr "Saisissez votre date de naissance" @@ -1337,20 +1549,32 @@ msgstr "Erreur :" msgid "Everybody" msgstr "Tout le monde" +#: src/lib/moderation/useReportOptions.ts:66 +msgid "Excessive mentions or replies" +msgstr "" + +#: src/view/com/modals/DeleteAccount.tsx:231 +msgid "Exits account deletion process" +msgstr "" + #: src/view/com/modals/ChangeHandle.tsx:150 msgid "Exits handle change process" msgstr "Sort du processus de changement de pseudo" -#: src/view/com/lightbox/Lightbox.web.tsx:120 +#: src/view/com/modals/crop-image/CropImage.web.tsx:135 +msgid "Exits image cropping process" +msgstr "" + +#: src/view/com/lightbox/Lightbox.web.tsx:130 msgid "Exits image view" msgstr "Sort de la vue de l’image" #: src/view/com/modals/ListAddRemoveUsers.tsx:88 -#: src/view/shell/desktop/Search.tsx:235 +#: src/view/shell/desktop/Search.tsx:236 msgid "Exits inputting search query" msgstr "Sort de la saisie de la recherche" -#: src/view/com/lightbox/Lightbox.web.tsx:163 +#: src/view/com/lightbox/Lightbox.web.tsx:183 msgid "Expand alt text" msgstr "Développer le texte alt" @@ -1359,12 +1583,20 @@ msgstr "Développer le texte alt" msgid "Expand or collapse the full post you are replying to" msgstr "Développe ou réduit le post complet auquel vous répondez" -#: src/view/screens/Settings/index.tsx:753 +#: src/lib/moderation/useGlobalLabelStrings.ts:47 +msgid "Explicit or potentially disturbing media." +msgstr "" + +#: src/lib/moderation/useGlobalLabelStrings.ts:35 +msgid "Explicit sexual images." +msgstr "" + +#: src/view/screens/Settings/index.tsx:773 msgid "Export my data" msgstr "Exporter mes données" #: src/view/screens/Settings/ExportCarDialog.tsx:44 -#: src/view/screens/Settings/index.tsx:764 +#: src/view/screens/Settings/index.tsx:784 msgid "Export My Data" msgstr "Exporter mes données" @@ -1377,13 +1609,13 @@ msgstr "Média externe" msgid "External media may allow websites to collect information about you and your device. No information is sent or requested until you press the \"play\" button." msgstr "Les médias externes peuvent permettre à des sites web de collecter des informations sur vous et votre appareil. Aucune information n’est envoyée ou demandée tant que vous n’appuyez pas sur le bouton de lecture." -#: src/Navigation.tsx:263 +#: src/Navigation.tsx:275 #: src/view/screens/PreferencesExternalEmbeds.tsx:52 -#: src/view/screens/Settings/index.tsx:657 +#: src/view/screens/Settings/index.tsx:673 msgid "External Media Preferences" msgstr "Préférences sur les médias externes" -#: src/view/screens/Settings/index.tsx:648 +#: src/view/screens/Settings/index.tsx:664 msgid "External media settings" msgstr "Préférences sur les médias externes" @@ -1396,7 +1628,7 @@ msgstr "Échec de la création du mot de passe d’application." msgid "Failed to create the list. Check your internet connection and try again." msgstr "Échec de la création de la liste. Vérifiez votre connexion Internet et réessayez." -#: src/view/com/util/forms/PostDropdownBtn.tsx:128 +#: src/view/com/util/forms/PostDropdownBtn.tsx:125 msgid "Failed to delete post, please try again" msgstr "Échec de la suppression du post, veuillez réessayer" @@ -1405,11 +1637,15 @@ msgstr "Échec de la suppression du post, veuillez réessayer" msgid "Failed to load recommended feeds" msgstr "Échec du chargement des fils d’actu recommandés" -#: src/Navigation.tsx:194 +#: src/view/com/lightbox/Lightbox.tsx:83 +msgid "Failed to save image: {0}" +msgstr "" + +#: src/Navigation.tsx:196 msgid "Feed" msgstr "Fil d’actu" -#: src/view/com/feeds/FeedSourceCard.tsx:231 +#: src/view/com/feeds/FeedSourceCard.tsx:218 msgid "Feed by {0}" msgstr "Fil d’actu par {0}" @@ -1418,18 +1654,18 @@ msgid "Feed offline" msgstr "Fil d’actu hors ligne" #: src/view/shell/desktop/RightNav.tsx:61 -#: src/view/shell/Drawer.tsx:311 +#: src/view/shell/Drawer.tsx:314 msgid "Feedback" msgstr "Feedback" -#: src/Navigation.tsx:452 +#: src/Navigation.tsx:464 #: src/view/screens/Feeds.tsx:419 #: src/view/screens/Feeds.tsx:524 -#: src/view/screens/Profile.tsx:184 -#: src/view/shell/bottom-bar/BottomBar.tsx:181 -#: src/view/shell/desktop/LeftNav.tsx:342 -#: src/view/shell/Drawer.tsx:476 -#: src/view/shell/Drawer.tsx:477 +#: src/view/screens/Profile.tsx:192 +#: src/view/shell/bottom-bar/BottomBar.tsx:183 +#: src/view/shell/desktop/LeftNav.tsx:346 +#: src/view/shell/Drawer.tsx:479 +#: src/view/shell/Drawer.tsx:480 msgid "Feeds" msgstr "Fils d’actu" @@ -1445,6 +1681,14 @@ msgstr "Les fils d’actu sont des algorithmes personnalisés qui se construisen msgid "Feeds can be topical as well!" msgstr "Les fils d’actu peuvent également être thématiques !" +#: src/view/com/modals/ChangeHandle.tsx:482 +msgid "File Contents" +msgstr "" + +#: src/lib/moderation/useLabelBehaviorDescription.ts:66 +msgid "Filter from feeds" +msgstr "" + #: src/screens/Onboarding/StepFinished.tsx:151 msgid "Finalizing" msgstr "Finalisation" @@ -1455,15 +1699,15 @@ msgstr "Finalisation" msgid "Find accounts to follow" msgstr "Trouver des comptes à suivre" -#: src/view/screens/Search/Search.tsx:440 +#: src/view/screens/Search/Search.tsx:441 msgid "Find users on Bluesky" msgstr "Trouver des comptes sur Bluesky" -#: src/view/screens/Search/Search.tsx:438 +#: src/view/screens/Search/Search.tsx:439 msgid "Find users with the search tool on the right" msgstr "Trouvez des comptes à l’aide de l’outil de recherche, à droite" -#: src/view/com/auth/onboarding/RecommendedFollowsItem.tsx:150 +#: src/view/com/auth/onboarding/RecommendedFollowsItem.tsx:155 msgid "Finding similar accounts..." msgstr "Recherche de comptes similaires…" @@ -1493,22 +1737,29 @@ msgid "Flip vertically" msgstr "Miroir vertical" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:181 -#: src/view/com/post-thread/PostThreadFollowBtn.tsx:136 -#: src/view/com/profile/ProfileHeader.tsx:513 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:229 +#: src/view/com/auth/onboarding/RecommendedFollowsItem.tsx:141 +#: src/view/com/post-thread/PostThreadFollowBtn.tsx:139 +#: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:246 msgid "Follow" msgstr "Suivre" -#: src/view/com/profile/FollowButton.tsx:64 +#: src/view/com/profile/FollowButton.tsx:69 msgctxt "action" msgid "Follow" msgstr "Suivre" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:58 -#: src/view/com/post-thread/PostThreadFollowBtn.tsx:122 -#: src/view/com/profile/ProfileHeader.tsx:504 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:214 +#: src/view/com/post-thread/PostThreadFollowBtn.tsx:125 msgid "Follow {0}" msgstr "Suivre {0}" +#: src/view/com/profile/ProfileMenu.tsx:242 +#: src/view/com/profile/ProfileMenu.tsx:253 +msgid "Follow Account" +msgstr "" + #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:179 msgid "Follow All" msgstr "Suivre tous" @@ -1521,7 +1772,7 @@ msgstr "Suivre les comptes sélectionnés et passer à l’étape suivante" msgid "Follow some users to get started. We can recommend you more users based on who you find interesting." msgstr "Suivez quelques comptes pour commencer. Nous pouvons vous recommander d’autres comptes en fonction des personnes qui vous intéressent." -#: src/view/com/profile/ProfileCard.tsx:194 +#: src/view/com/profile/ProfileCard.tsx:216 msgid "Followed by {0}" msgstr "Suivi par {0}" @@ -1533,33 +1784,39 @@ msgstr "Comptes suivis" msgid "Followed users only" msgstr "Comptes suivis uniquement" -#: src/view/com/notifications/FeedItem.tsx:166 +#: src/view/com/notifications/FeedItem.tsx:170 msgid "followed you" msgstr "vous suit" +#: src/view/com/profile/ProfileFollowers.tsx:109 #: src/view/screens/ProfileFollowers.tsx:25 msgid "Followers" msgstr "Abonné·e·s" -#: src/view/com/post-thread/PostThreadFollowBtn.tsx:136 -#: src/view/com/profile/ProfileHeader.tsx:495 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:227 +#: src/view/com/post-thread/PostThreadFollowBtn.tsx:139 +#: src/view/com/profile/ProfileFollows.tsx:108 #: src/view/screens/ProfileFollows.tsx:25 msgid "Following" msgstr "Suivi" -#: src/view/com/profile/ProfileHeader.tsx:149 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:89 msgid "Following {0}" msgstr "Suit {0}" -#: src/Navigation.tsx:250 +#: src/view/screens/Settings/index.tsx:549 +msgid "Following feed preferences" +msgstr "" + +#: src/Navigation.tsx:262 #: src/view/com/home/HomeHeaderLayout.web.tsx:50 #: src/view/com/home/HomeHeaderLayoutMobile.tsx:84 #: src/view/screens/PreferencesFollowingFeed.tsx:104 -#: src/view/screens/Settings/index.tsx:543 +#: src/view/screens/Settings/index.tsx:558 msgid "Following Feed Preferences" msgstr "Préférences en matière de fil d’actu « Following »" -#: src/view/com/profile/ProfileHeader.tsx:546 +#: src/screens/Profile/Header/Handle.tsx:24 msgid "Follows you" msgstr "Vous suit" @@ -1592,12 +1849,16 @@ msgstr "Mot de passe oublié" msgid "Forgot Password" msgstr "Mot de passe oublié" +#: src/lib/moderation/useReportOptions.ts:52 +msgid "Frequently Posts Unwanted Content" +msgstr "" + #: src/screens/Hashtag.tsx:108 #: src/screens/Hashtag.tsx:148 msgid "From @{sanitizedAuthor}" msgstr "De @{sanitizedAuthor}" -#: src/view/com/posts/FeedItem.tsx:189 +#: src/view/com/posts/FeedItem.tsx:179 msgctxt "from-feed" msgid "From <0/>" msgstr "Tiré de <0/>" @@ -1611,27 +1872,46 @@ msgstr "Galerie" msgid "Get Started" msgstr "C’est parti" +#: src/lib/moderation/useReportOptions.ts:37 +msgid "Glaring violations of law or terms of service" +msgstr "" + +#: src/components/moderation/ScreenHider.tsx:144 +#: src/components/moderation/ScreenHider.tsx:153 #: src/view/com/auth/LoggedOut.tsx:81 #: src/view/com/auth/LoggedOut.tsx:82 -#: src/view/com/util/moderation/ScreenHider.tsx:123 -#: src/view/shell/desktop/LeftNav.tsx:104 +#: src/view/screens/NotFound.tsx:55 +#: src/view/screens/ProfileFeed.tsx:111 +#: src/view/screens/ProfileList.tsx:916 +#: src/view/shell/desktop/LeftNav.tsx:108 msgid "Go back" msgstr "Retour" -#: src/view/screens/ProfileFeed.tsx:106 -#: src/view/screens/ProfileFeed.tsx:111 -#: src/view/screens/ProfileList.tsx:902 -#: src/view/screens/ProfileList.tsx:907 +#: src/screens/Profile/ErrorState.tsx:62 +#: src/screens/Profile/ErrorState.tsx:66 +#: src/view/screens/NotFound.tsx:54 +#: src/view/screens/ProfileFeed.tsx:116 +#: src/view/screens/ProfileList.tsx:921 msgid "Go Back" msgstr "Retour" +#: src/components/ReportDialog/SelectReportOptionView.tsx:74 +#: src/components/ReportDialog/SubmitView.tsx:104 #: src/screens/Onboarding/Layout.tsx:104 #: src/screens/Onboarding/Layout.tsx:193 msgid "Go back to previous step" msgstr "Retour à l’étape précédente" -#: src/view/screens/Search/Search.tsx:747 -#: src/view/shell/desktop/Search.tsx:262 +#: src/view/screens/NotFound.tsx:55 +msgid "Go home" +msgstr "" + +#: src/view/screens/NotFound.tsx:54 +msgid "Go Home" +msgstr "" + +#: src/view/screens/Search/Search.tsx:748 +#: src/view/shell/desktop/Search.tsx:263 msgid "Go to @{queryMaybeHandle}" msgstr "Aller à @{queryMaybeHandle}" @@ -1639,15 +1919,23 @@ msgstr "Aller à @{queryMaybeHandle}" #: src/view/com/auth/login/ForgotPasswordForm.tsx:218 #: src/view/com/auth/login/LoginForm.tsx:288 #: src/view/com/auth/login/SetNewPasswordForm.tsx:195 -#: src/view/com/modals/ChangePassword.tsx:165 +#: src/view/com/modals/ChangePassword.tsx:167 msgid "Go to next" msgstr "Aller à la suite" +#: src/lib/moderation/useGlobalLabelStrings.ts:46 +msgid "Graphic Media" +msgstr "" + #: src/view/com/modals/ChangeHandle.tsx:265 msgid "Handle" msgstr "Pseudo" -#: src/Navigation.tsx:270 +#: src/lib/moderation/useReportOptions.ts:32 +msgid "Harassment, trolling, or intolerance" +msgstr "" + +#: src/Navigation.tsx:282 msgid "Hashtag" msgstr "Mot-clé" @@ -1660,7 +1948,7 @@ msgid "Having trouble?" msgstr "Un souci ?" #: src/view/shell/desktop/RightNav.tsx:90 -#: src/view/shell/Drawer.tsx:321 +#: src/view/shell/Drawer.tsx:324 msgid "Help" msgstr "Aide" @@ -1680,40 +1968,45 @@ msgstr "Voici quelques fils d’actu thématiques basés sur vos centres d’int msgid "Here is your app password." msgstr "Voici le mot de passe de votre appli." -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:41 -#: src/view/com/modals/ContentFilteringSettings.tsx:251 -#: src/view/com/util/moderation/ContentHider.tsx:105 -#: src/view/com/util/moderation/PostHider.tsx:108 +#: src/components/moderation/ContentHider.tsx:115 +#: src/components/moderation/GlobalModerationLabelPref.tsx:43 +#: src/components/moderation/PostHider.tsx:107 +#: src/lib/moderation/useLabelBehaviorDescription.ts:15 +#: src/lib/moderation/useLabelBehaviorDescription.ts:20 +#: src/lib/moderation/useLabelBehaviorDescription.ts:25 +#: src/lib/moderation/useLabelBehaviorDescription.ts:30 +#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:52 +#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:76 +#: src/view/com/util/forms/PostDropdownBtn.tsx:328 msgid "Hide" msgstr "Cacher" -#: src/view/com/modals/ContentFilteringSettings.tsx:224 -#: src/view/com/notifications/FeedItem.tsx:326 +#: src/view/com/notifications/FeedItem.tsx:329 msgctxt "action" msgid "Hide" msgstr "Cacher" #: src/view/com/util/forms/PostDropdownBtn.tsx:276 -#: src/view/com/util/forms/PostDropdownBtn.tsx:287 +#: src/view/com/util/forms/PostDropdownBtn.tsx:278 msgid "Hide post" msgstr "Cacher ce post" -#: src/view/com/util/moderation/ContentHider.tsx:67 -#: src/view/com/util/moderation/PostHider.tsx:61 +#: src/components/moderation/ContentHider.tsx:67 +#: src/components/moderation/PostHider.tsx:64 msgid "Hide the content" msgstr "Cacher ce contenu" -#: src/view/com/util/forms/PostDropdownBtn.tsx:280 +#: src/view/com/util/forms/PostDropdownBtn.tsx:325 msgid "Hide this post?" msgstr "Cacher ce post ?" -#: src/view/com/notifications/FeedItem.tsx:316 +#: src/view/com/notifications/FeedItem.tsx:319 msgid "Hide user list" msgstr "Cacher la liste des comptes" #: src/view/com/profile/ProfileHeader.tsx:487 -msgid "Hides posts from {0} in your feed" -msgstr "Masque les posts de {0} dans votre fil d’actu" +#~ msgid "Hides posts from {0} in your feed" +#~ msgstr "Masque les posts de {0} dans votre fil d’actu" #: src/view/com/posts/FeedErrorMessage.tsx:111 msgid "Hmm, some kind of issue occurred when contacting the feed server. Please let the feed owner know about this issue." @@ -1735,16 +2028,29 @@ msgstr "Mmm… le serveur de fils d’actu ne répond pas. Veuillez informer la msgid "Hmm, we're having trouble finding this feed. It may have been deleted." msgstr "Hmm, nous n’arrivons pas à trouver ce fil d’actu. Il a peut-être été supprimé." -#: src/Navigation.tsx:442 -#: src/view/shell/bottom-bar/BottomBar.tsx:137 -#: src/view/shell/desktop/LeftNav.tsx:306 -#: src/view/shell/Drawer.tsx:398 -#: src/view/shell/Drawer.tsx:399 +#: src/screens/Moderation/index.tsx:61 +msgid "Hmmmm, it seems we're having trouble loading this data. See below for more details. If this issue persists, please contact us." +msgstr "" + +#: src/screens/Profile/ErrorState.tsx:31 +msgid "Hmmmm, we couldn't load that moderation service." +msgstr "" + +#: src/Navigation.tsx:454 +#: src/view/shell/bottom-bar/BottomBar.tsx:139 +#: src/view/shell/desktop/LeftNav.tsx:310 +#: src/view/shell/Drawer.tsx:401 +#: src/view/shell/Drawer.tsx:402 msgid "Home" msgstr "Accueil" +#: src/view/com/modals/ChangeHandle.tsx:421 +msgid "Host:" +msgstr "" + #: src/view/com/auth/create/Step1.tsx:75 #: src/view/com/auth/login/ForgotPasswordForm.tsx:120 +#: src/view/com/modals/ChangeHandle.tsx:280 msgid "Hosting provider" msgstr "Hébergeur" @@ -1764,7 +2070,7 @@ msgstr "J’ai un code de confirmation" msgid "I have my own domain" msgstr "J’ai mon propre domaine" -#: src/view/com/lightbox/Lightbox.web.tsx:165 +#: src/view/com/lightbox/Lightbox.web.tsx:185 msgid "If alt text is long, toggles alt text expanded state" msgstr "Si le texte alternatif est trop long, change son mode d’affichage" @@ -1772,10 +2078,26 @@ msgstr "Si le texte alternatif est trop long, change son mode d’affichage" msgid "If none are selected, suitable for all ages." msgstr "Si rien n’est sélectionné, il n’y a pas de restriction d’âge." -#: src/view/com/modals/ChangePassword.tsx:146 +#: src/view/com/auth/create/Policies.tsx:91 +msgid "If you are not yet an adult according to the laws of your country, your parent or legal guardian must read these Terms on your behalf." +msgstr "" + +#: src/view/screens/ProfileList.tsx:610 +msgid "If you delete this list, you won't be able to recover it." +msgstr "" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:316 +msgid "If you remove this post, you won't be able to recover it." +msgstr "" + +#: src/view/com/modals/ChangePassword.tsx:148 msgid "If you want to change your password, we will send you a code to verify that this is your account." msgstr "Si vous souhaitez modifier votre mot de passe, nous vous enverrons un code pour vérifier qu’il s’agit bien de votre compte." +#: src/lib/moderation/useReportOptions.ts:36 +msgid "Illegal and Urgent" +msgstr "" + #: src/view/com/util/images/Gallery.tsx:38 msgid "Image" msgstr "Image" @@ -1786,8 +2108,12 @@ msgstr "Texte alt de l’image" #: src/view/com/util/UserAvatar.tsx:311 #: src/view/com/util/UserBanner.tsx:118 -msgid "Image options" -msgstr "Options d’images" +#~ msgid "Image options" +#~ msgstr "Options d’images" + +#: src/lib/moderation/useReportOptions.ts:47 +msgid "Impersonation or false claims about identity or affiliation" +msgstr "" #: src/view/com/auth/login/SetNewPasswordForm.tsx:138 msgid "Input code sent to your email for password reset" @@ -1829,11 +2155,15 @@ msgstr "Entrez le pseudo ou l’adresse e-mail que vous avez utilisé lors de l msgid "Input your password" msgstr "Entrez votre mot de passe" +#: src/view/com/modals/ChangeHandle.tsx:390 +msgid "Input your preferred hosting provider" +msgstr "" + #: src/view/com/auth/create/Step2.tsx:80 msgid "Input your user handle" msgstr "Entrez votre pseudo" -#: src/view/com/post-thread/PostThreadItem.tsx:226 +#: src/view/com/post-thread/PostThreadItem.tsx:221 msgid "Invalid or unsupported post record" msgstr "Enregistrement de post invalide ou non pris en charge" @@ -1866,7 +2196,7 @@ msgstr "Invitations : 1 code dispo" msgid "It shows posts from the people you follow as they happen." msgstr "Il affiche les posts des personnes que vous suivez au fur et à mesure qu’ils sont publiés." -#: src/view/com/auth/HomeLoggedOutCTA.tsx:99 +#: src/view/com/auth/HomeLoggedOutCTA.tsx:103 #: src/view/com/auth/SplashScreen.web.tsx:138 msgid "Jobs" msgstr "Emplois" @@ -1875,20 +2205,52 @@ msgstr "Emplois" msgid "Journalism" msgstr "Journalisme" +#: src/components/moderation/LabelsOnMe.tsx:59 +msgid "label has been placed on this {labelTarget}" +msgstr "" + +#: src/components/moderation/ContentHider.tsx:144 +msgid "Labeled by {0}." +msgstr "" + +#: src/components/moderation/ContentHider.tsx:142 +msgid "Labeled by the author." +msgstr "" + +#: src/view/screens/Profile.tsx:186 +msgid "Labels" +msgstr "" + +#: src/screens/Profile/Sections/Labels.tsx:143 +msgid "Labels are annotations on users and content. They can be used to hide, warn, and categorize the network." +msgstr "" + +#: src/components/moderation/LabelsOnMe.tsx:61 +msgid "labels have been placed on this {labelTarget}" +msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:63 +msgid "Labels on your account" +msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:65 +msgid "Labels on your content" +msgstr "" + #: src/view/com/composer/select-language/SelectLangBtn.tsx:104 msgid "Language selection" msgstr "Sélection de la langue" -#: src/view/screens/Settings/index.tsx:594 +#: src/view/screens/Settings/index.tsx:610 msgid "Language settings" msgstr "Préférences de langue" -#: src/Navigation.tsx:142 +#: src/Navigation.tsx:144 #: src/view/screens/LanguageSettings.tsx:89 msgid "Language Settings" msgstr "Paramètres linguistiques" -#: src/view/screens/Settings/index.tsx:603 +#: src/view/screens/Settings/index.tsx:619 msgid "Languages" msgstr "Langues" @@ -1897,27 +2259,31 @@ msgid "Last step!" msgstr "Dernière étape !" #: src/view/com/util/moderation/ContentHider.tsx:103 -msgid "Learn more" -msgstr "En savoir plus" +#~ msgid "Learn more" +#~ msgstr "En savoir plus" -#: src/view/com/util/moderation/PostAlerts.tsx:47 -#: src/view/com/util/moderation/ProfileHeaderAlerts.tsx:65 -#: src/view/com/util/moderation/ScreenHider.tsx:104 +#: src/components/moderation/ScreenHider.tsx:129 msgid "Learn More" msgstr "En savoir plus" -#: src/view/com/util/moderation/ContentHider.tsx:85 -#: src/view/com/util/moderation/PostAlerts.tsx:40 -#: src/view/com/util/moderation/PostHider.tsx:78 -#: src/view/com/util/moderation/ProfileHeaderAlerts.tsx:49 -#: src/view/com/util/moderation/ScreenHider.tsx:101 +#: src/components/moderation/ContentHider.tsx:65 +#: src/components/moderation/ContentHider.tsx:128 +msgid "Learn more about the moderation applied to this content." +msgstr "" + +#: src/components/moderation/PostHider.tsx:85 +#: src/components/moderation/ScreenHider.tsx:126 msgid "Learn more about this warning" msgstr "En savoir plus sur cet avertissement" -#: src/view/screens/Moderation.tsx:262 +#: src/screens/Moderation/index.tsx:551 msgid "Learn more about what is public on Bluesky." msgstr "En savoir plus sur ce qui est public sur Bluesky." +#: src/components/moderation/ContentHider.tsx:152 +msgid "Learn more." +msgstr "" + #: src/view/com/modals/lang-settings/ContentLanguagesSettings.tsx:82 msgid "Leave them all unchecked to see any language." msgstr "Si vous ne cochez rien, toutes les langues s’afficheront." @@ -1930,7 +2296,7 @@ msgstr "Quitter Bluesky" msgid "left to go." msgstr "devant vous dans la file." -#: src/view/screens/Settings/index.tsx:278 +#: src/view/screens/Settings/index.tsx:292 msgid "Legacy storage cleared, you need to restart the app now." msgstr "Stockage ancien effacé, vous devez redémarrer l’application maintenant." @@ -1945,55 +2311,65 @@ msgstr "Allons-y !" #: src/view/com/util/UserAvatar.tsx:248 #: src/view/com/util/UserBanner.tsx:62 -msgid "Library" -msgstr "Bibliothèque" +#~ msgid "Library" +#~ msgstr "Bibliothèque" -#: src/view/screens/Settings/index.tsx:479 +#: src/view/screens/Settings/index.tsx:494 msgid "Light" msgstr "Clair" -#: src/view/com/util/post-ctrls/PostCtrls.tsx:182 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:185 msgid "Like" msgstr "Liker" -#: src/view/screens/ProfileFeed.tsx:591 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:257 +#: src/view/screens/ProfileFeed.tsx:572 msgid "Like this feed" msgstr "Liker ce fil d’actu" -#: src/Navigation.tsx:199 +#: src/components/LikesDialog.tsx:87 +#: src/Navigation.tsx:201 +#: src/Navigation.tsx:206 msgid "Liked by" msgstr "Liké par" +#: src/screens/Profile/ProfileLabelerLikedBy.tsx:42 #: src/view/screens/PostLikedBy.tsx:27 #: src/view/screens/ProfileFeedLikedBy.tsx:27 msgid "Liked By" msgstr "Liké par" -#: src/view/com/feeds/FeedSourceCard.tsx:279 +#: src/view/com/feeds/FeedSourceCard.tsx:268 msgid "Liked by {0} {1}" msgstr "Liké par {0} {1}" -#: src/view/screens/ProfileFeed.tsx:606 +#: src/components/LabelingServiceCard/index.tsx:72 +msgid "Liked by {count} {0}" +msgstr "" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:277 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:291 +#: src/view/screens/ProfileFeed.tsx:587 msgid "Liked by {likeCount} {0}" msgstr "Liké par {likeCount} {0}" -#: src/view/com/notifications/FeedItem.tsx:170 +#: src/view/com/notifications/FeedItem.tsx:174 msgid "liked your custom feed" msgstr "liké votre fil d’actu personnalisé" -#: src/view/com/notifications/FeedItem.tsx:155 +#: src/view/com/notifications/FeedItem.tsx:159 msgid "liked your post" msgstr "liké votre post" -#: src/view/screens/Profile.tsx:183 +#: src/view/screens/Profile.tsx:191 msgid "Likes" msgstr "Likes" -#: src/view/com/post-thread/PostThreadItem.tsx:183 +#: src/view/com/post-thread/PostThreadItem.tsx:182 msgid "Likes on this post" msgstr "Likes sur ce post" -#: src/Navigation.tsx:168 +#: src/Navigation.tsx:170 msgid "List" msgstr "Liste" @@ -2001,15 +2377,15 @@ msgstr "Liste" msgid "List Avatar" msgstr "Liste des avatars" -#: src/view/screens/ProfileList.tsx:324 +#: src/view/screens/ProfileList.tsx:311 msgid "List blocked" msgstr "Liste bloquée" -#: src/view/com/feeds/FeedSourceCard.tsx:233 +#: src/view/com/feeds/FeedSourceCard.tsx:220 msgid "List by {0}" msgstr "Liste par {0}" -#: src/view/screens/ProfileList.tsx:378 +#: src/view/screens/ProfileList.tsx:355 msgid "List deleted" msgstr "Liste supprimée" @@ -2021,43 +2397,44 @@ msgstr "Liste masquée" msgid "List Name" msgstr "Nom de liste" -#: src/view/screens/ProfileList.tsx:343 +#: src/view/screens/ProfileList.tsx:325 msgid "List unblocked" msgstr "Liste débloquée" -#: src/view/screens/ProfileList.tsx:302 +#: src/view/screens/ProfileList.tsx:297 msgid "List unmuted" msgstr "Liste démasquée" -#: src/Navigation.tsx:112 -#: src/view/screens/Profile.tsx:185 -#: src/view/shell/desktop/LeftNav.tsx:379 -#: src/view/shell/Drawer.tsx:492 -#: src/view/shell/Drawer.tsx:493 +#: src/Navigation.tsx:114 +#: src/view/screens/Profile.tsx:187 +#: src/view/screens/Profile.tsx:193 +#: src/view/shell/desktop/LeftNav.tsx:383 +#: src/view/shell/Drawer.tsx:495 +#: src/view/shell/Drawer.tsx:496 msgid "Lists" msgstr "Listes" #: src/view/com/post-thread/PostThread.tsx:333 #: src/view/com/post-thread/PostThread.tsx:341 -msgid "Load more posts" -msgstr "Charger plus de posts" +#~ msgid "Load more posts" +#~ msgstr "Charger plus de posts" #: src/view/screens/Notifications.tsx:159 msgid "Load new notifications" msgstr "Charger les nouvelles notifications" -#: src/view/com/feeds/FeedPage.tsx:115 -#: src/view/screens/Profile.tsx:440 +#: src/screens/Profile/Sections/Feed.tsx:70 +#: src/view/com/feeds/FeedPage.tsx:124 #: src/view/screens/ProfileFeed.tsx:495 -#: src/view/screens/ProfileList.tsx:681 +#: src/view/screens/ProfileList.tsx:695 msgid "Load new posts" msgstr "Charger les nouveaux posts" -#: src/view/com/composer/text-input/mobile/Autocomplete.tsx:95 +#: src/view/com/composer/text-input/mobile/Autocomplete.tsx:99 msgid "Loading..." msgstr "Chargement…" -#: src/Navigation.tsx:209 +#: src/Navigation.tsx:221 msgid "Log" msgstr "Journaux" @@ -2068,11 +2445,11 @@ msgstr "Journaux" msgid "Log out" msgstr "Déconnexion" -#: src/view/screens/Moderation.tsx:155 +#: src/screens/Moderation/index.tsx:444 msgid "Logged-out visibility" msgstr "Visibilité déconnectée" -#: src/view/com/auth/login/ChooseAccountForm.tsx:133 +#: src/view/com/auth/login/ChooseAccountForm.tsx:137 msgid "Login to account that is not listed" msgstr "Se connecter à un compte qui n’est pas listé" @@ -2092,7 +2469,7 @@ msgstr "Ne doit pas dépasser 253 caractères" msgid "May only contain letters and numbers" msgstr "Ne peut contenir que des lettres et des chiffres" -#: src/view/screens/Profile.tsx:182 +#: src/view/screens/Profile.tsx:190 msgid "Media" msgstr "Média" @@ -2105,35 +2482,43 @@ msgid "Mentioned users" msgstr "Comptes mentionnés" #: src/view/com/util/ViewHeader.tsx:87 -#: src/view/screens/Search/Search.tsx:646 +#: src/view/screens/Search/Search.tsx:647 msgid "Menu" msgstr "Menu" -#: src/view/com/posts/FeedErrorMessage.tsx:197 +#: src/view/com/posts/FeedErrorMessage.tsx:192 msgid "Message from server: {0}" msgstr "Message du serveur : {0}" -#: src/Navigation.tsx:117 -#: src/view/screens/Moderation.tsx:66 -#: src/view/screens/Settings/index.tsx:625 -#: src/view/shell/desktop/LeftNav.tsx:397 -#: src/view/shell/Drawer.tsx:511 -#: src/view/shell/Drawer.tsx:512 +#: src/lib/moderation/useReportOptions.ts:45 +msgid "Misleading Account" +msgstr "" + +#: src/Navigation.tsx:119 +#: src/screens/Moderation/index.tsx:106 +#: src/view/screens/Settings/index.tsx:641 +#: src/view/shell/desktop/LeftNav.tsx:401 +#: src/view/shell/Drawer.tsx:514 +#: src/view/shell/Drawer.tsx:515 msgid "Moderation" msgstr "Modération" +#: src/components/moderation/ModerationDetailsDialog.tsx:113 +msgid "Moderation details" +msgstr "" + #: src/view/com/lists/ListCard.tsx:93 #: src/view/com/modals/UserAddRemoveLists.tsx:206 msgid "Moderation list by {0}" msgstr "Liste de modération par {0}" -#: src/view/screens/ProfileList.tsx:775 +#: src/view/screens/ProfileList.tsx:789 msgid "Moderation list by <0/>" msgstr "Liste de modération par <0/>" #: src/view/com/lists/ListCard.tsx:91 #: src/view/com/modals/UserAddRemoveLists.tsx:204 -#: src/view/screens/ProfileList.tsx:773 +#: src/view/screens/ProfileList.tsx:787 msgid "Moderation list by you" msgstr "Liste de modération par vous" @@ -2145,30 +2530,41 @@ msgstr "Liste de modération créée" msgid "Moderation list updated" msgstr "Liste de modération mise à jour" -#: src/view/screens/Moderation.tsx:114 +#: src/screens/Moderation/index.tsx:245 msgid "Moderation lists" msgstr "Listes de modération" -#: src/Navigation.tsx:122 +#: src/Navigation.tsx:124 #: src/view/screens/ModerationModlists.tsx:58 msgid "Moderation Lists" msgstr "Listes de modération" -#: src/view/screens/Settings/index.tsx:619 +#: src/view/screens/Settings/index.tsx:635 msgid "Moderation settings" msgstr "Paramètres de modération" -#: src/view/com/modals/ModerationDetails.tsx:35 +#: src/Navigation.tsx:216 +msgid "Moderation states" +msgstr "" + +#: src/screens/Moderation/index.tsx:217 +msgid "Moderation tools" +msgstr "" + +#: src/components/moderation/ModerationDetailsDialog.tsx:49 +#: src/lib/moderation/useModerationCauseDescription.ts:40 msgid "Moderator has chosen to set a general warning on the content." msgstr "La modération a choisi d’ajouter un avertissement général sur le contenu." +#: src/view/com/post-thread/PostThreadItem.tsx:541 +msgid "More" +msgstr "" + #: src/view/shell/desktop/Feeds.tsx:65 msgid "More feeds" msgstr "Plus de fils d’actu" -#: src/view/com/profile/ProfileHeader.tsx:523 -#: src/view/screens/ProfileFeed.tsx:363 -#: src/view/screens/ProfileList.tsx:617 +#: src/view/screens/ProfileList.tsx:599 msgid "More options" msgstr "Plus d’options" @@ -2188,11 +2584,12 @@ msgstr "Masquer" msgid "Mute {truncatedTag}" msgstr "Masquer {truncatedTag}" -#: src/view/com/profile/ProfileHeader.tsx:327 +#: src/view/com/profile/ProfileMenu.tsx:279 +#: src/view/com/profile/ProfileMenu.tsx:286 msgid "Mute Account" msgstr "Masquer le compte" -#: src/view/screens/ProfileList.tsx:544 +#: src/view/screens/ProfileList.tsx:518 msgid "Mute accounts" msgstr "Masquer les comptes" @@ -2208,17 +2605,18 @@ msgstr "Masquer dans les mots-clés uniquement" msgid "Mute in text & tags" msgstr "Masquer dans le texte et les mots-clés" -#: src/view/screens/ProfileList.tsx:491 +#: src/view/screens/ProfileList.tsx:461 +#: src/view/screens/ProfileList.tsx:624 msgid "Mute list" msgstr "Masquer la liste" -#: src/view/screens/ProfileList.tsx:275 +#: src/view/screens/ProfileList.tsx:619 msgid "Mute these accounts?" msgstr "Masquer ces comptes ?" #: src/view/screens/ProfileList.tsx:279 -msgid "Mute this List" -msgstr "Masquer cette liste" +#~ msgid "Mute this List" +#~ msgstr "Masquer cette liste" #: src/components/dialogs/MutedWords.tsx:127 msgid "Mute this word in post text and tags" @@ -2242,11 +2640,11 @@ msgstr "Masquer les mots et les mots-clés" msgid "Muted" msgstr "Masqué" -#: src/view/screens/Moderation.tsx:128 +#: src/screens/Moderation/index.tsx:257 msgid "Muted accounts" msgstr "Comptes masqués" -#: src/Navigation.tsx:127 +#: src/Navigation.tsx:129 #: src/view/screens/ModerationMutedAccounts.tsx:107 msgid "Muted Accounts" msgstr "Comptes masqués" @@ -2255,15 +2653,20 @@ msgstr "Comptes masqués" msgid "Muted accounts have their posts removed from your feed and from your notifications. Mutes are completely private." msgstr "Les comptes masqués voient leurs posts supprimés de votre fil d’actu et de vos notifications. Cette option est totalement privée." -#: src/view/screens/Moderation.tsx:100 +#: src/lib/moderation/useModerationCauseDescription.ts:85 +msgid "Muted by \"{0}\"" +msgstr "" + +#: src/screens/Moderation/index.tsx:233 msgid "Muted words & tags" msgstr "Les mots et les mots-clés masqués" -#: src/view/screens/ProfileList.tsx:277 +#: src/view/screens/ProfileList.tsx:621 msgid "Muting is private. Muted accounts can interact with you, but you will not see their posts or receive notifications from them." msgstr "Ce que vous masquez reste privé. Les comptes masqués peuvent interagir avec vous, mais vous ne verrez pas leurs posts et ne recevrez pas de notifications de leur part." -#: src/view/com/modals/BirthDateSettings.tsx:56 +#: src/components/dialogs/BirthDateSettings.tsx:35 +#: src/components/dialogs/BirthDateSettings.tsx:38 msgid "My Birthday" msgstr "Ma date de naissance" @@ -2275,13 +2678,17 @@ msgstr "Mes fils d’actu" msgid "My Profile" msgstr "Mon profil" -#: src/view/screens/Settings/index.tsx:582 +#: src/view/screens/Settings/index.tsx:592 +msgid "My saved feeds" +msgstr "" + +#: src/view/screens/Settings/index.tsx:598 msgid "My Saved Feeds" msgstr "Mes fils d’actu enregistrés" #: src/view/com/auth/server-input/index.tsx:118 -msgid "my-server.com" -msgstr "mon-serveur.fr" +#~ msgid "my-server.com" +#~ msgstr "mon-serveur.fr" #: src/view/com/modals/AddAppPasswords.tsx:179 #: src/view/com/modals/CreateOrEditList.tsx:290 @@ -2292,6 +2699,12 @@ msgstr "Nom" msgid "Name is required" msgstr "Le nom est requis" +#: src/lib/moderation/useReportOptions.ts:57 +#: src/lib/moderation/useReportOptions.ts:78 +#: src/lib/moderation/useReportOptions.ts:86 +msgid "Name or Description Violates Community Standards" +msgstr "" + #: src/screens/Onboarding/index.tsx:25 msgid "Nature" msgstr "Nature" @@ -2300,7 +2713,7 @@ msgstr "Nature" #: src/view/com/auth/login/ForgotPasswordForm.tsx:219 #: src/view/com/auth/login/LoginForm.tsx:289 #: src/view/com/auth/login/SetNewPasswordForm.tsx:196 -#: src/view/com/modals/ChangePassword.tsx:166 +#: src/view/com/modals/ChangePassword.tsx:168 msgid "Navigates to the next screen" msgstr "Navigue vers le prochain écran" @@ -2308,13 +2721,17 @@ msgstr "Navigue vers le prochain écran" msgid "Navigates to your profile" msgstr "Navigue vers votre profil" +#: src/components/ReportDialog/SelectReportOptionView.tsx:124 +msgid "Need to report a copyright violation?" +msgstr "" + #: src/view/com/modals/EmbedConsent.tsx:107 #: src/view/com/modals/EmbedConsent.tsx:123 msgid "Never load embeds from {0}" msgstr "Ne jamais charger les contenus intégrés de {0}" #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:72 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:72 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:74 msgid "Never lose access to your followers and data." msgstr "Ne perdez jamais l’accès à vos followers et à vos données." @@ -2323,8 +2740,12 @@ msgid "Never lose access to your followers or data." msgstr "Ne perdez jamais l’accès à vos followers ou à vos données." #: src/components/dialogs/MutedWords.tsx:293 -msgid "Nevermind" -msgstr "Peu importe" +#~ msgid "Nevermind" +#~ msgstr "Peu importe" + +#: src/view/com/modals/ChangeHandle.tsx:520 +msgid "Nevermind, create a handle for me" +msgstr "" #: src/view/screens/Lists.tsx:76 msgctxt "action" @@ -2340,29 +2761,30 @@ msgid "New Moderation List" msgstr "Nouvelle liste de modération" #: src/view/com/auth/login/SetNewPasswordForm.tsx:150 +#: src/view/com/modals/ChangePassword.tsx:212 msgid "New password" msgstr "Nouveau mot de passe" -#: src/view/com/modals/ChangePassword.tsx:215 +#: src/view/com/modals/ChangePassword.tsx:217 msgid "New Password" msgstr "Nouveau mot de passe" -#: src/view/com/feeds/FeedPage.tsx:126 +#: src/view/com/feeds/FeedPage.tsx:135 msgctxt "action" msgid "New post" msgstr "Nouveau post" #: src/view/screens/Feeds.tsx:555 #: src/view/screens/Notifications.tsx:168 -#: src/view/screens/Profile.tsx:382 +#: src/view/screens/Profile.tsx:450 #: src/view/screens/ProfileFeed.tsx:433 -#: src/view/screens/ProfileList.tsx:196 -#: src/view/screens/ProfileList.tsx:224 -#: src/view/shell/desktop/LeftNav.tsx:248 +#: src/view/screens/ProfileList.tsx:199 +#: src/view/screens/ProfileList.tsx:227 +#: src/view/shell/desktop/LeftNav.tsx:252 msgid "New post" msgstr "Nouveau post" -#: src/view/shell/desktop/LeftNav.tsx:258 +#: src/view/shell/desktop/LeftNav.tsx:262 msgctxt "action" msgid "New Post" msgstr "Nouveau post" @@ -2386,8 +2808,8 @@ msgstr "Actualités" #: src/view/com/auth/login/SetNewPasswordForm.tsx:187 #: src/view/com/auth/login/SetNewPasswordForm.tsx:198 #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:79 -#: src/view/com/modals/ChangePassword.tsx:251 #: src/view/com/modals/ChangePassword.tsx:253 +#: src/view/com/modals/ChangePassword.tsx:255 msgid "Next" msgstr "Suivant" @@ -2396,7 +2818,7 @@ msgctxt "action" msgid "Next" msgstr "Suivant" -#: src/view/com/lightbox/Lightbox.web.tsx:149 +#: src/view/com/lightbox/Lightbox.web.tsx:169 msgid "Next image" msgstr "Image suivante" @@ -2409,12 +2831,16 @@ msgstr "Image suivante" msgid "No" msgstr "Non" -#: src/view/screens/ProfileFeed.tsx:584 -#: src/view/screens/ProfileList.tsx:755 +#: src/view/screens/ProfileFeed.tsx:561 +#: src/view/screens/ProfileList.tsx:769 msgid "No description" msgstr "Aucune description" -#: src/view/com/profile/ProfileHeader.tsx:170 +#: src/view/com/modals/ChangeHandle.tsx:406 +msgid "No DNS Panel" +msgstr "" + +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:111 msgid "No longer following {0}" msgstr "Ne suit plus {0}" @@ -2422,12 +2848,12 @@ msgstr "Ne suit plus {0}" msgid "No notifications yet!" msgstr "Pas encore de notifications !" -#: src/view/com/composer/text-input/mobile/Autocomplete.tsx:97 -#: src/view/com/composer/text-input/web/Autocomplete.tsx:191 +#: src/view/com/composer/text-input/mobile/Autocomplete.tsx:101 +#: src/view/com/composer/text-input/web/Autocomplete.tsx:195 msgid "No result" msgstr "Aucun résultat" -#: src/components/Lists.tsx:192 +#: src/components/Lists.tsx:189 msgid "No results found" msgstr "Aucun résultat trouvé" @@ -2436,8 +2862,8 @@ msgid "No results found for \"{query}\"" msgstr "Aucun résultat trouvé pour « {query} »" #: src/view/com/modals/ListAddRemoveUsers.tsx:127 -#: src/view/screens/Search/Search.tsx:281 -#: src/view/screens/Search/Search.tsx:309 +#: src/view/screens/Search/Search.tsx:282 +#: src/view/screens/Search/Search.tsx:310 msgid "No results found for {query}" msgstr "Aucun résultat trouvé pour {query}" @@ -2449,12 +2875,21 @@ msgstr "Non merci" msgid "Nobody" msgstr "Personne" +#: src/components/LikedByList.tsx:102 +#: src/components/LikesDialog.tsx:99 +msgid "Nobody has liked this yet. Maybe you should be the first!" +msgstr "" + +#: src/lib/moderation/useGlobalLabelStrings.ts:42 +msgid "Non-sexual Nudity" +msgstr "" + #: src/view/com/modals/SelfLabel.tsx:135 msgid "Not Applicable." msgstr "Sans objet." -#: src/Navigation.tsx:107 -#: src/view/screens/Profile.tsx:106 +#: src/Navigation.tsx:109 +#: src/view/screens/Profile.tsx:97 msgid "Not Found" msgstr "Introuvable" @@ -2463,17 +2898,22 @@ msgstr "Introuvable" msgid "Not right now" msgstr "Pas maintenant" -#: src/view/screens/Moderation.tsx:252 +#: src/view/com/profile/ProfileMenu.tsx:368 +#: src/view/com/util/forms/PostDropdownBtn.tsx:342 +msgid "Note about sharing" +msgstr "" + +#: src/screens/Moderation/index.tsx:542 msgid "Note: Bluesky is an open and public network. This setting only limits the visibility of your content on the Bluesky app and website, and other apps may not respect this setting. Your content may still be shown to logged-out users by other apps and websites." msgstr "Remarque : Bluesky est un réseau ouvert et public. Ce paramètre limite uniquement la visibilité de votre contenu sur l’application et le site Web de Bluesky, et d’autres applications peuvent ne pas respecter ce paramètre. Votre contenu peut toujours être montré aux personnes non connectées par d’autres applications et sites Web." -#: src/Navigation.tsx:457 +#: src/Navigation.tsx:469 #: src/view/screens/Notifications.tsx:124 #: src/view/screens/Notifications.tsx:148 -#: src/view/shell/bottom-bar/BottomBar.tsx:205 -#: src/view/shell/desktop/LeftNav.tsx:361 -#: src/view/shell/Drawer.tsx:435 -#: src/view/shell/Drawer.tsx:436 +#: src/view/shell/bottom-bar/BottomBar.tsx:207 +#: src/view/shell/desktop/LeftNav.tsx:365 +#: src/view/shell/Drawer.tsx:438 +#: src/view/shell/Drawer.tsx:439 msgid "Notifications" msgstr "Notifications" @@ -2481,7 +2921,15 @@ msgstr "Notifications" msgid "Nudity" msgstr "Nudité" -#: src/view/com/util/ErrorBoundary.tsx:35 +#: src/lib/moderation/useReportOptions.ts:71 +msgid "Nudity or pornography not labeled as such" +msgstr "" + +#: src/lib/moderation/useLabelBehaviorDescription.ts:11 +msgid "Off" +msgstr "" + +#: src/view/com/util/ErrorBoundary.tsx:49 msgid "Oh no!" msgstr "Oh non !" @@ -2489,6 +2937,10 @@ msgstr "Oh non !" msgid "Oh no! Something went wrong." msgstr "Oh non ! Il y a eu un problème." +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:127 +msgid "OK" +msgstr "" + #: src/view/com/auth/login/PasswordUpdatedForm.tsx:41 msgid "Okay" msgstr "D’accord" @@ -2497,11 +2949,11 @@ msgstr "D’accord" msgid "Oldest replies first" msgstr "Plus anciennes réponses en premier" -#: src/view/screens/Settings/index.tsx:234 +#: src/view/screens/Settings/index.tsx:240 msgid "Onboarding reset" msgstr "Réinitialiser le didacticiel" -#: src/view/com/composer/Composer.tsx:382 +#: src/view/com/composer/Composer.tsx:391 msgid "One or more images is missing alt text." msgstr "Une ou plusieurs images n’ont pas de texte alt." @@ -2509,13 +2961,13 @@ msgstr "Une ou plusieurs images n’ont pas de texte alt." msgid "Only {0} can reply." msgstr "Seul {0} peut répondre." -#: src/components/Lists.tsx:82 +#: src/components/Lists.tsx:83 msgid "Oops, something went wrong!" msgstr "Oups, quelque chose n’a pas marché !" -#: src/components/Lists.tsx:188 -#: src/view/screens/AppPasswords.tsx:65 -#: src/view/screens/Profile.tsx:106 +#: src/components/Lists.tsx:157 +#: src/view/screens/AppPasswords.tsx:67 +#: src/view/screens/Profile.tsx:97 msgid "Oops!" msgstr "Oups !" @@ -2524,34 +2976,47 @@ msgid "Open" msgstr "Ouvrir" #: src/view/screens/Moderation.tsx:75 -msgid "Open content filtering settings" -msgstr "Ouvrir les paramètres de filtrage de contenu" +#~ msgid "Open content filtering settings" +#~ msgstr "Ouvrir les paramètres de filtrage de contenu" -#: src/view/com/composer/Composer.tsx:477 -#: src/view/com/composer/Composer.tsx:478 +#: src/view/com/composer/Composer.tsx:490 +#: src/view/com/composer/Composer.tsx:491 msgid "Open emoji picker" msgstr "Ouvrir le sélecteur d’emoji" -#: src/view/screens/Settings/index.tsx:712 +#: src/view/screens/ProfileFeed.tsx:299 +msgid "Open feed options menu" +msgstr "" + +#: src/view/screens/Settings/index.tsx:730 msgid "Open links with in-app browser" msgstr "Ouvrir des liens avec le navigateur interne à l’appli" +#: src/screens/Moderation/index.tsx:229 +msgid "Open muted words and tags settings" +msgstr "" + #: src/view/screens/Moderation.tsx:92 -msgid "Open muted words settings" -msgstr "Ouvrir les paramètres des mots masqués" +#~ msgid "Open muted words settings" +#~ msgstr "Ouvrir les paramètres des mots masqués" #: src/view/com/home/HomeHeaderLayoutMobile.tsx:50 msgid "Open navigation" msgstr "Navigation ouverte" -#: src/view/com/util/forms/PostDropdownBtn.tsx:175 +#: src/view/com/util/forms/PostDropdownBtn.tsx:183 msgid "Open post options menu" msgstr "Ouvrir le menu d’options du post" -#: src/view/screens/Settings/index.tsx:804 -msgid "Open storybook page" +#: src/view/screens/Settings/index.tsx:824 +#: src/view/screens/Settings/index.tsx:834 +msgid "Open storybook page" msgstr "Ouvrir la page Storybook" +#: src/view/screens/Settings/index.tsx:812 +msgid "Open system log" +msgstr "" + #: src/view/com/util/forms/DropdownButton.tsx:154 msgid "Opens {numItems} options" msgstr "Ouvre {numItems} options" @@ -2560,11 +3025,11 @@ msgstr "Ouvre {numItems} options" msgid "Opens additional details for a debug entry" msgstr "Ouvre des détails supplémentaires pour une entrée de débug" -#: src/view/com/notifications/FeedItem.tsx:349 +#: src/view/com/notifications/FeedItem.tsx:353 msgid "Opens an expanded list of users in this notification" msgstr "Ouvre une liste étendue des comptes dans cette notification" -#: src/view/com/composer/photos/OpenCameraBtn.tsx:61 +#: src/view/com/composer/photos/OpenCameraBtn.tsx:78 msgid "Opens camera on device" msgstr "Ouvre l’appareil photo de l’appareil" @@ -2572,7 +3037,7 @@ msgstr "Ouvre l’appareil photo de l’appareil" msgid "Opens composer" msgstr "Ouvre le rédacteur" -#: src/view/screens/Settings/index.tsx:595 +#: src/view/screens/Settings/index.tsx:611 msgid "Opens configurable language settings" msgstr "Ouvre les paramètres linguistiques configurables" @@ -2581,34 +3046,64 @@ msgid "Opens device photo gallery" msgstr "Ouvre la galerie de photos de l’appareil" #: src/view/com/profile/ProfileHeader.tsx:420 -msgid "Opens editor for profile display name, avatar, background image, and description" -msgstr "Ouvre l’éditeur pour le nom d’affichage du profil, l’avatar, l’image d’arrière-plan et la description" +#~ msgid "Opens editor for profile display name, avatar, background image, and description" +#~ msgstr "Ouvre l’éditeur pour le nom d’affichage du profil, l’avatar, l’image d’arrière-plan et la description" -#: src/view/screens/Settings/index.tsx:649 +#: src/view/screens/Settings/index.tsx:665 msgid "Opens external embeds settings" msgstr "Ouvre les paramètres d’intégration externe" +#: src/view/com/auth/HomeLoggedOutCTA.tsx:56 +#: src/view/com/auth/SplashScreen.tsx:70 +msgid "Opens flow to create a new Bluesky account" +msgstr "" + +#: src/view/com/auth/HomeLoggedOutCTA.tsx:74 +#: src/view/com/auth/SplashScreen.tsx:83 +msgid "Opens flow to sign into your existing Bluesky account" +msgstr "" + #: src/view/com/profile/ProfileHeader.tsx:575 -msgid "Opens followers list" -msgstr "Ouvre la liste des comptes abonnés" +#~ msgid "Opens followers list" +#~ msgstr "Ouvre la liste des comptes abonnés" #: src/view/com/profile/ProfileHeader.tsx:594 -msgid "Opens following list" -msgstr "Ouvre la liste des abonnements" +#~ msgid "Opens following list" +#~ msgstr "Ouvre la liste des abonnements" #: src/view/com/modals/InviteCodes.tsx:172 msgid "Opens list of invite codes" msgstr "Ouvre la liste des codes d’invitation" +#: src/view/screens/Settings/index.tsx:794 +msgid "Opens modal for account deletion confirmation. Requires email code" +msgstr "" + #: src/view/screens/Settings/index.tsx:774 -msgid "Opens modal for account deletion confirmation. Requires email code." -msgstr "Ouvre la fenêtre modale pour confirmer la suppression du compte. Requiert un code e-mail." +#~ msgid "Opens modal for account deletion confirmation. Requires email code." +#~ msgstr "Ouvre la fenêtre modale pour confirmer la suppression du compte. Requiert un code e-mail." + +#: src/view/screens/Settings/index.tsx:752 +msgid "Opens modal for changing your Bluesky password" +msgstr "" + +#: src/view/screens/Settings/index.tsx:714 +msgid "Opens modal for choosing a new Bluesky handle" +msgstr "" + +#: src/view/screens/Settings/index.tsx:775 +msgid "Opens modal for downloading your Bluesky account data (repository)" +msgstr "" + +#: src/view/screens/Settings/index.tsx:966 +msgid "Opens modal for email verification" +msgstr "" #: src/view/com/modals/ChangeHandle.tsx:281 msgid "Opens modal for using custom domain" msgstr "Ouvre une fenêtre modale pour utiliser un domaine personnalisé" -#: src/view/screens/Settings/index.tsx:620 +#: src/view/screens/Settings/index.tsx:636 msgid "Opens moderation settings" msgstr "Ouvre les paramètres de modération" @@ -2621,27 +3116,40 @@ msgstr "Ouvre le formulaire de réinitialisation du mot de passe" msgid "Opens screen to edit Saved Feeds" msgstr "Ouvre l’écran pour modifier les fils d’actu enregistrés" -#: src/view/screens/Settings/index.tsx:576 +#: src/view/screens/Settings/index.tsx:593 msgid "Opens screen with all saved feeds" msgstr "Ouvre l’écran avec tous les fils d’actu enregistrés" +#: src/view/screens/Settings/index.tsx:692 +msgid "Opens the app password settings" +msgstr "" + #: src/view/screens/Settings/index.tsx:676 -msgid "Opens the app password settings page" -msgstr "Ouvre la page de configuration du mot de passe" +#~ msgid "Opens the app password settings page" +#~ msgstr "Ouvre la page de configuration du mot de passe" + +#: src/view/screens/Settings/index.tsx:550 +msgid "Opens the Following feed preferences" +msgstr "" #: src/view/screens/Settings/index.tsx:535 -msgid "Opens the home feed preferences" -msgstr "Ouvre les préférences du fil d’accueil" +#~ msgid "Opens the home feed preferences" +#~ msgstr "Ouvre les préférences du fil d’accueil" -#: src/view/screens/Settings/index.tsx:805 +#: src/view/com/modals/LinkWarning.tsx:76 +msgid "Opens the linked website" +msgstr "" + +#: src/view/screens/Settings/index.tsx:825 +#: src/view/screens/Settings/index.tsx:835 msgid "Opens the storybook page" msgstr "Ouvre la page de l’historique" -#: src/view/screens/Settings/index.tsx:793 +#: src/view/screens/Settings/index.tsx:813 msgid "Opens the system log page" msgstr "Ouvre la page du journal système" -#: src/view/screens/Settings/index.tsx:556 +#: src/view/screens/Settings/index.tsx:571 msgid "Opens the threads preferences" msgstr "Ouvre les préférences relatives aux fils de discussion" @@ -2649,11 +3157,19 @@ msgstr "Ouvre les préférences relatives aux fils de discussion" msgid "Option {0} of {numItems}" msgstr "Option {0} sur {numItems}" +#: src/components/ReportDialog/SubmitView.tsx:162 +msgid "Optionally provide additional information below:" +msgstr "" + #: src/view/com/modals/Threadgate.tsx:89 msgid "Or combine these options:" msgstr "Ou une combinaison de ces options :" -#: src/view/com/auth/login/ChooseAccountForm.tsx:138 +#: src/lib/moderation/useReportOptions.ts:25 +msgid "Other" +msgstr "" + +#: src/view/com/auth/login/ChooseAccountForm.tsx:142 msgid "Other account" msgstr "Autre compte" @@ -2661,7 +3177,7 @@ msgstr "Autre compte" msgid "Other..." msgstr "Autre…" -#: src/components/Lists.tsx:194 +#: src/components/Lists.tsx:190 #: src/view/screens/NotFound.tsx:45 msgid "Page not found" msgstr "Page introuvable" @@ -2672,12 +3188,18 @@ msgstr "Page introuvable" #: src/view/com/auth/create/Step1.tsx:191 #: src/view/com/auth/create/Step1.tsx:201 +#: src/view/com/auth/login/LoginForm.tsx:210 #: src/view/com/auth/login/LoginForm.tsx:226 #: src/view/com/auth/login/SetNewPasswordForm.tsx:161 +#: src/view/com/modals/DeleteAccount.tsx:195 #: src/view/com/modals/DeleteAccount.tsx:202 msgid "Password" msgstr "Mot de passe" +#: src/view/com/modals/ChangePassword.tsx:142 +msgid "Password Changed" +msgstr "" + #: src/view/com/auth/login/Login.tsx:157 msgid "Password updated" msgstr "Mise à jour du mot de passe" @@ -2686,11 +3208,11 @@ msgstr "Mise à jour du mot de passe" msgid "Password updated!" msgstr "Mot de passe mis à jour !" -#: src/Navigation.tsx:162 +#: src/Navigation.tsx:164 msgid "People followed by @{0}" msgstr "Personnes suivies par @{0}" -#: src/Navigation.tsx:155 +#: src/Navigation.tsx:157 msgid "People following @{0}" msgstr "Personnes qui suivent @{0}" @@ -2710,11 +3232,15 @@ msgstr "Animaux domestiques" msgid "Pictures meant for adults." msgstr "Images destinées aux adultes." -#: src/view/screens/ProfileFeed.tsx:354 -#: src/view/screens/ProfileList.tsx:581 +#: src/view/screens/ProfileFeed.tsx:291 +#: src/view/screens/ProfileList.tsx:563 msgid "Pin to home" msgstr "Ajouter à l’accueil" +#: src/view/screens/ProfileFeed.tsx:294 +msgid "Pin to Home" +msgstr "" + #: src/view/screens/SavedFeeds.tsx:88 msgid "Pinned Feeds" msgstr "Fils épinglés" @@ -2768,16 +3294,20 @@ msgstr "Veuillez entrer votre e-mail." msgid "Please enter your password as well:" msgstr "Veuillez également entrer votre mot de passe :" +#: src/components/moderation/LabelsOnMeDialog.tsx:222 +msgid "Please explain why you think this label was incorrectly applied by {0}" +msgstr "" + #: src/view/com/modals/AppealLabel.tsx:72 #: src/view/com/modals/AppealLabel.tsx:75 -msgid "Please tell us why you think this content warning was incorrectly applied!" -msgstr "Dites-nous donc pourquoi vous pensez que cet avertissement de contenu a été appliqué à tort !" +#~ msgid "Please tell us why you think this content warning was incorrectly applied!" +#~ msgstr "Dites-nous donc pourquoi vous pensez que cet avertissement de contenu a été appliqué à tort !" #: src/view/com/modals/VerifyEmail.tsx:101 msgid "Please Verify Your Email" msgstr "Veuillez vérifier votre e-mail" -#: src/view/com/composer/Composer.tsx:222 +#: src/view/com/composer/Composer.tsx:221 msgid "Please wait for your link card to finish loading" msgstr "Veuillez patienter le temps que votre carte de lien soit chargée" @@ -2789,13 +3319,17 @@ msgstr "Politique" msgid "Porn" msgstr "Porno" -#: src/view/com/composer/Composer.tsx:357 -#: src/view/com/composer/Composer.tsx:365 +#: src/lib/moderation/useGlobalLabelStrings.ts:34 +msgid "Pornography" +msgstr "" + +#: src/view/com/composer/Composer.tsx:366 +#: src/view/com/composer/Composer.tsx:374 msgctxt "action" msgid "Post" msgstr "Poster" -#: src/view/com/post-thread/PostThread.tsx:303 +#: src/view/com/post-thread/PostThread.tsx:292 msgctxt "description" msgid "Post" msgstr "Post" @@ -2804,20 +3338,30 @@ msgstr "Post" msgid "Post by {0}" msgstr "Post de {0}" -#: src/Navigation.tsx:174 -#: src/Navigation.tsx:181 -#: src/Navigation.tsx:188 +#: src/Navigation.tsx:176 +#: src/Navigation.tsx:183 +#: src/Navigation.tsx:190 msgid "Post by @{0}" msgstr "Post de @{0}" -#: src/view/com/util/forms/PostDropdownBtn.tsx:108 +#: src/view/com/util/forms/PostDropdownBtn.tsx:105 msgid "Post deleted" msgstr "Post supprimé" -#: src/view/com/post-thread/PostThread.tsx:462 +#: src/view/com/post-thread/PostThread.tsx:157 msgid "Post hidden" msgstr "Post caché" +#: src/components/moderation/ModerationDetailsDialog.tsx:98 +#: src/lib/moderation/useModerationCauseDescription.ts:99 +msgid "Post Hidden by Muted Word" +msgstr "" + +#: src/components/moderation/ModerationDetailsDialog.tsx:101 +#: src/lib/moderation/useModerationCauseDescription.ts:108 +msgid "Post Hidden by You" +msgstr "" + #: src/view/com/composer/select-language/SelectLangBtn.tsx:87 msgid "Post language" msgstr "Langue du post" @@ -2826,7 +3370,8 @@ msgstr "Langue du post" msgid "Post Languages" msgstr "Langues du post" -#: src/view/com/post-thread/PostThread.tsx:514 +#: src/view/com/post-thread/PostThread.tsx:152 +#: src/view/com/post-thread/PostThread.tsx:164 msgid "Post not found" msgstr "Post introuvable" @@ -2834,7 +3379,7 @@ msgstr "Post introuvable" msgid "posts" msgstr "posts" -#: src/view/screens/Profile.tsx:180 +#: src/view/screens/Profile.tsx:188 msgid "Posts" msgstr "Posts" @@ -2850,7 +3395,11 @@ msgstr "Posts cachés" msgid "Potentially Misleading Link" msgstr "Lien potentiellement trompeur" -#: src/view/com/lightbox/Lightbox.web.tsx:135 +#: src/components/Lists.tsx:88 +msgid "Press to retry" +msgstr "" + +#: src/view/com/lightbox/Lightbox.web.tsx:150 msgid "Previous image" msgstr "Image précédente" @@ -2862,15 +3411,16 @@ msgstr "Langue principale" msgid "Prioritize Your Follows" msgstr "Définissez des priorités de vos suivis" -#: src/view/screens/Settings/index.tsx:632 +#: src/view/screens/Settings/index.tsx:648 #: src/view/shell/desktop/RightNav.tsx:72 msgid "Privacy" msgstr "Vie privée" -#: src/Navigation.tsx:219 +#: src/Navigation.tsx:231 +#: src/view/com/auth/create/Policies.tsx:69 #: src/view/screens/PrivacyPolicy.tsx:29 -#: src/view/screens/Settings/index.tsx:891 -#: src/view/shell/Drawer.tsx:262 +#: src/view/screens/Settings/index.tsx:921 +#: src/view/shell/Drawer.tsx:265 msgid "Privacy Policy" msgstr "Charte de confidentialité" @@ -2878,11 +3428,16 @@ msgstr "Charte de confidentialité" msgid "Processing..." msgstr "Traitement…" -#: src/view/shell/bottom-bar/BottomBar.tsx:247 -#: src/view/shell/desktop/LeftNav.tsx:415 +#: src/view/screens/DebugMod.tsx:888 +#: src/view/screens/Profile.tsx:340 +msgid "profile" +msgstr "" + +#: src/view/shell/bottom-bar/BottomBar.tsx:251 +#: src/view/shell/desktop/LeftNav.tsx:419 #: src/view/shell/Drawer.tsx:70 -#: src/view/shell/Drawer.tsx:546 -#: src/view/shell/Drawer.tsx:547 +#: src/view/shell/Drawer.tsx:549 +#: src/view/shell/Drawer.tsx:550 msgid "Profile" msgstr "Profil" @@ -2890,7 +3445,7 @@ msgstr "Profil" msgid "Profile updated" msgstr "Profil mis à jour" -#: src/view/screens/Settings/index.tsx:949 +#: src/view/screens/Settings/index.tsx:979 msgid "Protect your account by verifying your email." msgstr "Protégez votre compte en vérifiant votre e-mail." @@ -2906,11 +3461,11 @@ msgstr "Listes publiques et partageables de comptes à masquer ou à bloquer." msgid "Public, shareable lists which can drive feeds." msgstr "Les listes publiques et partageables qui peuvent alimenter les fils d’actu." -#: src/view/com/composer/Composer.tsx:342 +#: src/view/com/composer/Composer.tsx:351 msgid "Publish post" msgstr "Publier le post" -#: src/view/com/composer/Composer.tsx:342 +#: src/view/com/composer/Composer.tsx:351 msgid "Publish reply" msgstr "Publier la réponse" @@ -2936,6 +3491,10 @@ msgstr "Aléatoire" msgid "Ratios" msgstr "Ratios" +#: src/view/screens/Search/Search.tsx:776 +msgid "Recent Searches" +msgstr "" + #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:116 msgid "Recommended Feeds" msgstr "Fils d’actu recommandés" @@ -2944,36 +3503,50 @@ msgstr "Fils d’actu recommandés" msgid "Recommended Users" msgstr "Comptes recommandés" -#: src/components/dialogs/MutedWords.tsx:298 -#: src/view/com/modals/ListAddRemoveUsers.tsx:264 +#: src/components/dialogs/MutedWords.tsx:287 +#: src/view/com/feeds/FeedSourceCard.tsx:283 +#: src/view/com/modals/ListAddRemoveUsers.tsx:268 #: src/view/com/modals/SelfLabel.tsx:83 #: src/view/com/modals/UserAddRemoveLists.tsx:219 -#: src/view/com/util/UserAvatar.tsx:285 -#: src/view/com/util/UserBanner.tsx:91 +#: src/view/com/posts/FeedErrorMessage.tsx:204 msgid "Remove" msgstr "Supprimer" #: src/view/com/feeds/FeedSourceCard.tsx:108 -msgid "Remove {0} from my feeds?" -msgstr "Supprimer {0} de mes fils d’actu ?" +#~ msgid "Remove {0} from my feeds?" +#~ msgstr "Supprimer {0} de mes fils d’actu ?" #: src/view/com/util/AccountDropdownBtn.tsx:22 msgid "Remove account" msgstr "Supprimer compte" -#: src/view/com/posts/FeedErrorMessage.tsx:131 -#: src/view/com/posts/FeedErrorMessage.tsx:166 +#: src/view/com/util/UserAvatar.tsx:358 +msgid "Remove Avatar" +msgstr "" + +#: src/view/com/util/UserBanner.tsx:148 +msgid "Remove Banner" +msgstr "" + +#: src/view/com/posts/FeedErrorMessage.tsx:160 msgid "Remove feed" msgstr "Supprimer fil d’actu" -#: src/view/com/feeds/FeedSourceCard.tsx:107 -#: src/view/com/feeds/FeedSourceCard.tsx:169 -#: src/view/com/feeds/FeedSourceCard.tsx:174 -#: src/view/com/feeds/FeedSourceCard.tsx:245 -#: src/view/screens/ProfileFeed.tsx:273 +#: src/view/com/posts/FeedErrorMessage.tsx:201 +msgid "Remove feed?" +msgstr "" + +#: src/view/com/feeds/FeedSourceCard.tsx:173 +#: src/view/com/feeds/FeedSourceCard.tsx:233 +#: src/view/screens/ProfileFeed.tsx:334 +#: src/view/screens/ProfileFeed.tsx:340 msgid "Remove from my feeds" msgstr "Supprimer de mes fils d’actu" +#: src/view/com/feeds/FeedSourceCard.tsx:278 +msgid "Remove from my feeds?" +msgstr "" + #: src/view/com/composer/photos/Gallery.tsx:167 msgid "Remove image" msgstr "Supprimer l’image" @@ -2982,7 +3555,7 @@ msgstr "Supprimer l’image" msgid "Remove image preview" msgstr "Supprimer l’aperçu d’image" -#: src/components/dialogs/MutedWords.tsx:343 +#: src/components/dialogs/MutedWords.tsx:330 msgid "Remove mute word from your list" msgstr "Supprimer le mot masqué de votre liste" @@ -2991,28 +3564,35 @@ msgid "Remove repost" msgstr "Supprimer le repost" #: src/view/com/feeds/FeedSourceCard.tsx:175 -msgid "Remove this feed from my feeds?" -msgstr "Supprimer ce fil d’actu ?" +#~ msgid "Remove this feed from my feeds?" +#~ msgstr "Supprimer ce fil d’actu ?" + +#: src/view/com/posts/FeedErrorMessage.tsx:202 +msgid "Remove this feed from your saved feeds" +msgstr "" #: src/view/com/posts/FeedErrorMessage.tsx:132 -msgid "Remove this feed from your saved feeds?" -msgstr "Supprimer ce fil d’actu de vos fils d’actu enregistrés ?" +#~ msgid "Remove this feed from your saved feeds?" +#~ msgstr "Supprimer ce fil d’actu de vos fils d’actu enregistrés ?" #: src/view/com/modals/ListAddRemoveUsers.tsx:199 #: src/view/com/modals/UserAddRemoveLists.tsx:152 msgid "Removed from list" msgstr "Supprimé de la liste" -#: src/view/com/feeds/FeedSourceCard.tsx:113 -#: src/view/com/feeds/FeedSourceCard.tsx:180 +#: src/view/com/feeds/FeedSourceCard.tsx:121 msgid "Removed from my feeds" msgstr "Supprimé de mes fils d’actu" +#: src/view/screens/ProfileFeed.tsx:208 +msgid "Removed from your feeds" +msgstr "" + #: src/view/com/composer/ExternalEmbed.tsx:71 msgid "Removes default thumbnail from {0}" msgstr "Supprime la miniature par défaut de {0}" -#: src/view/screens/Profile.tsx:181 +#: src/view/screens/Profile.tsx:189 msgid "Replies" msgstr "Réponses" @@ -3020,7 +3600,7 @@ msgstr "Réponses" msgid "Replies to this thread are disabled" msgstr "Les réponses à ce fil de discussion sont désactivées" -#: src/view/com/composer/Composer.tsx:355 +#: src/view/com/composer/Composer.tsx:364 msgctxt "action" msgid "Reply" msgstr "Répondre" @@ -3029,34 +3609,55 @@ msgstr "Répondre" msgid "Reply Filters" msgstr "Filtres de réponse" -#: src/view/com/post/Post.tsx:167 -#: src/view/com/posts/FeedItem.tsx:287 +#: src/view/com/post/Post.tsx:166 +#: src/view/com/posts/FeedItem.tsx:280 msgctxt "description" msgid "Reply to <0/>" msgstr "Réponse à <0/>" #: src/view/com/modals/report/Modal.tsx:166 -msgid "Report {collectionName}" -msgstr "Signaler {collectionName}" +#~ msgid "Report {collectionName}" +#~ msgstr "Signaler {collectionName}" -#: src/view/com/profile/ProfileHeader.tsx:361 +#: src/view/com/profile/ProfileMenu.tsx:319 +#: src/view/com/profile/ProfileMenu.tsx:322 msgid "Report Account" msgstr "Signaler le compte" -#: src/view/screens/ProfileFeed.tsx:293 +#: src/view/screens/ProfileFeed.tsx:351 +#: src/view/screens/ProfileFeed.tsx:353 msgid "Report feed" msgstr "Signaler le fil d’actu" -#: src/view/screens/ProfileList.tsx:459 +#: src/view/screens/ProfileList.tsx:429 msgid "Report List" msgstr "Signaler la liste" -#: src/view/com/modals/report/SendReportButton.tsx:37 -#: src/view/com/util/forms/PostDropdownBtn.tsx:301 -#: src/view/com/util/forms/PostDropdownBtn.tsx:309 +#: src/view/com/util/forms/PostDropdownBtn.tsx:292 +#: src/view/com/util/forms/PostDropdownBtn.tsx:294 msgid "Report post" msgstr "Signaler le post" +#: src/components/ReportDialog/SelectReportOptionView.tsx:43 +msgid "Report this content" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:56 +msgid "Report this feed" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:53 +msgid "Report this list" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:50 +msgid "Report this post" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:47 +msgid "Report this user" +msgstr "" + #: src/view/com/modals/Repost.tsx:43 #: src/view/com/modals/Repost.tsx:48 #: src/view/com/modals/Repost.tsx:53 @@ -3078,19 +3679,19 @@ msgstr "Republier ou citer" msgid "Reposted By" msgstr "Republié par" -#: src/view/com/posts/FeedItem.tsx:207 +#: src/view/com/posts/FeedItem.tsx:197 msgid "Reposted by {0}" msgstr "Republié par {0}" -#: src/view/com/posts/FeedItem.tsx:224 +#: src/view/com/posts/FeedItem.tsx:214 msgid "Reposted by <0/>" msgstr "Republié par <0/>" -#: src/view/com/notifications/FeedItem.tsx:162 +#: src/view/com/notifications/FeedItem.tsx:166 msgid "reposted your post" msgstr "a republié votre post" -#: src/view/com/post-thread/PostThreadItem.tsx:188 +#: src/view/com/post-thread/PostThreadItem.tsx:187 msgid "Reposts of this post" msgstr "Reposts de ce post" @@ -3099,12 +3700,12 @@ msgstr "Reposts de ce post" msgid "Request Change" msgstr "Demande de modification" -#: src/view/com/modals/ChangePassword.tsx:239 #: src/view/com/modals/ChangePassword.tsx:241 +#: src/view/com/modals/ChangePassword.tsx:243 msgid "Request Code" msgstr "Demander un code" -#: src/view/screens/Settings/index.tsx:456 +#: src/view/screens/Settings/index.tsx:471 msgid "Require alt text before posting" msgstr "Nécessiter un texte alt avant de publier" @@ -3114,18 +3715,20 @@ msgstr "Obligatoire pour cet hébergeur" #: src/view/com/auth/login/SetNewPasswordForm.tsx:124 #: src/view/com/auth/login/SetNewPasswordForm.tsx:136 +#: src/view/com/modals/ChangePassword.tsx:185 msgid "Reset code" msgstr "Réinitialiser le code" -#: src/view/com/modals/ChangePassword.tsx:190 +#: src/view/com/modals/ChangePassword.tsx:192 msgid "Reset Code" msgstr "Code de réinitialisation" #: src/view/screens/Settings/index.tsx:824 -msgid "Reset onboarding" -msgstr "Réinitialiser le didacticiel" +#~ msgid "Reset onboarding" +#~ msgstr "Réinitialiser le didacticiel" -#: src/view/screens/Settings/index.tsx:827 +#: src/view/screens/Settings/index.tsx:854 +#: src/view/screens/Settings/index.tsx:857 msgid "Reset onboarding state" msgstr "Réinitialisation du didacticiel" @@ -3134,18 +3737,19 @@ msgid "Reset password" msgstr "Réinitialiser mot de passe" #: src/view/screens/Settings/index.tsx:814 -msgid "Reset preferences" -msgstr "Réinitialiser les préférences" +#~ msgid "Reset preferences" +#~ msgstr "Réinitialiser les préférences" -#: src/view/screens/Settings/index.tsx:817 +#: src/view/screens/Settings/index.tsx:844 +#: src/view/screens/Settings/index.tsx:847 msgid "Reset preferences state" msgstr "Réinitialiser l’état des préférences" -#: src/view/screens/Settings/index.tsx:825 +#: src/view/screens/Settings/index.tsx:855 msgid "Resets the onboarding state" msgstr "Réinitialise l’état d’accueil" -#: src/view/screens/Settings/index.tsx:815 +#: src/view/screens/Settings/index.tsx:845 msgid "Resets the preferences state" msgstr "Réinitialise l’état des préférences" @@ -3158,6 +3762,7 @@ msgstr "Réessaye la connection" msgid "Retries the last action, which errored out" msgstr "Réessaye la dernière action, qui a échoué" +#: src/components/Lists.tsx:98 #: src/screens/Onboarding/StepInterests/index.tsx:221 #: src/screens/Onboarding/StepInterests/index.tsx:224 #: src/view/com/auth/create/CreateAccount.tsx:181 @@ -3169,22 +3774,29 @@ msgstr "Réessaye la dernière action, qui a échoué" msgid "Retry" msgstr "Réessayer" -#: src/view/screens/ProfileList.tsx:903 +#: src/view/screens/ProfileList.tsx:917 msgid "Return to previous page" msgstr "Retourne à la page précédente" +#: src/view/screens/NotFound.tsx:59 +msgid "Returns to home page" +msgstr "" + +#: src/view/screens/NotFound.tsx:58 +#: src/view/screens/ProfileFeed.tsx:112 +msgid "Returns to previous page" +msgstr "" + #: src/view/com/lightbox/Lightbox.tsx:132 #: src/view/com/modals/CreateOrEditList.tsx:345 msgctxt "action" msgid "Save" msgstr "Enregistrer" -#: src/view/com/modals/BirthDateSettings.tsx:94 -#: src/view/com/modals/BirthDateSettings.tsx:97 +#: src/components/dialogs/BirthDateSettings.tsx:125 #: src/view/com/modals/ChangeHandle.tsx:173 #: src/view/com/modals/CreateOrEditList.tsx:337 #: src/view/com/modals/EditProfile.tsx:224 -#: src/view/screens/ProfileFeed.tsx:346 msgid "Save" msgstr "Enregistrer" @@ -3192,6 +3804,10 @@ msgstr "Enregistrer" msgid "Save alt text" msgstr "Enregistrer le texte alt" +#: src/components/dialogs/BirthDateSettings.tsx:119 +msgid "Save birthday" +msgstr "" + #: src/view/com/modals/EditProfile.tsx:232 msgid "Save Changes" msgstr "Enregistrer les modifications" @@ -3204,10 +3820,23 @@ msgstr "Enregistrer le changement de pseudo" msgid "Save image crop" msgstr "Enregistrer le recadrage de l’image" +#: src/view/screens/ProfileFeed.tsx:335 +#: src/view/screens/ProfileFeed.tsx:341 +msgid "Save to my feeds" +msgstr "" + #: src/view/screens/SavedFeeds.tsx:122 msgid "Saved Feeds" msgstr "Fils d’actu enregistrés" +#: src/view/com/lightbox/Lightbox.tsx:81 +msgid "Saved to your camera roll." +msgstr "" + +#: src/view/screens/ProfileFeed.tsx:212 +msgid "Saved to your feeds" +msgstr "" + #: src/view/com/modals/EditProfile.tsx:225 msgid "Saves any changes to your profile" msgstr "Enregistre toutes les modifications apportées à votre profil" @@ -3216,33 +3845,37 @@ msgstr "Enregistre toutes les modifications apportées à votre profil" msgid "Saves handle change to {handle}" msgstr "Enregistre le changement de pseudo en {handle}" +#: src/view/com/modals/crop-image/CropImage.web.tsx:145 +msgid "Saves image crop settings" +msgstr "" + #: src/screens/Onboarding/index.tsx:36 msgid "Science" msgstr "Science" -#: src/view/screens/ProfileList.tsx:859 +#: src/view/screens/ProfileList.tsx:873 msgid "Scroll to top" msgstr "Remonter en haut" -#: src/Navigation.tsx:447 +#: src/Navigation.tsx:459 #: src/view/com/auth/LoggedOut.tsx:122 #: src/view/com/modals/ListAddRemoveUsers.tsx:75 #: src/view/com/util/forms/SearchInput.tsx:67 #: src/view/com/util/forms/SearchInput.tsx:79 -#: src/view/screens/Search/Search.tsx:419 -#: src/view/screens/Search/Search.tsx:668 -#: src/view/screens/Search/Search.tsx:686 -#: src/view/shell/bottom-bar/BottomBar.tsx:159 -#: src/view/shell/desktop/LeftNav.tsx:324 -#: src/view/shell/desktop/Search.tsx:214 -#: src/view/shell/desktop/Search.tsx:223 -#: src/view/shell/Drawer.tsx:362 -#: src/view/shell/Drawer.tsx:363 +#: src/view/screens/Search/Search.tsx:420 +#: src/view/screens/Search/Search.tsx:669 +#: src/view/screens/Search/Search.tsx:687 +#: src/view/shell/bottom-bar/BottomBar.tsx:161 +#: src/view/shell/desktop/LeftNav.tsx:328 +#: src/view/shell/desktop/Search.tsx:215 +#: src/view/shell/desktop/Search.tsx:224 +#: src/view/shell/Drawer.tsx:365 +#: src/view/shell/Drawer.tsx:366 msgid "Search" msgstr "Recherche" -#: src/view/screens/Search/Search.tsx:735 -#: src/view/shell/desktop/Search.tsx:255 +#: src/view/screens/Search/Search.tsx:736 +#: src/view/shell/desktop/Search.tsx:256 msgid "Search for \"{query}\"" msgstr "Recherche de « {query} »" @@ -3296,6 +3929,14 @@ msgstr "Sélectionner {item}" msgid "Select from an existing account" msgstr "Sélectionner un compte existant" +#: src/view/screens/LanguageSettings.tsx:299 +msgid "Select languages" +msgstr "" + +#: src/components/ReportDialog/SelectLabelerView.tsx:32 +msgid "Select moderator" +msgstr "" + #: src/view/com/util/Selector.tsx:107 msgid "Select option {i} of {numItems}" msgstr "Sélectionne l’option {i} sur {numItems}" @@ -3309,6 +3950,10 @@ msgstr "Sélectionner un service" msgid "Select some accounts below to follow" msgstr "Sélectionnez quelques comptes à suivre ci-dessous" +#: src/components/ReportDialog/SubmitView.tsx:135 +msgid "Select the moderation service(s) to report to" +msgstr "" + #: src/view/com/auth/server-input/index.tsx:82 msgid "Select the service that hosts your data." msgstr "Sélectionnez le service qui héberge vos données." @@ -3317,7 +3962,7 @@ msgstr "Sélectionnez le service qui héberge vos données." msgid "Select topical feeds to follow from the list below" msgstr "Sélectionnez les fils d’actu thématiques à suivre dans la liste ci-dessous" -#: src/screens/Onboarding/StepModeration/index.tsx:75 +#: src/screens/Onboarding/StepModeration/index.tsx:62 msgid "Select what you want to see (or not see), and we’ll handle the rest." msgstr "Sélectionnez ce que vous voulez voir (ou ne pas voir), et nous nous occupons du reste." @@ -3326,8 +3971,12 @@ msgid "Select which languages you want your subscribed feeds to include. If none msgstr "Sélectionnez les langues que vous souhaitez voir figurer dans les fils d’actu que vous suivez. Si aucune langue n’est sélectionnée, toutes les langues seront affichées." #: src/view/screens/LanguageSettings.tsx:98 -msgid "Select your app language for the default text to display in the app" -msgstr "Sélectionnez la langue de votre application à afficher par défaut" +#~ msgid "Select your app language for the default text to display in the app" +#~ msgstr "Sélectionnez la langue de votre application à afficher par défaut" + +#: src/view/screens/LanguageSettings.tsx:98 +msgid "Select your app language for the default text to display in the app." +msgstr "" #: src/screens/Onboarding/StepInterests/index.tsx:196 msgid "Select your interests from the options below" @@ -3359,14 +4008,23 @@ msgctxt "action" msgid "Send Email" msgstr "Envoyer l’e-mail" -#: src/view/shell/Drawer.tsx:295 -#: src/view/shell/Drawer.tsx:316 +#: src/view/shell/Drawer.tsx:298 +#: src/view/shell/Drawer.tsx:319 msgid "Send feedback" msgstr "Envoyer des commentaires" +#: src/components/ReportDialog/SubmitView.tsx:214 +#: src/components/ReportDialog/SubmitView.tsx:218 +msgid "Send report" +msgstr "" + #: src/view/com/modals/report/SendReportButton.tsx:45 -msgid "Send Report" -msgstr "Envoyer le rapport" +#~ msgid "Send Report" +#~ msgstr "Envoyer le rapport" + +#: src/components/ReportDialog/SelectLabelerView.tsx:46 +msgid "Send report to {0}" +msgstr "" #: src/view/com/modals/DeleteAccount.tsx:133 msgid "Sends email with confirmation code for account deletion" @@ -3377,34 +4035,38 @@ msgid "Server address" msgstr "Adresse du serveur" #: src/view/com/modals/ContentFilteringSettings.tsx:311 -msgid "Set {value} for {labelGroup} content moderation policy" -msgstr "Choisis {value} pour la politique de modération de contenu {labelGroup}" +#~ msgid "Set {value} for {labelGroup} content moderation policy" +#~ msgstr "Choisis {value} pour la politique de modération de contenu {labelGroup}" #: src/view/com/modals/ContentFilteringSettings.tsx:160 #: src/view/com/modals/ContentFilteringSettings.tsx:179 -msgctxt "action" -msgid "Set Age" -msgstr "Enregistrer l’âge" +#~ msgctxt "action" +#~ msgid "Set Age" +#~ msgstr "Enregistrer l’âge" + +#: src/screens/Moderation/index.tsx:306 +msgid "Set birthdate" +msgstr "" #: src/view/screens/Settings/index.tsx:488 -msgid "Set color theme to dark" -msgstr "Change le thème de couleur en sombre" +#~ msgid "Set color theme to dark" +#~ msgstr "Change le thème de couleur en sombre" #: src/view/screens/Settings/index.tsx:481 -msgid "Set color theme to light" -msgstr "Change le thème de couleur en clair" +#~ msgid "Set color theme to light" +#~ msgstr "Change le thème de couleur en clair" #: src/view/screens/Settings/index.tsx:475 -msgid "Set color theme to system setting" -msgstr "Change le thème de couleur en fonction du paramètre système" +#~ msgid "Set color theme to system setting" +#~ msgstr "Change le thème de couleur en fonction du paramètre système" #: src/view/screens/Settings/index.tsx:514 -msgid "Set dark theme to the dark theme" -msgstr "Choisir le thème le plus sombre comme thème sombre" +#~ msgid "Set dark theme to the dark theme" +#~ msgstr "Choisir le thème le plus sombre comme thème sombre" #: src/view/screens/Settings/index.tsx:507 -msgid "Set dark theme to the dim theme" -msgstr "Choisir le thème atténué comme thème sombre" +#~ msgid "Set dark theme to the dim theme" +#~ msgstr "Choisir le thème atténué comme thème sombre" #: src/view/com/auth/login/SetNewPasswordForm.tsx:104 msgid "Set new password" @@ -3442,6 +4104,26 @@ msgstr "Créez votre compte" msgid "Sets Bluesky username" msgstr "Définit le pseudo Bluesky" +#: src/view/screens/Settings/index.tsx:503 +msgid "Sets color theme to dark" +msgstr "" + +#: src/view/screens/Settings/index.tsx:496 +msgid "Sets color theme to light" +msgstr "" + +#: src/view/screens/Settings/index.tsx:490 +msgid "Sets color theme to system setting" +msgstr "" + +#: src/view/screens/Settings/index.tsx:529 +msgid "Sets dark theme to the dark theme" +msgstr "" + +#: src/view/screens/Settings/index.tsx:522 +msgid "Sets dark theme to the dim theme" +msgstr "" + #: src/view/com/auth/login/ForgotPasswordForm.tsx:157 msgid "Sets email for password reset" msgstr "Définit l’e-mail pour la réinitialisation du mot de passe" @@ -3450,16 +4132,28 @@ msgstr "Définit l’e-mail pour la réinitialisation du mot de passe" msgid "Sets hosting provider for password reset" msgstr "Définit l’hébergeur pour la réinitialisation du mot de passe" +#: src/view/com/modals/crop-image/CropImage.web.tsx:123 +msgid "Sets image aspect ratio to square" +msgstr "" + +#: src/view/com/modals/crop-image/CropImage.web.tsx:113 +msgid "Sets image aspect ratio to tall" +msgstr "" + +#: src/view/com/modals/crop-image/CropImage.web.tsx:103 +msgid "Sets image aspect ratio to wide" +msgstr "" + #: src/view/com/auth/create/Step1.tsx:97 #: src/view/com/auth/login/LoginForm.tsx:151 msgid "Sets server for the Bluesky client" msgstr "Définit le serveur pour le client Bluesky" -#: src/Navigation.tsx:137 -#: src/view/screens/Settings/index.tsx:294 -#: src/view/shell/desktop/LeftNav.tsx:433 -#: src/view/shell/Drawer.tsx:567 -#: src/view/shell/Drawer.tsx:568 +#: src/Navigation.tsx:139 +#: src/view/screens/Settings/index.tsx:309 +#: src/view/shell/desktop/LeftNav.tsx:437 +#: src/view/shell/Drawer.tsx:570 +#: src/view/shell/Drawer.tsx:571 msgid "Settings" msgstr "Paramètres" @@ -3467,28 +4161,39 @@ msgstr "Paramètres" msgid "Sexual activity or erotic nudity." msgstr "Activité sexuelle ou nudité érotique." +#: src/lib/moderation/useGlobalLabelStrings.ts:38 +msgid "Sexually Suggestive" +msgstr "" + #: src/view/com/lightbox/Lightbox.tsx:141 msgctxt "action" msgid "Share" msgstr "Partager" -#: src/view/com/profile/ProfileHeader.tsx:295 -#: src/view/com/util/forms/PostDropdownBtn.tsx:231 +#: src/view/com/profile/ProfileMenu.tsx:215 +#: src/view/com/profile/ProfileMenu.tsx:224 +#: src/view/com/util/forms/PostDropdownBtn.tsx:228 #: src/view/com/util/forms/PostDropdownBtn.tsx:237 -#: src/view/com/util/post-ctrls/PostCtrls.tsx:215 -#: src/view/screens/ProfileList.tsx:418 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:218 +#: src/view/screens/ProfileList.tsx:388 msgid "Share" msgstr "Partager" -#: src/view/screens/ProfileFeed.tsx:305 +#: src/view/com/profile/ProfileMenu.tsx:373 +#: src/view/com/util/forms/PostDropdownBtn.tsx:347 +msgid "Share anyway" +msgstr "" + +#: src/view/screens/ProfileFeed.tsx:361 +#: src/view/screens/ProfileFeed.tsx:363 msgid "Share feed" msgstr "Partager le fil d’actu" -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:43 -#: src/view/com/modals/ContentFilteringSettings.tsx:266 -#: src/view/com/util/moderation/ContentHider.tsx:107 -#: src/view/com/util/moderation/PostHider.tsx:108 -#: src/view/screens/Settings/index.tsx:344 +#: src/components/moderation/ContentHider.tsx:115 +#: src/components/moderation/GlobalModerationLabelPref.tsx:45 +#: src/components/moderation/PostHider.tsx:107 +#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:54 +#: src/view/screens/Settings/index.tsx:359 msgid "Show" msgstr "Afficher" @@ -3496,21 +4201,31 @@ msgstr "Afficher" msgid "Show all replies" msgstr "Afficher toutes les réponses" -#: src/view/com/util/moderation/ScreenHider.tsx:132 +#: src/components/moderation/ScreenHider.tsx:162 +#: src/components/moderation/ScreenHider.tsx:165 msgid "Show anyway" msgstr "Afficher quand même" +#: src/lib/moderation/useLabelBehaviorDescription.ts:27 +#: src/lib/moderation/useLabelBehaviorDescription.ts:63 +msgid "Show badge" +msgstr "" + +#: src/lib/moderation/useLabelBehaviorDescription.ts:61 +msgid "Show badge and filter from feeds" +msgstr "" + #: src/view/com/modals/EmbedConsent.tsx:87 msgid "Show embeds from {0}" msgstr "Afficher les intégrations de {0}" -#: src/view/com/profile/ProfileHeader.tsx:459 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:193 msgid "Show follows similar to {0}" msgstr "Afficher les suivis similaires à {0}" -#: src/view/com/post-thread/PostThreadItem.tsx:538 -#: src/view/com/post/Post.tsx:198 -#: src/view/com/posts/FeedItem.tsx:363 +#: src/view/com/post-thread/PostThreadItem.tsx:507 +#: src/view/com/post/Post.tsx:201 +#: src/view/com/posts/FeedItem.tsx:355 msgid "Show More" msgstr "Voir plus" @@ -3562,40 +4277,48 @@ msgstr "Afficher les reposts" msgid "Show reposts in Following" msgstr "Afficher les reposts dans le fil d’actu « Following »" -#: src/view/com/util/moderation/ContentHider.tsx:67 -#: src/view/com/util/moderation/PostHider.tsx:61 +#: src/components/moderation/ContentHider.tsx:68 +#: src/components/moderation/PostHider.tsx:64 msgid "Show the content" msgstr "Afficher le contenu" -#: src/view/com/notifications/FeedItem.tsx:347 +#: src/view/com/notifications/FeedItem.tsx:351 msgid "Show users" msgstr "Afficher les comptes" +#: src/lib/moderation/useLabelBehaviorDescription.ts:58 +msgid "Show warning" +msgstr "" + +#: src/lib/moderation/useLabelBehaviorDescription.ts:56 +msgid "Show warning and filter from feeds" +msgstr "" + #: src/view/com/profile/ProfileHeader.tsx:462 -msgid "Shows a list of users similar to this user." -msgstr "Affiche une liste de comptes similaires à ce compte." +#~ msgid "Shows a list of users similar to this user." +#~ msgstr "Affiche une liste de comptes similaires à ce compte." -#: src/view/com/post-thread/PostThreadFollowBtn.tsx:124 -#: src/view/com/profile/ProfileHeader.tsx:506 +#: src/view/com/post-thread/PostThreadFollowBtn.tsx:127 msgid "Shows posts from {0} in your feed" msgstr "Affiche les posts de {0} dans votre fil d’actu" -#: src/view/com/auth/HomeLoggedOutCTA.tsx:70 +#: src/view/com/auth/HomeLoggedOutCTA.tsx:72 #: src/view/com/auth/login/Login.tsx:98 -#: src/view/com/auth/SplashScreen.tsx:79 -#: src/view/shell/bottom-bar/BottomBar.tsx:285 -#: src/view/shell/bottom-bar/BottomBar.tsx:286 -#: src/view/shell/bottom-bar/BottomBar.tsx:288 +#: src/view/com/auth/SplashScreen.tsx:81 +#: src/view/shell/bottom-bar/BottomBar.tsx:289 +#: src/view/shell/bottom-bar/BottomBar.tsx:290 +#: src/view/shell/bottom-bar/BottomBar.tsx:292 #: src/view/shell/bottom-bar/BottomBarWeb.tsx:178 #: src/view/shell/bottom-bar/BottomBarWeb.tsx:179 #: src/view/shell/bottom-bar/BottomBarWeb.tsx:181 #: src/view/shell/NavSignupCard.tsx:58 #: src/view/shell/NavSignupCard.tsx:59 +#: src/view/shell/NavSignupCard.tsx:61 msgid "Sign in" msgstr "Connexion" -#: src/view/com/auth/HomeLoggedOutCTA.tsx:78 -#: src/view/com/auth/SplashScreen.tsx:82 +#: src/view/com/auth/HomeLoggedOutCTA.tsx:82 +#: src/view/com/auth/SplashScreen.tsx:86 #: src/view/com/auth/SplashScreen.web.tsx:91 msgid "Sign In" msgstr "Connexion" @@ -3604,7 +4327,7 @@ msgstr "Connexion" msgid "Sign in as {0}" msgstr "Se connecter en tant que {0}" -#: src/view/com/auth/login/ChooseAccountForm.tsx:118 +#: src/view/com/auth/login/ChooseAccountForm.tsx:122 #: src/view/com/auth/login/Login.tsx:116 msgid "Sign in as..." msgstr "Se connecter en tant que…" @@ -3613,16 +4336,16 @@ msgstr "Se connecter en tant que…" msgid "Sign into" msgstr "Se connecter à" -#: src/view/com/modals/SwitchAccount.tsx:64 -#: src/view/com/modals/SwitchAccount.tsx:69 -#: src/view/screens/Settings/index.tsx:100 -#: src/view/screens/Settings/index.tsx:103 +#: src/view/com/modals/SwitchAccount.tsx:68 +#: src/view/com/modals/SwitchAccount.tsx:73 +#: src/view/screens/Settings/index.tsx:105 +#: src/view/screens/Settings/index.tsx:108 msgid "Sign out" msgstr "Déconnexion" -#: src/view/shell/bottom-bar/BottomBar.tsx:275 -#: src/view/shell/bottom-bar/BottomBar.tsx:276 -#: src/view/shell/bottom-bar/BottomBar.tsx:278 +#: src/view/shell/bottom-bar/BottomBar.tsx:279 +#: src/view/shell/bottom-bar/BottomBar.tsx:280 +#: src/view/shell/bottom-bar/BottomBar.tsx:282 #: src/view/shell/bottom-bar/BottomBarWeb.tsx:168 #: src/view/shell/bottom-bar/BottomBarWeb.tsx:169 #: src/view/shell/bottom-bar/BottomBarWeb.tsx:171 @@ -3636,25 +4359,26 @@ msgstr "S’inscrire" msgid "Sign up or sign in to join the conversation" msgstr "S’inscrire ou se connecter pour participer à la conversation" -#: src/view/com/util/moderation/ScreenHider.tsx:76 +#: src/components/moderation/ScreenHider.tsx:98 +#: src/lib/moderation/useGlobalLabelStrings.ts:28 msgid "Sign-in Required" msgstr "Connexion requise" -#: src/view/screens/Settings/index.tsx:355 +#: src/view/screens/Settings/index.tsx:370 msgid "Signed in as" msgstr "Connecté en tant que" -#: src/view/com/auth/login/ChooseAccountForm.tsx:103 +#: src/view/com/auth/login/ChooseAccountForm.tsx:107 msgid "Signed in as @{0}" msgstr "Connecté en tant que @{0}" -#: src/view/com/modals/SwitchAccount.tsx:66 +#: src/view/com/modals/SwitchAccount.tsx:70 msgid "Signs {0} out of Bluesky" msgstr "Déconnecte {0} de Bluesky" #: src/screens/Onboarding/StepInterests/index.tsx:235 #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:195 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:33 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:35 msgid "Skip" msgstr "Ignorer" @@ -3666,11 +4390,17 @@ msgstr "Passer cette étape" msgid "Software Dev" msgstr "Développement de logiciels" +#: src/components/ReportDialog/index.tsx:52 +#: src/screens/Moderation/index.tsx:116 +#: src/screens/Profile/Sections/Labels.tsx:77 +msgid "Something went wrong, please try again." +msgstr "" + #: src/components/Lists.tsx:203 -msgid "Something went wrong!" -msgstr "Quelque chose n’a pas marché !" +#~ msgid "Something went wrong!" +#~ msgstr "Quelque chose n’a pas marché !" -#: src/App.native.tsx:66 +#: src/App.native.tsx:71 msgid "Sorry! Your session expired. Please log in again." msgstr "Désolé ! Votre session a expiré. Essayez de vous reconnecter." @@ -3682,6 +4412,18 @@ msgstr "Trier les réponses" msgid "Sort replies to the same post by:" msgstr "Trier les réponses au même post par :" +#: src/components/moderation/LabelsOnMeDialog.tsx:147 +msgid "Source:" +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:65 +msgid "Spam" +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:53 +msgid "Spam; excessive mentions or replies" +msgstr "" + #: src/screens/Onboarding/index.tsx:30 msgid "Sports" msgstr "Sports" @@ -3690,7 +4432,7 @@ msgstr "Sports" msgid "Square" msgstr "Carré" -#: src/view/screens/Settings/index.tsx:871 +#: src/view/screens/Settings/index.tsx:901 msgid "Status page" msgstr "État du service" @@ -3698,37 +4440,50 @@ msgstr "État du service" msgid "Step {0} of {numSteps}" msgstr "Étape {0} sur {numSteps}" -#: src/view/screens/Settings/index.tsx:274 +#: src/view/screens/Settings/index.tsx:288 msgid "Storage cleared, you need to restart the app now." msgstr "Stockage effacé, vous devez redémarrer l’application maintenant." -#: src/Navigation.tsx:204 -#: src/view/screens/Settings/index.tsx:807 +#: src/Navigation.tsx:211 +#: src/view/screens/Settings/index.tsx:827 msgid "Storybook" msgstr "Historique" -#: src/view/com/modals/AppealLabel.tsx:101 +#: src/components/moderation/LabelsOnMeDialog.tsx:256 +#: src/components/moderation/LabelsOnMeDialog.tsx:257 msgid "Submit" msgstr "Envoyer" -#: src/view/screens/ProfileList.tsx:608 +#: src/view/screens/ProfileList.tsx:590 msgid "Subscribe" msgstr "S’abonner" +#: src/screens/Profile/Sections/Labels.tsx:181 +msgid "Subscribe to @{0} to use these labels:" +msgstr "" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:222 +msgid "Subscribe to Labeler" +msgstr "" + #: src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx:173 #: src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx:308 msgid "Subscribe to the {0} feed" msgstr "S’abonner au fil d’actu {0}" -#: src/view/screens/ProfileList.tsx:604 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:185 +msgid "Subscribe to this labeler" +msgstr "" + +#: src/view/screens/ProfileList.tsx:586 msgid "Subscribe to this list" msgstr "S’abonner à cette liste" -#: src/view/screens/Search/Search.tsx:374 +#: src/view/screens/Search/Search.tsx:375 msgid "Suggested Follows" msgstr "Suivis suggérés" -#: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:64 +#: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:65 msgid "Suggested for you" msgstr "Suggérés pour vous" @@ -3736,35 +4491,35 @@ msgstr "Suggérés pour vous" msgid "Suggestive" msgstr "Suggestif" -#: src/Navigation.tsx:214 +#: src/Navigation.tsx:226 #: src/view/screens/Support.tsx:30 #: src/view/screens/Support.tsx:33 msgid "Support" msgstr "Soutien" -#: src/view/com/modals/SwitchAccount.tsx:117 +#: src/view/com/modals/SwitchAccount.tsx:121 msgid "Switch Account" msgstr "Changer de compte" -#: src/view/com/modals/SwitchAccount.tsx:97 -#: src/view/screens/Settings/index.tsx:130 +#: src/view/com/modals/SwitchAccount.tsx:101 +#: src/view/screens/Settings/index.tsx:135 msgid "Switch to {0}" msgstr "Basculer sur {0}" -#: src/view/com/modals/SwitchAccount.tsx:98 -#: src/view/screens/Settings/index.tsx:131 +#: src/view/com/modals/SwitchAccount.tsx:102 +#: src/view/screens/Settings/index.tsx:136 msgid "Switches the account you are logged in to" msgstr "Bascule le compte auquel vous êtes connectés vers" -#: src/view/screens/Settings/index.tsx:472 +#: src/view/screens/Settings/index.tsx:487 msgid "System" msgstr "Système" -#: src/view/screens/Settings/index.tsx:795 +#: src/view/screens/Settings/index.tsx:815 msgid "System log" msgstr "Journal système" -#: src/components/dialogs/MutedWords.tsx:337 +#: src/components/dialogs/MutedWords.tsx:324 msgid "tag" msgstr "mot-clé" @@ -3788,30 +4543,49 @@ msgstr "Technologie" msgid "Terms" msgstr "Conditions générales" -#: src/Navigation.tsx:224 -#: src/view/screens/Settings/index.tsx:885 +#: src/Navigation.tsx:236 +#: src/view/com/auth/create/Policies.tsx:59 +#: src/view/screens/Settings/index.tsx:915 #: src/view/screens/TermsOfService.tsx:29 -#: src/view/shell/Drawer.tsx:256 +#: src/view/shell/Drawer.tsx:259 msgid "Terms of Service" msgstr "Conditions d’utilisation" -#: src/components/dialogs/MutedWords.tsx:337 +#: src/lib/moderation/useReportOptions.ts:58 +#: src/lib/moderation/useReportOptions.ts:79 +#: src/lib/moderation/useReportOptions.ts:87 +msgid "Terms used violate community standards" +msgstr "" + +#: src/components/dialogs/MutedWords.tsx:324 msgid "text" msgstr "texte" -#: src/view/com/modals/AppealLabel.tsx:70 -#: src/view/com/modals/report/InputIssueDetails.tsx:51 +#: src/components/moderation/LabelsOnMeDialog.tsx:220 msgid "Text input field" msgstr "Champ de saisie de texte" +#: src/components/ReportDialog/SubmitView.tsx:78 +msgid "Thank you. Your report has been sent." +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:466 +msgid "That contains the following:" +msgstr "" + #: src/view/com/auth/create/CreateAccount.tsx:94 msgid "That handle is already taken." msgstr "Ce pseudo est déjà occupé." -#: src/view/com/profile/ProfileHeader.tsx:263 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:274 +#: src/view/com/profile/ProfileMenu.tsx:349 msgid "The account will be able to interact with you after unblocking." msgstr "Ce compte pourra interagir avec vous après le déblocage." +#: src/components/moderation/ModerationDetailsDialog.tsx:128 +msgid "the author" +msgstr "" + #: src/view/screens/CommunityGuidelines.tsx:36 msgid "The Community Guidelines have been moved to <0/>" msgstr "Les lignes directrices communautaires ont été déplacées vers <0/>" @@ -3820,11 +4594,20 @@ msgstr "Les lignes directrices communautaires ont été déplacées vers <0/>" msgid "The Copyright Policy has been moved to <0/>" msgstr "Notre politique de droits d’auteur a été déplacée vers <0/>" +#: src/components/moderation/LabelsOnMeDialog.tsx:49 +msgid "The following labels were applied to your account." +msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:50 +msgid "The following labels were applied to your content." +msgstr "" + #: src/screens/Onboarding/Layout.tsx:60 msgid "The following steps will help customize your Bluesky experience." msgstr "Les étapes suivantes vous aideront à personnaliser votre expérience avec Bluesky." -#: src/view/com/post-thread/PostThread.tsx:517 +#: src/view/com/post-thread/PostThread.tsx:153 +#: src/view/com/post-thread/PostThread.tsx:165 msgid "The post may have been deleted." msgstr "Ce post a peut-être été supprimé." @@ -3844,20 +4627,21 @@ msgstr "Nos conditions d’utilisation ont été déplacées vers" msgid "There are many feeds to try:" msgstr "Il existe de nombreux fils d’actu à essayer :" -#: src/view/screens/ProfileFeed.tsx:550 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:113 +#: src/view/screens/ProfileFeed.tsx:543 msgid "There was an an issue contacting the server, please check your internet connection and try again." msgstr "Il y a eu un problème de connexion au serveur, veuillez vérifier votre connexion Internet et réessayez." -#: src/view/com/posts/FeedErrorMessage.tsx:139 +#: src/view/com/posts/FeedErrorMessage.tsx:138 msgid "There was an an issue removing this feed. Please check your internet connection and try again." msgstr "Il y a eu un problème lors de la suppression du fil, veuillez vérifier votre connexion Internet et réessayez." -#: src/view/screens/ProfileFeed.tsx:210 +#: src/view/screens/ProfileFeed.tsx:217 msgid "There was an an issue updating your feeds, please check your internet connection and try again." msgstr "Il y a eu un problème lors de la mise à jour de vos fils d’actu, veuillez vérifier votre connexion Internet et réessayez." -#: src/view/screens/ProfileFeed.tsx:237 -#: src/view/screens/ProfileList.tsx:267 +#: src/view/screens/ProfileFeed.tsx:244 +#: src/view/screens/ProfileList.tsx:275 #: src/view/screens/SavedFeeds.tsx:209 #: src/view/screens/SavedFeeds.tsx:231 #: src/view/screens/SavedFeeds.tsx:252 @@ -3866,9 +4650,8 @@ msgstr "Il y a eu un problème de connexion au serveur" #: src/view/com/auth/onboarding/RecommendedFeedsItem.tsx:57 #: src/view/com/auth/onboarding/RecommendedFeedsItem.tsx:66 -#: src/view/com/feeds/FeedSourceCard.tsx:115 -#: src/view/com/feeds/FeedSourceCard.tsx:129 -#: src/view/com/feeds/FeedSourceCard.tsx:183 +#: src/view/com/feeds/FeedSourceCard.tsx:110 +#: src/view/com/feeds/FeedSourceCard.tsx:123 msgid "There was an issue contacting your server" msgstr "Il y a eu un problème de connexion à votre serveur" @@ -3876,7 +4659,7 @@ msgstr "Il y a eu un problème de connexion à votre serveur" msgid "There was an issue fetching notifications. Tap here to try again." msgstr "Il y a eu un problème lors de la récupération des notifications. Appuyez ici pour réessayer." -#: src/view/com/posts/Feed.tsx:265 +#: src/view/com/posts/Feed.tsx:283 msgid "There was an issue fetching posts. Tap here to try again." msgstr "Il y a eu un problème lors de la récupération des posts. Appuyez ici pour réessayer." @@ -3889,34 +4672,40 @@ msgstr "Il y a eu un problème lors de la récupération de la liste. Appuyez ic msgid "There was an issue fetching your lists. Tap here to try again." msgstr "Il y a eu un problème lors de la récupération de vos listes. Appuyez ici pour réessayer." -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:63 -#: src/view/com/modals/ContentFilteringSettings.tsx:126 +#: src/components/ReportDialog/SubmitView.tsx:83 +msgid "There was an issue sending your report. Please check your internet connection." +msgstr "" + +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:65 msgid "There was an issue syncing your preferences with the server" msgstr "Il y a eu un problème de synchronisation de vos préférences avec le serveur" -#: src/view/screens/AppPasswords.tsx:66 +#: src/view/screens/AppPasswords.tsx:68 msgid "There was an issue with fetching your app passwords" msgstr "Il y a eu un problème lors de la récupération de vos mots de passe d’application" -#: src/view/com/post-thread/PostThreadFollowBtn.tsx:93 -#: src/view/com/post-thread/PostThreadFollowBtn.tsx:105 -#: src/view/com/profile/ProfileHeader.tsx:157 -#: src/view/com/profile/ProfileHeader.tsx:178 -#: src/view/com/profile/ProfileHeader.tsx:217 -#: src/view/com/profile/ProfileHeader.tsx:230 -#: src/view/com/profile/ProfileHeader.tsx:250 -#: src/view/com/profile/ProfileHeader.tsx:272 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:98 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:120 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:134 +#: src/view/com/post-thread/PostThreadFollowBtn.tsx:96 +#: src/view/com/post-thread/PostThreadFollowBtn.tsx:108 +#: src/view/com/profile/ProfileMenu.tsx:106 +#: src/view/com/profile/ProfileMenu.tsx:117 +#: src/view/com/profile/ProfileMenu.tsx:132 +#: src/view/com/profile/ProfileMenu.tsx:143 +#: src/view/com/profile/ProfileMenu.tsx:157 +#: src/view/com/profile/ProfileMenu.tsx:170 msgid "There was an issue! {0}" msgstr "Il y a eu un problème ! {0}" #: src/view/screens/ProfileList.tsx:288 -#: src/view/screens/ProfileList.tsx:307 -#: src/view/screens/ProfileList.tsx:329 -#: src/view/screens/ProfileList.tsx:348 +#: src/view/screens/ProfileList.tsx:302 +#: src/view/screens/ProfileList.tsx:316 +#: src/view/screens/ProfileList.tsx:330 msgid "There was an issue. Please check your internet connection and try again." msgstr "Il y a eu un problème. Veuillez vérifier votre connexion Internet et réessayez." -#: src/view/com/util/ErrorBoundary.tsx:36 +#: src/view/com/util/ErrorBoundary.tsx:51 msgid "There was an unexpected issue in the application. Please let us know if this happened to you!" msgstr "Un problème inattendu s’est produit dans l’application. N’hésitez pas à nous faire savoir si cela vous est arrivé !" @@ -3928,19 +4717,32 @@ msgstr "Il y a eu un afflux de nouveaux personnes sur Bluesky ! Nous activerons msgid "These are popular accounts you might like:" msgstr "Voici des comptes populaires qui pourraient vous intéresser :" -#: src/view/com/util/moderation/ScreenHider.tsx:88 +#: src/components/moderation/ScreenHider.tsx:117 msgid "This {screenDescription} has been flagged:" msgstr "Ce {screenDescription} a été signalé :" -#: src/view/com/util/moderation/ScreenHider.tsx:83 +#: src/components/moderation/ScreenHider.tsx:112 msgid "This account has requested that users sign in to view their profile." msgstr "Ce compte a demandé aux personnes de se connecter pour voir son profil." +#: src/components/moderation/LabelsOnMeDialog.tsx:205 +msgid "This appeal will be sent to <0>{0}." +msgstr "" + +#: src/lib/moderation/useGlobalLabelStrings.ts:19 +msgid "This content has been hidden by the moderators." +msgstr "" + +#: src/lib/moderation/useGlobalLabelStrings.ts:24 +msgid "This content has received a general warning from moderators." +msgstr "" + #: src/view/com/modals/EmbedConsent.tsx:68 msgid "This content is hosted by {0}. Do you want to enable external media?" msgstr "Ce contenu est hébergé par {0}. Voulez-vous activer les médias externes ?" -#: src/view/com/modals/ModerationDetails.tsx:67 +#: src/components/moderation/ModerationDetailsDialog.tsx:78 +#: src/lib/moderation/useModerationCauseDescription.ts:77 msgid "This content is not available because one of the users involved has blocked the other." msgstr "Ce contenu n’est pas disponible car l’un des comptes impliqués a bloqué l’autre." @@ -3949,16 +4751,20 @@ msgid "This content is not viewable without a Bluesky account." msgstr "Ce contenu n’est pas visible sans un compte Bluesky." #: src/view/screens/Settings/ExportCarDialog.tsx:75 -msgid "This feature is in beta. You can read more about repository exports in <0>this blogpost." -msgstr "Cette fonctionnalité est en version bêta. Vous pouvez en savoir plus sur les exportations de dépôts dans <0>ce blogpost." +#~ msgid "This feature is in beta. You can read more about repository exports in <0>this blogpost." +#~ msgstr "Cette fonctionnalité est en version bêta. Vous pouvez en savoir plus sur les exportations de dépôts dans <0>ce blogpost." + +#: src/view/screens/Settings/ExportCarDialog.tsx:75 +msgid "This feature is in beta. You can read more about repository exports in <0>this blogpost." +msgstr "" #: src/view/com/posts/FeedErrorMessage.tsx:114 msgid "This feed is currently receiving high traffic and is temporarily unavailable. Please try again later." msgstr "Ce fil d’actu reçoit actuellement un trafic important, il est temporairement indisponible. Veuillez réessayer plus tard." -#: src/view/screens/Profile.tsx:420 +#: src/screens/Profile/Sections/Feed.tsx:50 #: src/view/screens/ProfileFeed.tsx:476 -#: src/view/screens/ProfileList.tsx:661 +#: src/view/screens/ProfileList.tsx:675 msgid "This feed is empty!" msgstr "Ce fil d’actu est vide !" @@ -3966,7 +4772,7 @@ msgstr "Ce fil d’actu est vide !" msgid "This feed is empty! You may need to follow more users or tune your language settings." msgstr "Ce fil d’actu est vide ! Vous devriez peut-être suivre plus de comptes ou ajuster vos paramètres de langue." -#: src/view/com/modals/BirthDateSettings.tsx:61 +#: src/components/dialogs/BirthDateSettings.tsx:41 msgid "This information is not shared with other users." msgstr "Ces informations ne sont pas partagées avec d’autres personnes." @@ -3974,14 +4780,26 @@ msgstr "Ces informations ne sont pas partagées avec d’autres personnes." msgid "This is important in case you ever need to change your email or reset your password." msgstr "Ceci est important au cas où vous auriez besoin de changer d’e-mail ou de réinitialiser votre mot de passe." +#: src/components/moderation/ModerationDetailsDialog.tsx:125 +msgid "This label was applied by {0}." +msgstr "" + +#: src/screens/Profile/Sections/Labels.tsx:168 +msgid "This labeler hasn't declared what labels it publishes, and may not be active." +msgstr "" + #: src/view/com/modals/LinkWarning.tsx:58 msgid "This link is taking you to the following website:" msgstr "Ce lien vous conduit au site Web suivant :" -#: src/view/screens/ProfileList.tsx:839 +#: src/view/screens/ProfileList.tsx:853 msgid "This list is empty!" msgstr "Cette liste est vide !" +#: src/screens/Profile/ErrorState.tsx:40 +msgid "This moderation service is unavailable. See below for more details. If this issue persists, contact us." +msgstr "" + #: src/view/com/modals/AddAppPasswords.tsx:106 msgid "This name is already in use" msgstr "Ce nom est déjà utilisé" @@ -3990,32 +4808,77 @@ msgstr "Ce nom est déjà utilisé" msgid "This post has been deleted." msgstr "Ce post a été supprimé." -#: src/view/com/modals/ModerationDetails.tsx:62 +#: src/view/com/util/forms/PostDropdownBtn.tsx:344 +msgid "This post is only visible to logged-in users. It won't be visible to people who aren't logged in." +msgstr "" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:326 +msgid "This post will be hidden from feeds." +msgstr "" + +#: src/view/com/profile/ProfileMenu.tsx:370 +msgid "This profile is only visible to logged-in users. It won't be visible to people who aren't logged in." +msgstr "" + +#: src/view/com/auth/create/Policies.tsx:46 +msgid "This service has not provided terms of service or a privacy policy." +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:446 +msgid "This should create a domain record at:" +msgstr "" + +#: src/view/com/profile/ProfileFollowers.tsx:95 +msgid "This user doesn't have any followers." +msgstr "" + +#: src/components/moderation/ModerationDetailsDialog.tsx:73 +#: src/lib/moderation/useModerationCauseDescription.ts:68 msgid "This user has blocked you. You cannot view their content." msgstr "Ce compte vous a bloqué. Vous ne pouvez pas voir son contenu." +#: src/lib/moderation/useGlobalLabelStrings.ts:30 +msgid "This user has requested that their content only be shown to signed-in users." +msgstr "" + #: src/view/com/modals/ModerationDetails.tsx:42 -msgid "This user is included in the <0/> list which you have blocked." -msgstr "Ce compte est inclus dans la liste <0/> que vous avez bloquée." +#~ msgid "This user is included in the <0/> list which you have blocked." +#~ msgstr "Ce compte est inclus dans la liste <0/> que vous avez bloquée." #: src/view/com/modals/ModerationDetails.tsx:74 -msgid "This user is included in the <0/> list which you have muted." -msgstr "Ce compte est inclus dans la liste <0/> que vous avez masquée." +#~ msgid "This user is included in the <0/> list which you have muted." +#~ msgstr "Ce compte est inclus dans la liste <0/> que vous avez masquée." + +#: src/components/moderation/ModerationDetailsDialog.tsx:56 +msgid "This user is included in the <0>{0} list which you have blocked." +msgstr "" + +#: src/components/moderation/ModerationDetailsDialog.tsx:85 +msgid "This user is included in the <0>{0} list which you have muted." +msgstr "" + +#: src/view/com/profile/ProfileFollows.tsx:94 +msgid "This user isn't following anyone." +msgstr "" #: src/view/com/modals/SelfLabel.tsx:137 msgid "This warning is only available for posts with media attached." msgstr "Cet avertissement n’est disponible que pour les posts contenant des médias." -#: src/components/dialogs/MutedWords.tsx:285 +#: src/components/dialogs/MutedWords.tsx:284 msgid "This will delete {0} from your muted words. You can always add it back later." msgstr "Cela supprimera {0} de vos mots masqués. Vous pourrez toujours le réintégrer plus tard." #: src/view/com/util/forms/PostDropdownBtn.tsx:282 -msgid "This will hide this post from your feeds." -msgstr "Cela va masquer ce post de vos fils d’actu." +#~ msgid "This will hide this post from your feeds." +#~ msgstr "Cela va masquer ce post de vos fils d’actu." + +#: src/view/screens/Settings/index.tsx:570 +msgid "Thread preferences" +msgstr "" #: src/view/screens/PreferencesThreads.tsx:53 -#: src/view/screens/Settings/index.tsx:565 +#: src/view/screens/Settings/index.tsx:580 msgid "Thread Preferences" msgstr "Préférences des fils de discussion" @@ -4023,10 +4886,14 @@ msgstr "Préférences des fils de discussion" msgid "Threaded Mode" msgstr "Mode arborescent" -#: src/Navigation.tsx:257 +#: src/Navigation.tsx:269 msgid "Threads Preferences" msgstr "Préférences de fils de discussion" +#: src/components/ReportDialog/SelectLabelerView.tsx:35 +msgid "To whom would you like to send this report?" +msgstr "" + #: src/components/dialogs/MutedWords.tsx:113 msgid "Toggle between muted word options." msgstr "Basculer entre les options pour les mots masqués." @@ -4035,14 +4902,18 @@ msgstr "Basculer entre les options pour les mots masqués." msgid "Toggle dropdown" msgstr "Activer le menu déroulant" +#: src/screens/Moderation/index.tsx:334 +msgid "Toggle to enable or disable adult content" +msgstr "" + #: src/view/com/modals/EditImage.tsx:271 msgid "Transformations" msgstr "Transformations" -#: src/view/com/post-thread/PostThreadItem.tsx:685 -#: src/view/com/post-thread/PostThreadItem.tsx:687 -#: src/view/com/util/forms/PostDropdownBtn.tsx:215 -#: src/view/com/util/forms/PostDropdownBtn.tsx:217 +#: src/view/com/post-thread/PostThreadItem.tsx:644 +#: src/view/com/post-thread/PostThreadItem.tsx:646 +#: src/view/com/util/forms/PostDropdownBtn.tsx:212 +#: src/view/com/util/forms/PostDropdownBtn.tsx:214 msgid "Translate" msgstr "Traduire" @@ -4051,11 +4922,15 @@ msgctxt "action" msgid "Try again" msgstr "Réessayer" -#: src/view/screens/ProfileList.tsx:506 +#: src/view/com/modals/ChangeHandle.tsx:429 +msgid "Type:" +msgstr "" + +#: src/view/screens/ProfileList.tsx:478 msgid "Un-block list" msgstr "Débloquer la liste" -#: src/view/screens/ProfileList.tsx:491 +#: src/view/screens/ProfileList.tsx:461 msgid "Un-mute list" msgstr "Réafficher cette liste" @@ -4067,21 +4942,28 @@ msgstr "Réafficher cette liste" msgid "Unable to contact your service. Please check your Internet connection." msgstr "Impossible de contacter votre service. Veuillez vérifier votre connexion Internet." -#: src/view/com/profile/ProfileHeader.tsx:433 -#: src/view/screens/ProfileList.tsx:590 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:174 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:278 +#: src/view/com/profile/ProfileMenu.tsx:361 +#: src/view/screens/ProfileList.tsx:572 msgid "Unblock" msgstr "Débloquer" -#: src/view/com/profile/ProfileHeader.tsx:436 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:179 msgctxt "action" msgid "Unblock" msgstr "Débloquer" -#: src/view/com/profile/ProfileHeader.tsx:261 -#: src/view/com/profile/ProfileHeader.tsx:345 +#: src/view/com/profile/ProfileMenu.tsx:299 +#: src/view/com/profile/ProfileMenu.tsx:305 msgid "Unblock Account" msgstr "Débloquer le compte" +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:272 +#: src/view/com/profile/ProfileMenu.tsx:343 +msgid "Unblock Account?" +msgstr "" + #: src/view/com/modals/Repost.tsx:42 #: src/view/com/modals/Repost.tsx:55 #: src/view/com/util/post-ctrls/RepostButton.tsx:60 @@ -4089,25 +4971,39 @@ msgstr "Débloquer le compte" msgid "Undo repost" msgstr "Annuler le repost" -#: src/view/com/profile/FollowButton.tsx:55 +#: src/view/com/auth/onboarding/RecommendedFollowsItem.tsx:141 +#: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:246 +msgid "Unfollow" +msgstr "" + +#: src/view/com/profile/FollowButton.tsx:60 msgctxt "action" msgid "Unfollow" msgstr "Se désabonner" -#: src/view/com/profile/ProfileHeader.tsx:485 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:213 msgid "Unfollow {0}" msgstr "Se désabonner de {0}" +#: src/view/com/profile/ProfileMenu.tsx:241 +#: src/view/com/profile/ProfileMenu.tsx:251 +msgid "Unfollow Account" +msgstr "" + #: src/view/com/auth/create/state.ts:262 msgid "Unfortunately, you do not meet the requirements to create an account." msgstr "Malheureusement, vous ne remplissez pas les conditions requises pour créer un compte." -#: src/view/com/util/post-ctrls/PostCtrls.tsx:182 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:185 msgid "Unlike" msgstr "Déliker" +#: src/view/screens/ProfileFeed.tsx:572 +msgid "Unlike this feed" +msgstr "" + #: src/components/TagMenu/index.tsx:249 -#: src/view/screens/ProfileList.tsx:597 +#: src/view/screens/ProfileList.tsx:579 msgid "Unmute" msgstr "Réafficher" @@ -4115,7 +5011,8 @@ msgstr "Réafficher" msgid "Unmute {truncatedTag}" msgstr "Réafficher {truncatedTag}" -#: src/view/com/profile/ProfileHeader.tsx:326 +#: src/view/com/profile/ProfileMenu.tsx:278 +#: src/view/com/profile/ProfileMenu.tsx:284 msgid "Unmute Account" msgstr "Réafficher ce compte" @@ -4128,26 +5025,46 @@ msgstr "Réafficher tous les posts {displayTag}" msgid "Unmute thread" msgstr "Réafficher ce fil de discussion" -#: src/view/screens/ProfileFeed.tsx:354 -#: src/view/screens/ProfileList.tsx:581 +#: src/view/screens/ProfileFeed.tsx:294 +#: src/view/screens/ProfileList.tsx:563 msgid "Unpin" msgstr "Désépingler" -#: src/view/screens/ProfileList.tsx:474 +#: src/view/screens/ProfileFeed.tsx:291 +msgid "Unpin from home" +msgstr "" + +#: src/view/screens/ProfileList.tsx:444 msgid "Unpin moderation list" msgstr "Supprimer la liste de modération" #: src/view/screens/ProfileFeed.tsx:346 -msgid "Unsave" -msgstr "Supprimer" +#~ msgid "Unsave" +#~ msgstr "Supprimer" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:220 +msgid "Unsubscribe" +msgstr "" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:184 +msgid "Unsubscribe from this labeler" +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:70 +msgid "Unwanted Sexual Content" +msgstr "" #: src/view/com/modals/UserAddRemoveLists.tsx:70 msgid "Update {displayName} in Lists" msgstr "Mise à jour de {displayName} dans les listes" #: src/lib/hooks/useOTAUpdate.ts:15 -msgid "Update Available" -msgstr "Mise à jour disponible" +#~ msgid "Update Available" +#~ msgstr "Mise à jour disponible" + +#: src/view/com/modals/ChangeHandle.tsx:509 +msgid "Update to {handle}" +msgstr "" #: src/view/com/auth/login/SetNewPasswordForm.tsx:204 msgid "Updating..." @@ -4157,11 +5074,38 @@ msgstr "Mise à jour…" msgid "Upload a text file to:" msgstr "Envoyer un fichier texte vers :" -#: src/view/screens/AppPasswords.tsx:195 +#: src/view/com/util/UserAvatar.tsx:326 +#: src/view/com/util/UserAvatar.tsx:329 +#: src/view/com/util/UserBanner.tsx:116 +#: src/view/com/util/UserBanner.tsx:119 +msgid "Upload from Camera" +msgstr "" + +#: src/view/com/util/UserAvatar.tsx:343 +#: src/view/com/util/UserBanner.tsx:133 +msgid "Upload from Files" +msgstr "" + +#: src/view/com/util/UserAvatar.tsx:337 +#: src/view/com/util/UserAvatar.tsx:341 +#: src/view/com/util/UserBanner.tsx:127 +#: src/view/com/util/UserBanner.tsx:131 +msgid "Upload from Library" +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:409 +msgid "Use a file on your server" +msgstr "" + +#: src/view/screens/AppPasswords.tsx:197 msgid "Use app passwords to login to other Bluesky clients without giving full access to your account or password." msgstr "Utilisez les mots de passe de l’appli pour se connecter à d’autres clients Bluesky sans donner un accès complet à votre compte ou à votre mot de passe." -#: src/view/com/modals/ChangeHandle.tsx:515 +#: src/view/com/modals/ChangeHandle.tsx:518 +msgid "Use bsky.social as hosting provider" +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:517 msgid "Use default provider" msgstr "Utiliser le fournisseur par défaut" @@ -4175,6 +5119,10 @@ msgstr "Utiliser le navigateur interne à l’appli" msgid "Use my default browser" msgstr "Utiliser mon navigateur par défaut" +#: src/view/com/modals/ChangeHandle.tsx:401 +msgid "Use the DNS panel" +msgstr "" + #: src/view/com/modals/AddAppPasswords.tsx:155 msgid "Use this to sign into the other app along with your handle." msgstr "Utilisez-le pour vous connecter à l’autre application avec votre identifiant." @@ -4183,15 +5131,24 @@ msgstr "Utilisez-le pour vous connecter à l’autre application avec votre iden msgid "Used by:" msgstr "Utilisé par :" -#: src/view/com/modals/ModerationDetails.tsx:54 +#: src/components/moderation/ModerationDetailsDialog.tsx:65 +#: src/lib/moderation/useModerationCauseDescription.ts:56 msgid "User Blocked" msgstr "Compte bloqué" -#: src/view/com/modals/ModerationDetails.tsx:40 +#: src/lib/moderation/useModerationCauseDescription.ts:48 +msgid "User Blocked by \"{0}\"" +msgstr "" + +#: src/components/moderation/ModerationDetailsDialog.tsx:54 msgid "User Blocked by List" msgstr "Compte bloqué par liste" -#: src/view/com/modals/ModerationDetails.tsx:60 +#: src/lib/moderation/useModerationCauseDescription.ts:66 +msgid "User Blocking You" +msgstr "" + +#: src/components/moderation/ModerationDetailsDialog.tsx:71 msgid "User Blocks You" msgstr "Compte qui vous bloque" @@ -4204,13 +5161,13 @@ msgstr "Pseudo" msgid "User list by {0}" msgstr "Liste de compte de {0}" -#: src/view/screens/ProfileList.tsx:763 +#: src/view/screens/ProfileList.tsx:777 msgid "User list by <0/>" msgstr "Liste de compte par <0/>" #: src/view/com/lists/ListCard.tsx:83 #: src/view/com/modals/UserAddRemoveLists.tsx:196 -#: src/view/screens/ProfileList.tsx:761 +#: src/view/screens/ProfileList.tsx:775 msgid "User list by you" msgstr "Liste de compte par vous" @@ -4231,7 +5188,7 @@ msgstr "Listes de comptes" msgid "Username or email address" msgstr "Pseudo ou e-mail" -#: src/view/screens/ProfileList.tsx:797 +#: src/view/screens/ProfileList.tsx:811 msgid "Users" msgstr "Comptes" @@ -4243,15 +5200,27 @@ msgstr "comptes suivis par <0/>" msgid "Users in \"{0}\"" msgstr "Comptes dans « {0} »" -#: src/view/screens/Settings/index.tsx:910 +#: src/components/LikesDialog.tsx:85 +msgid "Users that have liked this content or profile" +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:437 +msgid "Value:" +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:510 +msgid "Verify {0}" +msgstr "" + +#: src/view/screens/Settings/index.tsx:940 msgid "Verify email" msgstr "Confirmer l’e-mail" -#: src/view/screens/Settings/index.tsx:935 +#: src/view/screens/Settings/index.tsx:965 msgid "Verify my email" msgstr "Confirmer mon e-mail" -#: src/view/screens/Settings/index.tsx:944 +#: src/view/screens/Settings/index.tsx:974 msgid "Verify My Email" msgstr "Confirmer mon e-mail" @@ -4268,7 +5237,7 @@ msgstr "Vérifiez votre e-mail" msgid "Video Games" msgstr "Jeux vidéo" -#: src/view/com/profile/ProfileHeader.tsx:662 +#: src/screens/Profile/Header/Shell.tsx:110 msgid "View {0}'s avatar" msgstr "Voir l’avatar de {0}" @@ -4276,11 +5245,23 @@ msgstr "Voir l’avatar de {0}" msgid "View debug entry" msgstr "Afficher l’entrée de débogage" -#: src/view/com/posts/FeedSlice.tsx:103 +#: src/components/ReportDialog/SelectReportOptionView.tsx:133 +msgid "View details" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:128 +msgid "View details for reporting a copyright violation" +msgstr "" + +#: src/view/com/posts/FeedSlice.tsx:99 msgid "View full thread" msgstr "Voir le fil de discussion entier" -#: src/view/com/posts/FeedErrorMessage.tsx:172 +#: src/components/moderation/LabelsOnMe.tsx:51 +msgid "View information about these labels" +msgstr "" + +#: src/view/com/posts/FeedErrorMessage.tsx:166 msgid "View profile" msgstr "Voir le profil" @@ -4288,15 +5269,34 @@ msgstr "Voir le profil" msgid "View the avatar" msgstr "Afficher l’avatar" +#: src/components/LabelingServiceCard/index.tsx:140 +msgid "View the labeling service provided by @{0}" +msgstr "" + +#: src/view/screens/ProfileFeed.tsx:584 +msgid "View users who like this feed" +msgstr "" + #: src/view/com/modals/LinkWarning.tsx:75 +#: src/view/com/modals/LinkWarning.tsx:77 msgid "Visit Site" msgstr "Visiter le site" -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:42 -#: src/view/com/modals/ContentFilteringSettings.tsx:259 +#: src/components/moderation/GlobalModerationLabelPref.tsx:44 +#: src/lib/moderation/useLabelBehaviorDescription.ts:17 +#: src/lib/moderation/useLabelBehaviorDescription.ts:22 +#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:53 msgid "Warn" msgstr "Avertir" +#: src/lib/moderation/useLabelBehaviorDescription.ts:48 +msgid "Warn content" +msgstr "" + +#: src/lib/moderation/useLabelBehaviorDescription.ts:46 +msgid "Warn content and filter from feeds" +msgstr "" + #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:134 msgid "We also think you'll like \"For You\" by Skygaze:" msgstr "Nous pensons également que vous aimerez « For You » de Skygaze :" @@ -4325,6 +5325,14 @@ msgstr "Nous vous recommandons d’éviter les mots communs qui apparaissent dan msgid "We recommend our \"Discover\" feed:" msgstr "Nous vous recommandons notre fil d’actu « Discover » :" +#: src/components/dialogs/BirthDateSettings.tsx:52 +msgid "We were unable to load your birth date preferences. Please try again." +msgstr "" + +#: src/screens/Moderation/index.tsx:387 +msgid "We were unable to load your configured labelers at this time." +msgstr "" + #: src/screens/Onboarding/StepInterests/index.tsx:133 msgid "We weren't able to connect. Please try again to continue setting up your account. If it continues to fail, you can skip this flow." msgstr "Nous n’avons pas pu nous connecter. Veuillez réessayer pour continuer à configurer votre compte. Si l’échec persiste, vous pouvez sauter cette étape." @@ -4334,8 +5342,8 @@ msgid "We will let you know when your account is ready." msgstr "Nous vous informerons lorsque votre compte sera prêt." #: src/view/com/modals/AppealLabel.tsx:48 -msgid "We'll look into your appeal promptly." -msgstr "Nous examinerons votre appel rapidement." +#~ msgid "We'll look into your appeal promptly." +#~ msgstr "Nous examinerons votre appel rapidement." #: src/screens/Onboarding/StepInterests/index.tsx:138 msgid "We'll use this to help customize your experience." @@ -4345,7 +5353,7 @@ msgstr "Nous utiliserons ces informations pour personnaliser votre expérience." msgid "We're so excited to have you join us!" msgstr "Nous sommes ravis de vous accueillir !" -#: src/view/screens/ProfileList.tsx:86 +#: src/view/screens/ProfileList.tsx:89 msgid "We're sorry, but we were unable to resolve this list. If this persists, please contact the list creator, @{handleOrDid}." msgstr "Nous sommes désolés, mais nous n’avons pas pu charger cette liste. Si cela persiste, veuillez contacter l’origine de la liste, @{handleOrDid}." @@ -4353,16 +5361,20 @@ msgstr "Nous sommes désolés, mais nous n’avons pas pu charger cette liste. S msgid "We're sorry, but we weren't able to load your muted words at this time. Please try again." msgstr "Nous sommes désolés, mais nous n’avons pas pu charger vos mots masqués pour le moment. Veuillez réessayer." -#: src/view/screens/Search/Search.tsx:254 +#: src/view/screens/Search/Search.tsx:255 msgid "We're sorry, but your search could not be completed. Please try again in a few minutes." msgstr "Nous sommes désolés, mais votre recherche a été annulée. Veuillez réessayer dans quelques minutes." -#: src/components/Lists.tsx:211 +#: src/components/Lists.tsx:194 #: src/view/screens/NotFound.tsx:48 msgid "We're sorry! We can't find the page you were looking for." msgstr "Nous sommes désolés ! La page que vous recherchez est introuvable." -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:46 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:319 +msgid "We're sorry! You can only subscribe to ten labelers, and you've reached your limit of ten." +msgstr "" + +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:48 msgid "Welcome to <0>Bluesky" msgstr "Bienvenue sur <0>Bluesky" @@ -4371,11 +5383,11 @@ msgid "What are your interests?" msgstr "Quels sont vos centres d’intérêt ?" #: src/view/com/modals/report/Modal.tsx:169 -msgid "What is the issue with this {collectionName}?" -msgstr "Quel est le problème avec cette {collectionName} ?" +#~ msgid "What is the issue with this {collectionName}?" +#~ msgstr "Quel est le problème avec cette {collectionName} ?" #: src/view/com/auth/SplashScreen.tsx:59 -#: src/view/com/composer/Composer.tsx:286 +#: src/view/com/composer/Composer.tsx:295 msgid "What's up?" msgstr "Quoi de neuf ?" @@ -4392,16 +5404,36 @@ msgstr "Quelles langues aimeriez-vous voir apparaître dans vos fils d’actu al msgid "Who can reply" msgstr "Qui peut répondre ?" +#: src/components/ReportDialog/SelectReportOptionView.tsx:44 +msgid "Why should this content be reviewed?" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:57 +msgid "Why should this feed be reviewed?" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:54 +msgid "Why should this list be reviewed?" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:51 +msgid "Why should this post be reviewed?" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:48 +msgid "Why should this user be reviewed?" +msgstr "" + #: src/view/com/modals/crop-image/CropImage.web.tsx:102 msgid "Wide" msgstr "Large" -#: src/view/com/composer/Composer.tsx:422 +#: src/view/com/composer/Composer.tsx:435 msgid "Write post" msgstr "Rédiger un post" -#: src/view/com/composer/Composer.tsx:285 -#: src/view/com/composer/Prompt.tsx:33 +#: src/view/com/composer/Composer.tsx:294 +#: src/view/com/composer/Prompt.tsx:37 msgid "Write your reply" msgstr "Rédigez votre réponse" @@ -4423,6 +5455,10 @@ msgstr "Oui" msgid "You are in line." msgstr "Vous êtes dans la file d’attente." +#: src/view/com/profile/ProfileFollows.tsx:93 +msgid "You are not following anyone." +msgstr "" + #: src/view/com/posts/FollowingEmptyState.tsx:67 #: src/view/com/posts/FollowingEndOfFeed.tsx:68 msgid "You can also discover new Custom Feeds to follow." @@ -4437,6 +5473,10 @@ msgstr "Vous pouvez modifier ces paramètres ultérieurement." msgid "You can now sign in with your new password." msgstr "Vous pouvez maintenant vous connecter avec votre nouveau mot de passe." +#: src/view/com/profile/ProfileFollowers.tsx:94 +msgid "You do not have any followers." +msgstr "" + #: src/view/com/modals/InviteCodes.tsx:66 msgid "You don't have any invite codes yet! We'll send you some when you've been on Bluesky for a little longer." msgstr "Vous n’avez encore aucun code d’invitation ! Nous vous en enverrons lorsque vous serez sur Bluesky depuis un peu plus longtemps." @@ -4453,11 +5493,13 @@ msgstr "Vous n’avez encore aucun fil enregistré !" msgid "You don't have any saved feeds." msgstr "Vous n’avez encore aucun fil enregistré." -#: src/view/com/post-thread/PostThread.tsx:465 +#: src/view/com/post-thread/PostThread.tsx:159 msgid "You have blocked the author or you have been blocked by the author." msgstr "Vous avez bloqué cet auteur ou vous avez été bloqué par celui-ci." -#: src/view/com/modals/ModerationDetails.tsx:56 +#: src/components/moderation/ModerationDetailsDialog.tsx:67 +#: src/lib/moderation/useModerationCauseDescription.ts:50 +#: src/lib/moderation/useModerationCauseDescription.ts:58 msgid "You have blocked this user. You cannot view their content." msgstr "Vous avez bloqué ce compte. Vous ne pouvez pas voir son contenu." @@ -4468,9 +5510,26 @@ msgstr "Vous avez bloqué ce compte. Vous ne pouvez pas voir son contenu." msgid "You have entered an invalid code. It should look like XXXXX-XXXXX." msgstr "Vous avez introduit un code non valide. Il devrait ressembler à XXXXX-XXXXX." +#: src/lib/moderation/useModerationCauseDescription.ts:109 +msgid "You have hidden this post" +msgstr "" + +#: src/components/moderation/ModerationDetailsDialog.tsx:102 +msgid "You have hidden this post." +msgstr "" + +#: src/components/moderation/ModerationDetailsDialog.tsx:95 +#: src/lib/moderation/useModerationCauseDescription.ts:92 +msgid "You have muted this account." +msgstr "" + +#: src/lib/moderation/useModerationCauseDescription.ts:86 +msgid "You have muted this user" +msgstr "" + #: src/view/com/modals/ModerationDetails.tsx:87 -msgid "You have muted this user." -msgstr "Vous avez masqué ce compte." +#~ msgid "You have muted this user." +#~ msgstr "Vous avez masqué ce compte." #: src/view/com/feeds/ProfileFeedgens.tsx:136 msgid "You have no feeds." @@ -4482,34 +5541,50 @@ msgid "You have no lists." msgstr "Vous n’avez aucune liste." #: src/view/screens/ModerationBlockedAccounts.tsx:132 -msgid "You have not blocked any accounts yet. To block an account, go to their profile and selected \"Block account\" from the menu on their account." -msgstr "Vous n’avez pas encore bloqué de comptes. Pour bloquer un compte, accédez à son profil et sélectionnez « Bloquer le compte » dans le menu de son compte." +msgid "You have not blocked any accounts yet. To block an account, go to their profile and select \"Block account\" from the menu on their account." +msgstr "" + +#: src/view/screens/ModerationBlockedAccounts.tsx:132 +#~ msgid "You have not blocked any accounts yet. To block an account, go to their profile and selected \"Block account\" from the menu on their account." +#~ msgstr "Vous n’avez pas encore bloqué de comptes. Pour bloquer un compte, accédez à son profil et sélectionnez « Bloquer le compte » dans le menu de son compte." -#: src/view/screens/AppPasswords.tsx:87 +#: src/view/screens/AppPasswords.tsx:89 msgid "You have not created any app passwords yet. You can create one by pressing the button below." msgstr "Vous n’avez encore créé aucun mot de passe pour l’appli. Vous pouvez en créer un en cliquant sur le bouton suivant." #: src/view/screens/ModerationMutedAccounts.tsx:131 -msgid "You have not muted any accounts yet. To mute an account, go to their profile and selected \"Mute account\" from the menu on their account." -msgstr "Vous n’avez encore masqué aucun compte. Pour désactiver un compte, allez sur son profil et sélectionnez « Masquer le compte » dans le menu de son compte." +msgid "You have not muted any accounts yet. To mute an account, go to their profile and select \"Mute account\" from the menu on their account." +msgstr "" + +#: src/view/screens/ModerationMutedAccounts.tsx:131 +#~ msgid "You have not muted any accounts yet. To mute an account, go to their profile and selected \"Mute account\" from the menu on their account." +#~ msgstr "Vous n’avez encore masqué aucun compte. Pour désactiver un compte, allez sur son profil et sélectionnez « Masquer le compte » dans le menu de son compte." #: src/components/dialogs/MutedWords.tsx:250 msgid "You haven't muted any words or tags yet" msgstr "Vous n’avez pas encore masqué de mot ou de mot-clé" +#: src/components/moderation/LabelsOnMeDialog.tsx:69 +msgid "You may appeal these labels if you feel they were placed in error." +msgstr "" + #: src/view/com/modals/ContentFilteringSettings.tsx:175 -msgid "You must be 18 or older to enable adult content." -msgstr "Vous devez avoir 18 ans ou plus pour activer le contenu pour adultes." +#~ msgid "You must be 18 or older to enable adult content." +#~ msgstr "Vous devez avoir 18 ans ou plus pour activer le contenu pour adultes." -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:103 +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:110 msgid "You must be 18 years or older to enable adult content" msgstr "Vous devez avoir 18 ans ou plus pour activer le contenu pour adultes." -#: src/view/com/util/forms/PostDropdownBtn.tsx:147 +#: src/components/ReportDialog/SubmitView.tsx:205 +msgid "You must select at least one labeler for a report" +msgstr "" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:144 msgid "You will no longer receive notifications for this thread" msgstr "Vous ne recevrez plus de notifications pour ce fil de discussion" -#: src/view/com/util/forms/PostDropdownBtn.tsx:150 +#: src/view/com/util/forms/PostDropdownBtn.tsx:147 msgid "You will now receive notifications for this thread" msgstr "Vous recevrez désormais des notifications pour ce fil de discussion" @@ -4517,7 +5592,7 @@ msgstr "Vous recevrez désormais des notifications pour ce fil de discussion" msgid "You will receive an email with a \"reset code.\" Enter that code here, then enter your new password." msgstr "Vous recevrez un e-mail contenant un « code de réinitialisation ». Saisissez ce code ici, puis votre nouveau mot de passe." -#: src/screens/Onboarding/StepModeration/index.tsx:72 +#: src/screens/Onboarding/StepModeration/index.tsx:59 msgid "You're in control" msgstr "Vous avez le contrôle" @@ -4531,6 +5606,11 @@ msgstr "Vous êtes dans la file d’attente" msgid "You're ready to go!" msgstr "Vous êtes prêt à partir !" +#: src/components/moderation/ModerationDetailsDialog.tsx:99 +#: src/lib/moderation/useModerationCauseDescription.ts:101 +msgid "You've chosen to hide a word or tag within this post." +msgstr "" + #: src/view/com/posts/FollowingEndOfFeed.tsx:48 msgid "You've reached the end of your feed! Find some more accounts to follow." msgstr "Vous avez atteint la fin de votre fil d’actu ! Trouvez d’autres comptes à suivre." @@ -4589,26 +5669,26 @@ msgstr "Votre pseudo complet sera <0>@{0}" msgid "Your muted words" msgstr "Vos mots masqués" -#: src/view/com/modals/ChangePassword.tsx:155 +#: src/view/com/modals/ChangePassword.tsx:157 msgid "Your password has been changed successfully!" msgstr "Votre mot de passe a été modifié avec succès !" -#: src/view/com/composer/Composer.tsx:274 +#: src/view/com/composer/Composer.tsx:283 msgid "Your post has been published" msgstr "Votre post a été publié" #: src/screens/Onboarding/StepFinished.tsx:105 #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:59 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:59 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:61 msgid "Your posts, likes, and blocks are public. Mutes are private." msgstr "Vos posts, les likes et les blocages sont publics. Les silences (comptes masqués) sont privés." -#: src/view/com/modals/SwitchAccount.tsx:84 -#: src/view/screens/Settings/index.tsx:118 +#: src/view/com/modals/SwitchAccount.tsx:88 +#: src/view/screens/Settings/index.tsx:123 msgid "Your profile" msgstr "Votre profil" -#: src/view/com/composer/Composer.tsx:273 +#: src/view/com/composer/Composer.tsx:282 msgid "Your reply has been published" msgstr "Votre réponse a été publiée" diff --git a/src/locale/locales/hi/messages.po b/src/locale/locales/hi/messages.po index ae0215aaca..c0a68ed89d 100644 --- a/src/locale/locales/hi/messages.po +++ b/src/locale/locales/hi/messages.po @@ -21,7 +21,7 @@ msgstr "" #~ msgid "{0, plural, one {# invite code available} other {# invite codes available}}" #~ msgstr "" -#: src/view/com/profile/ProfileHeader.tsx:593 +#: src/screens/Profile/Header/Metrics.tsx:45 msgid "{following} following" msgstr "" @@ -39,7 +39,7 @@ msgstr "" #~ msgid "{invitesAvailable} invite codes available" #~ msgstr "" -#: src/view/shell/Drawer.tsx:440 +#: src/view/shell/Drawer.tsx:443 msgid "{numUnreadNotifications} unread" msgstr "" @@ -47,7 +47,11 @@ msgstr "" msgid "<0/> members" msgstr "" -#: src/view/com/profile/ProfileHeader.tsx:595 +#: src/view/shell/Drawer.tsx:97 +msgid "<0>{0} following" +msgstr "" + +#: src/screens/Profile/Header/Metrics.tsx:46 msgid "<0>{following} <1>following" msgstr "" @@ -67,20 +71,20 @@ msgstr "<0>कुछ<1>पसंदीदा उपयोगकर्ता msgid "<0>Welcome to<1>Bluesky" msgstr "" -#: src/view/com/profile/ProfileHeader.tsx:558 +#: src/screens/Profile/Header/Handle.tsx:42 msgid "⚠Invalid Handle" msgstr "" #: src/view/com/util/moderation/LabelInfo.tsx:45 -msgid "A content warning has been applied to this {0}." -msgstr "" +#~ msgid "A content warning has been applied to this {0}." +#~ msgstr "" #: src/lib/hooks/useOTAUpdate.ts:16 -msgid "A new version of the app is available. Please update to continue using the app." -msgstr "ऐप का एक नया संस्करण उपलब्ध है. कृपया ऐप का उपयोग जारी रखने के लिए अपडेट करें।" +#~ msgid "A new version of the app is available. Please update to continue using the app." +#~ msgstr "ऐप का एक नया संस्करण उपलब्ध है. कृपया ऐप का उपयोग जारी रखने के लिए अपडेट करें।" #: src/view/com/util/ViewHeader.tsx:89 -#: src/view/screens/Search/Search.tsx:647 +#: src/view/screens/Search/Search.tsx:648 msgid "Access navigation links and settings" msgstr "" @@ -89,29 +93,38 @@ msgid "Access profile and other navigation links" msgstr "" #: src/view/com/modals/EditImage.tsx:299 -#: src/view/screens/Settings/index.tsx:451 +#: src/view/screens/Settings/index.tsx:466 msgid "Accessibility" msgstr "प्रवेर्शयोग्यता" +#: src/components/moderation/LabelsOnMe.tsx:42 +msgid "account" +msgstr "" + #: src/view/com/auth/login/LoginForm.tsx:166 -#: src/view/screens/Settings/index.tsx:308 -#: src/view/screens/Settings/index.tsx:721 +#: src/view/screens/Settings/index.tsx:323 +#: src/view/screens/Settings/index.tsx:739 msgid "Account" msgstr "अकाउंट" -#: src/view/com/profile/ProfileHeader.tsx:246 +#: src/view/com/profile/ProfileMenu.tsx:139 msgid "Account blocked" msgstr "" -#: src/view/com/profile/ProfileHeader.tsx:213 +#: src/view/com/profile/ProfileMenu.tsx:153 +msgid "Account followed" +msgstr "" + +#: src/view/com/profile/ProfileMenu.tsx:113 msgid "Account muted" msgstr "" -#: src/view/com/modals/ModerationDetails.tsx:86 +#: src/components/moderation/ModerationDetailsDialog.tsx:94 +#: src/lib/moderation/useModerationCauseDescription.ts:91 msgid "Account Muted" msgstr "" -#: src/view/com/modals/ModerationDetails.tsx:72 +#: src/components/moderation/ModerationDetailsDialog.tsx:83 msgid "Account Muted by List" msgstr "" @@ -123,19 +136,24 @@ msgstr "अकाउंट के विकल्प" msgid "Account removed from quick access" msgstr "" -#: src/view/com/profile/ProfileHeader.tsx:268 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:130 +#: src/view/com/profile/ProfileMenu.tsx:128 msgid "Account unblocked" msgstr "" -#: src/view/com/profile/ProfileHeader.tsx:226 +#: src/view/com/profile/ProfileMenu.tsx:166 +msgid "Account unfollowed" +msgstr "" + +#: src/view/com/profile/ProfileMenu.tsx:102 msgid "Account unmuted" msgstr "" #: src/components/dialogs/MutedWords.tsx:165 #: src/view/com/auth/onboarding/RecommendedFeedsItem.tsx:150 -#: src/view/com/modals/ListAddRemoveUsers.tsx:264 +#: src/view/com/modals/ListAddRemoveUsers.tsx:268 #: src/view/com/modals/UserAddRemoveLists.tsx:219 -#: src/view/screens/ProfileList.tsx:813 +#: src/view/screens/ProfileList.tsx:827 msgid "Add" msgstr "ऐड करो" @@ -143,12 +161,12 @@ msgstr "ऐड करो" msgid "Add a content warning" msgstr "सामग्री चेतावनी जोड़ें" -#: src/view/screens/ProfileList.tsx:803 +#: src/view/screens/ProfileList.tsx:817 msgid "Add a user to this list" msgstr "इस सूची में किसी को जोड़ें" -#: src/view/screens/Settings/index.tsx:383 -#: src/view/screens/Settings/index.tsx:392 +#: src/view/screens/Settings/index.tsx:398 +#: src/view/screens/Settings/index.tsx:407 msgid "Add account" msgstr "अकाउंट जोड़ें" @@ -158,26 +176,26 @@ msgstr "अकाउंट जोड़ें" msgid "Add alt text" msgstr "इस फ़ोटो में विवरण जोड़ें" -#: src/view/screens/AppPasswords.tsx:102 -#: src/view/screens/AppPasswords.tsx:143 -#: src/view/screens/AppPasswords.tsx:156 +#: src/view/screens/AppPasswords.tsx:104 +#: src/view/screens/AppPasswords.tsx:145 +#: src/view/screens/AppPasswords.tsx:158 msgid "Add App Password" msgstr "" #: src/view/com/modals/report/InputIssueDetails.tsx:41 #: src/view/com/modals/report/Modal.tsx:191 -msgid "Add details" -msgstr "विवरण जोड़ें" +#~ msgid "Add details" +#~ msgstr "विवरण जोड़ें" #: src/view/com/modals/report/Modal.tsx:194 -msgid "Add details to report" -msgstr "रिपोर्ट करने के लिए विवरण जोड़ें" +#~ msgid "Add details to report" +#~ msgstr "रिपोर्ट करने के लिए विवरण जोड़ें" -#: src/view/com/composer/Composer.tsx:453 +#: src/view/com/composer/Composer.tsx:466 msgid "Add link card" msgstr "लिंक कार्ड जोड़ें" -#: src/view/com/composer/Composer.tsx:458 +#: src/view/com/composer/Composer.tsx:471 msgid "Add link card:" msgstr "लिंक कार्ड जोड़ें:" @@ -193,12 +211,12 @@ msgstr "" msgid "Add the following DNS record to your domain:" msgstr "अपने डोमेन में निम्नलिखित DNS रिकॉर्ड जोड़ें:" -#: src/view/com/profile/ProfileHeader.tsx:310 +#: src/view/com/profile/ProfileMenu.tsx:263 +#: src/view/com/profile/ProfileMenu.tsx:266 msgid "Add to Lists" msgstr "सूचियों में जोड़ें" -#: src/view/com/feeds/FeedSourceCard.tsx:245 -#: src/view/screens/ProfileFeed.tsx:273 +#: src/view/com/feeds/FeedSourceCard.tsx:234 msgid "Add to my feeds" msgstr "इस फ़ीड को सहेजें" @@ -211,7 +229,7 @@ msgstr "" msgid "Added to list" msgstr "" -#: src/view/com/feeds/FeedSourceCard.tsx:127 +#: src/view/com/feeds/FeedSourceCard.tsx:108 msgid "Added to my feeds" msgstr "" @@ -219,19 +237,25 @@ msgstr "" msgid "Adjust the number of likes a reply must have to be shown in your feed." msgstr "पसंद की संख्या को समायोजित करें उत्तर को आपके फ़ीड में दिखाया जाना चाहिए।।" +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:117 #: src/view/com/modals/SelfLabel.tsx:75 msgid "Adult Content" msgstr "वयस्क सामग्री" #: src/view/com/modals/ContentFilteringSettings.tsx:141 -msgid "Adult content can only be enabled via the Web at <0/>." -msgstr "" +#~ msgid "Adult content can only be enabled via the Web at <0/>." +#~ msgstr "" #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:78 #~ msgid "Adult content can only be enabled via the Web at <0>bsky.app." #~ msgstr "" -#: src/view/screens/Settings/index.tsx:664 +#: src/components/moderation/ModerationLabelPref.tsx:114 +msgid "Adult content is disabled." +msgstr "" + +#: src/screens/Moderation/index.tsx:377 +#: src/view/screens/Settings/index.tsx:680 msgid "Advanced" msgstr "विकसित" @@ -240,11 +264,11 @@ msgid "All the feeds you've saved, right in one place." msgstr "" #: src/view/com/auth/login/ForgotPasswordForm.tsx:221 -#: src/view/com/modals/ChangePassword.tsx:168 +#: src/view/com/modals/ChangePassword.tsx:170 msgid "Already have a code?" msgstr "" -#: src/view/com/auth/login/ChooseAccountForm.tsx:98 +#: src/view/com/auth/login/ChooseAccountForm.tsx:102 msgid "Already signed in as @{0}" msgstr "" @@ -268,12 +292,18 @@ msgstr "{0} को ईमेल भेजा गया है। इसमें msgid "An email has been sent to your previous address, {0}. It includes a confirmation code which you can enter below." msgstr "{0} को ईमेल भेजा गया है। इसमें एक OTP कोड शामिल है जिसे आप नीचे दर्ज कर सकते हैं।।" -#: src/view/com/profile/FollowButton.tsx:30 -#: src/view/com/profile/FollowButton.tsx:40 +#: src/lib/moderation/useReportOptions.ts:26 +msgid "An issue not included in these options" +msgstr "" + +#: src/view/com/profile/FollowButton.tsx:35 +#: src/view/com/profile/FollowButton.tsx:45 +#: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:188 +#: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:198 msgid "An issue occurred, please try again." msgstr "" -#: src/view/com/notifications/FeedItem.tsx:237 +#: src/view/com/notifications/FeedItem.tsx:240 #: src/view/com/threadgate/WhoCanReply.tsx:178 msgid "and" msgstr "और" @@ -282,11 +312,15 @@ msgstr "और" msgid "Animals" msgstr "" +#: src/lib/moderation/useReportOptions.ts:31 +msgid "Anti-Social Behavior" +msgstr "" + #: src/view/screens/LanguageSettings.tsx:95 msgid "App Language" msgstr "ऐप भाषा" -#: src/view/screens/AppPasswords.tsx:228 +#: src/view/screens/AppPasswords.tsx:223 msgid "App password deleted" msgstr "" @@ -298,7 +332,7 @@ msgstr "" msgid "App Password names must be at least 4 characters long." msgstr "" -#: src/view/screens/Settings/index.tsx:675 +#: src/view/screens/Settings/index.tsx:691 msgid "App password settings" msgstr "" @@ -306,49 +340,65 @@ msgstr "" #~ msgid "App passwords" #~ msgstr "ऐप पासवर्ड" -#: src/Navigation.tsx:239 -#: src/view/screens/AppPasswords.tsx:187 -#: src/view/screens/Settings/index.tsx:684 +#: src/Navigation.tsx:251 +#: src/view/screens/AppPasswords.tsx:189 +#: src/view/screens/Settings/index.tsx:700 msgid "App Passwords" msgstr "ऐप पासवर्ड" +#: src/components/moderation/LabelsOnMeDialog.tsx:134 +#: src/components/moderation/LabelsOnMeDialog.tsx:137 +msgid "Appeal" +msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:202 +msgid "Appeal \"{0}\" label" +msgstr "" + #: src/view/com/util/forms/PostDropdownBtn.tsx:337 #: src/view/com/util/forms/PostDropdownBtn.tsx:346 -msgid "Appeal content warning" -msgstr "" +#~ msgid "Appeal content warning" +#~ msgstr "" #: src/view/com/modals/AppealLabel.tsx:65 -msgid "Appeal Content Warning" +#~ msgid "Appeal Content Warning" +#~ msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:193 +msgid "Appeal submitted." msgstr "" #: src/view/com/util/moderation/LabelInfo.tsx:52 -msgid "Appeal this decision" -msgstr "" +#~ msgid "Appeal this decision" +#~ msgstr "" #: src/view/com/util/moderation/LabelInfo.tsx:56 -msgid "Appeal this decision." -msgstr "" +#~ msgid "Appeal this decision." +#~ msgstr "" -#: src/view/screens/Settings/index.tsx:466 +#: src/view/screens/Settings/index.tsx:481 msgid "Appearance" msgstr "दिखावट" -#: src/view/screens/AppPasswords.tsx:224 +#: src/view/screens/AppPasswords.tsx:265 msgid "Are you sure you want to delete the app password \"{name}\"?" msgstr "क्या आप वाकई ऐप पासवर्ड \"{name}\" हटाना चाहते हैं?" -#: src/view/com/composer/Composer.tsx:150 +#: src/view/com/feeds/FeedSourceCard.tsx:280 +msgid "Are you sure you want to remove {0} from your feeds?" +msgstr "" + +#: src/view/com/composer/Composer.tsx:508 msgid "Are you sure you'd like to discard this draft?" msgstr "क्या आप वाकई इस ड्राफ्ट को हटाना करना चाहेंगे?" #: src/components/dialogs/MutedWords.tsx:282 -#: src/view/screens/ProfileList.tsx:365 msgid "Are you sure?" msgstr "क्या आप वास्तव में इसे करना चाहते हैं?" #: src/view/com/util/forms/PostDropdownBtn.tsx:322 -msgid "Are you sure? This cannot be undone." -msgstr "क्या आप वास्तव में इसे करना चाहते हैं? इसे असंपादित नहीं किया जा सकता है।" +#~ msgid "Are you sure? This cannot be undone." +#~ msgstr "क्या आप वास्तव में इसे करना चाहते हैं? इसे असंपादित नहीं किया जा सकता है।" #: src/view/com/composer/select-language/SuggestedLanguage.tsx:60 msgid "Are you writing in <0>{0}?" @@ -362,78 +412,86 @@ msgstr "" msgid "Artistic or non-erotic nudity." msgstr "कलात्मक या गैर-कामुक नग्नता।।" +#: src/components/moderation/LabelsOnMeDialog.tsx:247 +#: src/components/moderation/LabelsOnMeDialog.tsx:248 +#: src/screens/Profile/Header/Shell.tsx:97 #: src/view/com/auth/create/CreateAccount.tsx:158 -#: src/view/com/auth/login/ChooseAccountForm.tsx:151 +#: src/view/com/auth/login/ChooseAccountForm.tsx:155 #: src/view/com/auth/login/ForgotPasswordForm.tsx:174 #: src/view/com/auth/login/LoginForm.tsx:259 #: src/view/com/auth/login/SetNewPasswordForm.tsx:179 -#: src/view/com/modals/report/InputIssueDetails.tsx:46 -#: src/view/com/post-thread/PostThread.tsx:472 -#: src/view/com/post-thread/PostThread.tsx:522 -#: src/view/com/post-thread/PostThread.tsx:530 -#: src/view/com/profile/ProfileHeader.tsx:649 #: src/view/com/util/ViewHeader.tsx:87 msgid "Back" msgstr "वापस" #: src/view/com/post-thread/PostThread.tsx:480 -msgctxt "action" -msgid "Back" -msgstr "" +#~ msgctxt "action" +#~ msgid "Back" +#~ msgstr "" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:136 msgid "Based on your interest in {interestsText}" msgstr "" -#: src/view/screens/Settings/index.tsx:523 +#: src/view/screens/Settings/index.tsx:538 msgid "Basics" msgstr "मूल बातें" +#: src/components/dialogs/BirthDateSettings.tsx:107 #: src/view/com/auth/create/Step1.tsx:227 -#: src/view/com/modals/BirthDateSettings.tsx:73 msgid "Birthday" msgstr "जन्मदिन" -#: src/view/screens/Settings/index.tsx:340 +#: src/view/screens/Settings/index.tsx:355 msgid "Birthday:" msgstr "जन्मदिन:" -#: src/view/com/profile/ProfileHeader.tsx:239 -#: src/view/com/profile/ProfileHeader.tsx:346 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:278 +#: src/view/com/profile/ProfileMenu.tsx:361 +msgid "Block" +msgstr "" + +#: src/view/com/profile/ProfileMenu.tsx:300 +#: src/view/com/profile/ProfileMenu.tsx:307 msgid "Block Account" msgstr "खाता ब्लॉक करें" -#: src/view/screens/ProfileList.tsx:556 +#: src/view/com/profile/ProfileMenu.tsx:344 +msgid "Block Account?" +msgstr "" + +#: src/view/screens/ProfileList.tsx:530 msgid "Block accounts" msgstr "खाता ब्लॉक करें" -#: src/view/screens/ProfileList.tsx:506 +#: src/view/screens/ProfileList.tsx:478 +#: src/view/screens/ProfileList.tsx:634 msgid "Block list" msgstr "" -#: src/view/screens/ProfileList.tsx:316 +#: src/view/screens/ProfileList.tsx:629 msgid "Block these accounts?" msgstr "खाता ब्लॉक करें?" #: src/view/screens/ProfileList.tsx:320 -msgid "Block this List" -msgstr "" +#~ msgid "Block this List" +#~ msgstr "" #: src/view/com/lists/ListCard.tsx:110 -#: src/view/com/util/post-embeds/QuoteEmbed.tsx:61 +#: src/view/com/util/post-embeds/QuoteEmbed.tsx:55 msgid "Blocked" msgstr "" -#: src/view/screens/Moderation.tsx:142 +#: src/screens/Moderation/index.tsx:269 msgid "Blocked accounts" msgstr "ब्लॉक किए गए खाते" -#: src/Navigation.tsx:132 +#: src/Navigation.tsx:134 #: src/view/screens/ModerationBlockedAccounts.tsx:107 msgid "Blocked Accounts" msgstr "ब्लॉक किए गए खाते" -#: src/view/com/profile/ProfileHeader.tsx:241 +#: src/view/com/profile/ProfileMenu.tsx:356 msgid "Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you." msgstr "अवरुद्ध खाते आपके थ्रेड्स में उत्तर नहीं दे सकते, आपका उल्लेख नहीं कर सकते, या अन्यथा आपके साथ बातचीत नहीं कर सकते।" @@ -441,15 +499,23 @@ msgstr "अवरुद्ध खाते आपके थ्रेड्स msgid "Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you. You will not see their content and they will be prevented from seeing yours." msgstr "अवरुद्ध खाते आपके थ्रेड्स में उत्तर नहीं दे सकते, आपका उल्लेख नहीं कर सकते, या अन्यथा आपके साथ बातचीत नहीं कर सकते। आप उनकी सामग्री नहीं देख पाएंगे और उन्हें आपकी सामग्री देखने से रोका जाएगा।" -#: src/view/com/post-thread/PostThread.tsx:324 +#: src/view/com/post-thread/PostThread.tsx:313 msgid "Blocked post." msgstr "ब्लॉक पोस्ट।" -#: src/view/screens/ProfileList.tsx:318 +#: src/screens/Profile/Sections/Labels.tsx:153 +msgid "Blocking does not prevent this labeler from placing labels on your account." +msgstr "" + +#: src/view/screens/ProfileList.tsx:631 msgid "Blocking is public. Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you." msgstr "अवरोधन सार्वजनिक है. अवरुद्ध खाते आपके थ्रेड्स में उत्तर नहीं दे सकते, आपका उल्लेख नहीं कर सकते, या अन्यथा आपके साथ बातचीत नहीं कर सकते।" -#: src/view/com/auth/HomeLoggedOutCTA.tsx:93 +#: src/view/com/profile/ProfileMenu.tsx:353 +msgid "Blocking will not prevent labels from being applied on your account, but it will stop this account from replying in your threads or interacting with you." +msgstr "" + +#: src/view/com/auth/HomeLoggedOutCTA.tsx:97 #: src/view/com/auth/SplashScreen.web.tsx:133 msgid "Blog" msgstr "" @@ -465,17 +531,17 @@ msgid "Bluesky is an open network where you can choose your hosting provider. Cu msgstr "" #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:80 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:80 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:82 msgid "Bluesky is flexible." msgstr "Bluesky लचीला है।।" #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:69 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:69 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:71 msgid "Bluesky is open." msgstr "Bluesky खुला है।।" #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:56 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:56 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:58 msgid "Bluesky is public." msgstr "Bluesky सार्वजनिक है।।" @@ -483,7 +549,7 @@ msgstr "Bluesky सार्वजनिक है।।" #~ msgid "Bluesky uses invites to build a healthier community. If you don't know anybody with an invite, you can sign up for the waitlist and we'll send one soon." #~ msgstr "ब्लूस्की एक स्वस्थ समुदाय बनाने के लिए आमंत्रित करता है। यदि आप किसी को आमंत्रित नहीं करते हैं, तो आप प्रतीक्षा सूची के लिए साइन अप कर सकते हैं और हम जल्द ही एक भेज देंगे।।" -#: src/view/screens/Moderation.tsx:245 +#: src/screens/Moderation/index.tsx:535 msgid "Bluesky will not show your profile and posts to logged-out users. Other apps may not honor this request. This does not make your account private." msgstr "" @@ -491,15 +557,23 @@ msgstr "" #~ msgid "Bluesky.Social" #~ msgstr "Bluesky.Social" +#: src/lib/moderation/useLabelBehaviorDescription.ts:53 +msgid "Blur images" +msgstr "" + +#: src/lib/moderation/useLabelBehaviorDescription.ts:51 +msgid "Blur images and filter from feeds" +msgstr "" + #: src/screens/Onboarding/index.tsx:33 msgid "Books" msgstr "" -#: src/view/screens/Settings/index.tsx:859 +#: src/view/screens/Settings/index.tsx:889 msgid "Build version {0} {1}" msgstr "Build version {0} {1}" -#: src/view/com/auth/HomeLoggedOutCTA.tsx:87 +#: src/view/com/auth/HomeLoggedOutCTA.tsx:91 #: src/view/com/auth/SplashScreen.web.tsx:128 msgid "Business" msgstr "" @@ -516,17 +590,23 @@ msgstr "" msgid "by {0}" msgstr "" +#: src/components/LabelingServiceCard/index.tsx:57 +msgid "By {0}" +msgstr "" + #: src/view/com/profile/ProfileSubpageHeader.tsx:161 msgid "by <0/>" msgstr "" +#: src/view/com/auth/create/Policies.tsx:87 +msgid "By creating an account you agree to the {els}." +msgstr "" + #: src/view/com/profile/ProfileSubpageHeader.tsx:159 msgid "by you" msgstr "" -#: src/view/com/composer/photos/OpenCameraBtn.tsx:60 -#: src/view/com/util/UserAvatar.tsx:224 -#: src/view/com/util/UserBanner.tsx:40 +#: src/view/com/composer/photos/OpenCameraBtn.tsx:77 msgid "Camera" msgstr "कैमरा" @@ -534,28 +614,33 @@ msgstr "कैमरा" msgid "Can only contain letters, numbers, spaces, dashes, and underscores. Must be at least 4 characters long, but no more than 32 characters long." msgstr "केवल अक्षर, संख्या, रिक्त स्थान, डैश और अंडरस्कोर हो सकते हैं। कम से कम 4 अक्षर लंबा होना चाहिए, लेकिन 32 अक्षरों से अधिक लंबा नहीं होना चाहिए।।" -#: src/components/Prompt.tsx:101 -#: src/view/com/composer/Composer.tsx:307 -#: src/view/com/composer/Composer.tsx:312 +#: src/components/Menu/index.tsx:213 +#: src/components/Prompt.tsx:116 +#: src/components/Prompt.tsx:118 +#: src/components/TagMenu/index.tsx:268 +#: src/view/com/composer/Composer.tsx:316 +#: src/view/com/composer/Composer.tsx:321 #: src/view/com/modals/ChangeEmail.tsx:218 #: src/view/com/modals/ChangeEmail.tsx:220 -#: src/view/com/modals/ChangePassword.tsx:265 -#: src/view/com/modals/ChangePassword.tsx:268 +#: src/view/com/modals/ChangeHandle.tsx:153 +#: src/view/com/modals/ChangePassword.tsx:267 +#: src/view/com/modals/ChangePassword.tsx:270 #: src/view/com/modals/CreateOrEditList.tsx:355 +#: src/view/com/modals/crop-image/CropImage.web.tsx:137 #: src/view/com/modals/EditImage.tsx:323 #: src/view/com/modals/EditProfile.tsx:249 #: src/view/com/modals/InAppBrowserConsent.tsx:78 +#: src/view/com/modals/InAppBrowserConsent.tsx:80 #: src/view/com/modals/LinkWarning.tsx:87 +#: src/view/com/modals/LinkWarning.tsx:89 #: src/view/com/modals/Repost.tsx:87 #: src/view/com/modals/VerifyEmail.tsx:247 #: src/view/com/modals/VerifyEmail.tsx:253 -#: src/view/screens/Search/Search.tsx:716 -#: src/view/shell/desktop/Search.tsx:238 +#: src/view/screens/Search/Search.tsx:717 +#: src/view/shell/desktop/Search.tsx:239 msgid "Cancel" msgstr "कैंसिल" -#: src/view/com/modals/Confirm.tsx:88 -#: src/view/com/modals/Confirm.tsx:91 #: src/view/com/modals/CreateOrEditList.tsx:360 #: src/view/com/modals/DeleteAccount.tsx:156 #: src/view/com/modals/DeleteAccount.tsx:234 @@ -585,7 +670,7 @@ msgid "Cancel quote post" msgstr "कोटे पोस्ट मत करो" #: src/view/com/modals/ListAddRemoveUsers.tsx:87 -#: src/view/shell/desktop/Search.tsx:234 +#: src/view/shell/desktop/Search.tsx:235 msgid "Cancel search" msgstr "खोज मत करो" @@ -593,17 +678,25 @@ msgstr "खोज मत करो" #~ msgid "Cancel waitlist signup" #~ msgstr "प्रतीक्षा सूची पंजीकरण मत करो" -#: src/view/screens/Settings/index.tsx:334 +#: src/view/com/modals/LinkWarning.tsx:88 +msgid "Cancels opening the linked website" +msgstr "" + +#: src/view/com/modals/VerifyEmail.tsx:152 +msgid "Change" +msgstr "" + +#: src/view/screens/Settings/index.tsx:349 msgctxt "action" msgid "Change" msgstr "परिवर्तन" -#: src/view/screens/Settings/index.tsx:696 +#: src/view/screens/Settings/index.tsx:712 msgid "Change handle" msgstr "हैंडल बदलें" #: src/view/com/modals/ChangeHandle.tsx:161 -#: src/view/screens/Settings/index.tsx:705 +#: src/view/screens/Settings/index.tsx:723 msgid "Change Handle" msgstr "हैंडल बदलें" @@ -611,11 +704,12 @@ msgstr "हैंडल बदलें" msgid "Change my email" msgstr "मेरा ईमेल बदलें" -#: src/view/screens/Settings/index.tsx:732 +#: src/view/screens/Settings/index.tsx:750 msgid "Change password" msgstr "" -#: src/view/screens/Settings/index.tsx:741 +#: src/view/com/modals/ChangePassword.tsx:141 +#: src/view/screens/Settings/index.tsx:761 msgid "Change Password" msgstr "" @@ -624,8 +718,8 @@ msgid "Change post language to {0}" msgstr "" #: src/view/screens/Settings/index.tsx:733 -msgid "Change your Bluesky password" -msgstr "" +#~ msgid "Change your Bluesky password" +#~ msgstr "" #: src/view/com/modals/ChangeEmail.tsx:109 msgid "Change Your Email" @@ -653,8 +747,8 @@ msgid "Choose \"Everybody\" or \"Nobody\"" msgstr "" #: src/view/screens/Settings/index.tsx:697 -msgid "Choose a new Bluesky username or create" -msgstr "" +#~ msgid "Choose a new Bluesky username or create" +#~ msgstr "" #: src/view/com/auth/server-input/index.tsx:79 msgid "Choose Service" @@ -665,7 +759,7 @@ msgid "Choose the algorithms that power your custom feeds." msgstr "" #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:83 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:83 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:85 msgid "Choose the algorithms that power your experience with custom feeds." msgstr "उन एल्गोरिदम का चयन करें जो कस्टम फीड्स के साथ अपने अनुभव को शक्ति देते हैं।।" @@ -681,29 +775,35 @@ msgstr "" msgid "Choose your password" msgstr "अपना पासवर्ड चुनें" -#: src/view/screens/Settings/index.tsx:834 -#: src/view/screens/Settings/index.tsx:835 +#: src/view/screens/Settings/index.tsx:864 msgid "Clear all legacy storage data" msgstr "" -#: src/view/screens/Settings/index.tsx:837 +#: src/view/screens/Settings/index.tsx:867 msgid "Clear all legacy storage data (restart after this)" msgstr "" -#: src/view/screens/Settings/index.tsx:846 -#: src/view/screens/Settings/index.tsx:847 +#: src/view/screens/Settings/index.tsx:876 msgid "Clear all storage data" msgstr "" -#: src/view/screens/Settings/index.tsx:849 +#: src/view/screens/Settings/index.tsx:879 msgid "Clear all storage data (restart after this)" msgstr "" #: src/view/com/util/forms/SearchInput.tsx:88 -#: src/view/screens/Search/Search.tsx:697 +#: src/view/screens/Search/Search.tsx:698 msgid "Clear search query" msgstr "खोज क्वेरी साफ़ करें" +#: src/view/screens/Settings/index.tsx:865 +msgid "Clears all legacy storage data" +msgstr "" + +#: src/view/screens/Settings/index.tsx:877 +msgid "Clears all storage data" +msgstr "" + #: src/view/screens/Support.tsx:40 msgid "click here" msgstr "" @@ -720,8 +820,8 @@ msgstr "" msgid "Climate" msgstr "" -#: src/view/com/modals/ChangePassword.tsx:265 -#: src/view/com/modals/ChangePassword.tsx:268 +#: src/view/com/modals/ChangePassword.tsx:267 +#: src/view/com/modals/ChangePassword.tsx:270 msgid "Close" msgstr "" @@ -734,27 +834,28 @@ msgstr "" msgid "Close alert" msgstr "चेतावनी को बंद करो" -#: src/view/com/util/BottomSheetCustomBackdrop.tsx:33 +#: src/view/com/util/BottomSheetCustomBackdrop.tsx:36 msgid "Close bottom drawer" msgstr "बंद करो" -#: src/view/com/lightbox/ImageViewing/components/ImageDefaultHeader.tsx:26 +#: src/view/com/lightbox/ImageViewing/components/ImageDefaultHeader.tsx:36 msgid "Close image" msgstr "छवि बंद करें" -#: src/view/com/lightbox/Lightbox.web.tsx:119 +#: src/view/com/lightbox/Lightbox.web.tsx:129 msgid "Close image viewer" msgstr "छवि बंद करें" -#: src/view/shell/index.web.tsx:51 +#: src/view/shell/index.web.tsx:55 msgid "Close navigation footer" msgstr "नेविगेशन पाद बंद करें" +#: src/components/Menu/index.tsx:207 #: src/components/TagMenu/index.tsx:262 msgid "Close this dialog" msgstr "" -#: src/view/shell/index.web.tsx:52 +#: src/view/shell/index.web.tsx:56 msgid "Closes bottom navigation bar" msgstr "" @@ -762,15 +863,15 @@ msgstr "" msgid "Closes password update alert" msgstr "" -#: src/view/com/composer/Composer.tsx:309 +#: src/view/com/composer/Composer.tsx:318 msgid "Closes post composer and discards post draft" msgstr "" -#: src/view/com/lightbox/ImageViewing/components/ImageDefaultHeader.tsx:27 +#: src/view/com/lightbox/ImageViewing/components/ImageDefaultHeader.tsx:37 msgid "Closes viewer for header image" msgstr "" -#: src/view/com/notifications/FeedItem.tsx:318 +#: src/view/com/notifications/FeedItem.tsx:321 msgid "Collapses list of users for a given notification" msgstr "" @@ -782,7 +883,7 @@ msgstr "" msgid "Comics" msgstr "" -#: src/Navigation.tsx:229 +#: src/Navigation.tsx:241 #: src/view/screens/CommunityGuidelines.tsx:32 msgid "Community Guidelines" msgstr "समुदाय दिशानिर्देश" @@ -795,7 +896,7 @@ msgstr "" msgid "Complete the challenge" msgstr "" -#: src/view/com/composer/Composer.tsx:424 +#: src/view/com/composer/Composer.tsx:437 msgid "Compose posts up to {MAX_GRAPHEME_LENGTH} characters in length" msgstr "" @@ -803,12 +904,18 @@ msgstr "" msgid "Compose reply" msgstr "जवाब लिखो" -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:67 +#: src/components/moderation/GlobalModerationLabelPref.tsx:69 +#: src/components/moderation/ModerationLabelPref.tsx:149 +#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:81 msgid "Configure content filtering setting for category: {0}" msgstr "" -#: src/components/Prompt.tsx:124 -#: src/view/com/modals/AppealLabel.tsx:98 +#: src/components/moderation/ModerationLabelPref.tsx:116 +msgid "Configured in <0>moderation settings." +msgstr "" + +#: src/components/Prompt.tsx:152 +#: src/components/Prompt.tsx:155 #: src/view/com/modals/SelfLabel.tsx:154 #: src/view/com/modals/VerifyEmail.tsx:231 #: src/view/com/modals/VerifyEmail.tsx:233 @@ -819,9 +926,9 @@ msgstr "हो गया" #: src/view/com/modals/Confirm.tsx:75 #: src/view/com/modals/Confirm.tsx:78 -msgctxt "action" -msgid "Confirm" -msgstr "" +#~ msgctxt "action" +#~ msgid "Confirm" +#~ msgstr "" #: src/view/com/modals/ChangeEmail.tsx:193 #: src/view/com/modals/ChangeEmail.tsx:195 @@ -837,10 +944,19 @@ msgid "Confirm delete account" msgstr "खाते को हटा दें" #: src/view/com/modals/ContentFilteringSettings.tsx:156 -msgid "Confirm your age to enable adult content." +#~ msgid "Confirm your age to enable adult content." +#~ msgstr "" + +#: src/screens/Moderation/index.tsx:303 +msgid "Confirm your age:" +msgstr "" + +#: src/screens/Moderation/index.tsx:294 +msgid "Confirm your birthdate" msgstr "" #: src/view/com/modals/ChangeEmail.tsx:157 +#: src/view/com/modals/DeleteAccount.tsx:176 #: src/view/com/modals/DeleteAccount.tsx:182 #: src/view/com/modals/VerifyEmail.tsx:165 msgid "Confirmation code" @@ -859,25 +975,40 @@ msgstr "कनेक्टिंग ..।" msgid "Contact support" msgstr "" +#: src/components/moderation/LabelsOnMe.tsx:42 +msgid "content" +msgstr "" + +#: src/lib/moderation/useGlobalLabelStrings.ts:18 +msgid "Content Blocked" +msgstr "" + #: src/view/screens/Moderation.tsx:83 -msgid "Content filtering" -msgstr "सामग्री फ़िल्टरिंग" +#~ msgid "Content filtering" +#~ msgstr "सामग्री फ़िल्टरिंग" #: src/view/com/modals/ContentFilteringSettings.tsx:44 -msgid "Content Filtering" -msgstr "सामग्री फ़िल्टरिंग" +#~ msgid "Content Filtering" +#~ msgstr "सामग्री फ़िल्टरिंग" + +#: src/screens/Moderation/index.tsx:287 +msgid "Content filters" +msgstr "" #: src/view/com/modals/lang-settings/ContentLanguagesSettings.tsx:74 #: src/view/screens/LanguageSettings.tsx:278 msgid "Content Languages" msgstr "सामग्री भाषा" -#: src/view/com/modals/ModerationDetails.tsx:65 +#: src/components/moderation/ModerationDetailsDialog.tsx:76 +#: src/lib/moderation/useModerationCauseDescription.ts:75 msgid "Content Not Available" msgstr "" -#: src/view/com/modals/ModerationDetails.tsx:33 -#: src/view/com/util/moderation/ScreenHider.tsx:78 +#: src/components/moderation/ModerationDetailsDialog.tsx:47 +#: src/components/moderation/ScreenHider.tsx:100 +#: src/lib/moderation/useGlobalLabelStrings.ts:22 +#: src/lib/moderation/useModerationCauseDescription.ts:38 msgid "Content Warning" msgstr "सामग्री चेतावनी" @@ -885,19 +1016,24 @@ msgstr "सामग्री चेतावनी" msgid "Content warnings" msgstr "सामग्री चेतावनी" +#: src/components/Menu/index.web.tsx:84 +msgid "Context menu backdrop, click to close the menu." +msgstr "" + #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:170 #: src/screens/Onboarding/StepFollowingFeed.tsx:153 #: src/screens/Onboarding/StepInterests/index.tsx:248 -#: src/screens/Onboarding/StepModeration/index.tsx:118 +#: src/screens/Onboarding/StepModeration/index.tsx:102 #: src/screens/Onboarding/StepTopicalFeeds.tsx:114 #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:148 #: src/view/com/auth/onboarding/RecommendedFollows.tsx:209 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:96 msgid "Continue" msgstr "आगे बढ़ें" #: src/screens/Onboarding/StepFollowingFeed.tsx:150 #: src/screens/Onboarding/StepInterests/index.tsx:245 -#: src/screens/Onboarding/StepModeration/index.tsx:115 +#: src/screens/Onboarding/StepModeration/index.tsx:99 #: src/screens/Onboarding/StepTopicalFeeds.tsx:111 msgid "Continue to next step" msgstr "" @@ -919,13 +1055,14 @@ msgstr "" msgid "Copied" msgstr "कॉपी कर ली" -#: src/view/screens/Settings/index.tsx:241 +#: src/view/screens/Settings/index.tsx:247 msgid "Copied build version to clipboard" msgstr "" #: src/view/com/modals/AddAppPasswords.tsx:76 +#: src/view/com/modals/ChangeHandle.tsx:327 #: src/view/com/modals/InviteCodes.tsx:152 -#: src/view/com/util/forms/PostDropdownBtn.tsx:161 +#: src/view/com/util/forms/PostDropdownBtn.tsx:158 msgid "Copied to clipboard" msgstr "" @@ -937,34 +1074,38 @@ msgstr "" msgid "Copy" msgstr "कॉपी" -#: src/view/screens/ProfileList.tsx:418 +#: src/view/com/modals/ChangeHandle.tsx:481 +msgid "Copy {0}" +msgstr "" + +#: src/view/screens/ProfileList.tsx:388 msgid "Copy link to list" msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:231 +#: src/view/com/util/forms/PostDropdownBtn.tsx:228 #: src/view/com/util/forms/PostDropdownBtn.tsx:237 msgid "Copy link to post" msgstr "" #: src/view/com/profile/ProfileHeader.tsx:295 -msgid "Copy link to profile" -msgstr "" +#~ msgid "Copy link to profile" +#~ msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:223 -#: src/view/com/util/forms/PostDropdownBtn.tsx:225 +#: src/view/com/util/forms/PostDropdownBtn.tsx:220 +#: src/view/com/util/forms/PostDropdownBtn.tsx:222 msgid "Copy post text" msgstr "पोस्ट टेक्स्ट कॉपी करें" -#: src/Navigation.tsx:234 +#: src/Navigation.tsx:246 #: src/view/screens/CopyrightPolicy.tsx:29 msgid "Copyright Policy" msgstr "कॉपीराइट नीति" -#: src/view/screens/ProfileFeed.tsx:97 +#: src/view/screens/ProfileFeed.tsx:102 msgid "Could not load feed" msgstr "फ़ीड लोड नहीं कर सकता" -#: src/view/screens/ProfileList.tsx:893 +#: src/view/screens/ProfileList.tsx:907 msgid "Could not load list" msgstr "सूची लोड नहीं कर सकता" @@ -972,13 +1113,13 @@ msgstr "सूची लोड नहीं कर सकता" #~ msgid "Country" #~ msgstr "" -#: src/view/com/auth/HomeLoggedOutCTA.tsx:62 -#: src/view/com/auth/SplashScreen.tsx:71 +#: src/view/com/auth/HomeLoggedOutCTA.tsx:64 +#: src/view/com/auth/SplashScreen.tsx:73 #: src/view/com/auth/SplashScreen.web.tsx:81 msgid "Create a new account" msgstr "नया खाता बनाएं" -#: src/view/screens/Settings/index.tsx:384 +#: src/view/screens/Settings/index.tsx:399 msgid "Create a new Bluesky account" msgstr "" @@ -995,19 +1136,23 @@ msgstr "" msgid "Create new account" msgstr "नया खाता बनाएं" -#: src/view/screens/AppPasswords.tsx:249 +#: src/components/ReportDialog/SelectReportOptionView.tsx:94 +msgid "Create report for {0}" +msgstr "" + +#: src/view/screens/AppPasswords.tsx:246 msgid "Created {0}" msgstr "बनाया गया {0}" #: src/view/screens/ProfileFeed.tsx:616 -msgid "Created by <0/>" -msgstr "" +#~ msgid "Created by <0/>" +#~ msgstr "" #: src/view/screens/ProfileFeed.tsx:614 -msgid "Created by you" -msgstr "" +#~ msgid "Created by you" +#~ msgstr "" -#: src/view/com/composer/Composer.tsx:455 +#: src/view/com/composer/Composer.tsx:468 msgid "Creates a card with a thumbnail. The card links to {url}" msgstr "" @@ -1037,8 +1182,8 @@ msgstr "" #~ msgid "Danger Zone" #~ msgstr "खतरा क्षेत्र" -#: src/view/screens/Settings/index.tsx:485 -#: src/view/screens/Settings/index.tsx:511 +#: src/view/screens/Settings/index.tsx:500 +#: src/view/screens/Settings/index.tsx:526 msgid "Dark" msgstr "डार्क मोड" @@ -1046,15 +1191,25 @@ msgstr "डार्क मोड" msgid "Dark mode" msgstr "" -#: src/view/screens/Settings/index.tsx:498 +#: src/view/screens/Settings/index.tsx:513 msgid "Dark Theme" msgstr "" +#: src/view/screens/Settings/index.tsx:837 +msgid "Debug Moderation" +msgstr "" + #: src/view/screens/Debug.tsx:83 msgid "Debug panel" msgstr "" -#: src/view/screens/Settings/index.tsx:772 +#: src/view/com/util/forms/PostDropdownBtn.tsx:319 +#: src/view/screens/AppPasswords.tsx:268 +#: src/view/screens/ProfileList.tsx:613 +msgid "Delete" +msgstr "" + +#: src/view/screens/Settings/index.tsx:792 msgid "Delete account" msgstr "खाता हटाएं" @@ -1062,13 +1217,15 @@ msgstr "खाता हटाएं" msgid "Delete Account" msgstr "खाता हटाएं" -#: src/view/screens/AppPasswords.tsx:222 -#: src/view/screens/AppPasswords.tsx:242 +#: src/view/screens/AppPasswords.tsx:239 msgid "Delete app password" msgstr "अप्प पासवर्ड हटाएं" -#: src/view/screens/ProfileList.tsx:364 -#: src/view/screens/ProfileList.tsx:445 +#: src/view/screens/AppPasswords.tsx:263 +msgid "Delete app password?" +msgstr "" + +#: src/view/screens/ProfileList.tsx:415 msgid "Delete List" msgstr "सूची हटाएँ" @@ -1080,24 +1237,28 @@ msgstr "मेरा खाता हटाएं" #~ msgid "Delete my account…" #~ msgstr "मेरा खाता हटाएं…" -#: src/view/screens/Settings/index.tsx:784 +#: src/view/screens/Settings/index.tsx:804 msgid "Delete My Account…" msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:317 -#: src/view/com/util/forms/PostDropdownBtn.tsx:326 +#: src/view/com/util/forms/PostDropdownBtn.tsx:302 +#: src/view/com/util/forms/PostDropdownBtn.tsx:304 msgid "Delete post" msgstr "पोस्ट को हटाएं" -#: src/view/com/util/forms/PostDropdownBtn.tsx:321 +#: src/view/screens/ProfileList.tsx:608 +msgid "Delete this list?" +msgstr "" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:314 msgid "Delete this post?" msgstr "इस पोस्ट को डीलीट करें?" -#: src/view/com/util/post-embeds/QuoteEmbed.tsx:70 +#: src/view/com/util/post-embeds/QuoteEmbed.tsx:64 msgid "Deleted" msgstr "" -#: src/view/com/post-thread/PostThread.tsx:316 +#: src/view/com/post-thread/PostThread.tsx:305 msgid "Deleted post." msgstr "यह पोस्ट मिटाई जा चुकी है" @@ -1112,23 +1273,35 @@ msgstr "विवरण" #~ msgid "Developer Tools" #~ msgstr "डेवलपर उपकरण" -#: src/view/com/composer/Composer.tsx:218 +#: src/view/com/composer/Composer.tsx:217 msgid "Did you want to say anything?" msgstr "" -#: src/view/screens/Settings/index.tsx:504 +#: src/view/screens/Settings/index.tsx:519 msgid "Dim" msgstr "" -#: src/view/com/composer/Composer.tsx:151 +#: src/lib/moderation/useLabelBehaviorDescription.ts:32 +#: src/lib/moderation/useLabelBehaviorDescription.ts:42 +#: src/lib/moderation/useLabelBehaviorDescription.ts:68 +#: src/screens/Moderation/index.tsx:343 +msgid "Disabled" +msgstr "" + +#: src/view/com/composer/Composer.tsx:510 msgid "Discard" msgstr "" #: src/view/com/composer/Composer.tsx:145 -msgid "Discard draft" -msgstr "ड्राफ्ट हटाएं" +#~ msgid "Discard draft" +#~ msgstr "ड्राफ्ट हटाएं" + +#: src/view/com/composer/Composer.tsx:507 +msgid "Discard draft?" +msgstr "" -#: src/view/screens/Moderation.tsx:226 +#: src/screens/Moderation/index.tsx:520 +#: src/screens/Moderation/index.tsx:524 msgid "Discourage apps from showing my account to logged-out users" msgstr "" @@ -1153,7 +1326,19 @@ msgstr "नाम" msgid "Display Name" msgstr "प्रदर्शन का नाम" -#: src/view/com/modals/ChangeHandle.tsx:487 +#: src/view/com/modals/ChangeHandle.tsx:398 +msgid "DNS Panel" +msgstr "" + +#: src/lib/moderation/useGlobalLabelStrings.ts:39 +msgid "Does not include nudity." +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:482 +msgid "Domain Value" +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:489 msgid "Domain verified!" msgstr "डोमेन सत्यापित!" @@ -1174,19 +1359,19 @@ msgctxt "action" msgid "Done" msgstr "" +#: src/components/dialogs/BirthDateSettings.tsx:119 +#: src/components/dialogs/BirthDateSettings.tsx:125 #: src/view/com/auth/server-input/index.tsx:165 #: src/view/com/auth/server-input/index.tsx:166 #: src/view/com/modals/AddAppPasswords.tsx:226 #: src/view/com/modals/AltImage.tsx:139 -#: src/view/com/modals/ContentFilteringSettings.tsx:88 -#: src/view/com/modals/ContentFilteringSettings.tsx:96 #: src/view/com/modals/crop-image/CropImage.web.tsx:152 #: src/view/com/modals/InviteCodes.tsx:80 #: src/view/com/modals/InviteCodes.tsx:123 #: src/view/com/modals/ListAddRemoveUsers.tsx:142 #: src/view/screens/PreferencesFollowingFeed.tsx:311 -#: src/view/screens/Settings/ExportCarDialog.tsx:93 #: src/view/screens/Settings/ExportCarDialog.tsx:94 +#: src/view/screens/Settings/ExportCarDialog.tsx:95 msgid "Done" msgstr "खत्म" @@ -1199,8 +1384,8 @@ msgid "Double tap to sign in" msgstr "" #: src/view/screens/Settings/index.tsx:755 -msgid "Download Bluesky account data (repository)" -msgstr "" +#~ msgid "Download Bluesky account data (repository)" +#~ msgstr "" #: src/view/screens/Settings/ExportCarDialog.tsx:59 #: src/view/screens/Settings/ExportCarDialog.tsx:63 @@ -1211,18 +1396,30 @@ msgstr "" msgid "Drop to add images" msgstr "" -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:111 +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:120 msgid "Due to Apple policies, adult content can only be enabled on the web after completing sign up." msgstr "" +#: src/view/com/modals/ChangeHandle.tsx:257 +msgid "e.g. alice" +msgstr "" + #: src/view/com/modals/EditProfile.tsx:185 msgid "e.g. Alice Roberts" msgstr "" +#: src/view/com/modals/ChangeHandle.tsx:381 +msgid "e.g. alice.com" +msgstr "" + #: src/view/com/modals/EditProfile.tsx:203 msgid "e.g. Artist, dog-lover, and avid reader." msgstr "" +#: src/lib/moderation/useGlobalLabelStrings.ts:43 +msgid "E.g. artistic nudes." +msgstr "" + #: src/view/com/modals/CreateOrEditList.tsx:283 msgid "e.g. Great Posters" msgstr "" @@ -1248,12 +1445,17 @@ msgctxt "action" msgid "Edit" msgstr "" +#: src/view/com/util/UserAvatar.tsx:299 +#: src/view/com/util/UserBanner.tsx:85 +msgid "Edit avatar" +msgstr "" + #: src/view/com/composer/photos/Gallery.tsx:144 #: src/view/com/modals/EditImage.tsx:207 msgid "Edit image" msgstr "छवि संपादित करें" -#: src/view/screens/ProfileList.tsx:433 +#: src/view/screens/ProfileList.tsx:403 msgid "Edit list details" msgstr "सूची विवरण संपादित करें" @@ -1261,7 +1463,7 @@ msgstr "सूची विवरण संपादित करें" msgid "Edit Moderation List" msgstr "" -#: src/Navigation.tsx:244 +#: src/Navigation.tsx:256 #: src/view/screens/Feeds.tsx:434 #: src/view/screens/SavedFeeds.tsx:84 msgid "Edit My Feeds" @@ -1271,11 +1473,13 @@ msgstr "मेरी फ़ीड संपादित करें" msgid "Edit my profile" msgstr "मेरी प्रोफ़ाइल संपादित करें" -#: src/view/com/profile/ProfileHeader.tsx:418 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:172 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:161 msgid "Edit profile" msgstr "मेरी प्रोफ़ाइल संपादित करें" -#: src/view/com/profile/ProfileHeader.tsx:423 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:175 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:164 msgid "Edit Profile" msgstr "मेरी प्रोफ़ाइल संपादित करें" @@ -1324,7 +1528,7 @@ msgstr "ईमेल अपडेट किया गया" msgid "Email verified" msgstr "" -#: src/view/screens/Settings/index.tsx:312 +#: src/view/screens/Settings/index.tsx:327 msgid "Email:" msgstr "ईमेल:" @@ -1332,12 +1536,16 @@ msgstr "ईमेल:" msgid "Enable {0} only" msgstr "" -#: src/view/com/modals/ContentFilteringSettings.tsx:167 +#: src/screens/Moderation/index.tsx:331 +msgid "Enable adult content" +msgstr "" + +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:94 msgid "Enable Adult Content" msgstr "" -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:76 -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:77 +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:78 +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:79 msgid "Enable adult content in your feeds" msgstr "" @@ -1353,7 +1561,11 @@ msgstr "" msgid "Enable this setting to only see replies between people you follow." msgstr "इस सेटिंग को केवल उन लोगों के बीच जवाब देखने में सक्षम करें जिन्हें आप फॉलो करते हैं।।" -#: src/view/screens/Profile.tsx:455 +#: src/screens/Moderation/index.tsx:341 +msgid "Enabled" +msgstr "" + +#: src/screens/Profile/Sections/Feed.tsx:84 msgid "End of feed" msgstr "" @@ -1370,7 +1582,7 @@ msgstr "" msgid "Enter Confirmation Code" msgstr "" -#: src/view/com/modals/ChangePassword.tsx:151 +#: src/view/com/modals/ChangePassword.tsx:153 msgid "Enter the code you received to change your password." msgstr "" @@ -1382,8 +1594,8 @@ msgstr "आप जिस डोमेन का उपयोग करना च msgid "Enter the email you used to create your account. We'll send you a \"reset code\" so you can set a new password." msgstr "वह ईमेल दर्ज करें जिसका उपयोग आपने अपना खाता बनाने के लिए किया था। हम आपको एक \"reset code\" भेजेंगे ताकि आप एक नया पासवर्ड सेट कर सकें।" +#: src/components/dialogs/BirthDateSettings.tsx:108 #: src/view/com/auth/create/Step1.tsx:228 -#: src/view/com/modals/BirthDateSettings.tsx:74 msgid "Enter your birth date" msgstr "" @@ -1423,16 +1635,28 @@ msgstr "" msgid "Everybody" msgstr "" +#: src/lib/moderation/useReportOptions.ts:66 +msgid "Excessive mentions or replies" +msgstr "" + +#: src/view/com/modals/DeleteAccount.tsx:231 +msgid "Exits account deletion process" +msgstr "" + #: src/view/com/modals/ChangeHandle.tsx:150 msgid "Exits handle change process" msgstr "" -#: src/view/com/lightbox/Lightbox.web.tsx:120 +#: src/view/com/modals/crop-image/CropImage.web.tsx:135 +msgid "Exits image cropping process" +msgstr "" + +#: src/view/com/lightbox/Lightbox.web.tsx:130 msgid "Exits image view" msgstr "" #: src/view/com/modals/ListAddRemoveUsers.tsx:88 -#: src/view/shell/desktop/Search.tsx:235 +#: src/view/shell/desktop/Search.tsx:236 msgid "Exits inputting search query" msgstr "" @@ -1440,7 +1664,7 @@ msgstr "" #~ msgid "Exits signing up for waitlist with {email}" #~ msgstr "" -#: src/view/com/lightbox/Lightbox.web.tsx:163 +#: src/view/com/lightbox/Lightbox.web.tsx:183 msgid "Expand alt text" msgstr "ऑल्ट टेक्स्ट" @@ -1449,12 +1673,20 @@ msgstr "ऑल्ट टेक्स्ट" msgid "Expand or collapse the full post you are replying to" msgstr "" -#: src/view/screens/Settings/index.tsx:753 +#: src/lib/moderation/useGlobalLabelStrings.ts:47 +msgid "Explicit or potentially disturbing media." +msgstr "" + +#: src/lib/moderation/useGlobalLabelStrings.ts:35 +msgid "Explicit sexual images." +msgstr "" + +#: src/view/screens/Settings/index.tsx:773 msgid "Export my data" msgstr "" #: src/view/screens/Settings/ExportCarDialog.tsx:44 -#: src/view/screens/Settings/index.tsx:764 +#: src/view/screens/Settings/index.tsx:784 msgid "Export My Data" msgstr "" @@ -1467,13 +1699,13 @@ msgstr "" msgid "External media may allow websites to collect information about you and your device. No information is sent or requested until you press the \"play\" button." msgstr "" -#: src/Navigation.tsx:263 +#: src/Navigation.tsx:275 #: src/view/screens/PreferencesExternalEmbeds.tsx:52 -#: src/view/screens/Settings/index.tsx:657 +#: src/view/screens/Settings/index.tsx:673 msgid "External Media Preferences" msgstr "" -#: src/view/screens/Settings/index.tsx:648 +#: src/view/screens/Settings/index.tsx:664 msgid "External media settings" msgstr "" @@ -1486,7 +1718,7 @@ msgstr "" msgid "Failed to create the list. Check your internet connection and try again." msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:128 +#: src/view/com/util/forms/PostDropdownBtn.tsx:125 msgid "Failed to delete post, please try again" msgstr "" @@ -1495,11 +1727,15 @@ msgstr "" msgid "Failed to load recommended feeds" msgstr "अनुशंसित फ़ीड लोड करने में विफल" -#: src/Navigation.tsx:194 +#: src/view/com/lightbox/Lightbox.tsx:83 +msgid "Failed to save image: {0}" +msgstr "" + +#: src/Navigation.tsx:196 msgid "Feed" msgstr "" -#: src/view/com/feeds/FeedSourceCard.tsx:231 +#: src/view/com/feeds/FeedSourceCard.tsx:218 msgid "Feed by {0}" msgstr "" @@ -1512,18 +1748,18 @@ msgstr "फ़ीड ऑफ़लाइन है" #~ msgstr "फ़ीड प्राथमिकता" #: src/view/shell/desktop/RightNav.tsx:61 -#: src/view/shell/Drawer.tsx:311 +#: src/view/shell/Drawer.tsx:314 msgid "Feedback" msgstr "प्रतिक्रिया" -#: src/Navigation.tsx:452 +#: src/Navigation.tsx:464 #: src/view/screens/Feeds.tsx:419 #: src/view/screens/Feeds.tsx:524 -#: src/view/screens/Profile.tsx:184 -#: src/view/shell/bottom-bar/BottomBar.tsx:181 -#: src/view/shell/desktop/LeftNav.tsx:342 -#: src/view/shell/Drawer.tsx:476 -#: src/view/shell/Drawer.tsx:477 +#: src/view/screens/Profile.tsx:192 +#: src/view/shell/bottom-bar/BottomBar.tsx:183 +#: src/view/shell/desktop/LeftNav.tsx:346 +#: src/view/shell/Drawer.tsx:479 +#: src/view/shell/Drawer.tsx:480 msgid "Feeds" msgstr "सभी फ़ीड" @@ -1547,6 +1783,14 @@ msgstr "फ़ीड कस्टम एल्गोरिदम हैं ज msgid "Feeds can be topical as well!" msgstr "" +#: src/view/com/modals/ChangeHandle.tsx:482 +msgid "File Contents" +msgstr "" + +#: src/lib/moderation/useLabelBehaviorDescription.ts:66 +msgid "Filter from feeds" +msgstr "" + #: src/screens/Onboarding/StepFinished.tsx:151 msgid "Finalizing" msgstr "" @@ -1557,15 +1801,15 @@ msgstr "" msgid "Find accounts to follow" msgstr "" -#: src/view/screens/Search/Search.tsx:440 +#: src/view/screens/Search/Search.tsx:441 msgid "Find users on Bluesky" msgstr "" -#: src/view/screens/Search/Search.tsx:438 +#: src/view/screens/Search/Search.tsx:439 msgid "Find users with the search tool on the right" msgstr "" -#: src/view/com/auth/onboarding/RecommendedFollowsItem.tsx:150 +#: src/view/com/auth/onboarding/RecommendedFollowsItem.tsx:155 msgid "Finding similar accounts..." msgstr "मिलते-जुलते खाते ढूँढना" @@ -1599,22 +1843,29 @@ msgid "Flip vertically" msgstr "" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:181 -#: src/view/com/post-thread/PostThreadFollowBtn.tsx:136 -#: src/view/com/profile/ProfileHeader.tsx:513 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:229 +#: src/view/com/auth/onboarding/RecommendedFollowsItem.tsx:141 +#: src/view/com/post-thread/PostThreadFollowBtn.tsx:139 +#: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:246 msgid "Follow" msgstr "फॉलो" -#: src/view/com/profile/FollowButton.tsx:64 +#: src/view/com/profile/FollowButton.tsx:69 msgctxt "action" msgid "Follow" msgstr "" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:58 -#: src/view/com/post-thread/PostThreadFollowBtn.tsx:122 -#: src/view/com/profile/ProfileHeader.tsx:504 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:214 +#: src/view/com/post-thread/PostThreadFollowBtn.tsx:125 msgid "Follow {0}" msgstr "" +#: src/view/com/profile/ProfileMenu.tsx:242 +#: src/view/com/profile/ProfileMenu.tsx:253 +msgid "Follow Account" +msgstr "" + #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:179 msgid "Follow All" msgstr "" @@ -1627,7 +1878,7 @@ msgstr "" msgid "Follow some users to get started. We can recommend you more users based on who you find interesting." msgstr "आरंभ करने के लिए कुछ उपयोगकर्ताओं का अनुसरण करें. आपको कौन दिलचस्प लगता है, इसके आधार पर हम आपको और अधिक उपयोगकर्ताओं की अनुशंसा कर सकते हैं।" -#: src/view/com/profile/ProfileCard.tsx:194 +#: src/view/com/profile/ProfileCard.tsx:216 msgid "Followed by {0}" msgstr "" @@ -1639,33 +1890,39 @@ msgstr "" msgid "Followed users only" msgstr "केवल वे यूजर को फ़ॉलो किया गया" -#: src/view/com/notifications/FeedItem.tsx:166 +#: src/view/com/notifications/FeedItem.tsx:170 msgid "followed you" msgstr "" +#: src/view/com/profile/ProfileFollowers.tsx:109 #: src/view/screens/ProfileFollowers.tsx:25 msgid "Followers" msgstr "यह यूजर आपका फ़ोलो करता है" -#: src/view/com/post-thread/PostThreadFollowBtn.tsx:136 -#: src/view/com/profile/ProfileHeader.tsx:495 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:227 +#: src/view/com/post-thread/PostThreadFollowBtn.tsx:139 +#: src/view/com/profile/ProfileFollows.tsx:108 #: src/view/screens/ProfileFollows.tsx:25 msgid "Following" msgstr "फोल्लोविंग" -#: src/view/com/profile/ProfileHeader.tsx:149 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:89 msgid "Following {0}" msgstr "" -#: src/Navigation.tsx:250 +#: src/view/screens/Settings/index.tsx:549 +msgid "Following feed preferences" +msgstr "" + +#: src/Navigation.tsx:262 #: src/view/com/home/HomeHeaderLayout.web.tsx:50 #: src/view/com/home/HomeHeaderLayoutMobile.tsx:84 #: src/view/screens/PreferencesFollowingFeed.tsx:104 -#: src/view/screens/Settings/index.tsx:543 +#: src/view/screens/Settings/index.tsx:558 msgid "Following Feed Preferences" msgstr "" -#: src/view/com/profile/ProfileHeader.tsx:546 +#: src/screens/Profile/Header/Handle.tsx:24 msgid "Follows you" msgstr "यह यूजर आपका फ़ोलो करता है" @@ -1698,12 +1955,16 @@ msgstr "पासवर्ड भूल गए" msgid "Forgot Password" msgstr "पासवर्ड भूल गए" +#: src/lib/moderation/useReportOptions.ts:52 +msgid "Frequently Posts Unwanted Content" +msgstr "" + #: src/screens/Hashtag.tsx:108 #: src/screens/Hashtag.tsx:148 msgid "From @{sanitizedAuthor}" msgstr "" -#: src/view/com/posts/FeedItem.tsx:189 +#: src/view/com/posts/FeedItem.tsx:179 msgctxt "from-feed" msgid "From <0/>" msgstr "" @@ -1717,27 +1978,46 @@ msgstr "गैलरी" msgid "Get Started" msgstr "प्रारंभ करें" +#: src/lib/moderation/useReportOptions.ts:37 +msgid "Glaring violations of law or terms of service" +msgstr "" + +#: src/components/moderation/ScreenHider.tsx:144 +#: src/components/moderation/ScreenHider.tsx:153 #: src/view/com/auth/LoggedOut.tsx:81 #: src/view/com/auth/LoggedOut.tsx:82 -#: src/view/com/util/moderation/ScreenHider.tsx:123 -#: src/view/shell/desktop/LeftNav.tsx:104 +#: src/view/screens/NotFound.tsx:55 +#: src/view/screens/ProfileFeed.tsx:111 +#: src/view/screens/ProfileList.tsx:916 +#: src/view/shell/desktop/LeftNav.tsx:108 msgid "Go back" msgstr "वापस जाओ" -#: src/view/screens/ProfileFeed.tsx:106 -#: src/view/screens/ProfileFeed.tsx:111 -#: src/view/screens/ProfileList.tsx:902 -#: src/view/screens/ProfileList.tsx:907 +#: src/screens/Profile/ErrorState.tsx:62 +#: src/screens/Profile/ErrorState.tsx:66 +#: src/view/screens/NotFound.tsx:54 +#: src/view/screens/ProfileFeed.tsx:116 +#: src/view/screens/ProfileList.tsx:921 msgid "Go Back" msgstr "वापस जाओ" +#: src/components/ReportDialog/SelectReportOptionView.tsx:74 +#: src/components/ReportDialog/SubmitView.tsx:104 #: src/screens/Onboarding/Layout.tsx:104 #: src/screens/Onboarding/Layout.tsx:193 msgid "Go back to previous step" msgstr "" -#: src/view/screens/Search/Search.tsx:747 -#: src/view/shell/desktop/Search.tsx:262 +#: src/view/screens/NotFound.tsx:55 +msgid "Go home" +msgstr "" + +#: src/view/screens/NotFound.tsx:54 +msgid "Go Home" +msgstr "" + +#: src/view/screens/Search/Search.tsx:748 +#: src/view/shell/desktop/Search.tsx:263 msgid "Go to @{queryMaybeHandle}" msgstr "" @@ -1745,15 +2025,23 @@ msgstr "" #: src/view/com/auth/login/ForgotPasswordForm.tsx:218 #: src/view/com/auth/login/LoginForm.tsx:288 #: src/view/com/auth/login/SetNewPasswordForm.tsx:195 -#: src/view/com/modals/ChangePassword.tsx:165 +#: src/view/com/modals/ChangePassword.tsx:167 msgid "Go to next" msgstr "अगला" +#: src/lib/moderation/useGlobalLabelStrings.ts:46 +msgid "Graphic Media" +msgstr "" + #: src/view/com/modals/ChangeHandle.tsx:265 msgid "Handle" msgstr "हैंडल" -#: src/Navigation.tsx:270 +#: src/lib/moderation/useReportOptions.ts:32 +msgid "Harassment, trolling, or intolerance" +msgstr "" + +#: src/Navigation.tsx:282 msgid "Hashtag" msgstr "" @@ -1770,7 +2058,7 @@ msgid "Having trouble?" msgstr "" #: src/view/shell/desktop/RightNav.tsx:90 -#: src/view/shell/Drawer.tsx:321 +#: src/view/shell/Drawer.tsx:324 msgid "Help" msgstr "सहायता" @@ -1790,40 +2078,45 @@ msgstr "" msgid "Here is your app password." msgstr "यहां आपका ऐप पासवर्ड है." -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:41 -#: src/view/com/modals/ContentFilteringSettings.tsx:251 -#: src/view/com/util/moderation/ContentHider.tsx:105 -#: src/view/com/util/moderation/PostHider.tsx:108 +#: src/components/moderation/ContentHider.tsx:115 +#: src/components/moderation/GlobalModerationLabelPref.tsx:43 +#: src/components/moderation/PostHider.tsx:107 +#: src/lib/moderation/useLabelBehaviorDescription.ts:15 +#: src/lib/moderation/useLabelBehaviorDescription.ts:20 +#: src/lib/moderation/useLabelBehaviorDescription.ts:25 +#: src/lib/moderation/useLabelBehaviorDescription.ts:30 +#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:52 +#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:76 +#: src/view/com/util/forms/PostDropdownBtn.tsx:328 msgid "Hide" msgstr "इसे छिपाएं" -#: src/view/com/modals/ContentFilteringSettings.tsx:224 -#: src/view/com/notifications/FeedItem.tsx:326 +#: src/view/com/notifications/FeedItem.tsx:329 msgctxt "action" msgid "Hide" msgstr "" #: src/view/com/util/forms/PostDropdownBtn.tsx:276 -#: src/view/com/util/forms/PostDropdownBtn.tsx:287 +#: src/view/com/util/forms/PostDropdownBtn.tsx:278 msgid "Hide post" msgstr "" -#: src/view/com/util/moderation/ContentHider.tsx:67 -#: src/view/com/util/moderation/PostHider.tsx:61 +#: src/components/moderation/ContentHider.tsx:67 +#: src/components/moderation/PostHider.tsx:64 msgid "Hide the content" msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:280 +#: src/view/com/util/forms/PostDropdownBtn.tsx:325 msgid "Hide this post?" msgstr "" -#: src/view/com/notifications/FeedItem.tsx:316 +#: src/view/com/notifications/FeedItem.tsx:319 msgid "Hide user list" msgstr "उपयोगकर्ता सूची छुपाएँ" #: src/view/com/profile/ProfileHeader.tsx:487 -msgid "Hides posts from {0} in your feed" -msgstr "" +#~ msgid "Hides posts from {0} in your feed" +#~ msgstr "" #: src/view/com/posts/FeedErrorMessage.tsx:111 msgid "Hmm, some kind of issue occurred when contacting the feed server. Please let the feed owner know about this issue." @@ -1845,11 +2138,19 @@ msgstr "" msgid "Hmm, we're having trouble finding this feed. It may have been deleted." msgstr "" -#: src/Navigation.tsx:442 -#: src/view/shell/bottom-bar/BottomBar.tsx:137 -#: src/view/shell/desktop/LeftNav.tsx:306 -#: src/view/shell/Drawer.tsx:398 -#: src/view/shell/Drawer.tsx:399 +#: src/screens/Moderation/index.tsx:61 +msgid "Hmmmm, it seems we're having trouble loading this data. See below for more details. If this issue persists, please contact us." +msgstr "" + +#: src/screens/Profile/ErrorState.tsx:31 +msgid "Hmmmm, we couldn't load that moderation service." +msgstr "" + +#: src/Navigation.tsx:454 +#: src/view/shell/bottom-bar/BottomBar.tsx:139 +#: src/view/shell/desktop/LeftNav.tsx:310 +#: src/view/shell/Drawer.tsx:401 +#: src/view/shell/Drawer.tsx:402 msgid "Home" msgstr "होम फीड" @@ -1860,8 +2161,13 @@ msgstr "होम फीड" #~ msgid "Home Feed Preferences" #~ msgstr "होम फ़ीड प्राथमिकताएं" +#: src/view/com/modals/ChangeHandle.tsx:421 +msgid "Host:" +msgstr "" + #: src/view/com/auth/create/Step1.tsx:75 #: src/view/com/auth/login/ForgotPasswordForm.tsx:120 +#: src/view/com/modals/ChangeHandle.tsx:280 msgid "Hosting provider" msgstr "होस्टिंग प्रदाता" @@ -1881,7 +2187,7 @@ msgstr "" msgid "I have my own domain" msgstr "मेरे पास अपना डोमेन है" -#: src/view/com/lightbox/Lightbox.web.tsx:165 +#: src/view/com/lightbox/Lightbox.web.tsx:185 msgid "If alt text is long, toggles alt text expanded state" msgstr "" @@ -1889,10 +2195,26 @@ msgstr "" msgid "If none are selected, suitable for all ages." msgstr "यदि किसी को चुना जाता है, तो सभी उम्र के लिए उपयुक्त है।।" -#: src/view/com/modals/ChangePassword.tsx:146 +#: src/view/com/auth/create/Policies.tsx:91 +msgid "If you are not yet an adult according to the laws of your country, your parent or legal guardian must read these Terms on your behalf." +msgstr "" + +#: src/view/screens/ProfileList.tsx:610 +msgid "If you delete this list, you won't be able to recover it." +msgstr "" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:316 +msgid "If you remove this post, you won't be able to recover it." +msgstr "" + +#: src/view/com/modals/ChangePassword.tsx:148 msgid "If you want to change your password, we will send you a code to verify that this is your account." msgstr "" +#: src/lib/moderation/useReportOptions.ts:36 +msgid "Illegal and Urgent" +msgstr "" + #: src/view/com/util/images/Gallery.tsx:38 msgid "Image" msgstr "" @@ -1903,8 +2225,12 @@ msgstr "छवि alt पाठ" #: src/view/com/util/UserAvatar.tsx:311 #: src/view/com/util/UserBanner.tsx:118 -msgid "Image options" -msgstr "छवि विकल्प" +#~ msgid "Image options" +#~ msgstr "छवि विकल्प" + +#: src/lib/moderation/useReportOptions.ts:47 +msgid "Impersonation or false claims about identity or affiliation" +msgstr "" #: src/view/com/auth/login/SetNewPasswordForm.tsx:138 msgid "Input code sent to your email for password reset" @@ -1958,11 +2284,15 @@ msgstr "" msgid "Input your password" msgstr "" +#: src/view/com/modals/ChangeHandle.tsx:390 +msgid "Input your preferred hosting provider" +msgstr "" + #: src/view/com/auth/create/Step2.tsx:80 msgid "Input your user handle" msgstr "" -#: src/view/com/post-thread/PostThreadItem.tsx:226 +#: src/view/com/post-thread/PostThreadItem.tsx:221 msgid "Invalid or unsupported post record" msgstr "" @@ -2003,7 +2333,7 @@ msgstr "" msgid "It shows posts from the people you follow as they happen." msgstr "" -#: src/view/com/auth/HomeLoggedOutCTA.tsx:99 +#: src/view/com/auth/HomeLoggedOutCTA.tsx:103 #: src/view/com/auth/SplashScreen.web.tsx:138 msgid "Jobs" msgstr "" @@ -2025,20 +2355,52 @@ msgstr "" msgid "Journalism" msgstr "" +#: src/components/moderation/LabelsOnMe.tsx:59 +msgid "label has been placed on this {labelTarget}" +msgstr "" + +#: src/components/moderation/ContentHider.tsx:144 +msgid "Labeled by {0}." +msgstr "" + +#: src/components/moderation/ContentHider.tsx:142 +msgid "Labeled by the author." +msgstr "" + +#: src/view/screens/Profile.tsx:186 +msgid "Labels" +msgstr "" + +#: src/screens/Profile/Sections/Labels.tsx:143 +msgid "Labels are annotations on users and content. They can be used to hide, warn, and categorize the network." +msgstr "" + +#: src/components/moderation/LabelsOnMe.tsx:61 +msgid "labels have been placed on this {labelTarget}" +msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:63 +msgid "Labels on your account" +msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:65 +msgid "Labels on your content" +msgstr "" + #: src/view/com/composer/select-language/SelectLangBtn.tsx:104 msgid "Language selection" msgstr "अपनी भाषा चुने" -#: src/view/screens/Settings/index.tsx:594 +#: src/view/screens/Settings/index.tsx:610 msgid "Language settings" msgstr "" -#: src/Navigation.tsx:142 +#: src/Navigation.tsx:144 #: src/view/screens/LanguageSettings.tsx:89 msgid "Language Settings" msgstr "भाषा सेटिंग्स" -#: src/view/screens/Settings/index.tsx:603 +#: src/view/screens/Settings/index.tsx:619 msgid "Languages" msgstr "भाषा" @@ -2047,27 +2409,31 @@ msgid "Last step!" msgstr "" #: src/view/com/util/moderation/ContentHider.tsx:103 -msgid "Learn more" -msgstr "" +#~ msgid "Learn more" +#~ msgstr "" -#: src/view/com/util/moderation/PostAlerts.tsx:47 -#: src/view/com/util/moderation/ProfileHeaderAlerts.tsx:65 -#: src/view/com/util/moderation/ScreenHider.tsx:104 +#: src/components/moderation/ScreenHider.tsx:129 msgid "Learn More" msgstr "अधिक जानें" -#: src/view/com/util/moderation/ContentHider.tsx:85 -#: src/view/com/util/moderation/PostAlerts.tsx:40 -#: src/view/com/util/moderation/PostHider.tsx:78 -#: src/view/com/util/moderation/ProfileHeaderAlerts.tsx:49 -#: src/view/com/util/moderation/ScreenHider.tsx:101 +#: src/components/moderation/ContentHider.tsx:65 +#: src/components/moderation/ContentHider.tsx:128 +msgid "Learn more about the moderation applied to this content." +msgstr "" + +#: src/components/moderation/PostHider.tsx:85 +#: src/components/moderation/ScreenHider.tsx:126 msgid "Learn more about this warning" msgstr "इस चेतावनी के बारे में अधिक जानें" -#: src/view/screens/Moderation.tsx:262 +#: src/screens/Moderation/index.tsx:551 msgid "Learn more about what is public on Bluesky." msgstr "" +#: src/components/moderation/ContentHider.tsx:152 +msgid "Learn more." +msgstr "" + #: src/view/com/modals/lang-settings/ContentLanguagesSettings.tsx:82 msgid "Leave them all unchecked to see any language." msgstr "उन्हें किसी भी भाषा को देखने के लिए अनचेक छोड़ दें।।" @@ -2080,7 +2446,7 @@ msgstr "लीविंग Bluesky" msgid "left to go." msgstr "" -#: src/view/screens/Settings/index.tsx:278 +#: src/view/screens/Settings/index.tsx:292 msgid "Legacy storage cleared, you need to restart the app now." msgstr "" @@ -2095,55 +2461,65 @@ msgstr "" #: src/view/com/util/UserAvatar.tsx:248 #: src/view/com/util/UserBanner.tsx:62 -msgid "Library" -msgstr "चित्र पुस्तकालय" +#~ msgid "Library" +#~ msgstr "चित्र पुस्तकालय" -#: src/view/screens/Settings/index.tsx:479 +#: src/view/screens/Settings/index.tsx:494 msgid "Light" msgstr "लाइट मोड" -#: src/view/com/util/post-ctrls/PostCtrls.tsx:182 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:185 msgid "Like" msgstr "" -#: src/view/screens/ProfileFeed.tsx:591 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:257 +#: src/view/screens/ProfileFeed.tsx:572 msgid "Like this feed" msgstr "इस फ़ीड को लाइक करो" -#: src/Navigation.tsx:199 +#: src/components/LikesDialog.tsx:87 +#: src/Navigation.tsx:201 +#: src/Navigation.tsx:206 msgid "Liked by" msgstr "इन यूजर ने लाइक किया है" +#: src/screens/Profile/ProfileLabelerLikedBy.tsx:42 #: src/view/screens/PostLikedBy.tsx:27 #: src/view/screens/ProfileFeedLikedBy.tsx:27 msgid "Liked By" msgstr "" -#: src/view/com/feeds/FeedSourceCard.tsx:279 +#: src/view/com/feeds/FeedSourceCard.tsx:268 msgid "Liked by {0} {1}" msgstr "" -#: src/view/screens/ProfileFeed.tsx:606 +#: src/components/LabelingServiceCard/index.tsx:72 +msgid "Liked by {count} {0}" +msgstr "" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:277 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:291 +#: src/view/screens/ProfileFeed.tsx:587 msgid "Liked by {likeCount} {0}" msgstr "" -#: src/view/com/notifications/FeedItem.tsx:170 +#: src/view/com/notifications/FeedItem.tsx:174 msgid "liked your custom feed" msgstr "" -#: src/view/com/notifications/FeedItem.tsx:155 +#: src/view/com/notifications/FeedItem.tsx:159 msgid "liked your post" msgstr "" -#: src/view/screens/Profile.tsx:183 +#: src/view/screens/Profile.tsx:191 msgid "Likes" msgstr "" -#: src/view/com/post-thread/PostThreadItem.tsx:183 +#: src/view/com/post-thread/PostThreadItem.tsx:182 msgid "Likes on this post" msgstr "" -#: src/Navigation.tsx:168 +#: src/Navigation.tsx:170 msgid "List" msgstr "" @@ -2151,15 +2527,15 @@ msgstr "" msgid "List Avatar" msgstr "सूची अवतार" -#: src/view/screens/ProfileList.tsx:324 +#: src/view/screens/ProfileList.tsx:311 msgid "List blocked" msgstr "" -#: src/view/com/feeds/FeedSourceCard.tsx:233 +#: src/view/com/feeds/FeedSourceCard.tsx:220 msgid "List by {0}" msgstr "" -#: src/view/screens/ProfileList.tsx:378 +#: src/view/screens/ProfileList.tsx:355 msgid "List deleted" msgstr "" @@ -2171,39 +2547,40 @@ msgstr "" msgid "List Name" msgstr "सूची का नाम" -#: src/view/screens/ProfileList.tsx:343 +#: src/view/screens/ProfileList.tsx:325 msgid "List unblocked" msgstr "" -#: src/view/screens/ProfileList.tsx:302 +#: src/view/screens/ProfileList.tsx:297 msgid "List unmuted" msgstr "" -#: src/Navigation.tsx:112 -#: src/view/screens/Profile.tsx:185 -#: src/view/shell/desktop/LeftNav.tsx:379 -#: src/view/shell/Drawer.tsx:492 -#: src/view/shell/Drawer.tsx:493 +#: src/Navigation.tsx:114 +#: src/view/screens/Profile.tsx:187 +#: src/view/screens/Profile.tsx:193 +#: src/view/shell/desktop/LeftNav.tsx:383 +#: src/view/shell/Drawer.tsx:495 +#: src/view/shell/Drawer.tsx:496 msgid "Lists" msgstr "सूची" #: src/view/com/post-thread/PostThread.tsx:333 #: src/view/com/post-thread/PostThread.tsx:341 -msgid "Load more posts" -msgstr "अधिक पोस्ट लोड करें" +#~ msgid "Load more posts" +#~ msgstr "अधिक पोस्ट लोड करें" #: src/view/screens/Notifications.tsx:159 msgid "Load new notifications" msgstr "नई सूचनाएं लोड करें" -#: src/view/com/feeds/FeedPage.tsx:115 -#: src/view/screens/Profile.tsx:440 +#: src/screens/Profile/Sections/Feed.tsx:70 +#: src/view/com/feeds/FeedPage.tsx:124 #: src/view/screens/ProfileFeed.tsx:495 -#: src/view/screens/ProfileList.tsx:681 +#: src/view/screens/ProfileList.tsx:695 msgid "Load new posts" msgstr "नई पोस्ट लोड करें" -#: src/view/com/composer/text-input/mobile/Autocomplete.tsx:95 +#: src/view/com/composer/text-input/mobile/Autocomplete.tsx:99 msgid "Loading..." msgstr "" @@ -2211,7 +2588,7 @@ msgstr "" #~ msgid "Local dev server" #~ msgstr "स्थानीय देव सर्वर" -#: src/Navigation.tsx:209 +#: src/Navigation.tsx:221 msgid "Log" msgstr "" @@ -2222,11 +2599,11 @@ msgstr "" msgid "Log out" msgstr "" -#: src/view/screens/Moderation.tsx:155 +#: src/screens/Moderation/index.tsx:444 msgid "Logged-out visibility" msgstr "" -#: src/view/com/auth/login/ChooseAccountForm.tsx:133 +#: src/view/com/auth/login/ChooseAccountForm.tsx:137 msgid "Login to account that is not listed" msgstr "उस खाते में लॉग इन करें जो सूचीबद्ध नहीं है" @@ -2246,7 +2623,7 @@ msgstr "" msgid "May only contain letters and numbers" msgstr "" -#: src/view/screens/Profile.tsx:182 +#: src/view/screens/Profile.tsx:190 msgid "Media" msgstr "" @@ -2259,35 +2636,43 @@ msgid "Mentioned users" msgstr "" #: src/view/com/util/ViewHeader.tsx:87 -#: src/view/screens/Search/Search.tsx:646 +#: src/view/screens/Search/Search.tsx:647 msgid "Menu" msgstr "मेनू" -#: src/view/com/posts/FeedErrorMessage.tsx:197 +#: src/view/com/posts/FeedErrorMessage.tsx:192 msgid "Message from server: {0}" msgstr "" -#: src/Navigation.tsx:117 -#: src/view/screens/Moderation.tsx:66 -#: src/view/screens/Settings/index.tsx:625 -#: src/view/shell/desktop/LeftNav.tsx:397 -#: src/view/shell/Drawer.tsx:511 -#: src/view/shell/Drawer.tsx:512 +#: src/lib/moderation/useReportOptions.ts:45 +msgid "Misleading Account" +msgstr "" + +#: src/Navigation.tsx:119 +#: src/screens/Moderation/index.tsx:106 +#: src/view/screens/Settings/index.tsx:641 +#: src/view/shell/desktop/LeftNav.tsx:401 +#: src/view/shell/Drawer.tsx:514 +#: src/view/shell/Drawer.tsx:515 msgid "Moderation" msgstr "मॉडरेशन" +#: src/components/moderation/ModerationDetailsDialog.tsx:113 +msgid "Moderation details" +msgstr "" + #: src/view/com/lists/ListCard.tsx:93 #: src/view/com/modals/UserAddRemoveLists.tsx:206 msgid "Moderation list by {0}" msgstr "" -#: src/view/screens/ProfileList.tsx:775 +#: src/view/screens/ProfileList.tsx:789 msgid "Moderation list by <0/>" msgstr "" #: src/view/com/lists/ListCard.tsx:91 #: src/view/com/modals/UserAddRemoveLists.tsx:204 -#: src/view/screens/ProfileList.tsx:773 +#: src/view/screens/ProfileList.tsx:787 msgid "Moderation list by you" msgstr "" @@ -2299,30 +2684,41 @@ msgstr "" msgid "Moderation list updated" msgstr "" -#: src/view/screens/Moderation.tsx:114 +#: src/screens/Moderation/index.tsx:245 msgid "Moderation lists" msgstr "मॉडरेशन सूचियाँ" -#: src/Navigation.tsx:122 +#: src/Navigation.tsx:124 #: src/view/screens/ModerationModlists.tsx:58 msgid "Moderation Lists" msgstr "" -#: src/view/screens/Settings/index.tsx:619 +#: src/view/screens/Settings/index.tsx:635 msgid "Moderation settings" msgstr "" -#: src/view/com/modals/ModerationDetails.tsx:35 +#: src/Navigation.tsx:216 +msgid "Moderation states" +msgstr "" + +#: src/screens/Moderation/index.tsx:217 +msgid "Moderation tools" +msgstr "" + +#: src/components/moderation/ModerationDetailsDialog.tsx:49 +#: src/lib/moderation/useModerationCauseDescription.ts:40 msgid "Moderator has chosen to set a general warning on the content." msgstr "" +#: src/view/com/post-thread/PostThreadItem.tsx:541 +msgid "More" +msgstr "" + #: src/view/shell/desktop/Feeds.tsx:65 msgid "More feeds" msgstr "अधिक फ़ीड" -#: src/view/com/profile/ProfileHeader.tsx:523 -#: src/view/screens/ProfileFeed.tsx:363 -#: src/view/screens/ProfileList.tsx:617 +#: src/view/screens/ProfileList.tsx:599 msgid "More options" msgstr "अधिक विकल्प" @@ -2346,11 +2742,12 @@ msgstr "" msgid "Mute {truncatedTag}" msgstr "" -#: src/view/com/profile/ProfileHeader.tsx:327 +#: src/view/com/profile/ProfileMenu.tsx:279 +#: src/view/com/profile/ProfileMenu.tsx:286 msgid "Mute Account" msgstr "खाता म्यूट करें" -#: src/view/screens/ProfileList.tsx:544 +#: src/view/screens/ProfileList.tsx:518 msgid "Mute accounts" msgstr "खातों को म्यूट करें" @@ -2370,17 +2767,18 @@ msgstr "" msgid "Mute in text & tags" msgstr "" -#: src/view/screens/ProfileList.tsx:491 +#: src/view/screens/ProfileList.tsx:461 +#: src/view/screens/ProfileList.tsx:624 msgid "Mute list" msgstr "" -#: src/view/screens/ProfileList.tsx:275 +#: src/view/screens/ProfileList.tsx:619 msgid "Mute these accounts?" msgstr "इन खातों को म्यूट करें?" #: src/view/screens/ProfileList.tsx:279 -msgid "Mute this List" -msgstr "" +#~ msgid "Mute this List" +#~ msgstr "" #: src/components/dialogs/MutedWords.tsx:127 msgid "Mute this word in post text and tags" @@ -2404,11 +2802,11 @@ msgstr "" msgid "Muted" msgstr "" -#: src/view/screens/Moderation.tsx:128 +#: src/screens/Moderation/index.tsx:257 msgid "Muted accounts" msgstr "म्यूट किए गए खाते" -#: src/Navigation.tsx:127 +#: src/Navigation.tsx:129 #: src/view/screens/ModerationMutedAccounts.tsx:107 msgid "Muted Accounts" msgstr "म्यूट किए गए खाते" @@ -2417,15 +2815,20 @@ msgstr "म्यूट किए गए खाते" msgid "Muted accounts have their posts removed from your feed and from your notifications. Mutes are completely private." msgstr "म्यूट किए गए खातों की पोस्ट आपके फ़ीड और आपकी सूचनाओं से हटा दी जाती हैं। म्यूट पूरी तरह से निजी हैं." -#: src/view/screens/Moderation.tsx:100 +#: src/lib/moderation/useModerationCauseDescription.ts:85 +msgid "Muted by \"{0}\"" +msgstr "" + +#: src/screens/Moderation/index.tsx:233 msgid "Muted words & tags" msgstr "" -#: src/view/screens/ProfileList.tsx:277 +#: src/view/screens/ProfileList.tsx:621 msgid "Muting is private. Muted accounts can interact with you, but you will not see their posts or receive notifications from them." msgstr "म्यूट करना निजी है. म्यूट किए गए खाते आपके साथ इंटरैक्ट कर सकते हैं, लेकिन आप उनकी पोस्ट नहीं देखेंगे या उनसे सूचनाएं प्राप्त नहीं करेंगे।" -#: src/view/com/modals/BirthDateSettings.tsx:56 +#: src/components/dialogs/BirthDateSettings.tsx:35 +#: src/components/dialogs/BirthDateSettings.tsx:38 msgid "My Birthday" msgstr "जन्मदिन" @@ -2437,13 +2840,17 @@ msgstr "मेरी फ़ीड" msgid "My Profile" msgstr "मेरी प्रोफाइल" -#: src/view/screens/Settings/index.tsx:582 +#: src/view/screens/Settings/index.tsx:592 +msgid "My saved feeds" +msgstr "" + +#: src/view/screens/Settings/index.tsx:598 msgid "My Saved Feeds" msgstr "मेरी फ़ीड" #: src/view/com/auth/server-input/index.tsx:118 -msgid "my-server.com" -msgstr "" +#~ msgid "my-server.com" +#~ msgstr "" #: src/view/com/modals/AddAppPasswords.tsx:179 #: src/view/com/modals/CreateOrEditList.tsx:290 @@ -2454,6 +2861,12 @@ msgstr "नाम" msgid "Name is required" msgstr "" +#: src/lib/moderation/useReportOptions.ts:57 +#: src/lib/moderation/useReportOptions.ts:78 +#: src/lib/moderation/useReportOptions.ts:86 +msgid "Name or Description Violates Community Standards" +msgstr "" + #: src/screens/Onboarding/index.tsx:25 msgid "Nature" msgstr "" @@ -2462,7 +2875,7 @@ msgstr "" #: src/view/com/auth/login/ForgotPasswordForm.tsx:219 #: src/view/com/auth/login/LoginForm.tsx:289 #: src/view/com/auth/login/SetNewPasswordForm.tsx:196 -#: src/view/com/modals/ChangePassword.tsx:166 +#: src/view/com/modals/ChangePassword.tsx:168 msgid "Navigates to the next screen" msgstr "" @@ -2470,13 +2883,17 @@ msgstr "" msgid "Navigates to your profile" msgstr "" +#: src/components/ReportDialog/SelectReportOptionView.tsx:124 +msgid "Need to report a copyright violation?" +msgstr "" + #: src/view/com/modals/EmbedConsent.tsx:107 #: src/view/com/modals/EmbedConsent.tsx:123 msgid "Never load embeds from {0}" msgstr "" #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:72 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:72 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:74 msgid "Never lose access to your followers and data." msgstr "अपने फ़ॉलोअर्स और डेटा तक पहुंच कभी न खोएं।" @@ -2485,7 +2902,11 @@ msgid "Never lose access to your followers or data." msgstr "" #: src/components/dialogs/MutedWords.tsx:293 -msgid "Nevermind" +#~ msgid "Nevermind" +#~ msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:520 +msgid "Nevermind, create a handle for me" msgstr "" #: src/view/screens/Lists.tsx:76 @@ -2502,29 +2923,30 @@ msgid "New Moderation List" msgstr "" #: src/view/com/auth/login/SetNewPasswordForm.tsx:150 +#: src/view/com/modals/ChangePassword.tsx:212 msgid "New password" msgstr "" -#: src/view/com/modals/ChangePassword.tsx:215 +#: src/view/com/modals/ChangePassword.tsx:217 msgid "New Password" msgstr "" -#: src/view/com/feeds/FeedPage.tsx:126 +#: src/view/com/feeds/FeedPage.tsx:135 msgctxt "action" msgid "New post" msgstr "" #: src/view/screens/Feeds.tsx:555 #: src/view/screens/Notifications.tsx:168 -#: src/view/screens/Profile.tsx:382 +#: src/view/screens/Profile.tsx:450 #: src/view/screens/ProfileFeed.tsx:433 -#: src/view/screens/ProfileList.tsx:196 -#: src/view/screens/ProfileList.tsx:224 -#: src/view/shell/desktop/LeftNav.tsx:248 +#: src/view/screens/ProfileList.tsx:199 +#: src/view/screens/ProfileList.tsx:227 +#: src/view/shell/desktop/LeftNav.tsx:252 msgid "New post" msgstr "नई पोस्ट" -#: src/view/shell/desktop/LeftNav.tsx:258 +#: src/view/shell/desktop/LeftNav.tsx:262 msgctxt "action" msgid "New Post" msgstr "नई पोस्ट" @@ -2548,8 +2970,8 @@ msgstr "" #: src/view/com/auth/login/SetNewPasswordForm.tsx:187 #: src/view/com/auth/login/SetNewPasswordForm.tsx:198 #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:79 -#: src/view/com/modals/ChangePassword.tsx:251 #: src/view/com/modals/ChangePassword.tsx:253 +#: src/view/com/modals/ChangePassword.tsx:255 msgid "Next" msgstr "अगला" @@ -2558,7 +2980,7 @@ msgctxt "action" msgid "Next" msgstr "" -#: src/view/com/lightbox/Lightbox.web.tsx:149 +#: src/view/com/lightbox/Lightbox.web.tsx:169 msgid "Next image" msgstr "अगली फोटो" @@ -2571,12 +2993,16 @@ msgstr "अगली फोटो" msgid "No" msgstr "नहीं" -#: src/view/screens/ProfileFeed.tsx:584 -#: src/view/screens/ProfileList.tsx:755 +#: src/view/screens/ProfileFeed.tsx:561 +#: src/view/screens/ProfileList.tsx:769 msgid "No description" msgstr "कोई विवरण नहीं" -#: src/view/com/profile/ProfileHeader.tsx:170 +#: src/view/com/modals/ChangeHandle.tsx:406 +msgid "No DNS Panel" +msgstr "" + +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:111 msgid "No longer following {0}" msgstr "" @@ -2584,12 +3010,12 @@ msgstr "" msgid "No notifications yet!" msgstr "" -#: src/view/com/composer/text-input/mobile/Autocomplete.tsx:97 -#: src/view/com/composer/text-input/web/Autocomplete.tsx:191 +#: src/view/com/composer/text-input/mobile/Autocomplete.tsx:101 +#: src/view/com/composer/text-input/web/Autocomplete.tsx:195 msgid "No result" msgstr "" -#: src/components/Lists.tsx:192 +#: src/components/Lists.tsx:189 msgid "No results found" msgstr "" @@ -2598,8 +3024,8 @@ msgid "No results found for \"{query}\"" msgstr "\"{query}\" के लिए कोई परिणाम नहीं मिला" #: src/view/com/modals/ListAddRemoveUsers.tsx:127 -#: src/view/screens/Search/Search.tsx:281 -#: src/view/screens/Search/Search.tsx:309 +#: src/view/screens/Search/Search.tsx:282 +#: src/view/screens/Search/Search.tsx:310 msgid "No results found for {query}" msgstr "{query} के लिए कोई परिणाम नहीं मिला\"" @@ -2611,12 +3037,21 @@ msgstr "" msgid "Nobody" msgstr "" +#: src/components/LikedByList.tsx:102 +#: src/components/LikesDialog.tsx:99 +msgid "Nobody has liked this yet. Maybe you should be the first!" +msgstr "" + +#: src/lib/moderation/useGlobalLabelStrings.ts:42 +msgid "Non-sexual Nudity" +msgstr "" + #: src/view/com/modals/SelfLabel.tsx:135 msgid "Not Applicable." msgstr "लागू नहीं।" -#: src/Navigation.tsx:107 -#: src/view/screens/Profile.tsx:106 +#: src/Navigation.tsx:109 +#: src/view/screens/Profile.tsx:97 msgid "Not Found" msgstr "" @@ -2625,17 +3060,22 @@ msgstr "" msgid "Not right now" msgstr "" -#: src/view/screens/Moderation.tsx:252 +#: src/view/com/profile/ProfileMenu.tsx:368 +#: src/view/com/util/forms/PostDropdownBtn.tsx:342 +msgid "Note about sharing" +msgstr "" + +#: src/screens/Moderation/index.tsx:542 msgid "Note: Bluesky is an open and public network. This setting only limits the visibility of your content on the Bluesky app and website, and other apps may not respect this setting. Your content may still be shown to logged-out users by other apps and websites." msgstr "" -#: src/Navigation.tsx:457 +#: src/Navigation.tsx:469 #: src/view/screens/Notifications.tsx:124 #: src/view/screens/Notifications.tsx:148 -#: src/view/shell/bottom-bar/BottomBar.tsx:205 -#: src/view/shell/desktop/LeftNav.tsx:361 -#: src/view/shell/Drawer.tsx:435 -#: src/view/shell/Drawer.tsx:436 +#: src/view/shell/bottom-bar/BottomBar.tsx:207 +#: src/view/shell/desktop/LeftNav.tsx:365 +#: src/view/shell/Drawer.tsx:438 +#: src/view/shell/Drawer.tsx:439 msgid "Notifications" msgstr "सूचनाएं" @@ -2643,7 +3083,15 @@ msgstr "सूचनाएं" msgid "Nudity" msgstr "" -#: src/view/com/util/ErrorBoundary.tsx:35 +#: src/lib/moderation/useReportOptions.ts:71 +msgid "Nudity or pornography not labeled as such" +msgstr "" + +#: src/lib/moderation/useLabelBehaviorDescription.ts:11 +msgid "Off" +msgstr "" + +#: src/view/com/util/ErrorBoundary.tsx:49 msgid "Oh no!" msgstr "अरे नहीं!" @@ -2651,6 +3099,10 @@ msgstr "अरे नहीं!" msgid "Oh no! Something went wrong." msgstr "" +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:127 +msgid "OK" +msgstr "" + #: src/view/com/auth/login/PasswordUpdatedForm.tsx:41 msgid "Okay" msgstr "ठीक है" @@ -2659,11 +3111,11 @@ msgstr "ठीक है" msgid "Oldest replies first" msgstr "" -#: src/view/screens/Settings/index.tsx:234 +#: src/view/screens/Settings/index.tsx:240 msgid "Onboarding reset" msgstr "" -#: src/view/com/composer/Composer.tsx:382 +#: src/view/com/composer/Composer.tsx:391 msgid "One or more images is missing alt text." msgstr "एक या अधिक छवियाँ alt पाठ याद आती हैं।।" @@ -2671,13 +3123,13 @@ msgstr "एक या अधिक छवियाँ alt पाठ याद msgid "Only {0} can reply." msgstr "" -#: src/components/Lists.tsx:82 +#: src/components/Lists.tsx:83 msgid "Oops, something went wrong!" msgstr "" -#: src/components/Lists.tsx:188 -#: src/view/screens/AppPasswords.tsx:65 -#: src/view/screens/Profile.tsx:106 +#: src/components/Lists.tsx:157 +#: src/view/screens/AppPasswords.tsx:67 +#: src/view/screens/Profile.tsx:97 msgid "Oops!" msgstr "" @@ -2686,34 +3138,47 @@ msgid "Open" msgstr "" #: src/view/screens/Moderation.tsx:75 -msgid "Open content filtering settings" -msgstr "" +#~ msgid "Open content filtering settings" +#~ msgstr "" -#: src/view/com/composer/Composer.tsx:477 -#: src/view/com/composer/Composer.tsx:478 +#: src/view/com/composer/Composer.tsx:490 +#: src/view/com/composer/Composer.tsx:491 msgid "Open emoji picker" msgstr "" -#: src/view/screens/Settings/index.tsx:712 +#: src/view/screens/ProfileFeed.tsx:299 +msgid "Open feed options menu" +msgstr "" + +#: src/view/screens/Settings/index.tsx:730 msgid "Open links with in-app browser" msgstr "" -#: src/view/screens/Moderation.tsx:92 -msgid "Open muted words settings" +#: src/screens/Moderation/index.tsx:229 +msgid "Open muted words and tags settings" msgstr "" +#: src/view/screens/Moderation.tsx:92 +#~ msgid "Open muted words settings" +#~ msgstr "" + #: src/view/com/home/HomeHeaderLayoutMobile.tsx:50 msgid "Open navigation" msgstr "ओपन नेविगेशन" -#: src/view/com/util/forms/PostDropdownBtn.tsx:175 +#: src/view/com/util/forms/PostDropdownBtn.tsx:183 msgid "Open post options menu" msgstr "" -#: src/view/screens/Settings/index.tsx:804 +#: src/view/screens/Settings/index.tsx:824 +#: src/view/screens/Settings/index.tsx:834 msgid "Open storybook page" msgstr "" +#: src/view/screens/Settings/index.tsx:812 +msgid "Open system log" +msgstr "" + #: src/view/com/util/forms/DropdownButton.tsx:154 msgid "Opens {numItems} options" msgstr "" @@ -2722,11 +3187,11 @@ msgstr "" msgid "Opens additional details for a debug entry" msgstr "" -#: src/view/com/notifications/FeedItem.tsx:349 +#: src/view/com/notifications/FeedItem.tsx:353 msgid "Opens an expanded list of users in this notification" msgstr "" -#: src/view/com/composer/photos/OpenCameraBtn.tsx:61 +#: src/view/com/composer/photos/OpenCameraBtn.tsx:78 msgid "Opens camera on device" msgstr "" @@ -2734,7 +3199,7 @@ msgstr "" msgid "Opens composer" msgstr "" -#: src/view/screens/Settings/index.tsx:595 +#: src/view/screens/Settings/index.tsx:611 msgid "Opens configurable language settings" msgstr "भाषा सेटिंग्स खोलें" @@ -2743,21 +3208,31 @@ msgid "Opens device photo gallery" msgstr "" #: src/view/com/profile/ProfileHeader.tsx:420 -msgid "Opens editor for profile display name, avatar, background image, and description" -msgstr "" +#~ msgid "Opens editor for profile display name, avatar, background image, and description" +#~ msgstr "" -#: src/view/screens/Settings/index.tsx:649 +#: src/view/screens/Settings/index.tsx:665 msgid "Opens external embeds settings" msgstr "" -#: src/view/com/profile/ProfileHeader.tsx:575 -msgid "Opens followers list" +#: src/view/com/auth/HomeLoggedOutCTA.tsx:56 +#: src/view/com/auth/SplashScreen.tsx:70 +msgid "Opens flow to create a new Bluesky account" msgstr "" -#: src/view/com/profile/ProfileHeader.tsx:594 -msgid "Opens following list" +#: src/view/com/auth/HomeLoggedOutCTA.tsx:74 +#: src/view/com/auth/SplashScreen.tsx:83 +msgid "Opens flow to sign into your existing Bluesky account" msgstr "" +#: src/view/com/profile/ProfileHeader.tsx:575 +#~ msgid "Opens followers list" +#~ msgstr "" + +#: src/view/com/profile/ProfileHeader.tsx:594 +#~ msgid "Opens following list" +#~ msgstr "" + #: src/view/screens/Settings.tsx:412 #~ msgid "Opens invite code list" #~ msgstr "" @@ -2766,15 +3241,35 @@ msgstr "" msgid "Opens list of invite codes" msgstr "" +#: src/view/screens/Settings/index.tsx:794 +msgid "Opens modal for account deletion confirmation. Requires email code" +msgstr "" + #: src/view/screens/Settings/index.tsx:774 -msgid "Opens modal for account deletion confirmation. Requires email code." +#~ msgid "Opens modal for account deletion confirmation. Requires email code." +#~ msgstr "" + +#: src/view/screens/Settings/index.tsx:752 +msgid "Opens modal for changing your Bluesky password" +msgstr "" + +#: src/view/screens/Settings/index.tsx:714 +msgid "Opens modal for choosing a new Bluesky handle" +msgstr "" + +#: src/view/screens/Settings/index.tsx:775 +msgid "Opens modal for downloading your Bluesky account data (repository)" +msgstr "" + +#: src/view/screens/Settings/index.tsx:966 +msgid "Opens modal for email verification" msgstr "" #: src/view/com/modals/ChangeHandle.tsx:281 msgid "Opens modal for using custom domain" msgstr "कस्टम डोमेन का उपयोग करने के लिए मोडल खोलें" -#: src/view/screens/Settings/index.tsx:620 +#: src/view/screens/Settings/index.tsx:636 msgid "Opens moderation settings" msgstr "मॉडरेशन सेटिंग्स खोलें" @@ -2787,27 +3282,40 @@ msgstr "" msgid "Opens screen to edit Saved Feeds" msgstr "" -#: src/view/screens/Settings/index.tsx:576 +#: src/view/screens/Settings/index.tsx:593 msgid "Opens screen with all saved feeds" msgstr "सभी बचाया फ़ीड के साथ स्क्रीन खोलें" +#: src/view/screens/Settings/index.tsx:692 +msgid "Opens the app password settings" +msgstr "" + #: src/view/screens/Settings/index.tsx:676 -msgid "Opens the app password settings page" -msgstr "ऐप पासवर्ड सेटिंग पेज खोलें" +#~ msgid "Opens the app password settings page" +#~ msgstr "ऐप पासवर्ड सेटिंग पेज खोलें" + +#: src/view/screens/Settings/index.tsx:550 +msgid "Opens the Following feed preferences" +msgstr "" #: src/view/screens/Settings/index.tsx:535 -msgid "Opens the home feed preferences" -msgstr "होम फीड वरीयताओं को खोलता है" +#~ msgid "Opens the home feed preferences" +#~ msgstr "होम फीड वरीयताओं को खोलता है" -#: src/view/screens/Settings/index.tsx:805 +#: src/view/com/modals/LinkWarning.tsx:76 +msgid "Opens the linked website" +msgstr "" + +#: src/view/screens/Settings/index.tsx:825 +#: src/view/screens/Settings/index.tsx:835 msgid "Opens the storybook page" msgstr "स्टोरीबुक पेज खोलें" -#: src/view/screens/Settings/index.tsx:793 +#: src/view/screens/Settings/index.tsx:813 msgid "Opens the system log page" msgstr "सिस्टम लॉग पेज खोलें" -#: src/view/screens/Settings/index.tsx:556 +#: src/view/screens/Settings/index.tsx:571 msgid "Opens the threads preferences" msgstr "धागे वरीयताओं को खोलता है" @@ -2815,6 +3323,10 @@ msgstr "धागे वरीयताओं को खोलता है" msgid "Option {0} of {numItems}" msgstr "" +#: src/components/ReportDialog/SubmitView.tsx:162 +msgid "Optionally provide additional information below:" +msgstr "" + #: src/view/com/modals/Threadgate.tsx:89 msgid "Or combine these options:" msgstr "" @@ -2823,7 +3335,11 @@ msgstr "" #~ msgid "Or you can try our \"Discover\" algorithm:" #~ msgstr "" -#: src/view/com/auth/login/ChooseAccountForm.tsx:138 +#: src/lib/moderation/useReportOptions.ts:25 +msgid "Other" +msgstr "" + +#: src/view/com/auth/login/ChooseAccountForm.tsx:142 msgid "Other account" msgstr "अन्य खाता" @@ -2835,7 +3351,7 @@ msgstr "अन्य खाता" msgid "Other..." msgstr "अन्य..।" -#: src/components/Lists.tsx:194 +#: src/components/Lists.tsx:190 #: src/view/screens/NotFound.tsx:45 msgid "Page not found" msgstr "पृष्ठ नहीं मिला" @@ -2846,12 +3362,18 @@ msgstr "" #: src/view/com/auth/create/Step1.tsx:191 #: src/view/com/auth/create/Step1.tsx:201 +#: src/view/com/auth/login/LoginForm.tsx:210 #: src/view/com/auth/login/LoginForm.tsx:226 #: src/view/com/auth/login/SetNewPasswordForm.tsx:161 +#: src/view/com/modals/DeleteAccount.tsx:195 #: src/view/com/modals/DeleteAccount.tsx:202 msgid "Password" msgstr "पासवर्ड" +#: src/view/com/modals/ChangePassword.tsx:142 +msgid "Password Changed" +msgstr "" + #: src/view/com/auth/login/Login.tsx:157 msgid "Password updated" msgstr "" @@ -2860,11 +3382,11 @@ msgstr "" msgid "Password updated!" msgstr "पासवर्ड अद्यतन!" -#: src/Navigation.tsx:162 +#: src/Navigation.tsx:164 msgid "People followed by @{0}" msgstr "" -#: src/Navigation.tsx:155 +#: src/Navigation.tsx:157 msgid "People following @{0}" msgstr "" @@ -2888,11 +3410,15 @@ msgstr "" msgid "Pictures meant for adults." msgstr "चित्र वयस्कों के लिए थे।।" -#: src/view/screens/ProfileFeed.tsx:354 -#: src/view/screens/ProfileList.tsx:581 +#: src/view/screens/ProfileFeed.tsx:291 +#: src/view/screens/ProfileList.tsx:563 msgid "Pin to home" msgstr "" +#: src/view/screens/ProfileFeed.tsx:294 +msgid "Pin to Home" +msgstr "" + #: src/view/screens/SavedFeeds.tsx:88 msgid "Pinned Feeds" msgstr "पिन किया गया फ़ीड" @@ -2958,16 +3484,20 @@ msgstr "" msgid "Please enter your password as well:" msgstr "कृपया अपना पासवर्ड भी दर्ज करें:" +#: src/components/moderation/LabelsOnMeDialog.tsx:222 +msgid "Please explain why you think this label was incorrectly applied by {0}" +msgstr "" + #: src/view/com/modals/AppealLabel.tsx:72 #: src/view/com/modals/AppealLabel.tsx:75 -msgid "Please tell us why you think this content warning was incorrectly applied!" -msgstr "" +#~ msgid "Please tell us why you think this content warning was incorrectly applied!" +#~ msgstr "" #: src/view/com/modals/VerifyEmail.tsx:101 msgid "Please Verify Your Email" msgstr "" -#: src/view/com/composer/Composer.tsx:222 +#: src/view/com/composer/Composer.tsx:221 msgid "Please wait for your link card to finish loading" msgstr "" @@ -2979,13 +3509,17 @@ msgstr "" msgid "Porn" msgstr "" -#: src/view/com/composer/Composer.tsx:357 -#: src/view/com/composer/Composer.tsx:365 +#: src/lib/moderation/useGlobalLabelStrings.ts:34 +msgid "Pornography" +msgstr "" + +#: src/view/com/composer/Composer.tsx:366 +#: src/view/com/composer/Composer.tsx:374 msgctxt "action" msgid "Post" msgstr "" -#: src/view/com/post-thread/PostThread.tsx:303 +#: src/view/com/post-thread/PostThread.tsx:292 msgctxt "description" msgid "Post" msgstr "पोस्ट" @@ -2994,20 +3528,30 @@ msgstr "पोस्ट" msgid "Post by {0}" msgstr "" -#: src/Navigation.tsx:174 -#: src/Navigation.tsx:181 -#: src/Navigation.tsx:188 +#: src/Navigation.tsx:176 +#: src/Navigation.tsx:183 +#: src/Navigation.tsx:190 msgid "Post by @{0}" msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:108 +#: src/view/com/util/forms/PostDropdownBtn.tsx:105 msgid "Post deleted" msgstr "" -#: src/view/com/post-thread/PostThread.tsx:462 +#: src/view/com/post-thread/PostThread.tsx:157 msgid "Post hidden" msgstr "छुपा पोस्ट" +#: src/components/moderation/ModerationDetailsDialog.tsx:98 +#: src/lib/moderation/useModerationCauseDescription.ts:99 +msgid "Post Hidden by Muted Word" +msgstr "" + +#: src/components/moderation/ModerationDetailsDialog.tsx:101 +#: src/lib/moderation/useModerationCauseDescription.ts:108 +msgid "Post Hidden by You" +msgstr "" + #: src/view/com/composer/select-language/SelectLangBtn.tsx:87 msgid "Post language" msgstr "पोस्ट भाषा" @@ -3016,7 +3560,8 @@ msgstr "पोस्ट भाषा" msgid "Post Languages" msgstr "पोस्ट भाषा" -#: src/view/com/post-thread/PostThread.tsx:514 +#: src/view/com/post-thread/PostThread.tsx:152 +#: src/view/com/post-thread/PostThread.tsx:164 msgid "Post not found" msgstr "पोस्ट नहीं मिला" @@ -3024,7 +3569,7 @@ msgstr "पोस्ट नहीं मिला" msgid "posts" msgstr "" -#: src/view/screens/Profile.tsx:180 +#: src/view/screens/Profile.tsx:188 msgid "Posts" msgstr "" @@ -3040,7 +3585,11 @@ msgstr "" msgid "Potentially Misleading Link" msgstr "शायद एक भ्रामक लिंक" -#: src/view/com/lightbox/Lightbox.web.tsx:135 +#: src/components/Lists.tsx:88 +msgid "Press to retry" +msgstr "" + +#: src/view/com/lightbox/Lightbox.web.tsx:150 msgid "Previous image" msgstr "पिछली छवि" @@ -3052,15 +3601,16 @@ msgstr "प्राथमिक भाषा" msgid "Prioritize Your Follows" msgstr "अपने फ़ॉलोअर्स को प्राथमिकता दें" -#: src/view/screens/Settings/index.tsx:632 +#: src/view/screens/Settings/index.tsx:648 #: src/view/shell/desktop/RightNav.tsx:72 msgid "Privacy" msgstr "गोपनीयता" -#: src/Navigation.tsx:219 +#: src/Navigation.tsx:231 +#: src/view/com/auth/create/Policies.tsx:69 #: src/view/screens/PrivacyPolicy.tsx:29 -#: src/view/screens/Settings/index.tsx:891 -#: src/view/shell/Drawer.tsx:262 +#: src/view/screens/Settings/index.tsx:921 +#: src/view/shell/Drawer.tsx:265 msgid "Privacy Policy" msgstr "गोपनीयता नीति" @@ -3068,11 +3618,16 @@ msgstr "गोपनीयता नीति" msgid "Processing..." msgstr "प्रसंस्करण..." -#: src/view/shell/bottom-bar/BottomBar.tsx:247 -#: src/view/shell/desktop/LeftNav.tsx:415 +#: src/view/screens/DebugMod.tsx:888 +#: src/view/screens/Profile.tsx:340 +msgid "profile" +msgstr "" + +#: src/view/shell/bottom-bar/BottomBar.tsx:251 +#: src/view/shell/desktop/LeftNav.tsx:419 #: src/view/shell/Drawer.tsx:70 -#: src/view/shell/Drawer.tsx:546 -#: src/view/shell/Drawer.tsx:547 +#: src/view/shell/Drawer.tsx:549 +#: src/view/shell/Drawer.tsx:550 msgid "Profile" msgstr "प्रोफ़ाइल" @@ -3080,7 +3635,7 @@ msgstr "प्रोफ़ाइल" msgid "Profile updated" msgstr "" -#: src/view/screens/Settings/index.tsx:949 +#: src/view/screens/Settings/index.tsx:979 msgid "Protect your account by verifying your email." msgstr "अपने ईमेल को सत्यापित करके अपने खाते को सुरक्षित रखें।।" @@ -3096,11 +3651,11 @@ msgstr "" msgid "Public, shareable lists which can drive feeds." msgstr "सार्वजनिक, साझा करने योग्य सूचियाँ जो फ़ीड चला सकती हैं।" -#: src/view/com/composer/Composer.tsx:342 +#: src/view/com/composer/Composer.tsx:351 msgid "Publish post" msgstr "" -#: src/view/com/composer/Composer.tsx:342 +#: src/view/com/composer/Composer.tsx:351 msgid "Publish reply" msgstr "" @@ -3126,6 +3681,10 @@ msgstr "" msgid "Ratios" msgstr "अनुपात" +#: src/view/screens/Search/Search.tsx:776 +msgid "Recent Searches" +msgstr "" + #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:116 msgid "Recommended Feeds" msgstr "अनुशंसित फ़ीड" @@ -3134,36 +3693,50 @@ msgstr "अनुशंसित फ़ीड" msgid "Recommended Users" msgstr "अनुशंसित लोग" -#: src/components/dialogs/MutedWords.tsx:298 -#: src/view/com/modals/ListAddRemoveUsers.tsx:264 +#: src/components/dialogs/MutedWords.tsx:287 +#: src/view/com/feeds/FeedSourceCard.tsx:283 +#: src/view/com/modals/ListAddRemoveUsers.tsx:268 #: src/view/com/modals/SelfLabel.tsx:83 #: src/view/com/modals/UserAddRemoveLists.tsx:219 -#: src/view/com/util/UserAvatar.tsx:285 -#: src/view/com/util/UserBanner.tsx:91 +#: src/view/com/posts/FeedErrorMessage.tsx:204 msgid "Remove" msgstr "निकालें" #: src/view/com/feeds/FeedSourceCard.tsx:108 -msgid "Remove {0} from my feeds?" -msgstr "मेरे फ़ीड से {0} हटाएं?" +#~ msgid "Remove {0} from my feeds?" +#~ msgstr "मेरे फ़ीड से {0} हटाएं?" #: src/view/com/util/AccountDropdownBtn.tsx:22 msgid "Remove account" msgstr "खाता हटाएं" -#: src/view/com/posts/FeedErrorMessage.tsx:131 -#: src/view/com/posts/FeedErrorMessage.tsx:166 +#: src/view/com/util/UserAvatar.tsx:358 +msgid "Remove Avatar" +msgstr "" + +#: src/view/com/util/UserBanner.tsx:148 +msgid "Remove Banner" +msgstr "" + +#: src/view/com/posts/FeedErrorMessage.tsx:160 msgid "Remove feed" msgstr "फ़ीड हटाएँ" -#: src/view/com/feeds/FeedSourceCard.tsx:107 -#: src/view/com/feeds/FeedSourceCard.tsx:169 -#: src/view/com/feeds/FeedSourceCard.tsx:174 -#: src/view/com/feeds/FeedSourceCard.tsx:245 -#: src/view/screens/ProfileFeed.tsx:273 +#: src/view/com/posts/FeedErrorMessage.tsx:201 +msgid "Remove feed?" +msgstr "" + +#: src/view/com/feeds/FeedSourceCard.tsx:173 +#: src/view/com/feeds/FeedSourceCard.tsx:233 +#: src/view/screens/ProfileFeed.tsx:334 +#: src/view/screens/ProfileFeed.tsx:340 msgid "Remove from my feeds" msgstr "मेरे फ़ीड से हटाएँ" +#: src/view/com/feeds/FeedSourceCard.tsx:278 +msgid "Remove from my feeds?" +msgstr "" + #: src/view/com/composer/photos/Gallery.tsx:167 msgid "Remove image" msgstr "छवि निकालें" @@ -3172,7 +3745,7 @@ msgstr "छवि निकालें" msgid "Remove image preview" msgstr "छवि पूर्वावलोकन निकालें" -#: src/components/dialogs/MutedWords.tsx:343 +#: src/components/dialogs/MutedWords.tsx:330 msgid "Remove mute word from your list" msgstr "" @@ -3181,28 +3754,35 @@ msgid "Remove repost" msgstr "" #: src/view/com/feeds/FeedSourceCard.tsx:175 -msgid "Remove this feed from my feeds?" +#~ msgid "Remove this feed from my feeds?" +#~ msgstr "" + +#: src/view/com/posts/FeedErrorMessage.tsx:202 +msgid "Remove this feed from your saved feeds" msgstr "" #: src/view/com/posts/FeedErrorMessage.tsx:132 -msgid "Remove this feed from your saved feeds?" -msgstr "इस फ़ीड को सहेजे गए फ़ीड से हटा दें?" +#~ msgid "Remove this feed from your saved feeds?" +#~ msgstr "इस फ़ीड को सहेजे गए फ़ीड से हटा दें?" #: src/view/com/modals/ListAddRemoveUsers.tsx:199 #: src/view/com/modals/UserAddRemoveLists.tsx:152 msgid "Removed from list" msgstr "" -#: src/view/com/feeds/FeedSourceCard.tsx:113 -#: src/view/com/feeds/FeedSourceCard.tsx:180 +#: src/view/com/feeds/FeedSourceCard.tsx:121 msgid "Removed from my feeds" msgstr "" +#: src/view/screens/ProfileFeed.tsx:208 +msgid "Removed from your feeds" +msgstr "" + #: src/view/com/composer/ExternalEmbed.tsx:71 msgid "Removes default thumbnail from {0}" msgstr "" -#: src/view/screens/Profile.tsx:181 +#: src/view/screens/Profile.tsx:189 msgid "Replies" msgstr "" @@ -3210,7 +3790,7 @@ msgstr "" msgid "Replies to this thread are disabled" msgstr "" -#: src/view/com/composer/Composer.tsx:355 +#: src/view/com/composer/Composer.tsx:364 msgctxt "action" msgid "Reply" msgstr "" @@ -3219,34 +3799,55 @@ msgstr "" msgid "Reply Filters" msgstr "फिल्टर" -#: src/view/com/post/Post.tsx:167 -#: src/view/com/posts/FeedItem.tsx:287 +#: src/view/com/post/Post.tsx:166 +#: src/view/com/posts/FeedItem.tsx:280 msgctxt "description" msgid "Reply to <0/>" msgstr "" #: src/view/com/modals/report/Modal.tsx:166 -msgid "Report {collectionName}" -msgstr "रिपोर्ट {collectionName}" +#~ msgid "Report {collectionName}" +#~ msgstr "रिपोर्ट {collectionName}" -#: src/view/com/profile/ProfileHeader.tsx:361 +#: src/view/com/profile/ProfileMenu.tsx:319 +#: src/view/com/profile/ProfileMenu.tsx:322 msgid "Report Account" msgstr "रिपोर्ट" -#: src/view/screens/ProfileFeed.tsx:293 +#: src/view/screens/ProfileFeed.tsx:351 +#: src/view/screens/ProfileFeed.tsx:353 msgid "Report feed" msgstr "रिपोर्ट फ़ीड" -#: src/view/screens/ProfileList.tsx:459 +#: src/view/screens/ProfileList.tsx:429 msgid "Report List" msgstr "रिपोर्ट सूची" -#: src/view/com/modals/report/SendReportButton.tsx:37 -#: src/view/com/util/forms/PostDropdownBtn.tsx:301 -#: src/view/com/util/forms/PostDropdownBtn.tsx:309 +#: src/view/com/util/forms/PostDropdownBtn.tsx:292 +#: src/view/com/util/forms/PostDropdownBtn.tsx:294 msgid "Report post" msgstr "रिपोर्ट पोस्ट" +#: src/components/ReportDialog/SelectReportOptionView.tsx:43 +msgid "Report this content" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:56 +msgid "Report this feed" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:53 +msgid "Report this list" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:50 +msgid "Report this post" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:47 +msgid "Report this user" +msgstr "" + #: src/view/com/modals/Repost.tsx:43 #: src/view/com/modals/Repost.tsx:48 #: src/view/com/modals/Repost.tsx:53 @@ -3268,19 +3869,19 @@ msgstr "पोस्ट दोबारा पोस्ट करें या msgid "Reposted By" msgstr "द्वारा दोबारा पोस्ट किया गया" -#: src/view/com/posts/FeedItem.tsx:207 +#: src/view/com/posts/FeedItem.tsx:197 msgid "Reposted by {0}" msgstr "" -#: src/view/com/posts/FeedItem.tsx:224 +#: src/view/com/posts/FeedItem.tsx:214 msgid "Reposted by <0/>" msgstr "" -#: src/view/com/notifications/FeedItem.tsx:162 +#: src/view/com/notifications/FeedItem.tsx:166 msgid "reposted your post" msgstr "" -#: src/view/com/post-thread/PostThreadItem.tsx:188 +#: src/view/com/post-thread/PostThreadItem.tsx:187 msgid "Reposts of this post" msgstr "" @@ -3293,12 +3894,12 @@ msgstr "अनुरोध बदलें" #~ msgid "Request code" #~ msgstr "" -#: src/view/com/modals/ChangePassword.tsx:239 #: src/view/com/modals/ChangePassword.tsx:241 +#: src/view/com/modals/ChangePassword.tsx:243 msgid "Request Code" msgstr "" -#: src/view/screens/Settings/index.tsx:456 +#: src/view/screens/Settings/index.tsx:471 msgid "Require alt text before posting" msgstr "पोस्ट करने से पहले वैकल्पिक टेक्स्ट की आवश्यकता है" @@ -3308,18 +3909,20 @@ msgstr "इस प्रदाता के लिए आवश्यक" #: src/view/com/auth/login/SetNewPasswordForm.tsx:124 #: src/view/com/auth/login/SetNewPasswordForm.tsx:136 +#: src/view/com/modals/ChangePassword.tsx:185 msgid "Reset code" msgstr "कोड रीसेट करें" -#: src/view/com/modals/ChangePassword.tsx:190 +#: src/view/com/modals/ChangePassword.tsx:192 msgid "Reset Code" msgstr "" #: src/view/screens/Settings/index.tsx:824 -msgid "Reset onboarding" -msgstr "" +#~ msgid "Reset onboarding" +#~ msgstr "" -#: src/view/screens/Settings/index.tsx:827 +#: src/view/screens/Settings/index.tsx:854 +#: src/view/screens/Settings/index.tsx:857 msgid "Reset onboarding state" msgstr "ऑनबोर्डिंग स्टेट को रीसेट करें" @@ -3328,18 +3931,19 @@ msgid "Reset password" msgstr "पासवर्ड रीसेट" #: src/view/screens/Settings/index.tsx:814 -msgid "Reset preferences" -msgstr "" +#~ msgid "Reset preferences" +#~ msgstr "" -#: src/view/screens/Settings/index.tsx:817 +#: src/view/screens/Settings/index.tsx:844 +#: src/view/screens/Settings/index.tsx:847 msgid "Reset preferences state" msgstr "प्राथमिकताओं को रीसेट करें" -#: src/view/screens/Settings/index.tsx:825 +#: src/view/screens/Settings/index.tsx:855 msgid "Resets the onboarding state" msgstr "ऑनबोर्डिंग स्टेट को रीसेट करें" -#: src/view/screens/Settings/index.tsx:815 +#: src/view/screens/Settings/index.tsx:845 msgid "Resets the preferences state" msgstr "प्राथमिकताओं की स्थिति को रीसेट करें" @@ -3352,6 +3956,7 @@ msgstr "" msgid "Retries the last action, which errored out" msgstr "" +#: src/components/Lists.tsx:98 #: src/screens/Onboarding/StepInterests/index.tsx:221 #: src/screens/Onboarding/StepInterests/index.tsx:224 #: src/view/com/auth/create/CreateAccount.tsx:181 @@ -3367,10 +3972,19 @@ msgstr "फिर से कोशिश करो" #~ msgid "Retry." #~ msgstr "" -#: src/view/screens/ProfileList.tsx:903 +#: src/view/screens/ProfileList.tsx:917 msgid "Return to previous page" msgstr "" +#: src/view/screens/NotFound.tsx:59 +msgid "Returns to home page" +msgstr "" + +#: src/view/screens/NotFound.tsx:58 +#: src/view/screens/ProfileFeed.tsx:112 +msgid "Returns to previous page" +msgstr "" + #: src/view/shell/desktop/RightNav.tsx:55 #~ msgid "SANDBOX. Posts and accounts are not permanent." #~ msgstr "" @@ -3381,12 +3995,10 @@ msgctxt "action" msgid "Save" msgstr "" -#: src/view/com/modals/BirthDateSettings.tsx:94 -#: src/view/com/modals/BirthDateSettings.tsx:97 +#: src/components/dialogs/BirthDateSettings.tsx:125 #: src/view/com/modals/ChangeHandle.tsx:173 #: src/view/com/modals/CreateOrEditList.tsx:337 #: src/view/com/modals/EditProfile.tsx:224 -#: src/view/screens/ProfileFeed.tsx:346 msgid "Save" msgstr "सेव करो" @@ -3394,6 +4006,10 @@ msgstr "सेव करो" msgid "Save alt text" msgstr "सेव ऑल्ट टेक्स्ट" +#: src/components/dialogs/BirthDateSettings.tsx:119 +msgid "Save birthday" +msgstr "" + #: src/view/com/modals/EditProfile.tsx:232 msgid "Save Changes" msgstr "बदलाव सेव करो" @@ -3406,10 +4022,23 @@ msgstr "बदलाव सेव करो" msgid "Save image crop" msgstr "फोटो बदलाव सेव करो" +#: src/view/screens/ProfileFeed.tsx:335 +#: src/view/screens/ProfileFeed.tsx:341 +msgid "Save to my feeds" +msgstr "" + #: src/view/screens/SavedFeeds.tsx:122 msgid "Saved Feeds" msgstr "सहेजे गए फ़ीड" +#: src/view/com/lightbox/Lightbox.tsx:81 +msgid "Saved to your camera roll." +msgstr "" + +#: src/view/screens/ProfileFeed.tsx:212 +msgid "Saved to your feeds" +msgstr "" + #: src/view/com/modals/EditProfile.tsx:225 msgid "Saves any changes to your profile" msgstr "" @@ -3418,33 +4047,37 @@ msgstr "" msgid "Saves handle change to {handle}" msgstr "" +#: src/view/com/modals/crop-image/CropImage.web.tsx:145 +msgid "Saves image crop settings" +msgstr "" + #: src/screens/Onboarding/index.tsx:36 msgid "Science" msgstr "" -#: src/view/screens/ProfileList.tsx:859 +#: src/view/screens/ProfileList.tsx:873 msgid "Scroll to top" msgstr "" -#: src/Navigation.tsx:447 +#: src/Navigation.tsx:459 #: src/view/com/auth/LoggedOut.tsx:122 #: src/view/com/modals/ListAddRemoveUsers.tsx:75 #: src/view/com/util/forms/SearchInput.tsx:67 #: src/view/com/util/forms/SearchInput.tsx:79 -#: src/view/screens/Search/Search.tsx:419 -#: src/view/screens/Search/Search.tsx:668 -#: src/view/screens/Search/Search.tsx:686 -#: src/view/shell/bottom-bar/BottomBar.tsx:159 -#: src/view/shell/desktop/LeftNav.tsx:324 -#: src/view/shell/desktop/Search.tsx:214 -#: src/view/shell/desktop/Search.tsx:223 -#: src/view/shell/Drawer.tsx:362 -#: src/view/shell/Drawer.tsx:363 +#: src/view/screens/Search/Search.tsx:420 +#: src/view/screens/Search/Search.tsx:669 +#: src/view/screens/Search/Search.tsx:687 +#: src/view/shell/bottom-bar/BottomBar.tsx:161 +#: src/view/shell/desktop/LeftNav.tsx:328 +#: src/view/shell/desktop/Search.tsx:215 +#: src/view/shell/desktop/Search.tsx:224 +#: src/view/shell/Drawer.tsx:365 +#: src/view/shell/Drawer.tsx:366 msgid "Search" msgstr "खोज" -#: src/view/screens/Search/Search.tsx:735 -#: src/view/shell/desktop/Search.tsx:255 +#: src/view/screens/Search/Search.tsx:736 +#: src/view/shell/desktop/Search.tsx:256 msgid "Search for \"{query}\"" msgstr "" @@ -3518,6 +4151,14 @@ msgstr "" msgid "Select from an existing account" msgstr "मौजूदा खाते से चुनें" +#: src/view/screens/LanguageSettings.tsx:299 +msgid "Select languages" +msgstr "" + +#: src/components/ReportDialog/SelectLabelerView.tsx:32 +msgid "Select moderator" +msgstr "" + #: src/view/com/util/Selector.tsx:107 msgid "Select option {i} of {numItems}" msgstr "" @@ -3531,6 +4172,10 @@ msgstr "सेवा चुनें" msgid "Select some accounts below to follow" msgstr "" +#: src/components/ReportDialog/SubmitView.tsx:135 +msgid "Select the moderation service(s) to report to" +msgstr "" + #: src/view/com/auth/server-input/index.tsx:82 msgid "Select the service that hosts your data." msgstr "" @@ -3543,7 +4188,7 @@ msgstr "" msgid "Select topical feeds to follow from the list below" msgstr "" -#: src/screens/Onboarding/StepModeration/index.tsx:75 +#: src/screens/Onboarding/StepModeration/index.tsx:62 msgid "Select what you want to see (or not see), and we’ll handle the rest." msgstr "" @@ -3552,8 +4197,12 @@ msgid "Select which languages you want your subscribed feeds to include. If none msgstr "चुनें कि आप अपनी सदस्यता वाली फ़ीड में कौन सी भाषाएँ शामिल करना चाहते हैं। यदि कोई भी चयनित नहीं है, तो सभी भाषाएँ दिखाई जाएंगी।" #: src/view/screens/LanguageSettings.tsx:98 -msgid "Select your app language for the default text to display in the app" -msgstr "ऐप में प्रदर्शित होने वाले डिफ़ॉल्ट टेक्स्ट के लिए अपनी ऐप भाषा चुनें" +#~ msgid "Select your app language for the default text to display in the app" +#~ msgstr "ऐप में प्रदर्शित होने वाले डिफ़ॉल्ट टेक्स्ट के लिए अपनी ऐप भाषा चुनें" + +#: src/view/screens/LanguageSettings.tsx:98 +msgid "Select your app language for the default text to display in the app." +msgstr "" #: src/screens/Onboarding/StepInterests/index.tsx:196 msgid "Select your interests from the options below" @@ -3589,14 +4238,23 @@ msgctxt "action" msgid "Send Email" msgstr "ईमेल भेजें" -#: src/view/shell/Drawer.tsx:295 -#: src/view/shell/Drawer.tsx:316 +#: src/view/shell/Drawer.tsx:298 +#: src/view/shell/Drawer.tsx:319 msgid "Send feedback" msgstr "प्रतिक्रिया भेजें" +#: src/components/ReportDialog/SubmitView.tsx:214 +#: src/components/ReportDialog/SubmitView.tsx:218 +msgid "Send report" +msgstr "" + #: src/view/com/modals/report/SendReportButton.tsx:45 -msgid "Send Report" -msgstr "रिपोर्ट भेजें" +#~ msgid "Send Report" +#~ msgstr "रिपोर्ट भेजें" + +#: src/components/ReportDialog/SelectLabelerView.tsx:46 +msgid "Send report to {0}" +msgstr "" #: src/view/com/modals/DeleteAccount.tsx:133 msgid "Sends email with confirmation code for account deletion" @@ -3607,34 +4265,38 @@ msgid "Server address" msgstr "" #: src/view/com/modals/ContentFilteringSettings.tsx:311 -msgid "Set {value} for {labelGroup} content moderation policy" -msgstr "" +#~ msgid "Set {value} for {labelGroup} content moderation policy" +#~ msgstr "" #: src/view/com/modals/ContentFilteringSettings.tsx:160 #: src/view/com/modals/ContentFilteringSettings.tsx:179 -msgctxt "action" -msgid "Set Age" +#~ msgctxt "action" +#~ msgid "Set Age" +#~ msgstr "" + +#: src/screens/Moderation/index.tsx:306 +msgid "Set birthdate" msgstr "" #: src/view/screens/Settings/index.tsx:488 -msgid "Set color theme to dark" -msgstr "" +#~ msgid "Set color theme to dark" +#~ msgstr "" #: src/view/screens/Settings/index.tsx:481 -msgid "Set color theme to light" -msgstr "" +#~ msgid "Set color theme to light" +#~ msgstr "" #: src/view/screens/Settings/index.tsx:475 -msgid "Set color theme to system setting" -msgstr "" +#~ msgid "Set color theme to system setting" +#~ msgstr "" #: src/view/screens/Settings/index.tsx:514 -msgid "Set dark theme to the dark theme" -msgstr "" +#~ msgid "Set dark theme to the dark theme" +#~ msgstr "" #: src/view/screens/Settings/index.tsx:507 -msgid "Set dark theme to the dim theme" -msgstr "" +#~ msgid "Set dark theme to the dim theme" +#~ msgstr "" #: src/view/com/auth/login/SetNewPasswordForm.tsx:104 msgid "Set new password" @@ -3676,6 +4338,26 @@ msgstr "" msgid "Sets Bluesky username" msgstr "" +#: src/view/screens/Settings/index.tsx:503 +msgid "Sets color theme to dark" +msgstr "" + +#: src/view/screens/Settings/index.tsx:496 +msgid "Sets color theme to light" +msgstr "" + +#: src/view/screens/Settings/index.tsx:490 +msgid "Sets color theme to system setting" +msgstr "" + +#: src/view/screens/Settings/index.tsx:529 +msgid "Sets dark theme to the dark theme" +msgstr "" + +#: src/view/screens/Settings/index.tsx:522 +msgid "Sets dark theme to the dim theme" +msgstr "" + #: src/view/com/auth/login/ForgotPasswordForm.tsx:157 msgid "Sets email for password reset" msgstr "" @@ -3684,16 +4366,28 @@ msgstr "" msgid "Sets hosting provider for password reset" msgstr "" +#: src/view/com/modals/crop-image/CropImage.web.tsx:123 +msgid "Sets image aspect ratio to square" +msgstr "" + +#: src/view/com/modals/crop-image/CropImage.web.tsx:113 +msgid "Sets image aspect ratio to tall" +msgstr "" + +#: src/view/com/modals/crop-image/CropImage.web.tsx:103 +msgid "Sets image aspect ratio to wide" +msgstr "" + #: src/view/com/auth/create/Step1.tsx:97 #: src/view/com/auth/login/LoginForm.tsx:151 msgid "Sets server for the Bluesky client" msgstr "" -#: src/Navigation.tsx:137 -#: src/view/screens/Settings/index.tsx:294 -#: src/view/shell/desktop/LeftNav.tsx:433 -#: src/view/shell/Drawer.tsx:567 -#: src/view/shell/Drawer.tsx:568 +#: src/Navigation.tsx:139 +#: src/view/screens/Settings/index.tsx:309 +#: src/view/shell/desktop/LeftNav.tsx:437 +#: src/view/shell/Drawer.tsx:570 +#: src/view/shell/Drawer.tsx:571 msgid "Settings" msgstr "सेटिंग्स" @@ -3701,28 +4395,39 @@ msgstr "सेटिंग्स" msgid "Sexual activity or erotic nudity." msgstr "यौन गतिविधि या कामुक नग्नता।।" +#: src/lib/moderation/useGlobalLabelStrings.ts:38 +msgid "Sexually Suggestive" +msgstr "" + #: src/view/com/lightbox/Lightbox.tsx:141 msgctxt "action" msgid "Share" msgstr "" -#: src/view/com/profile/ProfileHeader.tsx:295 -#: src/view/com/util/forms/PostDropdownBtn.tsx:231 +#: src/view/com/profile/ProfileMenu.tsx:215 +#: src/view/com/profile/ProfileMenu.tsx:224 +#: src/view/com/util/forms/PostDropdownBtn.tsx:228 #: src/view/com/util/forms/PostDropdownBtn.tsx:237 -#: src/view/com/util/post-ctrls/PostCtrls.tsx:215 -#: src/view/screens/ProfileList.tsx:418 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:218 +#: src/view/screens/ProfileList.tsx:388 msgid "Share" msgstr "शेयर" -#: src/view/screens/ProfileFeed.tsx:305 +#: src/view/com/profile/ProfileMenu.tsx:373 +#: src/view/com/util/forms/PostDropdownBtn.tsx:347 +msgid "Share anyway" +msgstr "" + +#: src/view/screens/ProfileFeed.tsx:361 +#: src/view/screens/ProfileFeed.tsx:363 msgid "Share feed" msgstr "" -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:43 -#: src/view/com/modals/ContentFilteringSettings.tsx:266 -#: src/view/com/util/moderation/ContentHider.tsx:107 -#: src/view/com/util/moderation/PostHider.tsx:108 -#: src/view/screens/Settings/index.tsx:344 +#: src/components/moderation/ContentHider.tsx:115 +#: src/components/moderation/GlobalModerationLabelPref.tsx:45 +#: src/components/moderation/PostHider.tsx:107 +#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:54 +#: src/view/screens/Settings/index.tsx:359 msgid "Show" msgstr "दिखाओ" @@ -3730,21 +4435,31 @@ msgstr "दिखाओ" msgid "Show all replies" msgstr "" -#: src/view/com/util/moderation/ScreenHider.tsx:132 +#: src/components/moderation/ScreenHider.tsx:162 +#: src/components/moderation/ScreenHider.tsx:165 msgid "Show anyway" msgstr "दिखाओ" +#: src/lib/moderation/useLabelBehaviorDescription.ts:27 +#: src/lib/moderation/useLabelBehaviorDescription.ts:63 +msgid "Show badge" +msgstr "" + +#: src/lib/moderation/useLabelBehaviorDescription.ts:61 +msgid "Show badge and filter from feeds" +msgstr "" + #: src/view/com/modals/EmbedConsent.tsx:87 msgid "Show embeds from {0}" msgstr "" -#: src/view/com/profile/ProfileHeader.tsx:459 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:193 msgid "Show follows similar to {0}" msgstr "" -#: src/view/com/post-thread/PostThreadItem.tsx:538 -#: src/view/com/post/Post.tsx:198 -#: src/view/com/posts/FeedItem.tsx:363 +#: src/view/com/post-thread/PostThreadItem.tsx:507 +#: src/view/com/post/Post.tsx:201 +#: src/view/com/posts/FeedItem.tsx:355 msgid "Show More" msgstr "" @@ -3796,40 +4511,48 @@ msgstr "रीपोस्ट दिखाएँ" msgid "Show reposts in Following" msgstr "" -#: src/view/com/util/moderation/ContentHider.tsx:67 -#: src/view/com/util/moderation/PostHider.tsx:61 +#: src/components/moderation/ContentHider.tsx:68 +#: src/components/moderation/PostHider.tsx:64 msgid "Show the content" msgstr "" -#: src/view/com/notifications/FeedItem.tsx:347 +#: src/view/com/notifications/FeedItem.tsx:351 msgid "Show users" msgstr "लोग दिखाएँ" -#: src/view/com/profile/ProfileHeader.tsx:462 -msgid "Shows a list of users similar to this user." +#: src/lib/moderation/useLabelBehaviorDescription.ts:58 +msgid "Show warning" +msgstr "" + +#: src/lib/moderation/useLabelBehaviorDescription.ts:56 +msgid "Show warning and filter from feeds" msgstr "" -#: src/view/com/post-thread/PostThreadFollowBtn.tsx:124 -#: src/view/com/profile/ProfileHeader.tsx:506 +#: src/view/com/profile/ProfileHeader.tsx:462 +#~ msgid "Shows a list of users similar to this user." +#~ msgstr "" + +#: src/view/com/post-thread/PostThreadFollowBtn.tsx:127 msgid "Shows posts from {0} in your feed" msgstr "" -#: src/view/com/auth/HomeLoggedOutCTA.tsx:70 +#: src/view/com/auth/HomeLoggedOutCTA.tsx:72 #: src/view/com/auth/login/Login.tsx:98 -#: src/view/com/auth/SplashScreen.tsx:79 -#: src/view/shell/bottom-bar/BottomBar.tsx:285 -#: src/view/shell/bottom-bar/BottomBar.tsx:286 -#: src/view/shell/bottom-bar/BottomBar.tsx:288 +#: src/view/com/auth/SplashScreen.tsx:81 +#: src/view/shell/bottom-bar/BottomBar.tsx:289 +#: src/view/shell/bottom-bar/BottomBar.tsx:290 +#: src/view/shell/bottom-bar/BottomBar.tsx:292 #: src/view/shell/bottom-bar/BottomBarWeb.tsx:178 #: src/view/shell/bottom-bar/BottomBarWeb.tsx:179 #: src/view/shell/bottom-bar/BottomBarWeb.tsx:181 #: src/view/shell/NavSignupCard.tsx:58 #: src/view/shell/NavSignupCard.tsx:59 +#: src/view/shell/NavSignupCard.tsx:61 msgid "Sign in" msgstr "साइन इन करें" -#: src/view/com/auth/HomeLoggedOutCTA.tsx:78 -#: src/view/com/auth/SplashScreen.tsx:82 +#: src/view/com/auth/HomeLoggedOutCTA.tsx:82 +#: src/view/com/auth/SplashScreen.tsx:86 #: src/view/com/auth/SplashScreen.web.tsx:91 msgid "Sign In" msgstr "साइन इन करें" @@ -3838,7 +4561,7 @@ msgstr "साइन इन करें" msgid "Sign in as {0}" msgstr "{0} के रूप में साइन इन करें" -#: src/view/com/auth/login/ChooseAccountForm.tsx:118 +#: src/view/com/auth/login/ChooseAccountForm.tsx:122 #: src/view/com/auth/login/Login.tsx:116 msgid "Sign in as..." msgstr "... के रूप में साइन इन करें" @@ -3847,16 +4570,16 @@ msgstr "... के रूप में साइन इन करें" msgid "Sign into" msgstr "साइन इन करें" -#: src/view/com/modals/SwitchAccount.tsx:64 -#: src/view/com/modals/SwitchAccount.tsx:69 -#: src/view/screens/Settings/index.tsx:100 -#: src/view/screens/Settings/index.tsx:103 +#: src/view/com/modals/SwitchAccount.tsx:68 +#: src/view/com/modals/SwitchAccount.tsx:73 +#: src/view/screens/Settings/index.tsx:105 +#: src/view/screens/Settings/index.tsx:108 msgid "Sign out" msgstr "साइन आउट" -#: src/view/shell/bottom-bar/BottomBar.tsx:275 -#: src/view/shell/bottom-bar/BottomBar.tsx:276 -#: src/view/shell/bottom-bar/BottomBar.tsx:278 +#: src/view/shell/bottom-bar/BottomBar.tsx:279 +#: src/view/shell/bottom-bar/BottomBar.tsx:280 +#: src/view/shell/bottom-bar/BottomBar.tsx:282 #: src/view/shell/bottom-bar/BottomBarWeb.tsx:168 #: src/view/shell/bottom-bar/BottomBarWeb.tsx:169 #: src/view/shell/bottom-bar/BottomBarWeb.tsx:171 @@ -3870,25 +4593,26 @@ msgstr "" msgid "Sign up or sign in to join the conversation" msgstr "" -#: src/view/com/util/moderation/ScreenHider.tsx:76 +#: src/components/moderation/ScreenHider.tsx:98 +#: src/lib/moderation/useGlobalLabelStrings.ts:28 msgid "Sign-in Required" msgstr "" -#: src/view/screens/Settings/index.tsx:355 +#: src/view/screens/Settings/index.tsx:370 msgid "Signed in as" msgstr "आपने इस रूप में साइन इन करा है:" -#: src/view/com/auth/login/ChooseAccountForm.tsx:103 +#: src/view/com/auth/login/ChooseAccountForm.tsx:107 msgid "Signed in as @{0}" msgstr "" -#: src/view/com/modals/SwitchAccount.tsx:66 +#: src/view/com/modals/SwitchAccount.tsx:70 msgid "Signs {0} out of Bluesky" msgstr "" #: src/screens/Onboarding/StepInterests/index.tsx:235 #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:195 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:33 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:35 msgid "Skip" msgstr "स्किप" @@ -3908,15 +4632,21 @@ msgstr "" #~ msgid "Something went wrong and we're not sure what." #~ msgstr "" -#: src/components/Lists.tsx:203 -msgid "Something went wrong!" +#: src/components/ReportDialog/index.tsx:52 +#: src/screens/Moderation/index.tsx:116 +#: src/screens/Profile/Sections/Labels.tsx:77 +msgid "Something went wrong, please try again." msgstr "" +#: src/components/Lists.tsx:203 +#~ msgid "Something went wrong!" +#~ msgstr "" + #: src/view/com/modals/Waitlist.tsx:51 #~ msgid "Something went wrong. Check your email and try again." #~ msgstr "" -#: src/App.native.tsx:66 +#: src/App.native.tsx:71 msgid "Sorry! Your session expired. Please log in again." msgstr "" @@ -3928,6 +4658,18 @@ msgstr "उत्तर क्रमबद्ध करें" msgid "Sort replies to the same post by:" msgstr "उसी पोस्ट के उत्तरों को इस प्रकार क्रमबद्ध करें:" +#: src/components/moderation/LabelsOnMeDialog.tsx:147 +msgid "Source:" +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:65 +msgid "Spam" +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:53 +msgid "Spam; excessive mentions or replies" +msgstr "" + #: src/screens/Onboarding/index.tsx:30 msgid "Sports" msgstr "" @@ -3940,7 +4682,7 @@ msgstr "स्क्वायर" #~ msgid "Staging" #~ msgstr "स्टेजिंग" -#: src/view/screens/Settings/index.tsx:871 +#: src/view/screens/Settings/index.tsx:901 msgid "Status page" msgstr "स्थिति पृष्ठ" @@ -3948,37 +4690,50 @@ msgstr "स्थिति पृष्ठ" msgid "Step {0} of {numSteps}" msgstr "" -#: src/view/screens/Settings/index.tsx:274 +#: src/view/screens/Settings/index.tsx:288 msgid "Storage cleared, you need to restart the app now." msgstr "" -#: src/Navigation.tsx:204 -#: src/view/screens/Settings/index.tsx:807 +#: src/Navigation.tsx:211 +#: src/view/screens/Settings/index.tsx:827 msgid "Storybook" msgstr "Storybook" -#: src/view/com/modals/AppealLabel.tsx:101 +#: src/components/moderation/LabelsOnMeDialog.tsx:256 +#: src/components/moderation/LabelsOnMeDialog.tsx:257 msgid "Submit" msgstr "" -#: src/view/screens/ProfileList.tsx:608 +#: src/view/screens/ProfileList.tsx:590 msgid "Subscribe" msgstr "सब्सक्राइब" +#: src/screens/Profile/Sections/Labels.tsx:181 +msgid "Subscribe to @{0} to use these labels:" +msgstr "" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:222 +msgid "Subscribe to Labeler" +msgstr "" + #: src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx:173 #: src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx:308 msgid "Subscribe to the {0} feed" msgstr "" -#: src/view/screens/ProfileList.tsx:604 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:185 +msgid "Subscribe to this labeler" +msgstr "" + +#: src/view/screens/ProfileList.tsx:586 msgid "Subscribe to this list" msgstr "इस सूची को सब्सक्राइब करें" -#: src/view/screens/Search/Search.tsx:374 +#: src/view/screens/Search/Search.tsx:375 msgid "Suggested Follows" msgstr "अनुशंसित लोग" -#: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:64 +#: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:65 msgid "Suggested for you" msgstr "" @@ -3986,7 +4741,7 @@ msgstr "" msgid "Suggestive" msgstr "" -#: src/Navigation.tsx:214 +#: src/Navigation.tsx:226 #: src/view/screens/Support.tsx:30 #: src/view/screens/Support.tsx:33 msgid "Support" @@ -3996,29 +4751,29 @@ msgstr "सहायता" #~ msgid "Swipe up to see more" #~ msgstr "" -#: src/view/com/modals/SwitchAccount.tsx:117 +#: src/view/com/modals/SwitchAccount.tsx:121 msgid "Switch Account" msgstr "खाते बदलें" -#: src/view/com/modals/SwitchAccount.tsx:97 -#: src/view/screens/Settings/index.tsx:130 +#: src/view/com/modals/SwitchAccount.tsx:101 +#: src/view/screens/Settings/index.tsx:135 msgid "Switch to {0}" msgstr "" -#: src/view/com/modals/SwitchAccount.tsx:98 -#: src/view/screens/Settings/index.tsx:131 +#: src/view/com/modals/SwitchAccount.tsx:102 +#: src/view/screens/Settings/index.tsx:136 msgid "Switches the account you are logged in to" msgstr "" -#: src/view/screens/Settings/index.tsx:472 +#: src/view/screens/Settings/index.tsx:487 msgid "System" msgstr "प्रणाली" -#: src/view/screens/Settings/index.tsx:795 +#: src/view/screens/Settings/index.tsx:815 msgid "System log" msgstr "सिस्टम लॉग" -#: src/components/dialogs/MutedWords.tsx:337 +#: src/components/dialogs/MutedWords.tsx:324 msgid "tag" msgstr "" @@ -4046,30 +4801,49 @@ msgstr "" msgid "Terms" msgstr "शर्तें" -#: src/Navigation.tsx:224 -#: src/view/screens/Settings/index.tsx:885 +#: src/Navigation.tsx:236 +#: src/view/com/auth/create/Policies.tsx:59 +#: src/view/screens/Settings/index.tsx:915 #: src/view/screens/TermsOfService.tsx:29 -#: src/view/shell/Drawer.tsx:256 +#: src/view/shell/Drawer.tsx:259 msgid "Terms of Service" msgstr "सेवा की शर्तें" -#: src/components/dialogs/MutedWords.tsx:337 +#: src/lib/moderation/useReportOptions.ts:58 +#: src/lib/moderation/useReportOptions.ts:79 +#: src/lib/moderation/useReportOptions.ts:87 +msgid "Terms used violate community standards" +msgstr "" + +#: src/components/dialogs/MutedWords.tsx:324 msgid "text" msgstr "" -#: src/view/com/modals/AppealLabel.tsx:70 -#: src/view/com/modals/report/InputIssueDetails.tsx:51 +#: src/components/moderation/LabelsOnMeDialog.tsx:220 msgid "Text input field" msgstr "पाठ इनपुट फ़ील्ड" +#: src/components/ReportDialog/SubmitView.tsx:78 +msgid "Thank you. Your report has been sent." +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:466 +msgid "That contains the following:" +msgstr "" + #: src/view/com/auth/create/CreateAccount.tsx:94 msgid "That handle is already taken." msgstr "" -#: src/view/com/profile/ProfileHeader.tsx:263 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:274 +#: src/view/com/profile/ProfileMenu.tsx:349 msgid "The account will be able to interact with you after unblocking." msgstr "अनब्लॉक करने के बाद अकाउंट आपसे इंटरैक्ट कर सकेगा।" +#: src/components/moderation/ModerationDetailsDialog.tsx:128 +msgid "the author" +msgstr "" + #: src/view/screens/CommunityGuidelines.tsx:36 msgid "The Community Guidelines have been moved to <0/>" msgstr "सामुदायिक दिशानिर्देशों को <0/> पर स्थानांतरित कर दिया गया है" @@ -4078,11 +4852,20 @@ msgstr "सामुदायिक दिशानिर्देशों क msgid "The Copyright Policy has been moved to <0/>" msgstr "कॉपीराइट नीति को <0/> पर स्थानांतरित कर दिया गया है" +#: src/components/moderation/LabelsOnMeDialog.tsx:49 +msgid "The following labels were applied to your account." +msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:50 +msgid "The following labels were applied to your content." +msgstr "" + #: src/screens/Onboarding/Layout.tsx:60 msgid "The following steps will help customize your Bluesky experience." msgstr "" -#: src/view/com/post-thread/PostThread.tsx:517 +#: src/view/com/post-thread/PostThread.tsx:153 +#: src/view/com/post-thread/PostThread.tsx:165 msgid "The post may have been deleted." msgstr "हो सकता है कि यह पोस्ट हटा दी गई हो।" @@ -4102,20 +4885,21 @@ msgstr "सेवा की शर्तों को स्थानांत msgid "There are many feeds to try:" msgstr "" -#: src/view/screens/ProfileFeed.tsx:550 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:113 +#: src/view/screens/ProfileFeed.tsx:543 msgid "There was an an issue contacting the server, please check your internet connection and try again." msgstr "" -#: src/view/com/posts/FeedErrorMessage.tsx:139 +#: src/view/com/posts/FeedErrorMessage.tsx:138 msgid "There was an an issue removing this feed. Please check your internet connection and try again." msgstr "" -#: src/view/screens/ProfileFeed.tsx:210 +#: src/view/screens/ProfileFeed.tsx:217 msgid "There was an an issue updating your feeds, please check your internet connection and try again." msgstr "" -#: src/view/screens/ProfileFeed.tsx:237 -#: src/view/screens/ProfileList.tsx:267 +#: src/view/screens/ProfileFeed.tsx:244 +#: src/view/screens/ProfileList.tsx:275 #: src/view/screens/SavedFeeds.tsx:209 #: src/view/screens/SavedFeeds.tsx:231 #: src/view/screens/SavedFeeds.tsx:252 @@ -4124,9 +4908,8 @@ msgstr "" #: src/view/com/auth/onboarding/RecommendedFeedsItem.tsx:57 #: src/view/com/auth/onboarding/RecommendedFeedsItem.tsx:66 -#: src/view/com/feeds/FeedSourceCard.tsx:115 -#: src/view/com/feeds/FeedSourceCard.tsx:129 -#: src/view/com/feeds/FeedSourceCard.tsx:183 +#: src/view/com/feeds/FeedSourceCard.tsx:110 +#: src/view/com/feeds/FeedSourceCard.tsx:123 msgid "There was an issue contacting your server" msgstr "" @@ -4134,7 +4917,7 @@ msgstr "" msgid "There was an issue fetching notifications. Tap here to try again." msgstr "" -#: src/view/com/posts/Feed.tsx:265 +#: src/view/com/posts/Feed.tsx:283 msgid "There was an issue fetching posts. Tap here to try again." msgstr "" @@ -4147,34 +4930,40 @@ msgstr "" msgid "There was an issue fetching your lists. Tap here to try again." msgstr "" -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:63 -#: src/view/com/modals/ContentFilteringSettings.tsx:126 +#: src/components/ReportDialog/SubmitView.tsx:83 +msgid "There was an issue sending your report. Please check your internet connection." +msgstr "" + +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:65 msgid "There was an issue syncing your preferences with the server" msgstr "" -#: src/view/screens/AppPasswords.tsx:66 +#: src/view/screens/AppPasswords.tsx:68 msgid "There was an issue with fetching your app passwords" msgstr "" -#: src/view/com/post-thread/PostThreadFollowBtn.tsx:93 -#: src/view/com/post-thread/PostThreadFollowBtn.tsx:105 -#: src/view/com/profile/ProfileHeader.tsx:157 -#: src/view/com/profile/ProfileHeader.tsx:178 -#: src/view/com/profile/ProfileHeader.tsx:217 -#: src/view/com/profile/ProfileHeader.tsx:230 -#: src/view/com/profile/ProfileHeader.tsx:250 -#: src/view/com/profile/ProfileHeader.tsx:272 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:98 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:120 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:134 +#: src/view/com/post-thread/PostThreadFollowBtn.tsx:96 +#: src/view/com/post-thread/PostThreadFollowBtn.tsx:108 +#: src/view/com/profile/ProfileMenu.tsx:106 +#: src/view/com/profile/ProfileMenu.tsx:117 +#: src/view/com/profile/ProfileMenu.tsx:132 +#: src/view/com/profile/ProfileMenu.tsx:143 +#: src/view/com/profile/ProfileMenu.tsx:157 +#: src/view/com/profile/ProfileMenu.tsx:170 msgid "There was an issue! {0}" msgstr "" #: src/view/screens/ProfileList.tsx:288 -#: src/view/screens/ProfileList.tsx:307 -#: src/view/screens/ProfileList.tsx:329 -#: src/view/screens/ProfileList.tsx:348 +#: src/view/screens/ProfileList.tsx:302 +#: src/view/screens/ProfileList.tsx:316 +#: src/view/screens/ProfileList.tsx:330 msgid "There was an issue. Please check your internet connection and try again." msgstr "" -#: src/view/com/util/ErrorBoundary.tsx:36 +#: src/view/com/util/ErrorBoundary.tsx:51 msgid "There was an unexpected issue in the application. Please let us know if this happened to you!" msgstr "एप्लिकेशन में एक अप्रत्याशित समस्या थी. कृपया हमें बताएं कि क्या आपके साथ ऐसा हुआ है!" @@ -4190,19 +4979,32 @@ msgstr "" msgid "These are popular accounts you might like:" msgstr "" -#: src/view/com/util/moderation/ScreenHider.tsx:88 +#: src/components/moderation/ScreenHider.tsx:117 msgid "This {screenDescription} has been flagged:" msgstr "यह {screenDescription} फ्लैग किया गया है:" -#: src/view/com/util/moderation/ScreenHider.tsx:83 +#: src/components/moderation/ScreenHider.tsx:112 msgid "This account has requested that users sign in to view their profile." msgstr "" +#: src/components/moderation/LabelsOnMeDialog.tsx:205 +msgid "This appeal will be sent to <0>{0}." +msgstr "" + +#: src/lib/moderation/useGlobalLabelStrings.ts:19 +msgid "This content has been hidden by the moderators." +msgstr "" + +#: src/lib/moderation/useGlobalLabelStrings.ts:24 +msgid "This content has received a general warning from moderators." +msgstr "" + #: src/view/com/modals/EmbedConsent.tsx:68 msgid "This content is hosted by {0}. Do you want to enable external media?" msgstr "" -#: src/view/com/modals/ModerationDetails.tsx:67 +#: src/components/moderation/ModerationDetailsDialog.tsx:78 +#: src/lib/moderation/useModerationCauseDescription.ts:77 msgid "This content is not available because one of the users involved has blocked the other." msgstr "" @@ -4211,16 +5013,20 @@ msgid "This content is not viewable without a Bluesky account." msgstr "" #: src/view/screens/Settings/ExportCarDialog.tsx:75 -msgid "This feature is in beta. You can read more about repository exports in <0>this blogpost." +#~ msgid "This feature is in beta. You can read more about repository exports in <0>this blogpost." +#~ msgstr "" + +#: src/view/screens/Settings/ExportCarDialog.tsx:75 +msgid "This feature is in beta. You can read more about repository exports in <0>this blogpost." msgstr "" #: src/view/com/posts/FeedErrorMessage.tsx:114 msgid "This feed is currently receiving high traffic and is temporarily unavailable. Please try again later." msgstr "" -#: src/view/screens/Profile.tsx:420 +#: src/screens/Profile/Sections/Feed.tsx:50 #: src/view/screens/ProfileFeed.tsx:476 -#: src/view/screens/ProfileList.tsx:661 +#: src/view/screens/ProfileList.tsx:675 msgid "This feed is empty!" msgstr "" @@ -4228,7 +5034,7 @@ msgstr "" msgid "This feed is empty! You may need to follow more users or tune your language settings." msgstr "" -#: src/view/com/modals/BirthDateSettings.tsx:61 +#: src/components/dialogs/BirthDateSettings.tsx:41 msgid "This information is not shared with other users." msgstr "यह जानकारी अन्य उपयोगकर्ताओं के साथ साझा नहीं की जाती है।।" @@ -4236,14 +5042,26 @@ msgstr "यह जानकारी अन्य उपयोगकर्ता msgid "This is important in case you ever need to change your email or reset your password." msgstr "अगर आपको कभी अपना ईमेल बदलने या पासवर्ड रीसेट करने की आवश्यकता है तो यह महत्वपूर्ण है।।" +#: src/components/moderation/ModerationDetailsDialog.tsx:125 +msgid "This label was applied by {0}." +msgstr "" + +#: src/screens/Profile/Sections/Labels.tsx:168 +msgid "This labeler hasn't declared what labels it publishes, and may not be active." +msgstr "" + #: src/view/com/modals/LinkWarning.tsx:58 msgid "This link is taking you to the following website:" msgstr "यह लिंक आपको निम्नलिखित वेबसाइट पर ले जा रहा है:" -#: src/view/screens/ProfileList.tsx:839 +#: src/view/screens/ProfileList.tsx:853 msgid "This list is empty!" msgstr "" +#: src/screens/Profile/ErrorState.tsx:40 +msgid "This moderation service is unavailable. See below for more details. If this issue persists, contact us." +msgstr "" + #: src/view/com/modals/AddAppPasswords.tsx:106 msgid "This name is already in use" msgstr "" @@ -4252,36 +5070,81 @@ msgstr "" msgid "This post has been deleted." msgstr "इस पोस्ट को हटा दिया गया है।।" -#: src/view/com/modals/ModerationDetails.tsx:62 +#: src/view/com/util/forms/PostDropdownBtn.tsx:344 +msgid "This post is only visible to logged-in users. It won't be visible to people who aren't logged in." +msgstr "" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:326 +msgid "This post will be hidden from feeds." +msgstr "" + +#: src/view/com/profile/ProfileMenu.tsx:370 +msgid "This profile is only visible to logged-in users. It won't be visible to people who aren't logged in." +msgstr "" + +#: src/view/com/auth/create/Policies.tsx:46 +msgid "This service has not provided terms of service or a privacy policy." +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:446 +msgid "This should create a domain record at:" +msgstr "" + +#: src/view/com/profile/ProfileFollowers.tsx:95 +msgid "This user doesn't have any followers." +msgstr "" + +#: src/components/moderation/ModerationDetailsDialog.tsx:73 +#: src/lib/moderation/useModerationCauseDescription.ts:68 msgid "This user has blocked you. You cannot view their content." msgstr "" -#: src/view/com/modals/ModerationDetails.tsx:42 -msgid "This user is included in the <0/> list which you have blocked." +#: src/lib/moderation/useGlobalLabelStrings.ts:30 +msgid "This user has requested that their content only be shown to signed-in users." msgstr "" +#: src/view/com/modals/ModerationDetails.tsx:42 +#~ msgid "This user is included in the <0/> list which you have blocked." +#~ msgstr "" + #: src/view/com/modals/ModerationDetails.tsx:74 -msgid "This user is included in the <0/> list which you have muted." +#~ msgid "This user is included in the <0/> list which you have muted." +#~ msgstr "" + +#: src/components/moderation/ModerationDetailsDialog.tsx:56 +msgid "This user is included in the <0>{0} list which you have blocked." +msgstr "" + +#: src/components/moderation/ModerationDetailsDialog.tsx:85 +msgid "This user is included in the <0>{0} list which you have muted." msgstr "" #: src/view/com/modals/ModerationDetails.tsx:74 #~ msgid "This user is included the <0/> list which you have muted." #~ msgstr "" +#: src/view/com/profile/ProfileFollows.tsx:94 +msgid "This user isn't following anyone." +msgstr "" + #: src/view/com/modals/SelfLabel.tsx:137 msgid "This warning is only available for posts with media attached." msgstr "यह चेतावनी केवल मीडिया संलग्न पोस्ट के लिए उपलब्ध है।" -#: src/components/dialogs/MutedWords.tsx:285 +#: src/components/dialogs/MutedWords.tsx:284 msgid "This will delete {0} from your muted words. You can always add it back later." msgstr "" #: src/view/com/util/forms/PostDropdownBtn.tsx:282 -msgid "This will hide this post from your feeds." +#~ msgid "This will hide this post from your feeds." +#~ msgstr "" + +#: src/view/screens/Settings/index.tsx:570 +msgid "Thread preferences" msgstr "" #: src/view/screens/PreferencesThreads.tsx:53 -#: src/view/screens/Settings/index.tsx:565 +#: src/view/screens/Settings/index.tsx:580 msgid "Thread Preferences" msgstr "थ्रेड प्राथमिकता" @@ -4289,10 +5152,14 @@ msgstr "थ्रेड प्राथमिकता" msgid "Threaded Mode" msgstr "थ्रेड मोड" -#: src/Navigation.tsx:257 +#: src/Navigation.tsx:269 msgid "Threads Preferences" msgstr "" +#: src/components/ReportDialog/SelectLabelerView.tsx:35 +msgid "To whom would you like to send this report?" +msgstr "" + #: src/components/dialogs/MutedWords.tsx:113 msgid "Toggle between muted word options." msgstr "" @@ -4301,14 +5168,18 @@ msgstr "" msgid "Toggle dropdown" msgstr "ड्रॉपडाउन टॉगल करें" +#: src/screens/Moderation/index.tsx:334 +msgid "Toggle to enable or disable adult content" +msgstr "" + #: src/view/com/modals/EditImage.tsx:271 msgid "Transformations" msgstr "परिवर्तन" -#: src/view/com/post-thread/PostThreadItem.tsx:685 -#: src/view/com/post-thread/PostThreadItem.tsx:687 -#: src/view/com/util/forms/PostDropdownBtn.tsx:215 -#: src/view/com/util/forms/PostDropdownBtn.tsx:217 +#: src/view/com/post-thread/PostThreadItem.tsx:644 +#: src/view/com/post-thread/PostThreadItem.tsx:646 +#: src/view/com/util/forms/PostDropdownBtn.tsx:212 +#: src/view/com/util/forms/PostDropdownBtn.tsx:214 msgid "Translate" msgstr "अनुवाद" @@ -4317,11 +5188,15 @@ msgctxt "action" msgid "Try again" msgstr "फिर से कोशिश करो" -#: src/view/screens/ProfileList.tsx:506 +#: src/view/com/modals/ChangeHandle.tsx:429 +msgid "Type:" +msgstr "" + +#: src/view/screens/ProfileList.tsx:478 msgid "Un-block list" msgstr "" -#: src/view/screens/ProfileList.tsx:491 +#: src/view/screens/ProfileList.tsx:461 msgid "Un-mute list" msgstr "" @@ -4333,21 +5208,28 @@ msgstr "" msgid "Unable to contact your service. Please check your Internet connection." msgstr "आपकी सेवा से संपर्क करने में असमर्थ। कृपया अपने इंटरनेट कनेक्शन की जांच करें।।" -#: src/view/com/profile/ProfileHeader.tsx:433 -#: src/view/screens/ProfileList.tsx:590 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:174 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:278 +#: src/view/com/profile/ProfileMenu.tsx:361 +#: src/view/screens/ProfileList.tsx:572 msgid "Unblock" msgstr "अनब्लॉक" -#: src/view/com/profile/ProfileHeader.tsx:436 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:179 msgctxt "action" msgid "Unblock" msgstr "" -#: src/view/com/profile/ProfileHeader.tsx:261 -#: src/view/com/profile/ProfileHeader.tsx:345 +#: src/view/com/profile/ProfileMenu.tsx:299 +#: src/view/com/profile/ProfileMenu.tsx:305 msgid "Unblock Account" msgstr "अनब्लॉक खाता" +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:272 +#: src/view/com/profile/ProfileMenu.tsx:343 +msgid "Unblock Account?" +msgstr "" + #: src/view/com/modals/Repost.tsx:42 #: src/view/com/modals/Repost.tsx:55 #: src/view/com/util/post-ctrls/RepostButton.tsx:60 @@ -4355,25 +5237,39 @@ msgstr "अनब्लॉक खाता" msgid "Undo repost" msgstr "पुनः पोस्ट पूर्ववत करें" -#: src/view/com/profile/FollowButton.tsx:55 +#: src/view/com/auth/onboarding/RecommendedFollowsItem.tsx:141 +#: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:246 +msgid "Unfollow" +msgstr "" + +#: src/view/com/profile/FollowButton.tsx:60 msgctxt "action" msgid "Unfollow" msgstr "" -#: src/view/com/profile/ProfileHeader.tsx:485 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:213 msgid "Unfollow {0}" msgstr "" +#: src/view/com/profile/ProfileMenu.tsx:241 +#: src/view/com/profile/ProfileMenu.tsx:251 +msgid "Unfollow Account" +msgstr "" + #: src/view/com/auth/create/state.ts:262 msgid "Unfortunately, you do not meet the requirements to create an account." msgstr "" -#: src/view/com/util/post-ctrls/PostCtrls.tsx:182 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:185 msgid "Unlike" msgstr "" +#: src/view/screens/ProfileFeed.tsx:572 +msgid "Unlike this feed" +msgstr "" + #: src/components/TagMenu/index.tsx:249 -#: src/view/screens/ProfileList.tsx:597 +#: src/view/screens/ProfileList.tsx:579 msgid "Unmute" msgstr "" @@ -4381,7 +5277,8 @@ msgstr "" msgid "Unmute {truncatedTag}" msgstr "" -#: src/view/com/profile/ProfileHeader.tsx:326 +#: src/view/com/profile/ProfileMenu.tsx:278 +#: src/view/com/profile/ProfileMenu.tsx:284 msgid "Unmute Account" msgstr "अनम्यूट खाता" @@ -4398,17 +5295,33 @@ msgstr "" msgid "Unmute thread" msgstr "थ्रेड को अनम्यूट करें" -#: src/view/screens/ProfileFeed.tsx:354 -#: src/view/screens/ProfileList.tsx:581 +#: src/view/screens/ProfileFeed.tsx:294 +#: src/view/screens/ProfileList.tsx:563 msgid "Unpin" msgstr "" -#: src/view/screens/ProfileList.tsx:474 +#: src/view/screens/ProfileFeed.tsx:291 +msgid "Unpin from home" +msgstr "" + +#: src/view/screens/ProfileList.tsx:444 msgid "Unpin moderation list" msgstr "" #: src/view/screens/ProfileFeed.tsx:346 -msgid "Unsave" +#~ msgid "Unsave" +#~ msgstr "" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:220 +msgid "Unsubscribe" +msgstr "" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:184 +msgid "Unsubscribe from this labeler" +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:70 +msgid "Unwanted Sexual Content" msgstr "" #: src/view/com/modals/UserAddRemoveLists.tsx:70 @@ -4416,8 +5329,12 @@ msgid "Update {displayName} in Lists" msgstr "सूची में {displayName} अद्यतन करें" #: src/lib/hooks/useOTAUpdate.ts:15 -msgid "Update Available" -msgstr "उपलब्ध अद्यतन" +#~ msgid "Update Available" +#~ msgstr "उपलब्ध अद्यतन" + +#: src/view/com/modals/ChangeHandle.tsx:509 +msgid "Update to {handle}" +msgstr "" #: src/view/com/auth/login/SetNewPasswordForm.tsx:204 msgid "Updating..." @@ -4427,11 +5344,38 @@ msgstr "अद्यतन..।" msgid "Upload a text file to:" msgstr "एक पाठ फ़ाइल अपलोड करने के लिए:" -#: src/view/screens/AppPasswords.tsx:195 +#: src/view/com/util/UserAvatar.tsx:326 +#: src/view/com/util/UserAvatar.tsx:329 +#: src/view/com/util/UserBanner.tsx:116 +#: src/view/com/util/UserBanner.tsx:119 +msgid "Upload from Camera" +msgstr "" + +#: src/view/com/util/UserAvatar.tsx:343 +#: src/view/com/util/UserBanner.tsx:133 +msgid "Upload from Files" +msgstr "" + +#: src/view/com/util/UserAvatar.tsx:337 +#: src/view/com/util/UserAvatar.tsx:341 +#: src/view/com/util/UserBanner.tsx:127 +#: src/view/com/util/UserBanner.tsx:131 +msgid "Upload from Library" +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:409 +msgid "Use a file on your server" +msgstr "" + +#: src/view/screens/AppPasswords.tsx:197 msgid "Use app passwords to login to other Bluesky clients without giving full access to your account or password." msgstr "अपने खाते या पासवर्ड को पूर्ण एक्सेस देने के बिना अन्य ब्लूस्की ग्राहकों को लॉगिन करने के लिए ऐप पासवर्ड का उपयोग करें।।" -#: src/view/com/modals/ChangeHandle.tsx:515 +#: src/view/com/modals/ChangeHandle.tsx:518 +msgid "Use bsky.social as hosting provider" +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:517 msgid "Use default provider" msgstr "डिफ़ॉल्ट प्रदाता का उपयोग करें" @@ -4445,6 +5389,10 @@ msgstr "" msgid "Use my default browser" msgstr "" +#: src/view/com/modals/ChangeHandle.tsx:401 +msgid "Use the DNS panel" +msgstr "" + #: src/view/com/modals/AddAppPasswords.tsx:155 msgid "Use this to sign into the other app along with your handle." msgstr "अपने हैंडल के साथ दूसरे ऐप में साइन इन करने के लिए इसका उपयोग करें।" @@ -4457,15 +5405,24 @@ msgstr "अपने हैंडल के साथ दूसरे ऐप म msgid "Used by:" msgstr "के द्वारा उपयोग:" -#: src/view/com/modals/ModerationDetails.tsx:54 +#: src/components/moderation/ModerationDetailsDialog.tsx:65 +#: src/lib/moderation/useModerationCauseDescription.ts:56 msgid "User Blocked" msgstr "" -#: src/view/com/modals/ModerationDetails.tsx:40 +#: src/lib/moderation/useModerationCauseDescription.ts:48 +msgid "User Blocked by \"{0}\"" +msgstr "" + +#: src/components/moderation/ModerationDetailsDialog.tsx:54 msgid "User Blocked by List" msgstr "" -#: src/view/com/modals/ModerationDetails.tsx:60 +#: src/lib/moderation/useModerationCauseDescription.ts:66 +msgid "User Blocking You" +msgstr "" + +#: src/components/moderation/ModerationDetailsDialog.tsx:71 msgid "User Blocks You" msgstr "" @@ -4478,13 +5435,13 @@ msgstr "यूजर हैंडल" msgid "User list by {0}" msgstr "" -#: src/view/screens/ProfileList.tsx:763 +#: src/view/screens/ProfileList.tsx:777 msgid "User list by <0/>" msgstr "" #: src/view/com/lists/ListCard.tsx:83 #: src/view/com/modals/UserAddRemoveLists.tsx:196 -#: src/view/screens/ProfileList.tsx:761 +#: src/view/screens/ProfileList.tsx:775 msgid "User list by you" msgstr "" @@ -4505,7 +5462,7 @@ msgstr "लोग सूचियाँ" msgid "Username or email address" msgstr "यूजर नाम या ईमेल पता" -#: src/view/screens/ProfileList.tsx:797 +#: src/view/screens/ProfileList.tsx:811 msgid "Users" msgstr "यूजर लोग" @@ -4517,19 +5474,31 @@ msgstr "" msgid "Users in \"{0}\"" msgstr "" +#: src/components/LikesDialog.tsx:85 +msgid "Users that have liked this content or profile" +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:437 +msgid "Value:" +msgstr "" + #: src/view/com/auth/create/Step2.tsx:243 #~ msgid "Verification code" #~ msgstr "" -#: src/view/screens/Settings/index.tsx:910 +#: src/view/com/modals/ChangeHandle.tsx:510 +msgid "Verify {0}" +msgstr "" + +#: src/view/screens/Settings/index.tsx:940 msgid "Verify email" msgstr "ईमेल सत्यापित करें" -#: src/view/screens/Settings/index.tsx:935 +#: src/view/screens/Settings/index.tsx:965 msgid "Verify my email" msgstr "मेरी ईमेल सत्यापित करें" -#: src/view/screens/Settings/index.tsx:944 +#: src/view/screens/Settings/index.tsx:974 msgid "Verify My Email" msgstr "मेरी ईमेल सत्यापित करें" @@ -4546,7 +5515,7 @@ msgstr "" msgid "Video Games" msgstr "" -#: src/view/com/profile/ProfileHeader.tsx:662 +#: src/screens/Profile/Header/Shell.tsx:110 msgid "View {0}'s avatar" msgstr "" @@ -4554,11 +5523,23 @@ msgstr "" msgid "View debug entry" msgstr "डीबग प्रविष्टि देखें" -#: src/view/com/posts/FeedSlice.tsx:103 +#: src/components/ReportDialog/SelectReportOptionView.tsx:133 +msgid "View details" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:128 +msgid "View details for reporting a copyright violation" +msgstr "" + +#: src/view/com/posts/FeedSlice.tsx:99 msgid "View full thread" msgstr "" -#: src/view/com/posts/FeedErrorMessage.tsx:172 +#: src/components/moderation/LabelsOnMe.tsx:51 +msgid "View information about these labels" +msgstr "" + +#: src/view/com/posts/FeedErrorMessage.tsx:166 msgid "View profile" msgstr "" @@ -4566,15 +5547,34 @@ msgstr "" msgid "View the avatar" msgstr "अवतार देखें" +#: src/components/LabelingServiceCard/index.tsx:140 +msgid "View the labeling service provided by @{0}" +msgstr "" + +#: src/view/screens/ProfileFeed.tsx:584 +msgid "View users who like this feed" +msgstr "" + #: src/view/com/modals/LinkWarning.tsx:75 +#: src/view/com/modals/LinkWarning.tsx:77 msgid "Visit Site" msgstr "साइट पर जाएं" -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:42 -#: src/view/com/modals/ContentFilteringSettings.tsx:259 +#: src/components/moderation/GlobalModerationLabelPref.tsx:44 +#: src/lib/moderation/useLabelBehaviorDescription.ts:17 +#: src/lib/moderation/useLabelBehaviorDescription.ts:22 +#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:53 msgid "Warn" msgstr "" +#: src/lib/moderation/useLabelBehaviorDescription.ts:48 +msgid "Warn content" +msgstr "" + +#: src/lib/moderation/useLabelBehaviorDescription.ts:46 +msgid "Warn content and filter from feeds" +msgstr "" + #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:134 msgid "We also think you'll like \"For You\" by Skygaze:" msgstr "" @@ -4607,6 +5607,14 @@ msgstr "" msgid "We recommend our \"Discover\" feed:" msgstr "" +#: src/components/dialogs/BirthDateSettings.tsx:52 +msgid "We were unable to load your birth date preferences. Please try again." +msgstr "" + +#: src/screens/Moderation/index.tsx:387 +msgid "We were unable to load your configured labelers at this time." +msgstr "" + #: src/screens/Onboarding/StepInterests/index.tsx:133 msgid "We weren't able to connect. Please try again to continue setting up your account. If it continues to fail, you can skip this flow." msgstr "" @@ -4616,8 +5624,8 @@ msgid "We will let you know when your account is ready." msgstr "" #: src/view/com/modals/AppealLabel.tsx:48 -msgid "We'll look into your appeal promptly." -msgstr "" +#~ msgid "We'll look into your appeal promptly." +#~ msgstr "" #: src/screens/Onboarding/StepInterests/index.tsx:138 msgid "We'll use this to help customize your experience." @@ -4627,7 +5635,7 @@ msgstr "" msgid "We're so excited to have you join us!" msgstr "हम आपके हमारी सेवा में शामिल होने को लेकर बहुत उत्साहित हैं!" -#: src/view/screens/ProfileList.tsx:86 +#: src/view/screens/ProfileList.tsx:89 msgid "We're sorry, but we were unable to resolve this list. If this persists, please contact the list creator, @{handleOrDid}." msgstr "" @@ -4635,16 +5643,20 @@ msgstr "" msgid "We're sorry, but we weren't able to load your muted words at this time. Please try again." msgstr "" -#: src/view/screens/Search/Search.tsx:254 +#: src/view/screens/Search/Search.tsx:255 msgid "We're sorry, but your search could not be completed. Please try again in a few minutes." msgstr "" -#: src/components/Lists.tsx:211 +#: src/components/Lists.tsx:194 #: src/view/screens/NotFound.tsx:48 msgid "We're sorry! We can't find the page you were looking for." msgstr "हम क्षमा चाहते हैं! हमें वह पेज नहीं मिल रहा जिसे आप ढूंढ रहे थे।" -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:46 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:319 +msgid "We're sorry! You can only subscribe to ten labelers, and you've reached your limit of ten." +msgstr "" + +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:48 msgid "Welcome to <0>Bluesky" msgstr "<0>Bluesky में आपका स्वागत है" @@ -4653,11 +5665,11 @@ msgid "What are your interests?" msgstr "" #: src/view/com/modals/report/Modal.tsx:169 -msgid "What is the issue with this {collectionName}?" -msgstr "इस {collectionName} के साथ क्या मुद्दा है?" +#~ msgid "What is the issue with this {collectionName}?" +#~ msgstr "इस {collectionName} के साथ क्या मुद्दा है?" #: src/view/com/auth/SplashScreen.tsx:59 -#: src/view/com/composer/Composer.tsx:286 +#: src/view/com/composer/Composer.tsx:295 msgid "What's up?" msgstr "" @@ -4674,16 +5686,36 @@ msgstr "कौन से भाषाएं आपको अपने एल् msgid "Who can reply" msgstr "" +#: src/components/ReportDialog/SelectReportOptionView.tsx:44 +msgid "Why should this content be reviewed?" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:57 +msgid "Why should this feed be reviewed?" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:54 +msgid "Why should this list be reviewed?" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:51 +msgid "Why should this post be reviewed?" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:48 +msgid "Why should this user be reviewed?" +msgstr "" + #: src/view/com/modals/crop-image/CropImage.web.tsx:102 msgid "Wide" msgstr "चौड़ा" -#: src/view/com/composer/Composer.tsx:422 +#: src/view/com/composer/Composer.tsx:435 msgid "Write post" msgstr "पोस्ट लिखो" -#: src/view/com/composer/Composer.tsx:285 -#: src/view/com/composer/Prompt.tsx:33 +#: src/view/com/composer/Composer.tsx:294 +#: src/view/com/composer/Prompt.tsx:37 msgid "Write your reply" msgstr "अपना जवाब दें" @@ -4713,6 +5745,10 @@ msgstr "हाँ" msgid "You are in line." msgstr "" +#: src/view/com/profile/ProfileFollows.tsx:93 +msgid "You are not following anyone." +msgstr "" + #: src/view/com/posts/FollowingEmptyState.tsx:67 #: src/view/com/posts/FollowingEndOfFeed.tsx:68 msgid "You can also discover new Custom Feeds to follow." @@ -4731,6 +5767,10 @@ msgstr "" msgid "You can now sign in with your new password." msgstr "अब आप अपने नए पासवर्ड के साथ साइन इन कर सकते हैं।।" +#: src/view/com/profile/ProfileFollowers.tsx:94 +msgid "You do not have any followers." +msgstr "" + #: src/view/com/modals/InviteCodes.tsx:66 msgid "You don't have any invite codes yet! We'll send you some when you've been on Bluesky for a little longer." msgstr "आपके पास अभी तक कोई आमंत्रण कोड नहीं है! जब आप कुछ अधिक समय के लिए Bluesky पर रहेंगे तो हम आपको कुछ भेजेंगे।" @@ -4747,11 +5787,13 @@ msgstr "" msgid "You don't have any saved feeds." msgstr "आपके पास कोई सहेजी गई फ़ीड नहीं है." -#: src/view/com/post-thread/PostThread.tsx:465 +#: src/view/com/post-thread/PostThread.tsx:159 msgid "You have blocked the author or you have been blocked by the author." msgstr "आपने लेखक को अवरुद्ध किया है या आपने लेखक द्वारा अवरुद्ध किया है।।" -#: src/view/com/modals/ModerationDetails.tsx:56 +#: src/components/moderation/ModerationDetailsDialog.tsx:67 +#: src/lib/moderation/useModerationCauseDescription.ts:50 +#: src/lib/moderation/useModerationCauseDescription.ts:58 msgid "You have blocked this user. You cannot view their content." msgstr "" @@ -4762,10 +5804,27 @@ msgstr "" msgid "You have entered an invalid code. It should look like XXXXX-XXXXX." msgstr "" -#: src/view/com/modals/ModerationDetails.tsx:87 -msgid "You have muted this user." +#: src/lib/moderation/useModerationCauseDescription.ts:109 +msgid "You have hidden this post" msgstr "" +#: src/components/moderation/ModerationDetailsDialog.tsx:102 +msgid "You have hidden this post." +msgstr "" + +#: src/components/moderation/ModerationDetailsDialog.tsx:95 +#: src/lib/moderation/useModerationCauseDescription.ts:92 +msgid "You have muted this account." +msgstr "" + +#: src/lib/moderation/useModerationCauseDescription.ts:86 +msgid "You have muted this user" +msgstr "" + +#: src/view/com/modals/ModerationDetails.tsx:87 +#~ msgid "You have muted this user." +#~ msgstr "" + #: src/view/com/feeds/ProfileFeedgens.tsx:136 msgid "You have no feeds." msgstr "" @@ -4776,34 +5835,50 @@ msgid "You have no lists." msgstr "आपके पास कोई सूची नहीं है।।" #: src/view/screens/ModerationBlockedAccounts.tsx:132 -msgid "You have not blocked any accounts yet. To block an account, go to their profile and selected \"Block account\" from the menu on their account." -msgstr "आपने अभी तक कोई भी अकाउंट ब्लॉक नहीं किया है. किसी खाते को ब्लॉक करने के लिए, उनकी प्रोफ़ाइल पर जाएं और उनके खाते के मेनू से \"खाता ब्लॉक करें\" चुनें।" +msgid "You have not blocked any accounts yet. To block an account, go to their profile and select \"Block account\" from the menu on their account." +msgstr "" + +#: src/view/screens/ModerationBlockedAccounts.tsx:132 +#~ msgid "You have not blocked any accounts yet. To block an account, go to their profile and selected \"Block account\" from the menu on their account." +#~ msgstr "आपने अभी तक कोई भी अकाउंट ब्लॉक नहीं किया है. किसी खाते को ब्लॉक करने के लिए, उनकी प्रोफ़ाइल पर जाएं और उनके खाते के मेनू से \"खाता ब्लॉक करें\" चुनें।" -#: src/view/screens/AppPasswords.tsx:87 +#: src/view/screens/AppPasswords.tsx:89 msgid "You have not created any app passwords yet. You can create one by pressing the button below." msgstr "आपने अभी तक कोई ऐप पासवर्ड नहीं बनाया है। आप नीचे बटन दबाकर एक बना सकते हैं।।" #: src/view/screens/ModerationMutedAccounts.tsx:131 -msgid "You have not muted any accounts yet. To mute an account, go to their profile and selected \"Mute account\" from the menu on their account." -msgstr "आपने अभी तक कोई खाता म्यूट नहीं किया है. किसी खाते को म्यूट करने के लिए, उनकी प्रोफ़ाइल पर जाएं और उनके खाते के मेनू से \"खाता म्यूट करें\" चुनें।" +msgid "You have not muted any accounts yet. To mute an account, go to their profile and select \"Mute account\" from the menu on their account." +msgstr "" + +#: src/view/screens/ModerationMutedAccounts.tsx:131 +#~ msgid "You have not muted any accounts yet. To mute an account, go to their profile and selected \"Mute account\" from the menu on their account." +#~ msgstr "आपने अभी तक कोई खाता म्यूट नहीं किया है. किसी खाते को म्यूट करने के लिए, उनकी प्रोफ़ाइल पर जाएं और उनके खाते के मेनू से \"खाता म्यूट करें\" चुनें।" #: src/components/dialogs/MutedWords.tsx:250 msgid "You haven't muted any words or tags yet" msgstr "" -#: src/view/com/modals/ContentFilteringSettings.tsx:175 -msgid "You must be 18 or older to enable adult content." +#: src/components/moderation/LabelsOnMeDialog.tsx:69 +msgid "You may appeal these labels if you feel they were placed in error." msgstr "" -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:103 +#: src/view/com/modals/ContentFilteringSettings.tsx:175 +#~ msgid "You must be 18 or older to enable adult content." +#~ msgstr "" + +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:110 msgid "You must be 18 years or older to enable adult content" msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:147 +#: src/components/ReportDialog/SubmitView.tsx:205 +msgid "You must select at least one labeler for a report" +msgstr "" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:144 msgid "You will no longer receive notifications for this thread" msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:150 +#: src/view/com/util/forms/PostDropdownBtn.tsx:147 msgid "You will now receive notifications for this thread" msgstr "" @@ -4811,7 +5886,7 @@ msgstr "" msgid "You will receive an email with a \"reset code.\" Enter that code here, then enter your new password." msgstr "आपको \"reset code\" के साथ एक ईमेल प्राप्त होगा। उस कोड को यहाँ दर्ज करें, फिर अपना नया पासवर्ड दर्ज करें।।" -#: src/screens/Onboarding/StepModeration/index.tsx:72 +#: src/screens/Onboarding/StepModeration/index.tsx:59 msgid "You're in control" msgstr "" @@ -4825,6 +5900,11 @@ msgstr "" msgid "You're ready to go!" msgstr "" +#: src/components/moderation/ModerationDetailsDialog.tsx:99 +#: src/lib/moderation/useModerationCauseDescription.ts:101 +msgid "You've chosen to hide a word or tag within this post." +msgstr "" + #: src/view/com/posts/FollowingEndOfFeed.tsx:48 msgid "You've reached the end of your feed! Find some more accounts to follow." msgstr "" @@ -4893,26 +5973,26 @@ msgstr "" msgid "Your muted words" msgstr "" -#: src/view/com/modals/ChangePassword.tsx:155 +#: src/view/com/modals/ChangePassword.tsx:157 msgid "Your password has been changed successfully!" msgstr "" -#: src/view/com/composer/Composer.tsx:274 +#: src/view/com/composer/Composer.tsx:283 msgid "Your post has been published" msgstr "" #: src/screens/Onboarding/StepFinished.tsx:105 #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:59 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:59 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:61 msgid "Your posts, likes, and blocks are public. Mutes are private." msgstr "आपकी पोस्ट, पसंद और ब्लॉक सार्वजनिक हैं। म्यूट निजी हैं।।" -#: src/view/com/modals/SwitchAccount.tsx:84 -#: src/view/screens/Settings/index.tsx:118 +#: src/view/com/modals/SwitchAccount.tsx:88 +#: src/view/screens/Settings/index.tsx:123 msgid "Your profile" msgstr "आपकी प्रोफ़ाइल" -#: src/view/com/composer/Composer.tsx:273 +#: src/view/com/composer/Composer.tsx:282 msgid "Your reply has been published" msgstr "" diff --git a/src/locale/locales/id/messages.po b/src/locale/locales/id/messages.po index 69ea13bce6..70e2f12661 100644 --- a/src/locale/locales/id/messages.po +++ b/src/locale/locales/id/messages.po @@ -29,7 +29,7 @@ msgstr "(tidak ada email)" #~ msgid "{0} {purposeLabel} List" #~ msgstr "Daftar {purposeLabel} {0}" -#: src/view/com/profile/ProfileHeader.tsx:593 +#: src/screens/Profile/Header/Metrics.tsx:45 msgid "{following} following" msgstr "{following} mengikuti" @@ -51,7 +51,7 @@ msgstr "{following} mengikuti" #~ msgid "{message}" #~ msgstr "{message}" -#: src/view/shell/Drawer.tsx:440 +#: src/view/shell/Drawer.tsx:443 msgid "{numUnreadNotifications} unread" msgstr "{numUnreadNotifications} belum dibaca" @@ -63,7 +63,11 @@ msgstr "{numUnreadNotifications} belum dibaca" msgid "<0/> members" msgstr "<0/> anggota" -#: src/view/com/profile/ProfileHeader.tsx:595 +#: src/view/shell/Drawer.tsx:97 +msgid "<0>{0} following" +msgstr "" + +#: src/screens/Profile/Header/Metrics.tsx:46 msgid "<0>{following} <1>following" msgstr "<0>{following} <1>mengikuti" @@ -79,20 +83,20 @@ msgstr "<0>Ikuti<1>Rekomendasi<2>Pengguna" msgid "<0>Welcome to<1>Bluesky" msgstr "<0>Selamat datang diBluesky" -#: src/view/com/profile/ProfileHeader.tsx:558 +#: src/screens/Profile/Header/Handle.tsx:42 msgid "⚠Invalid Handle" msgstr "⚠Handle Tidak Valid" #: src/view/com/util/moderation/LabelInfo.tsx:45 -msgid "A content warning has been applied to this {0}." -msgstr "Peringatan konten telah diterapkan pada {0}" +#~ msgid "A content warning has been applied to this {0}." +#~ msgstr "Peringatan konten telah diterapkan pada {0}" #: src/lib/hooks/useOTAUpdate.ts:16 -msgid "A new version of the app is available. Please update to continue using the app." -msgstr "Versi baru dari aplikasi ini telah tersedia. Harap perbarui untuk terus menggunakan aplikasi." +#~ msgid "A new version of the app is available. Please update to continue using the app." +#~ msgstr "Versi baru dari aplikasi ini telah tersedia. Harap perbarui untuk terus menggunakan aplikasi." #: src/view/com/util/ViewHeader.tsx:89 -#: src/view/screens/Search/Search.tsx:647 +#: src/view/screens/Search/Search.tsx:648 msgid "Access navigation links and settings" msgstr "Akses tautan navigasi dan pengaturan" @@ -101,29 +105,38 @@ msgid "Access profile and other navigation links" msgstr "Akses profil dan tautan navigasi lain" #: src/view/com/modals/EditImage.tsx:299 -#: src/view/screens/Settings/index.tsx:451 +#: src/view/screens/Settings/index.tsx:466 msgid "Accessibility" msgstr "Aksesibilitas" +#: src/components/moderation/LabelsOnMe.tsx:42 +msgid "account" +msgstr "" + #: src/view/com/auth/login/LoginForm.tsx:166 -#: src/view/screens/Settings/index.tsx:308 -#: src/view/screens/Settings/index.tsx:721 +#: src/view/screens/Settings/index.tsx:323 +#: src/view/screens/Settings/index.tsx:739 msgid "Account" msgstr "Akun" -#: src/view/com/profile/ProfileHeader.tsx:246 +#: src/view/com/profile/ProfileMenu.tsx:139 msgid "Account blocked" msgstr "Akun diblokir" -#: src/view/com/profile/ProfileHeader.tsx:213 +#: src/view/com/profile/ProfileMenu.tsx:153 +msgid "Account followed" +msgstr "" + +#: src/view/com/profile/ProfileMenu.tsx:113 msgid "Account muted" msgstr "Akun dibisukan" -#: src/view/com/modals/ModerationDetails.tsx:86 +#: src/components/moderation/ModerationDetailsDialog.tsx:94 +#: src/lib/moderation/useModerationCauseDescription.ts:91 msgid "Account Muted" msgstr "Akun Dibisukan" -#: src/view/com/modals/ModerationDetails.tsx:72 +#: src/components/moderation/ModerationDetailsDialog.tsx:83 msgid "Account Muted by List" msgstr "Akun Dibisukan Berdasarkan Daftar" @@ -135,19 +148,24 @@ msgstr "Pengaturan akun" msgid "Account removed from quick access" msgstr "Akun dihapus dari akses cepat" -#: src/view/com/profile/ProfileHeader.tsx:268 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:130 +#: src/view/com/profile/ProfileMenu.tsx:128 msgid "Account unblocked" msgstr "Akun batal diblokir" -#: src/view/com/profile/ProfileHeader.tsx:226 +#: src/view/com/profile/ProfileMenu.tsx:166 +msgid "Account unfollowed" +msgstr "" + +#: src/view/com/profile/ProfileMenu.tsx:102 msgid "Account unmuted" msgstr "Akun batal dibisukan" #: src/components/dialogs/MutedWords.tsx:165 #: src/view/com/auth/onboarding/RecommendedFeedsItem.tsx:150 -#: src/view/com/modals/ListAddRemoveUsers.tsx:264 +#: src/view/com/modals/ListAddRemoveUsers.tsx:268 #: src/view/com/modals/UserAddRemoveLists.tsx:219 -#: src/view/screens/ProfileList.tsx:813 +#: src/view/screens/ProfileList.tsx:827 msgid "Add" msgstr "Tambah" @@ -155,12 +173,12 @@ msgstr "Tambah" msgid "Add a content warning" msgstr "Tambahkan peringatan konten" -#: src/view/screens/ProfileList.tsx:803 +#: src/view/screens/ProfileList.tsx:817 msgid "Add a user to this list" msgstr "Tambahkan pengguna ke daftar ini" -#: src/view/screens/Settings/index.tsx:383 -#: src/view/screens/Settings/index.tsx:392 +#: src/view/screens/Settings/index.tsx:398 +#: src/view/screens/Settings/index.tsx:407 msgid "Add account" msgstr "Tambahkan akun" @@ -170,26 +188,26 @@ msgstr "Tambahkan akun" msgid "Add alt text" msgstr "Tambahkan teks alt" -#: src/view/screens/AppPasswords.tsx:102 -#: src/view/screens/AppPasswords.tsx:143 -#: src/view/screens/AppPasswords.tsx:156 +#: src/view/screens/AppPasswords.tsx:104 +#: src/view/screens/AppPasswords.tsx:145 +#: src/view/screens/AppPasswords.tsx:158 msgid "Add App Password" msgstr "Tambahkan Kata Sandi Aplikasi" #: src/view/com/modals/report/InputIssueDetails.tsx:41 #: src/view/com/modals/report/Modal.tsx:191 -msgid "Add details" -msgstr "Tambahkan detail" +#~ msgid "Add details" +#~ msgstr "Tambahkan detail" #: src/view/com/modals/report/Modal.tsx:194 -msgid "Add details to report" -msgstr "Tambahkan detail ke laporan" +#~ msgid "Add details to report" +#~ msgstr "Tambahkan detail ke laporan" -#: src/view/com/composer/Composer.tsx:453 +#: src/view/com/composer/Composer.tsx:466 msgid "Add link card" msgstr "Tambahkan kartu tautan" -#: src/view/com/composer/Composer.tsx:458 +#: src/view/com/composer/Composer.tsx:471 msgid "Add link card:" msgstr "Tambahkan kartu tautan:" @@ -205,12 +223,12 @@ msgstr "" msgid "Add the following DNS record to your domain:" msgstr "Tambahkan DNS record berikut ke domain Anda:" -#: src/view/com/profile/ProfileHeader.tsx:310 +#: src/view/com/profile/ProfileMenu.tsx:263 +#: src/view/com/profile/ProfileMenu.tsx:266 msgid "Add to Lists" msgstr "Tambahkan ke Daftar" -#: src/view/com/feeds/FeedSourceCard.tsx:245 -#: src/view/screens/ProfileFeed.tsx:273 +#: src/view/com/feeds/FeedSourceCard.tsx:234 msgid "Add to my feeds" msgstr "Tambakan ke feed saya" @@ -223,7 +241,7 @@ msgstr "Ditambahkan" msgid "Added to list" msgstr "Ditambahkan ke daftar" -#: src/view/com/feeds/FeedSourceCard.tsx:127 +#: src/view/com/feeds/FeedSourceCard.tsx:108 msgid "Added to my feeds" msgstr "Ditambahkan ke feed saya" @@ -231,19 +249,25 @@ msgstr "Ditambahkan ke feed saya" msgid "Adjust the number of likes a reply must have to be shown in your feed." msgstr "Atur jumlah suka dari balasan yang akan ditampilkan di feed Anda." +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:117 #: src/view/com/modals/SelfLabel.tsx:75 msgid "Adult Content" msgstr "Konten Dewasa" #: src/view/com/modals/ContentFilteringSettings.tsx:141 -msgid "Adult content can only be enabled via the Web at <0/>." -msgstr "Konten dewasa hanya dapat diaktifkan melalui Web di <0/>." +#~ msgid "Adult content can only be enabled via the Web at <0/>." +#~ msgstr "Konten dewasa hanya dapat diaktifkan melalui Web di <0/>." #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:78 #~ msgid "Adult content can only be enabled via the Web at <0>bsky.app." #~ msgstr "" -#: src/view/screens/Settings/index.tsx:664 +#: src/components/moderation/ModerationLabelPref.tsx:114 +msgid "Adult content is disabled." +msgstr "" + +#: src/screens/Moderation/index.tsx:377 +#: src/view/screens/Settings/index.tsx:680 msgid "Advanced" msgstr "Lanjutan" @@ -252,11 +276,11 @@ msgid "All the feeds you've saved, right in one place." msgstr "" #: src/view/com/auth/login/ForgotPasswordForm.tsx:221 -#: src/view/com/modals/ChangePassword.tsx:168 +#: src/view/com/modals/ChangePassword.tsx:170 msgid "Already have a code?" msgstr "" -#: src/view/com/auth/login/ChooseAccountForm.tsx:98 +#: src/view/com/auth/login/ChooseAccountForm.tsx:102 msgid "Already signed in as @{0}" msgstr "Sudah masuk sebagai @{0}" @@ -280,12 +304,18 @@ msgstr "Email telah dikirim ke {0}. Email tersebut berisi kode konfirmasi yang d msgid "An email has been sent to your previous address, {0}. It includes a confirmation code which you can enter below." msgstr "Email telah dikirim ke alamat Anda sebelumnya, {0}. Email tersebut berisi kode konfirmasi yang dapat Anda masukkan di bawah ini." -#: src/view/com/profile/FollowButton.tsx:30 -#: src/view/com/profile/FollowButton.tsx:40 +#: src/lib/moderation/useReportOptions.ts:26 +msgid "An issue not included in these options" +msgstr "" + +#: src/view/com/profile/FollowButton.tsx:35 +#: src/view/com/profile/FollowButton.tsx:45 +#: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:188 +#: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:198 msgid "An issue occurred, please try again." msgstr "Terjadi masalah, silakan coba lagi." -#: src/view/com/notifications/FeedItem.tsx:237 +#: src/view/com/notifications/FeedItem.tsx:240 #: src/view/com/threadgate/WhoCanReply.tsx:178 msgid "and" msgstr "dan" @@ -294,11 +324,15 @@ msgstr "dan" msgid "Animals" msgstr "" +#: src/lib/moderation/useReportOptions.ts:31 +msgid "Anti-Social Behavior" +msgstr "" + #: src/view/screens/LanguageSettings.tsx:95 msgid "App Language" msgstr "Bahasa Aplikasi" -#: src/view/screens/AppPasswords.tsx:228 +#: src/view/screens/AppPasswords.tsx:223 msgid "App password deleted" msgstr "Kata sandi aplikasi dihapus" @@ -310,7 +344,7 @@ msgstr "Nama Kata Sandi Aplikasi hanya boleh terdiri dari huruf, angka, spasi, t msgid "App Password names must be at least 4 characters long." msgstr "Nama Kata Sandi Aplikasi harus terdiri dari minimal 4 karakter." -#: src/view/screens/Settings/index.tsx:675 +#: src/view/screens/Settings/index.tsx:691 msgid "App password settings" msgstr "Pengaturan kata sandi aplikasi" @@ -318,52 +352,68 @@ msgstr "Pengaturan kata sandi aplikasi" #~ msgid "App passwords" #~ msgstr "Kata sandi aplikasi" -#: src/Navigation.tsx:239 -#: src/view/screens/AppPasswords.tsx:187 -#: src/view/screens/Settings/index.tsx:684 +#: src/Navigation.tsx:251 +#: src/view/screens/AppPasswords.tsx:189 +#: src/view/screens/Settings/index.tsx:700 msgid "App Passwords" msgstr "Kata sandi Aplikasi" +#: src/components/moderation/LabelsOnMeDialog.tsx:134 +#: src/components/moderation/LabelsOnMeDialog.tsx:137 +msgid "Appeal" +msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:202 +msgid "Appeal \"{0}\" label" +msgstr "" + #: src/view/com/util/forms/PostDropdownBtn.tsx:337 #: src/view/com/util/forms/PostDropdownBtn.tsx:346 -msgid "Appeal content warning" -msgstr "Ajukan banding peringatan konten" +#~ msgid "Appeal content warning" +#~ msgstr "Ajukan banding peringatan konten" #: src/view/com/modals/AppealLabel.tsx:65 -msgid "Appeal Content Warning" -msgstr "Ajukan Banding Peringatan Konten" +#~ msgid "Appeal Content Warning" +#~ msgstr "Ajukan Banding Peringatan Konten" #~ msgid "Appeal Decision" #~ msgstr "Keputusan Banding" +#: src/components/moderation/LabelsOnMeDialog.tsx:193 +msgid "Appeal submitted." +msgstr "" + #: src/view/com/util/moderation/LabelInfo.tsx:52 -msgid "Appeal this decision" -msgstr "Ajukan banding untuk keputusan ini" +#~ msgid "Appeal this decision" +#~ msgstr "Ajukan banding untuk keputusan ini" #: src/view/com/util/moderation/LabelInfo.tsx:56 -msgid "Appeal this decision." -msgstr "Ajukan banding untuk keputusan ini." +#~ msgid "Appeal this decision." +#~ msgstr "Ajukan banding untuk keputusan ini." -#: src/view/screens/Settings/index.tsx:466 +#: src/view/screens/Settings/index.tsx:481 msgid "Appearance" msgstr "Tampilan" -#: src/view/screens/AppPasswords.tsx:224 +#: src/view/screens/AppPasswords.tsx:265 msgid "Are you sure you want to delete the app password \"{name}\"?" msgstr "Anda yakin untuk menghapus kata sandi aplikasi \"{name}\"?" -#: src/view/com/composer/Composer.tsx:150 +#: src/view/com/feeds/FeedSourceCard.tsx:280 +msgid "Are you sure you want to remove {0} from your feeds?" +msgstr "" + +#: src/view/com/composer/Composer.tsx:508 msgid "Are you sure you'd like to discard this draft?" msgstr "Anda yakin untuk membuang draf ini?" #: src/components/dialogs/MutedWords.tsx:282 -#: src/view/screens/ProfileList.tsx:365 msgid "Are you sure?" msgstr "Anda yakin?" #: src/view/com/util/forms/PostDropdownBtn.tsx:322 -msgid "Are you sure? This cannot be undone." -msgstr "Anda yakin? Ini tidak dapat dibatalkan." +#~ msgid "Are you sure? This cannot be undone." +#~ msgstr "Anda yakin? Ini tidak dapat dibatalkan." #: src/view/com/composer/select-language/SuggestedLanguage.tsx:60 msgid "Are you writing in <0>{0}?" @@ -377,78 +427,86 @@ msgstr "" msgid "Artistic or non-erotic nudity." msgstr "Ketelanjangan artistik atau non-erotis." +#: src/components/moderation/LabelsOnMeDialog.tsx:247 +#: src/components/moderation/LabelsOnMeDialog.tsx:248 +#: src/screens/Profile/Header/Shell.tsx:97 #: src/view/com/auth/create/CreateAccount.tsx:158 -#: src/view/com/auth/login/ChooseAccountForm.tsx:151 +#: src/view/com/auth/login/ChooseAccountForm.tsx:155 #: src/view/com/auth/login/ForgotPasswordForm.tsx:174 #: src/view/com/auth/login/LoginForm.tsx:259 #: src/view/com/auth/login/SetNewPasswordForm.tsx:179 -#: src/view/com/modals/report/InputIssueDetails.tsx:46 -#: src/view/com/post-thread/PostThread.tsx:472 -#: src/view/com/post-thread/PostThread.tsx:522 -#: src/view/com/post-thread/PostThread.tsx:530 -#: src/view/com/profile/ProfileHeader.tsx:649 #: src/view/com/util/ViewHeader.tsx:87 msgid "Back" msgstr "Kembali" #: src/view/com/post-thread/PostThread.tsx:480 -msgctxt "action" -msgid "Back" -msgstr "Kembali" +#~ msgctxt "action" +#~ msgid "Back" +#~ msgstr "Kembali" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:136 msgid "Based on your interest in {interestsText}" msgstr "" -#: src/view/screens/Settings/index.tsx:523 +#: src/view/screens/Settings/index.tsx:538 msgid "Basics" msgstr "Dasar" +#: src/components/dialogs/BirthDateSettings.tsx:107 #: src/view/com/auth/create/Step1.tsx:227 -#: src/view/com/modals/BirthDateSettings.tsx:73 msgid "Birthday" msgstr "Tanggal lahir" -#: src/view/screens/Settings/index.tsx:340 +#: src/view/screens/Settings/index.tsx:355 msgid "Birthday:" msgstr "Tanggal lahir:" -#: src/view/com/profile/ProfileHeader.tsx:239 -#: src/view/com/profile/ProfileHeader.tsx:346 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:278 +#: src/view/com/profile/ProfileMenu.tsx:361 +msgid "Block" +msgstr "" + +#: src/view/com/profile/ProfileMenu.tsx:300 +#: src/view/com/profile/ProfileMenu.tsx:307 msgid "Block Account" msgstr "Blokir Akun" -#: src/view/screens/ProfileList.tsx:556 +#: src/view/com/profile/ProfileMenu.tsx:344 +msgid "Block Account?" +msgstr "" + +#: src/view/screens/ProfileList.tsx:530 msgid "Block accounts" msgstr "Blokir akun" -#: src/view/screens/ProfileList.tsx:506 +#: src/view/screens/ProfileList.tsx:478 +#: src/view/screens/ProfileList.tsx:634 msgid "Block list" msgstr "Daftar blokir" -#: src/view/screens/ProfileList.tsx:316 +#: src/view/screens/ProfileList.tsx:629 msgid "Block these accounts?" msgstr "Blokir akun ini?" #: src/view/screens/ProfileList.tsx:320 -msgid "Block this List" -msgstr "Blokir Daftar ini" +#~ msgid "Block this List" +#~ msgstr "Blokir Daftar ini" #: src/view/com/lists/ListCard.tsx:110 -#: src/view/com/util/post-embeds/QuoteEmbed.tsx:61 +#: src/view/com/util/post-embeds/QuoteEmbed.tsx:55 msgid "Blocked" msgstr "Diblokir" -#: src/view/screens/Moderation.tsx:142 +#: src/screens/Moderation/index.tsx:269 msgid "Blocked accounts" msgstr "Akun yang diblokir" -#: src/Navigation.tsx:132 +#: src/Navigation.tsx:134 #: src/view/screens/ModerationBlockedAccounts.tsx:107 msgid "Blocked Accounts" msgstr "Akun yang diblokir" -#: src/view/com/profile/ProfileHeader.tsx:241 +#: src/view/com/profile/ProfileMenu.tsx:356 msgid "Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you." msgstr "Akun yang diblokir tidak dapat membalas di utas Anda, menyebut Anda, atau berinteraksi dengan Anda." @@ -456,15 +514,23 @@ msgstr "Akun yang diblokir tidak dapat membalas di utas Anda, menyebut Anda, ata msgid "Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you. You will not see their content and they will be prevented from seeing yours." msgstr "Akun yang diblokir tidak dapat membalas postingan Anda, menyebutkan Anda, dan interaksi lain dengan Anda. Anda tidak akan melihat konten mereka dan mereka akan dicegah melihat konten Anda." -#: src/view/com/post-thread/PostThread.tsx:324 +#: src/view/com/post-thread/PostThread.tsx:313 msgid "Blocked post." msgstr "Postingan yang diblokir." -#: src/view/screens/ProfileList.tsx:318 +#: src/screens/Profile/Sections/Labels.tsx:153 +msgid "Blocking does not prevent this labeler from placing labels on your account." +msgstr "" + +#: src/view/screens/ProfileList.tsx:631 msgid "Blocking is public. Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you." msgstr "Blokir bersifat publik. Akun yang diblokir tidak dapat membalas postingan Anda, menyebutkan Anda, dan interaksi lain dengan Anda." -#: src/view/com/auth/HomeLoggedOutCTA.tsx:93 +#: src/view/com/profile/ProfileMenu.tsx:353 +msgid "Blocking will not prevent labels from being applied on your account, but it will stop this account from replying in your threads or interacting with you." +msgstr "" + +#: src/view/com/auth/HomeLoggedOutCTA.tsx:97 #: src/view/com/auth/SplashScreen.web.tsx:133 msgid "Blog" msgstr "Blog" @@ -480,17 +546,17 @@ msgid "Bluesky is an open network where you can choose your hosting provider. Cu msgstr "" #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:80 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:80 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:82 msgid "Bluesky is flexible." msgstr "Bluesky itu fleksibel." #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:69 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:69 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:71 msgid "Bluesky is open." msgstr "Bluesky itu terbuka." #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:56 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:56 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:58 msgid "Bluesky is public." msgstr "Bluesky bersifat publik." @@ -498,7 +564,7 @@ msgstr "Bluesky bersifat publik." #~ msgid "Bluesky uses invites to build a healthier community. If you don't know anybody with an invite, you can sign up for the waitlist and we'll send one soon." #~ msgstr "Bluesky menggunakan undangan untuk membangun komunitas yang sehat. Jika Anda tidak tahu orang lain yang memiliki undangan, Anda bisa mendaftar di daftar tunggu dan kami akan segera mengirimkan undangannya." -#: src/view/screens/Moderation.tsx:245 +#: src/screens/Moderation/index.tsx:535 msgid "Bluesky will not show your profile and posts to logged-out users. Other apps may not honor this request. This does not make your account private." msgstr "Bluesky tidak akan menampilkan profil dan postingan Anda ke pengguna yang tidak login. Aplikasi lain mungkin tidak menghormati permintaan ini. Ini tidak membuat akun Anda menjadi privat." @@ -506,15 +572,23 @@ msgstr "Bluesky tidak akan menampilkan profil dan postingan Anda ke pengguna yan #~ msgid "Bluesky.Social" #~ msgstr "Bluesky.Social" +#: src/lib/moderation/useLabelBehaviorDescription.ts:53 +msgid "Blur images" +msgstr "" + +#: src/lib/moderation/useLabelBehaviorDescription.ts:51 +msgid "Blur images and filter from feeds" +msgstr "" + #: src/screens/Onboarding/index.tsx:33 msgid "Books" msgstr "" -#: src/view/screens/Settings/index.tsx:859 +#: src/view/screens/Settings/index.tsx:889 msgid "Build version {0} {1}" msgstr "Versi {0} {1}" -#: src/view/com/auth/HomeLoggedOutCTA.tsx:87 +#: src/view/com/auth/HomeLoggedOutCTA.tsx:91 #: src/view/com/auth/SplashScreen.web.tsx:128 msgid "Business" msgstr "Bisnis" @@ -531,17 +605,23 @@ msgstr "oleh —" msgid "by {0}" msgstr "oleh {0}" +#: src/components/LabelingServiceCard/index.tsx:57 +msgid "By {0}" +msgstr "" + #: src/view/com/profile/ProfileSubpageHeader.tsx:161 msgid "by <0/>" msgstr "oleh <0/>" +#: src/view/com/auth/create/Policies.tsx:87 +msgid "By creating an account you agree to the {els}." +msgstr "" + #: src/view/com/profile/ProfileSubpageHeader.tsx:159 msgid "by you" msgstr "oleh Anda" -#: src/view/com/composer/photos/OpenCameraBtn.tsx:60 -#: src/view/com/util/UserAvatar.tsx:224 -#: src/view/com/util/UserBanner.tsx:40 +#: src/view/com/composer/photos/OpenCameraBtn.tsx:77 msgid "Camera" msgstr "Kamera" @@ -549,28 +629,33 @@ msgstr "Kamera" msgid "Can only contain letters, numbers, spaces, dashes, and underscores. Must be at least 4 characters long, but no more than 32 characters long." msgstr "Hanya dapat terdiri dari huruf, angka, spasi, tanda hubung dan garis bawah. Minimal 4 karakter, namun tidak boleh lebih dari 32 karakter." -#: src/components/Prompt.tsx:101 -#: src/view/com/composer/Composer.tsx:307 -#: src/view/com/composer/Composer.tsx:312 +#: src/components/Menu/index.tsx:213 +#: src/components/Prompt.tsx:116 +#: src/components/Prompt.tsx:118 +#: src/components/TagMenu/index.tsx:268 +#: src/view/com/composer/Composer.tsx:316 +#: src/view/com/composer/Composer.tsx:321 #: src/view/com/modals/ChangeEmail.tsx:218 #: src/view/com/modals/ChangeEmail.tsx:220 -#: src/view/com/modals/ChangePassword.tsx:265 -#: src/view/com/modals/ChangePassword.tsx:268 +#: src/view/com/modals/ChangeHandle.tsx:153 +#: src/view/com/modals/ChangePassword.tsx:267 +#: src/view/com/modals/ChangePassword.tsx:270 #: src/view/com/modals/CreateOrEditList.tsx:355 +#: src/view/com/modals/crop-image/CropImage.web.tsx:137 #: src/view/com/modals/EditImage.tsx:323 #: src/view/com/modals/EditProfile.tsx:249 #: src/view/com/modals/InAppBrowserConsent.tsx:78 +#: src/view/com/modals/InAppBrowserConsent.tsx:80 #: src/view/com/modals/LinkWarning.tsx:87 +#: src/view/com/modals/LinkWarning.tsx:89 #: src/view/com/modals/Repost.tsx:87 #: src/view/com/modals/VerifyEmail.tsx:247 #: src/view/com/modals/VerifyEmail.tsx:253 -#: src/view/screens/Search/Search.tsx:716 -#: src/view/shell/desktop/Search.tsx:238 +#: src/view/screens/Search/Search.tsx:717 +#: src/view/shell/desktop/Search.tsx:239 msgid "Cancel" msgstr "Batal" -#: src/view/com/modals/Confirm.tsx:88 -#: src/view/com/modals/Confirm.tsx:91 #: src/view/com/modals/CreateOrEditList.tsx:360 #: src/view/com/modals/DeleteAccount.tsx:156 #: src/view/com/modals/DeleteAccount.tsx:234 @@ -603,7 +688,7 @@ msgid "Cancel quote post" msgstr "Batal mengutip postingan" #: src/view/com/modals/ListAddRemoveUsers.tsx:87 -#: src/view/shell/desktop/Search.tsx:234 +#: src/view/shell/desktop/Search.tsx:235 msgid "Cancel search" msgstr "Batal mencari" @@ -611,20 +696,25 @@ msgstr "Batal mencari" #~ msgid "Cancel waitlist signup" #~ msgstr "Batal mendaftar di daftar tunggu" -#: src/view/screens/Settings/index.tsx:334 +#: src/view/com/modals/LinkWarning.tsx:88 +msgid "Cancels opening the linked website" +msgstr "" + +#: src/view/screens/Settings/index.tsx:349 msgctxt "action" msgid "Change" msgstr "Ubah" -#~ msgid "Change" -#~ msgstr "Ubah" +#: src/view/com/modals/VerifyEmail.tsx:152 +msgid "Change" +msgstr "Ubah" -#: src/view/screens/Settings/index.tsx:696 +#: src/view/screens/Settings/index.tsx:712 msgid "Change handle" msgstr "Ubah handle" #: src/view/com/modals/ChangeHandle.tsx:161 -#: src/view/screens/Settings/index.tsx:705 +#: src/view/screens/Settings/index.tsx:723 msgid "Change Handle" msgstr "Ubah Handle" @@ -632,11 +722,12 @@ msgstr "Ubah Handle" msgid "Change my email" msgstr "Ubah email saya" -#: src/view/screens/Settings/index.tsx:732 +#: src/view/screens/Settings/index.tsx:750 msgid "Change password" msgstr "" -#: src/view/screens/Settings/index.tsx:741 +#: src/view/com/modals/ChangePassword.tsx:141 +#: src/view/screens/Settings/index.tsx:761 msgid "Change Password" msgstr "" @@ -645,8 +736,8 @@ msgid "Change post language to {0}" msgstr "Ubah bahasa postingan menjadi {0}" #: src/view/screens/Settings/index.tsx:733 -msgid "Change your Bluesky password" -msgstr "" +#~ msgid "Change your Bluesky password" +#~ msgstr "" #: src/view/com/modals/ChangeEmail.tsx:109 msgid "Change Your Email" @@ -674,8 +765,8 @@ msgid "Choose \"Everybody\" or \"Nobody\"" msgstr "Pilih \"Semua Orang\" atau \"Tidak Ada\"" #: src/view/screens/Settings/index.tsx:697 -msgid "Choose a new Bluesky username or create" -msgstr "Pilih nama pengguna Bluesky baru atau buat" +#~ msgid "Choose a new Bluesky username or create" +#~ msgstr "Pilih nama pengguna Bluesky baru atau buat" #: src/view/com/auth/server-input/index.tsx:79 msgid "Choose Service" @@ -686,7 +777,7 @@ msgid "Choose the algorithms that power your custom feeds." msgstr "" #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:83 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:83 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:85 msgid "Choose the algorithms that power your experience with custom feeds." msgstr "Pilih algoritma yang akan digunakan untuk kustom feed Anda." @@ -702,29 +793,35 @@ msgstr "" msgid "Choose your password" msgstr "Pilih kata sandi Anda" -#: src/view/screens/Settings/index.tsx:834 -#: src/view/screens/Settings/index.tsx:835 +#: src/view/screens/Settings/index.tsx:864 msgid "Clear all legacy storage data" msgstr "Hapus semua data penyimpanan lama" -#: src/view/screens/Settings/index.tsx:837 +#: src/view/screens/Settings/index.tsx:867 msgid "Clear all legacy storage data (restart after this)" msgstr "Hapus semua data penyimpanan lama (mulai ulang setelah ini)" -#: src/view/screens/Settings/index.tsx:846 -#: src/view/screens/Settings/index.tsx:847 +#: src/view/screens/Settings/index.tsx:876 msgid "Clear all storage data" msgstr "Hapus semua data penyimpanan" -#: src/view/screens/Settings/index.tsx:849 +#: src/view/screens/Settings/index.tsx:879 msgid "Clear all storage data (restart after this)" msgstr "Hapus semua data penyimpanan (mulai ulang setelah ini)" #: src/view/com/util/forms/SearchInput.tsx:88 -#: src/view/screens/Search/Search.tsx:697 +#: src/view/screens/Search/Search.tsx:698 msgid "Clear search query" msgstr "Hapus kueri pencarian" +#: src/view/screens/Settings/index.tsx:865 +msgid "Clears all legacy storage data" +msgstr "" + +#: src/view/screens/Settings/index.tsx:877 +msgid "Clears all storage data" +msgstr "" + #: src/view/screens/Support.tsx:40 msgid "click here" msgstr "klik di sini" @@ -741,8 +838,8 @@ msgstr "" msgid "Climate" msgstr "" -#: src/view/com/modals/ChangePassword.tsx:265 -#: src/view/com/modals/ChangePassword.tsx:268 +#: src/view/com/modals/ChangePassword.tsx:267 +#: src/view/com/modals/ChangePassword.tsx:270 msgid "Close" msgstr "" @@ -755,27 +852,28 @@ msgstr "" msgid "Close alert" msgstr "Tutup peringatan" -#: src/view/com/util/BottomSheetCustomBackdrop.tsx:33 +#: src/view/com/util/BottomSheetCustomBackdrop.tsx:36 msgid "Close bottom drawer" msgstr "Tutup kotak bawah" -#: src/view/com/lightbox/ImageViewing/components/ImageDefaultHeader.tsx:26 +#: src/view/com/lightbox/ImageViewing/components/ImageDefaultHeader.tsx:36 msgid "Close image" msgstr "Tutup gambar" -#: src/view/com/lightbox/Lightbox.web.tsx:119 +#: src/view/com/lightbox/Lightbox.web.tsx:129 msgid "Close image viewer" msgstr "Tutup penampil gambar" -#: src/view/shell/index.web.tsx:51 +#: src/view/shell/index.web.tsx:55 msgid "Close navigation footer" msgstr "Tutup footer navigasi" +#: src/components/Menu/index.tsx:207 #: src/components/TagMenu/index.tsx:262 msgid "Close this dialog" msgstr "" -#: src/view/shell/index.web.tsx:52 +#: src/view/shell/index.web.tsx:56 msgid "Closes bottom navigation bar" msgstr "Menutup bilah navigasi bawah" @@ -783,15 +881,15 @@ msgstr "Menutup bilah navigasi bawah" msgid "Closes password update alert" msgstr "Menutup peringatan pembaruan kata sandi" -#: src/view/com/composer/Composer.tsx:309 +#: src/view/com/composer/Composer.tsx:318 msgid "Closes post composer and discards post draft" msgstr "Menutup penyusun postingan dan membuang draf" -#: src/view/com/lightbox/ImageViewing/components/ImageDefaultHeader.tsx:27 +#: src/view/com/lightbox/ImageViewing/components/ImageDefaultHeader.tsx:37 msgid "Closes viewer for header image" msgstr "Menutup penampil untuk gambar header" -#: src/view/com/notifications/FeedItem.tsx:318 +#: src/view/com/notifications/FeedItem.tsx:321 msgid "Collapses list of users for a given notification" msgstr "Menciutkan daftar pengguna untuk notifikasi tertentu" @@ -803,7 +901,7 @@ msgstr "" msgid "Comics" msgstr "" -#: src/Navigation.tsx:229 +#: src/Navigation.tsx:241 #: src/view/screens/CommunityGuidelines.tsx:32 msgid "Community Guidelines" msgstr "Panduan Komunitas" @@ -816,7 +914,7 @@ msgstr "" msgid "Complete the challenge" msgstr "" -#: src/view/com/composer/Composer.tsx:424 +#: src/view/com/composer/Composer.tsx:437 msgid "Compose posts up to {MAX_GRAPHEME_LENGTH} characters in length" msgstr "Buat postingan dengan panjang hingga {MAX_GRAPHEME_LENGTH} karakter" @@ -824,12 +922,18 @@ msgstr "Buat postingan dengan panjang hingga {MAX_GRAPHEME_LENGTH} karakter" msgid "Compose reply" msgstr "Tulis balasan" -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:67 +#: src/components/moderation/GlobalModerationLabelPref.tsx:69 +#: src/components/moderation/ModerationLabelPref.tsx:149 +#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:81 msgid "Configure content filtering setting for category: {0}" msgstr "" -#: src/components/Prompt.tsx:124 -#: src/view/com/modals/AppealLabel.tsx:98 +#: src/components/moderation/ModerationLabelPref.tsx:116 +msgid "Configured in <0>moderation settings." +msgstr "" + +#: src/components/Prompt.tsx:152 +#: src/components/Prompt.tsx:155 #: src/view/com/modals/SelfLabel.tsx:154 #: src/view/com/modals/VerifyEmail.tsx:231 #: src/view/com/modals/VerifyEmail.tsx:233 @@ -840,9 +944,9 @@ msgstr "Konfirmasi" #: src/view/com/modals/Confirm.tsx:75 #: src/view/com/modals/Confirm.tsx:78 -msgctxt "action" -msgid "Confirm" -msgstr "Konfirmasi" +#~ msgctxt "action" +#~ msgid "Confirm" +#~ msgstr "Konfirmasi" #: src/view/com/modals/ChangeEmail.tsx:193 #: src/view/com/modals/ChangeEmail.tsx:195 @@ -858,10 +962,19 @@ msgid "Confirm delete account" msgstr "Konfirmasi hapus akun" #: src/view/com/modals/ContentFilteringSettings.tsx:156 -msgid "Confirm your age to enable adult content." -msgstr "Konfirmasikan usia Anda untuk mengaktifkan konten dewasa." +#~ msgid "Confirm your age to enable adult content." +#~ msgstr "Konfirmasikan usia Anda untuk mengaktifkan konten dewasa." + +#: src/screens/Moderation/index.tsx:303 +msgid "Confirm your age:" +msgstr "" + +#: src/screens/Moderation/index.tsx:294 +msgid "Confirm your birthdate" +msgstr "" #: src/view/com/modals/ChangeEmail.tsx:157 +#: src/view/com/modals/DeleteAccount.tsx:176 #: src/view/com/modals/DeleteAccount.tsx:182 #: src/view/com/modals/VerifyEmail.tsx:165 msgid "Confirmation code" @@ -880,25 +993,40 @@ msgstr "Menghubungkan..." msgid "Contact support" msgstr "" +#: src/components/moderation/LabelsOnMe.tsx:42 +msgid "content" +msgstr "" + +#: src/lib/moderation/useGlobalLabelStrings.ts:18 +msgid "Content Blocked" +msgstr "" + #: src/view/screens/Moderation.tsx:83 -msgid "Content filtering" -msgstr "Penyaring Konten" +#~ msgid "Content filtering" +#~ msgstr "Penyaring Konten" #: src/view/com/modals/ContentFilteringSettings.tsx:44 -msgid "Content Filtering" -msgstr "Penyaring Konten" +#~ msgid "Content Filtering" +#~ msgstr "Penyaring Konten" + +#: src/screens/Moderation/index.tsx:287 +msgid "Content filters" +msgstr "" #: src/view/com/modals/lang-settings/ContentLanguagesSettings.tsx:74 #: src/view/screens/LanguageSettings.tsx:278 msgid "Content Languages" msgstr "Bahasa konten" -#: src/view/com/modals/ModerationDetails.tsx:65 +#: src/components/moderation/ModerationDetailsDialog.tsx:76 +#: src/lib/moderation/useModerationCauseDescription.ts:75 msgid "Content Not Available" msgstr "Konten Tidak Tersedia" -#: src/view/com/modals/ModerationDetails.tsx:33 -#: src/view/com/util/moderation/ScreenHider.tsx:78 +#: src/components/moderation/ModerationDetailsDialog.tsx:47 +#: src/components/moderation/ScreenHider.tsx:100 +#: src/lib/moderation/useGlobalLabelStrings.ts:22 +#: src/lib/moderation/useModerationCauseDescription.ts:38 msgid "Content Warning" msgstr "Peringatan Konten" @@ -906,19 +1034,24 @@ msgstr "Peringatan Konten" msgid "Content warnings" msgstr "Peringatan konten" +#: src/components/Menu/index.web.tsx:84 +msgid "Context menu backdrop, click to close the menu." +msgstr "" + #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:170 #: src/screens/Onboarding/StepFollowingFeed.tsx:153 #: src/screens/Onboarding/StepInterests/index.tsx:248 -#: src/screens/Onboarding/StepModeration/index.tsx:118 +#: src/screens/Onboarding/StepModeration/index.tsx:102 #: src/screens/Onboarding/StepTopicalFeeds.tsx:114 #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:148 #: src/view/com/auth/onboarding/RecommendedFollows.tsx:209 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:96 msgid "Continue" msgstr "Lanjutkan" #: src/screens/Onboarding/StepFollowingFeed.tsx:150 #: src/screens/Onboarding/StepInterests/index.tsx:245 -#: src/screens/Onboarding/StepModeration/index.tsx:115 +#: src/screens/Onboarding/StepModeration/index.tsx:99 #: src/screens/Onboarding/StepTopicalFeeds.tsx:111 msgid "Continue to next step" msgstr "" @@ -940,13 +1073,14 @@ msgstr "" msgid "Copied" msgstr "Disalin" -#: src/view/screens/Settings/index.tsx:241 +#: src/view/screens/Settings/index.tsx:247 msgid "Copied build version to clipboard" msgstr "Menyalin versi build ke papan klip" #: src/view/com/modals/AddAppPasswords.tsx:76 +#: src/view/com/modals/ChangeHandle.tsx:327 #: src/view/com/modals/InviteCodes.tsx:152 -#: src/view/com/util/forms/PostDropdownBtn.tsx:161 +#: src/view/com/util/forms/PostDropdownBtn.tsx:158 msgid "Copied to clipboard" msgstr "Disalin ke papan klip" @@ -958,34 +1092,38 @@ msgstr "Menyalin kata sandi aplikasi" msgid "Copy" msgstr "Salin" -#: src/view/screens/ProfileList.tsx:418 +#: src/view/com/modals/ChangeHandle.tsx:481 +msgid "Copy {0}" +msgstr "" + +#: src/view/screens/ProfileList.tsx:388 msgid "Copy link to list" msgstr "Salin tautan ke daftar" -#: src/view/com/util/forms/PostDropdownBtn.tsx:231 +#: src/view/com/util/forms/PostDropdownBtn.tsx:228 #: src/view/com/util/forms/PostDropdownBtn.tsx:237 msgid "Copy link to post" msgstr "Salin tautan ke postingan" #: src/view/com/profile/ProfileHeader.tsx:295 -msgid "Copy link to profile" -msgstr "Salin tautan ke profil" +#~ msgid "Copy link to profile" +#~ msgstr "Salin tautan ke profil" -#: src/view/com/util/forms/PostDropdownBtn.tsx:223 -#: src/view/com/util/forms/PostDropdownBtn.tsx:225 +#: src/view/com/util/forms/PostDropdownBtn.tsx:220 +#: src/view/com/util/forms/PostDropdownBtn.tsx:222 msgid "Copy post text" msgstr "Salin teks postingan" -#: src/Navigation.tsx:234 +#: src/Navigation.tsx:246 #: src/view/screens/CopyrightPolicy.tsx:29 msgid "Copyright Policy" msgstr "Kebijakan Hak Cipta" -#: src/view/screens/ProfileFeed.tsx:97 +#: src/view/screens/ProfileFeed.tsx:102 msgid "Could not load feed" msgstr "Tidak dapat memuat feed" -#: src/view/screens/ProfileList.tsx:893 +#: src/view/screens/ProfileList.tsx:907 msgid "Could not load list" msgstr "Tidak dapat memuat daftar" @@ -993,13 +1131,13 @@ msgstr "Tidak dapat memuat daftar" #~ msgid "Country" #~ msgstr "" -#: src/view/com/auth/HomeLoggedOutCTA.tsx:62 -#: src/view/com/auth/SplashScreen.tsx:71 +#: src/view/com/auth/HomeLoggedOutCTA.tsx:64 +#: src/view/com/auth/SplashScreen.tsx:73 #: src/view/com/auth/SplashScreen.web.tsx:81 msgid "Create a new account" msgstr "Buat akun baru" -#: src/view/screens/Settings/index.tsx:384 +#: src/view/screens/Settings/index.tsx:399 msgid "Create a new Bluesky account" msgstr "Buat akun Bluesky baru" @@ -1016,19 +1154,23 @@ msgstr "Buat Kata Sandi Aplikasi" msgid "Create new account" msgstr "Buat akun baru" -#: src/view/screens/AppPasswords.tsx:249 +#: src/components/ReportDialog/SelectReportOptionView.tsx:94 +msgid "Create report for {0}" +msgstr "" + +#: src/view/screens/AppPasswords.tsx:246 msgid "Created {0}" msgstr "Dibuat {0}" #: src/view/screens/ProfileFeed.tsx:616 -msgid "Created by <0/>" -msgstr "Dibuat oleh <0/>" +#~ msgid "Created by <0/>" +#~ msgstr "Dibuat oleh <0/>" #: src/view/screens/ProfileFeed.tsx:614 -msgid "Created by you" -msgstr "Dibuat oleh Anda" +#~ msgid "Created by you" +#~ msgstr "Dibuat oleh Anda" -#: src/view/com/composer/Composer.tsx:455 +#: src/view/com/composer/Composer.tsx:468 msgid "Creates a card with a thumbnail. The card links to {url}" msgstr "Buat kartu dengan gambar kecil. Tautan kartu ke {url}" @@ -1058,8 +1200,8 @@ msgstr "Sesuaikan media dari situs eksternal." #~ msgid "Danger Zone" #~ msgstr "Zona Berbahaya" -#: src/view/screens/Settings/index.tsx:485 -#: src/view/screens/Settings/index.tsx:511 +#: src/view/screens/Settings/index.tsx:500 +#: src/view/screens/Settings/index.tsx:526 msgid "Dark" msgstr "Gelap" @@ -1067,7 +1209,7 @@ msgstr "Gelap" msgid "Dark mode" msgstr "Mode gelap" -#: src/view/screens/Settings/index.tsx:498 +#: src/view/screens/Settings/index.tsx:513 msgid "Dark Theme" msgstr "" @@ -1075,11 +1217,21 @@ msgstr "" #~ msgid "Debug" #~ msgstr "Debug" +#: src/view/screens/Settings/index.tsx:837 +msgid "Debug Moderation" +msgstr "" + #: src/view/screens/Debug.tsx:83 msgid "Debug panel" msgstr "Panel debug" -#: src/view/screens/Settings/index.tsx:772 +#: src/view/com/util/forms/PostDropdownBtn.tsx:319 +#: src/view/screens/AppPasswords.tsx:268 +#: src/view/screens/ProfileList.tsx:613 +msgid "Delete" +msgstr "" + +#: src/view/screens/Settings/index.tsx:792 msgid "Delete account" msgstr "Hapus akun" @@ -1087,13 +1239,15 @@ msgstr "Hapus akun" msgid "Delete Account" msgstr "Hapus Akun" -#: src/view/screens/AppPasswords.tsx:222 -#: src/view/screens/AppPasswords.tsx:242 +#: src/view/screens/AppPasswords.tsx:239 msgid "Delete app password" msgstr "Hapus kata sandi aplikasi" -#: src/view/screens/ProfileList.tsx:364 -#: src/view/screens/ProfileList.tsx:445 +#: src/view/screens/AppPasswords.tsx:263 +msgid "Delete app password?" +msgstr "" + +#: src/view/screens/ProfileList.tsx:415 msgid "Delete List" msgstr "Hapus Daftar" @@ -1105,24 +1259,28 @@ msgstr "Hapus akun saya" #~ msgid "Delete my account…" #~ msgstr "Hapus akun saya…" -#: src/view/screens/Settings/index.tsx:784 +#: src/view/screens/Settings/index.tsx:804 msgid "Delete My Account…" msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:317 -#: src/view/com/util/forms/PostDropdownBtn.tsx:326 +#: src/view/com/util/forms/PostDropdownBtn.tsx:302 +#: src/view/com/util/forms/PostDropdownBtn.tsx:304 msgid "Delete post" msgstr "Hapus postingan" -#: src/view/com/util/forms/PostDropdownBtn.tsx:321 +#: src/view/screens/ProfileList.tsx:608 +msgid "Delete this list?" +msgstr "" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:314 msgid "Delete this post?" msgstr "Hapus postingan ini?" -#: src/view/com/util/post-embeds/QuoteEmbed.tsx:70 +#: src/view/com/util/post-embeds/QuoteEmbed.tsx:64 msgid "Deleted" msgstr "Dihapus" -#: src/view/com/post-thread/PostThread.tsx:316 +#: src/view/com/post-thread/PostThread.tsx:305 msgid "Deleted post." msgstr "Postingan dihapus." @@ -1141,23 +1299,35 @@ msgstr "Deskripsi" #~ msgid "Developer Tools" #~ msgstr "Alat Pengembang" -#: src/view/com/composer/Composer.tsx:218 +#: src/view/com/composer/Composer.tsx:217 msgid "Did you want to say anything?" msgstr "Apakah Anda ingin mengatakan sesuatu?" -#: src/view/screens/Settings/index.tsx:504 +#: src/view/screens/Settings/index.tsx:519 msgid "Dim" msgstr "" -#: src/view/com/composer/Composer.tsx:151 +#: src/lib/moderation/useLabelBehaviorDescription.ts:32 +#: src/lib/moderation/useLabelBehaviorDescription.ts:42 +#: src/lib/moderation/useLabelBehaviorDescription.ts:68 +#: src/screens/Moderation/index.tsx:343 +msgid "Disabled" +msgstr "" + +#: src/view/com/composer/Composer.tsx:510 msgid "Discard" msgstr "Buang" #: src/view/com/composer/Composer.tsx:145 -msgid "Discard draft" -msgstr "Buang draf" +#~ msgid "Discard draft" +#~ msgstr "Buang draf" + +#: src/view/com/composer/Composer.tsx:507 +msgid "Discard draft?" +msgstr "" -#: src/view/screens/Moderation.tsx:226 +#: src/screens/Moderation/index.tsx:520 +#: src/screens/Moderation/index.tsx:524 msgid "Discourage apps from showing my account to logged-out users" msgstr "Cegah aplikasi untuk menampilkan akun saya ke pengguna yang tidak login" @@ -1182,7 +1352,19 @@ msgstr "Nama tampilan" msgid "Display Name" msgstr "Nama Tampilan" -#: src/view/com/modals/ChangeHandle.tsx:487 +#: src/view/com/modals/ChangeHandle.tsx:398 +msgid "DNS Panel" +msgstr "" + +#: src/lib/moderation/useGlobalLabelStrings.ts:39 +msgid "Does not include nudity." +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:482 +msgid "Domain Value" +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:489 msgid "Domain verified!" msgstr "Domain terverifikasi!" @@ -1203,19 +1385,19 @@ msgctxt "action" msgid "Done" msgstr "Selesai" +#: src/components/dialogs/BirthDateSettings.tsx:119 +#: src/components/dialogs/BirthDateSettings.tsx:125 #: src/view/com/auth/server-input/index.tsx:165 #: src/view/com/auth/server-input/index.tsx:166 #: src/view/com/modals/AddAppPasswords.tsx:226 #: src/view/com/modals/AltImage.tsx:139 -#: src/view/com/modals/ContentFilteringSettings.tsx:88 -#: src/view/com/modals/ContentFilteringSettings.tsx:96 #: src/view/com/modals/crop-image/CropImage.web.tsx:152 #: src/view/com/modals/InviteCodes.tsx:80 #: src/view/com/modals/InviteCodes.tsx:123 #: src/view/com/modals/ListAddRemoveUsers.tsx:142 #: src/view/screens/PreferencesFollowingFeed.tsx:311 -#: src/view/screens/Settings/ExportCarDialog.tsx:93 #: src/view/screens/Settings/ExportCarDialog.tsx:94 +#: src/view/screens/Settings/ExportCarDialog.tsx:95 msgid "Done" msgstr "Selesai" @@ -1228,8 +1410,8 @@ msgid "Double tap to sign in" msgstr "Ketuk dua kali untuk masuk" #: src/view/screens/Settings/index.tsx:755 -msgid "Download Bluesky account data (repository)" -msgstr "" +#~ msgid "Download Bluesky account data (repository)" +#~ msgstr "" #: src/view/screens/Settings/ExportCarDialog.tsx:59 #: src/view/screens/Settings/ExportCarDialog.tsx:63 @@ -1240,18 +1422,30 @@ msgstr "" msgid "Drop to add images" msgstr "" -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:111 +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:120 msgid "Due to Apple policies, adult content can only be enabled on the web after completing sign up." msgstr "" +#: src/view/com/modals/ChangeHandle.tsx:257 +msgid "e.g. alice" +msgstr "" + #: src/view/com/modals/EditProfile.tsx:185 msgid "e.g. Alice Roberts" msgstr "contoh: Alice Roberts" +#: src/view/com/modals/ChangeHandle.tsx:381 +msgid "e.g. alice.com" +msgstr "" + #: src/view/com/modals/EditProfile.tsx:203 msgid "e.g. Artist, dog-lover, and avid reader." msgstr "contoh: Seniman, penyayang anjing, dan pembaca setia." +#: src/lib/moderation/useGlobalLabelStrings.ts:43 +msgid "E.g. artistic nudes." +msgstr "" + #: src/view/com/modals/CreateOrEditList.tsx:283 msgid "e.g. Great Posters" msgstr "contoh: Pemosting Keren" @@ -1277,12 +1471,17 @@ msgctxt "action" msgid "Edit" msgstr "Ubah" +#: src/view/com/util/UserAvatar.tsx:299 +#: src/view/com/util/UserBanner.tsx:85 +msgid "Edit avatar" +msgstr "" + #: src/view/com/composer/photos/Gallery.tsx:144 #: src/view/com/modals/EditImage.tsx:207 msgid "Edit image" msgstr "Edit gambar" -#: src/view/screens/ProfileList.tsx:433 +#: src/view/screens/ProfileList.tsx:403 msgid "Edit list details" msgstr "Edit detail daftar" @@ -1290,7 +1489,7 @@ msgstr "Edit detail daftar" msgid "Edit Moderation List" msgstr "Ubah Daftar Moderasi" -#: src/Navigation.tsx:244 +#: src/Navigation.tsx:256 #: src/view/screens/Feeds.tsx:434 #: src/view/screens/SavedFeeds.tsx:84 msgid "Edit My Feeds" @@ -1300,11 +1499,13 @@ msgstr "Edit Feed Saya" msgid "Edit my profile" msgstr "Edit profil saya" -#: src/view/com/profile/ProfileHeader.tsx:418 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:172 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:161 msgid "Edit profile" msgstr "Edit profil" -#: src/view/com/profile/ProfileHeader.tsx:423 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:175 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:164 msgid "Edit Profile" msgstr "Edit Profil" @@ -1353,7 +1554,7 @@ msgstr "Email Diupdate" msgid "Email verified" msgstr "Email terverifikasi" -#: src/view/screens/Settings/index.tsx:312 +#: src/view/screens/Settings/index.tsx:327 msgid "Email:" msgstr "Email:" @@ -1361,12 +1562,16 @@ msgstr "Email:" msgid "Enable {0} only" msgstr "Aktifkan {0} saja" -#: src/view/com/modals/ContentFilteringSettings.tsx:167 +#: src/screens/Moderation/index.tsx:331 +msgid "Enable adult content" +msgstr "" + +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:94 msgid "Enable Adult Content" msgstr "Aktifkan Konten Dewasa" -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:76 -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:77 +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:78 +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:79 msgid "Enable adult content in your feeds" msgstr "" @@ -1382,7 +1587,11 @@ msgstr "Aktifkan pemutar media untuk" msgid "Enable this setting to only see replies between people you follow." msgstr "Aktifkan opsi ini untuk hanya menampilkan balasan dari akun yang Anda ikuti." -#: src/view/screens/Profile.tsx:455 +#: src/screens/Moderation/index.tsx:341 +msgid "Enabled" +msgstr "" + +#: src/screens/Profile/Sections/Feed.tsx:84 msgid "End of feed" msgstr "Akhir feed" @@ -1403,7 +1612,7 @@ msgstr "Masukkan Kode Konfirmasi" #~ msgid "Enter the address of your provider:" #~ msgstr "Masukkan alamat provider Anda:" -#: src/view/com/modals/ChangePassword.tsx:151 +#: src/view/com/modals/ChangePassword.tsx:153 msgid "Enter the code you received to change your password." msgstr "" @@ -1415,8 +1624,8 @@ msgstr "Masukkan domain yang ingin Anda gunakan" msgid "Enter the email you used to create your account. We'll send you a \"reset code\" so you can set a new password." msgstr "Masukkan email yang Anda gunakan untuk membuat akun. Kami akan mengirimkan \"kode reset\" untuk mengatur kata sandi baru." +#: src/components/dialogs/BirthDateSettings.tsx:108 #: src/view/com/auth/create/Step1.tsx:228 -#: src/view/com/modals/BirthDateSettings.tsx:74 msgid "Enter your birth date" msgstr "Masukkan tanggal lahir Anda" @@ -1456,16 +1665,28 @@ msgstr "Eror:" msgid "Everybody" msgstr "Semua orang" +#: src/lib/moderation/useReportOptions.ts:66 +msgid "Excessive mentions or replies" +msgstr "" + +#: src/view/com/modals/DeleteAccount.tsx:231 +msgid "Exits account deletion process" +msgstr "" + #: src/view/com/modals/ChangeHandle.tsx:150 msgid "Exits handle change process" msgstr "Keluar dari proses perubahan handle" -#: src/view/com/lightbox/Lightbox.web.tsx:120 +#: src/view/com/modals/crop-image/CropImage.web.tsx:135 +msgid "Exits image cropping process" +msgstr "" + +#: src/view/com/lightbox/Lightbox.web.tsx:130 msgid "Exits image view" msgstr "Keluar dari tampilan gambar" #: src/view/com/modals/ListAddRemoveUsers.tsx:88 -#: src/view/shell/desktop/Search.tsx:235 +#: src/view/shell/desktop/Search.tsx:236 msgid "Exits inputting search query" msgstr "Keluar dari memasukkan permintaan pencarian" @@ -1473,7 +1694,7 @@ msgstr "Keluar dari memasukkan permintaan pencarian" #~ msgid "Exits signing up for waitlist with {email}" #~ msgstr "Keluar dari pendaftaran untuk daftar tunggu dengan {email}" -#: src/view/com/lightbox/Lightbox.web.tsx:163 +#: src/view/com/lightbox/Lightbox.web.tsx:183 msgid "Expand alt text" msgstr "Tampilkan teks alt" @@ -1482,12 +1703,20 @@ msgstr "Tampilkan teks alt" msgid "Expand or collapse the full post you are replying to" msgstr "Bentangkan atau ciutkan postingan lengkap yang Anda balas" -#: src/view/screens/Settings/index.tsx:753 +#: src/lib/moderation/useGlobalLabelStrings.ts:47 +msgid "Explicit or potentially disturbing media." +msgstr "" + +#: src/lib/moderation/useGlobalLabelStrings.ts:35 +msgid "Explicit sexual images." +msgstr "" + +#: src/view/screens/Settings/index.tsx:773 msgid "Export my data" msgstr "" #: src/view/screens/Settings/ExportCarDialog.tsx:44 -#: src/view/screens/Settings/index.tsx:764 +#: src/view/screens/Settings/index.tsx:784 msgid "Export My Data" msgstr "" @@ -1500,13 +1729,13 @@ msgstr "Media Eksternal" msgid "External media may allow websites to collect information about you and your device. No information is sent or requested until you press the \"play\" button." msgstr "Media eksternal memungkinkan situs web untuk mengumpulkan informasi tentang Anda dan perangkat Anda. Tidak ada informasi yang dikirim atau diminta hingga Anda menekan tombol \"play\"." -#: src/Navigation.tsx:263 +#: src/Navigation.tsx:275 #: src/view/screens/PreferencesExternalEmbeds.tsx:52 -#: src/view/screens/Settings/index.tsx:657 +#: src/view/screens/Settings/index.tsx:673 msgid "External Media Preferences" msgstr "Preferensi Media Eksternal" -#: src/view/screens/Settings/index.tsx:648 +#: src/view/screens/Settings/index.tsx:664 msgid "External media settings" msgstr "Pengaturan media eksternal" @@ -1519,7 +1748,7 @@ msgstr "Gagal membuat kata sandi aplikasi." msgid "Failed to create the list. Check your internet connection and try again." msgstr "Gagal membuat daftar. Periksa koneksi internet Anda dan coba lagi." -#: src/view/com/util/forms/PostDropdownBtn.tsx:128 +#: src/view/com/util/forms/PostDropdownBtn.tsx:125 msgid "Failed to delete post, please try again" msgstr "Gagal menghapus postingan, silakan coba lagi" @@ -1528,11 +1757,15 @@ msgstr "Gagal menghapus postingan, silakan coba lagi" msgid "Failed to load recommended feeds" msgstr "Gagal memuat rekomendasi feed" -#: src/Navigation.tsx:194 +#: src/view/com/lightbox/Lightbox.tsx:83 +msgid "Failed to save image: {0}" +msgstr "" + +#: src/Navigation.tsx:196 msgid "Feed" msgstr "Feed" -#: src/view/com/feeds/FeedSourceCard.tsx:231 +#: src/view/com/feeds/FeedSourceCard.tsx:218 msgid "Feed by {0}" msgstr "Feed oleh {0}" @@ -1545,18 +1778,18 @@ msgstr "Feed offline" #~ msgstr "Preferensi Feed" #: src/view/shell/desktop/RightNav.tsx:61 -#: src/view/shell/Drawer.tsx:311 +#: src/view/shell/Drawer.tsx:314 msgid "Feedback" msgstr "Masukan" -#: src/Navigation.tsx:452 +#: src/Navigation.tsx:464 #: src/view/screens/Feeds.tsx:419 #: src/view/screens/Feeds.tsx:524 -#: src/view/screens/Profile.tsx:184 -#: src/view/shell/bottom-bar/BottomBar.tsx:181 -#: src/view/shell/desktop/LeftNav.tsx:342 -#: src/view/shell/Drawer.tsx:476 -#: src/view/shell/Drawer.tsx:477 +#: src/view/screens/Profile.tsx:192 +#: src/view/shell/bottom-bar/BottomBar.tsx:183 +#: src/view/shell/desktop/LeftNav.tsx:346 +#: src/view/shell/Drawer.tsx:479 +#: src/view/shell/Drawer.tsx:480 msgid "Feeds" msgstr "Feed" @@ -1580,6 +1813,14 @@ msgstr "Feed adalah algoritma khusus yang dibuat oleh pengguna dengan sedikit ke msgid "Feeds can be topical as well!" msgstr "" +#: src/view/com/modals/ChangeHandle.tsx:482 +msgid "File Contents" +msgstr "" + +#: src/lib/moderation/useLabelBehaviorDescription.ts:66 +msgid "Filter from feeds" +msgstr "" + #: src/screens/Onboarding/StepFinished.tsx:151 msgid "Finalizing" msgstr "" @@ -1590,15 +1831,15 @@ msgstr "" msgid "Find accounts to follow" msgstr "Temukan akun untuk diikuti" -#: src/view/screens/Search/Search.tsx:440 +#: src/view/screens/Search/Search.tsx:441 msgid "Find users on Bluesky" msgstr "Temukan pengguna di Bluesky" -#: src/view/screens/Search/Search.tsx:438 +#: src/view/screens/Search/Search.tsx:439 msgid "Find users with the search tool on the right" msgstr "Temukan pengguna dengan alat pencarian di sebelah kanan" -#: src/view/com/auth/onboarding/RecommendedFollowsItem.tsx:150 +#: src/view/com/auth/onboarding/RecommendedFollowsItem.tsx:155 msgid "Finding similar accounts..." msgstr "Mencari akun serupa..." @@ -1632,22 +1873,29 @@ msgid "Flip vertically" msgstr "Balik secara vertikal" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:181 -#: src/view/com/post-thread/PostThreadFollowBtn.tsx:136 -#: src/view/com/profile/ProfileHeader.tsx:513 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:229 +#: src/view/com/auth/onboarding/RecommendedFollowsItem.tsx:141 +#: src/view/com/post-thread/PostThreadFollowBtn.tsx:139 +#: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:246 msgid "Follow" msgstr "Ikuti" -#: src/view/com/profile/FollowButton.tsx:64 +#: src/view/com/profile/FollowButton.tsx:69 msgctxt "action" msgid "Follow" msgstr "Ikuti" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:58 -#: src/view/com/post-thread/PostThreadFollowBtn.tsx:122 -#: src/view/com/profile/ProfileHeader.tsx:504 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:214 +#: src/view/com/post-thread/PostThreadFollowBtn.tsx:125 msgid "Follow {0}" msgstr "Ikuti {0}" +#: src/view/com/profile/ProfileMenu.tsx:242 +#: src/view/com/profile/ProfileMenu.tsx:253 +msgid "Follow Account" +msgstr "" + #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:179 msgid "Follow All" msgstr "" @@ -1664,7 +1912,7 @@ msgstr "" msgid "Follow some users to get started. We can recommend you more users based on who you find interesting." msgstr "Ikuti beberapa pengguna untuk memulai. Kami dapat merekomendasikan lebih banyak pengguna yang mungkin menarik Anda." -#: src/view/com/profile/ProfileCard.tsx:194 +#: src/view/com/profile/ProfileCard.tsx:216 msgid "Followed by {0}" msgstr "Diikuti oleh {0}" @@ -1676,10 +1924,11 @@ msgstr "Pengguna yang diikuti" msgid "Followed users only" msgstr "Hanya pengguna yang diikuti" -#: src/view/com/notifications/FeedItem.tsx:166 +#: src/view/com/notifications/FeedItem.tsx:170 msgid "followed you" msgstr "mengikuti Anda" +#: src/view/com/profile/ProfileFollowers.tsx:109 #: src/view/screens/ProfileFollowers.tsx:25 msgid "Followers" msgstr "Pengikut" @@ -1687,25 +1936,30 @@ msgstr "Pengikut" #~ msgid "following" #~ msgstr "mengikuti" -#: src/view/com/post-thread/PostThreadFollowBtn.tsx:136 -#: src/view/com/profile/ProfileHeader.tsx:495 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:227 +#: src/view/com/post-thread/PostThreadFollowBtn.tsx:139 +#: src/view/com/profile/ProfileFollows.tsx:108 #: src/view/screens/ProfileFollows.tsx:25 msgid "Following" msgstr "Mengikuti" -#: src/view/com/profile/ProfileHeader.tsx:149 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:89 msgid "Following {0}" msgstr "Mengikuti {0}" -#: src/Navigation.tsx:250 +#: src/view/screens/Settings/index.tsx:549 +msgid "Following feed preferences" +msgstr "" + +#: src/Navigation.tsx:262 #: src/view/com/home/HomeHeaderLayout.web.tsx:50 #: src/view/com/home/HomeHeaderLayoutMobile.tsx:84 #: src/view/screens/PreferencesFollowingFeed.tsx:104 -#: src/view/screens/Settings/index.tsx:543 +#: src/view/screens/Settings/index.tsx:558 msgid "Following Feed Preferences" msgstr "" -#: src/view/com/profile/ProfileHeader.tsx:546 +#: src/screens/Profile/Header/Handle.tsx:24 msgid "Follows you" msgstr "Mengikuti Anda" @@ -1738,12 +1992,16 @@ msgstr "Lupa kata sandi" msgid "Forgot Password" msgstr "Lupa Kata Sandi" +#: src/lib/moderation/useReportOptions.ts:52 +msgid "Frequently Posts Unwanted Content" +msgstr "" + #: src/screens/Hashtag.tsx:108 #: src/screens/Hashtag.tsx:148 msgid "From @{sanitizedAuthor}" msgstr "" -#: src/view/com/posts/FeedItem.tsx:189 +#: src/view/com/posts/FeedItem.tsx:179 msgctxt "from-feed" msgid "From <0/>" msgstr "Dari <0/>" @@ -1757,27 +2015,46 @@ msgstr "Galeri" msgid "Get Started" msgstr "Memulai" +#: src/lib/moderation/useReportOptions.ts:37 +msgid "Glaring violations of law or terms of service" +msgstr "" + +#: src/components/moderation/ScreenHider.tsx:144 +#: src/components/moderation/ScreenHider.tsx:153 #: src/view/com/auth/LoggedOut.tsx:81 #: src/view/com/auth/LoggedOut.tsx:82 -#: src/view/com/util/moderation/ScreenHider.tsx:123 -#: src/view/shell/desktop/LeftNav.tsx:104 +#: src/view/screens/NotFound.tsx:55 +#: src/view/screens/ProfileFeed.tsx:111 +#: src/view/screens/ProfileList.tsx:916 +#: src/view/shell/desktop/LeftNav.tsx:108 msgid "Go back" msgstr "Kembali" -#: src/view/screens/ProfileFeed.tsx:106 -#: src/view/screens/ProfileFeed.tsx:111 -#: src/view/screens/ProfileList.tsx:902 -#: src/view/screens/ProfileList.tsx:907 +#: src/screens/Profile/ErrorState.tsx:62 +#: src/screens/Profile/ErrorState.tsx:66 +#: src/view/screens/NotFound.tsx:54 +#: src/view/screens/ProfileFeed.tsx:116 +#: src/view/screens/ProfileList.tsx:921 msgid "Go Back" msgstr "Kembali" +#: src/components/ReportDialog/SelectReportOptionView.tsx:74 +#: src/components/ReportDialog/SubmitView.tsx:104 #: src/screens/Onboarding/Layout.tsx:104 #: src/screens/Onboarding/Layout.tsx:193 msgid "Go back to previous step" msgstr "" -#: src/view/screens/Search/Search.tsx:747 -#: src/view/shell/desktop/Search.tsx:262 +#: src/view/screens/NotFound.tsx:55 +msgid "Go home" +msgstr "" + +#: src/view/screens/NotFound.tsx:54 +msgid "Go Home" +msgstr "" + +#: src/view/screens/Search/Search.tsx:748 +#: src/view/shell/desktop/Search.tsx:263 msgid "Go to @{queryMaybeHandle}" msgstr "" @@ -1785,15 +2062,23 @@ msgstr "" #: src/view/com/auth/login/ForgotPasswordForm.tsx:218 #: src/view/com/auth/login/LoginForm.tsx:288 #: src/view/com/auth/login/SetNewPasswordForm.tsx:195 -#: src/view/com/modals/ChangePassword.tsx:165 +#: src/view/com/modals/ChangePassword.tsx:167 msgid "Go to next" msgstr "Berikutnya" +#: src/lib/moderation/useGlobalLabelStrings.ts:46 +msgid "Graphic Media" +msgstr "" + #: src/view/com/modals/ChangeHandle.tsx:265 msgid "Handle" msgstr "Handle" -#: src/Navigation.tsx:270 +#: src/lib/moderation/useReportOptions.ts:32 +msgid "Harassment, trolling, or intolerance" +msgstr "" + +#: src/Navigation.tsx:282 msgid "Hashtag" msgstr "" @@ -1810,7 +2095,7 @@ msgid "Having trouble?" msgstr "" #: src/view/shell/desktop/RightNav.tsx:90 -#: src/view/shell/Drawer.tsx:321 +#: src/view/shell/Drawer.tsx:324 msgid "Help" msgstr "Bantuan" @@ -1834,40 +2119,45 @@ msgstr "" msgid "Here is your app password." msgstr "Berikut kata sandi aplikasi Anda." -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:41 -#: src/view/com/modals/ContentFilteringSettings.tsx:251 -#: src/view/com/util/moderation/ContentHider.tsx:105 -#: src/view/com/util/moderation/PostHider.tsx:108 +#: src/components/moderation/ContentHider.tsx:115 +#: src/components/moderation/GlobalModerationLabelPref.tsx:43 +#: src/components/moderation/PostHider.tsx:107 +#: src/lib/moderation/useLabelBehaviorDescription.ts:15 +#: src/lib/moderation/useLabelBehaviorDescription.ts:20 +#: src/lib/moderation/useLabelBehaviorDescription.ts:25 +#: src/lib/moderation/useLabelBehaviorDescription.ts:30 +#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:52 +#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:76 +#: src/view/com/util/forms/PostDropdownBtn.tsx:328 msgid "Hide" msgstr "Sembunyikan" -#: src/view/com/modals/ContentFilteringSettings.tsx:224 -#: src/view/com/notifications/FeedItem.tsx:326 +#: src/view/com/notifications/FeedItem.tsx:329 msgctxt "action" msgid "Hide" msgstr "Sembunyikan" #: src/view/com/util/forms/PostDropdownBtn.tsx:276 -#: src/view/com/util/forms/PostDropdownBtn.tsx:287 +#: src/view/com/util/forms/PostDropdownBtn.tsx:278 msgid "Hide post" msgstr "Sembunyikan postingan" -#: src/view/com/util/moderation/ContentHider.tsx:67 -#: src/view/com/util/moderation/PostHider.tsx:61 +#: src/components/moderation/ContentHider.tsx:67 +#: src/components/moderation/PostHider.tsx:64 msgid "Hide the content" msgstr "Sembunyikan konten" -#: src/view/com/util/forms/PostDropdownBtn.tsx:280 +#: src/view/com/util/forms/PostDropdownBtn.tsx:325 msgid "Hide this post?" msgstr "Sembunyikan postingan ini?" -#: src/view/com/notifications/FeedItem.tsx:316 +#: src/view/com/notifications/FeedItem.tsx:319 msgid "Hide user list" msgstr "Sembunyikan daftar pengguna" #: src/view/com/profile/ProfileHeader.tsx:487 -msgid "Hides posts from {0} in your feed" -msgstr "Menyembunyikan postingan dari {0} di feed Anda" +#~ msgid "Hides posts from {0} in your feed" +#~ msgstr "Menyembunyikan postingan dari {0} di feed Anda" #: src/view/com/posts/FeedErrorMessage.tsx:111 msgid "Hmm, some kind of issue occurred when contacting the feed server. Please let the feed owner know about this issue." @@ -1889,11 +2179,19 @@ msgstr "Hmm, server feed memberikan respons yang buruk. Harap beri tahu pemilik msgid "Hmm, we're having trouble finding this feed. It may have been deleted." msgstr "Hmm, kami kesulitan menemukan feed ini. Mungkin sudah dihapus." -#: src/Navigation.tsx:442 -#: src/view/shell/bottom-bar/BottomBar.tsx:137 -#: src/view/shell/desktop/LeftNav.tsx:306 -#: src/view/shell/Drawer.tsx:398 -#: src/view/shell/Drawer.tsx:399 +#: src/screens/Moderation/index.tsx:61 +msgid "Hmmmm, it seems we're having trouble loading this data. See below for more details. If this issue persists, please contact us." +msgstr "" + +#: src/screens/Profile/ErrorState.tsx:31 +msgid "Hmmmm, we couldn't load that moderation service." +msgstr "" + +#: src/Navigation.tsx:454 +#: src/view/shell/bottom-bar/BottomBar.tsx:139 +#: src/view/shell/desktop/LeftNav.tsx:310 +#: src/view/shell/Drawer.tsx:401 +#: src/view/shell/Drawer.tsx:402 msgid "Home" msgstr "Beranda" @@ -1904,8 +2202,13 @@ msgstr "Beranda" #~ msgid "Home Feed Preferences" #~ msgstr "Preferensi Feed Beranda" +#: src/view/com/modals/ChangeHandle.tsx:421 +msgid "Host:" +msgstr "" + #: src/view/com/auth/create/Step1.tsx:75 #: src/view/com/auth/login/ForgotPasswordForm.tsx:120 +#: src/view/com/modals/ChangeHandle.tsx:280 msgid "Hosting provider" msgstr "Provider hosting" @@ -1929,7 +2232,7 @@ msgstr "Saya punya kode konfirmasi" msgid "I have my own domain" msgstr "Saya punya domain sendiri" -#: src/view/com/lightbox/Lightbox.web.tsx:165 +#: src/view/com/lightbox/Lightbox.web.tsx:185 msgid "If alt text is long, toggles alt text expanded state" msgstr "Jika teks alt panjang, alihkan status teks alt yang diperluas" @@ -1937,10 +2240,26 @@ msgstr "Jika teks alt panjang, alihkan status teks alt yang diperluas" msgid "If none are selected, suitable for all ages." msgstr "Jika tidak ada yang dipilih, cocok untuk semua umur." -#: src/view/com/modals/ChangePassword.tsx:146 +#: src/view/com/auth/create/Policies.tsx:91 +msgid "If you are not yet an adult according to the laws of your country, your parent or legal guardian must read these Terms on your behalf." +msgstr "" + +#: src/view/screens/ProfileList.tsx:610 +msgid "If you delete this list, you won't be able to recover it." +msgstr "" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:316 +msgid "If you remove this post, you won't be able to recover it." +msgstr "" + +#: src/view/com/modals/ChangePassword.tsx:148 msgid "If you want to change your password, we will send you a code to verify that this is your account." msgstr "" +#: src/lib/moderation/useReportOptions.ts:36 +msgid "Illegal and Urgent" +msgstr "" + #: src/view/com/util/images/Gallery.tsx:38 msgid "Image" msgstr "Gambar" @@ -1951,8 +2270,12 @@ msgstr "Teks alt gambar" #: src/view/com/util/UserAvatar.tsx:311 #: src/view/com/util/UserBanner.tsx:118 -msgid "Image options" -msgstr "Pilihan gambar" +#~ msgid "Image options" +#~ msgstr "Pilihan gambar" + +#: src/lib/moderation/useReportOptions.ts:47 +msgid "Impersonation or false claims about identity or affiliation" +msgstr "" #: src/view/com/auth/login/SetNewPasswordForm.tsx:138 msgid "Input code sent to your email for password reset" @@ -2014,11 +2337,15 @@ msgstr "Masukkan nama pengguna atau alamat email yang Anda gunakan saat mendafta msgid "Input your password" msgstr "Masukkan kata sandi Anda" +#: src/view/com/modals/ChangeHandle.tsx:390 +msgid "Input your preferred hosting provider" +msgstr "" + #: src/view/com/auth/create/Step2.tsx:80 msgid "Input your user handle" msgstr "Masukkan handle pengguna Anda" -#: src/view/com/post-thread/PostThreadItem.tsx:226 +#: src/view/com/post-thread/PostThreadItem.tsx:221 msgid "Invalid or unsupported post record" msgstr "Catatan posting tidak valid atau tidak didukung" @@ -2059,7 +2386,7 @@ msgstr "Kode undangan: 1 tersedia" msgid "It shows posts from the people you follow as they happen." msgstr "" -#: src/view/com/auth/HomeLoggedOutCTA.tsx:99 +#: src/view/com/auth/HomeLoggedOutCTA.tsx:103 #: src/view/com/auth/SplashScreen.web.tsx:138 msgid "Jobs" msgstr "Karir" @@ -2081,20 +2408,52 @@ msgstr "Karir" msgid "Journalism" msgstr "" +#: src/components/moderation/LabelsOnMe.tsx:59 +msgid "label has been placed on this {labelTarget}" +msgstr "" + +#: src/components/moderation/ContentHider.tsx:144 +msgid "Labeled by {0}." +msgstr "" + +#: src/components/moderation/ContentHider.tsx:142 +msgid "Labeled by the author." +msgstr "" + +#: src/view/screens/Profile.tsx:186 +msgid "Labels" +msgstr "" + +#: src/screens/Profile/Sections/Labels.tsx:143 +msgid "Labels are annotations on users and content. They can be used to hide, warn, and categorize the network." +msgstr "" + +#: src/components/moderation/LabelsOnMe.tsx:61 +msgid "labels have been placed on this {labelTarget}" +msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:63 +msgid "Labels on your account" +msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:65 +msgid "Labels on your content" +msgstr "" + #: src/view/com/composer/select-language/SelectLangBtn.tsx:104 msgid "Language selection" msgstr "Pilih bahasa" -#: src/view/screens/Settings/index.tsx:594 +#: src/view/screens/Settings/index.tsx:610 msgid "Language settings" msgstr "Pengaturan bahasa" -#: src/Navigation.tsx:142 +#: src/Navigation.tsx:144 #: src/view/screens/LanguageSettings.tsx:89 msgid "Language Settings" msgstr "Pengaturan Bahasa" -#: src/view/screens/Settings/index.tsx:603 +#: src/view/screens/Settings/index.tsx:619 msgid "Languages" msgstr "Bahasa" @@ -2103,27 +2462,31 @@ msgid "Last step!" msgstr "Langkah terakhir!" #: src/view/com/util/moderation/ContentHider.tsx:103 -msgid "Learn more" -msgstr "Pelajari lebih lanjut" +#~ msgid "Learn more" +#~ msgstr "Pelajari lebih lanjut" -#: src/view/com/util/moderation/PostAlerts.tsx:47 -#: src/view/com/util/moderation/ProfileHeaderAlerts.tsx:65 -#: src/view/com/util/moderation/ScreenHider.tsx:104 +#: src/components/moderation/ScreenHider.tsx:129 msgid "Learn More" msgstr "Pelajari Lebih Lanjut" -#: src/view/com/util/moderation/ContentHider.tsx:85 -#: src/view/com/util/moderation/PostAlerts.tsx:40 -#: src/view/com/util/moderation/PostHider.tsx:78 -#: src/view/com/util/moderation/ProfileHeaderAlerts.tsx:49 -#: src/view/com/util/moderation/ScreenHider.tsx:101 +#: src/components/moderation/ContentHider.tsx:65 +#: src/components/moderation/ContentHider.tsx:128 +msgid "Learn more about the moderation applied to this content." +msgstr "" + +#: src/components/moderation/PostHider.tsx:85 +#: src/components/moderation/ScreenHider.tsx:126 msgid "Learn more about this warning" msgstr "Pelajari lebih lanjut tentang peringatan ini" -#: src/view/screens/Moderation.tsx:262 +#: src/screens/Moderation/index.tsx:551 msgid "Learn more about what is public on Bluesky." msgstr "Pelajari lebih lanjut tentang apa yang publik di Bluesky." +#: src/components/moderation/ContentHider.tsx:152 +msgid "Learn more." +msgstr "" + #: src/view/com/modals/lang-settings/ContentLanguagesSettings.tsx:82 msgid "Leave them all unchecked to see any language." msgstr "Biarkan semua tidak tercentang untuk melihat bahasa apa pun." @@ -2136,7 +2499,7 @@ msgstr "Meninggalkan Bluesky" msgid "left to go." msgstr "" -#: src/view/screens/Settings/index.tsx:278 +#: src/view/screens/Settings/index.tsx:292 msgid "Legacy storage cleared, you need to restart the app now." msgstr "Penyimpanan lama dihapus, Anda perlu memulai ulang aplikasi sekarang." @@ -2151,39 +2514,49 @@ msgstr "" #: src/view/com/util/UserAvatar.tsx:248 #: src/view/com/util/UserBanner.tsx:62 -msgid "Library" -msgstr "Pustaka" +#~ msgid "Library" +#~ msgstr "Pustaka" -#: src/view/screens/Settings/index.tsx:479 +#: src/view/screens/Settings/index.tsx:494 msgid "Light" msgstr "Terang" -#: src/view/com/util/post-ctrls/PostCtrls.tsx:182 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:185 msgid "Like" msgstr "Suka" -#: src/view/screens/ProfileFeed.tsx:591 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:257 +#: src/view/screens/ProfileFeed.tsx:572 msgid "Like this feed" msgstr "Suka feed ini" -#: src/Navigation.tsx:199 +#: src/components/LikesDialog.tsx:87 +#: src/Navigation.tsx:201 +#: src/Navigation.tsx:206 msgid "Liked by" msgstr "Disukai oleh" +#: src/screens/Profile/ProfileLabelerLikedBy.tsx:42 #: src/view/screens/PostLikedBy.tsx:27 #: src/view/screens/ProfileFeedLikedBy.tsx:27 msgid "Liked By" msgstr "" -#: src/view/com/feeds/FeedSourceCard.tsx:279 +#: src/view/com/feeds/FeedSourceCard.tsx:268 msgid "Liked by {0} {1}" msgstr "Disukai oleh {0} {1}" -#: src/view/screens/ProfileFeed.tsx:606 +#: src/components/LabelingServiceCard/index.tsx:72 +msgid "Liked by {count} {0}" +msgstr "" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:277 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:291 +#: src/view/screens/ProfileFeed.tsx:587 msgid "Liked by {likeCount} {0}" msgstr "Disukai oleh {likeCount} {0}" -#: src/view/com/notifications/FeedItem.tsx:170 +#: src/view/com/notifications/FeedItem.tsx:174 msgid "liked your custom feed" msgstr "" @@ -2195,19 +2568,19 @@ msgstr "" #~ msgid "liked your custom feed{0}" #~ msgstr "menyukai feed Anda{0}" -#: src/view/com/notifications/FeedItem.tsx:155 +#: src/view/com/notifications/FeedItem.tsx:159 msgid "liked your post" msgstr "menyukai postingan Anda" -#: src/view/screens/Profile.tsx:183 +#: src/view/screens/Profile.tsx:191 msgid "Likes" msgstr "Suka" -#: src/view/com/post-thread/PostThreadItem.tsx:183 +#: src/view/com/post-thread/PostThreadItem.tsx:182 msgid "Likes on this post" msgstr "Suka pada postingan ini" -#: src/Navigation.tsx:168 +#: src/Navigation.tsx:170 msgid "List" msgstr "Daftar" @@ -2215,15 +2588,15 @@ msgstr "Daftar" msgid "List Avatar" msgstr "Avatar Daftar" -#: src/view/screens/ProfileList.tsx:324 +#: src/view/screens/ProfileList.tsx:311 msgid "List blocked" msgstr "Daftar diblokir" -#: src/view/com/feeds/FeedSourceCard.tsx:233 +#: src/view/com/feeds/FeedSourceCard.tsx:220 msgid "List by {0}" msgstr "Daftar oleh {0}" -#: src/view/screens/ProfileList.tsx:378 +#: src/view/screens/ProfileList.tsx:355 msgid "List deleted" msgstr "Daftar dihapus" @@ -2235,39 +2608,40 @@ msgstr "Daftar dibisukan" msgid "List Name" msgstr "Nama Daftar" -#: src/view/screens/ProfileList.tsx:343 +#: src/view/screens/ProfileList.tsx:325 msgid "List unblocked" msgstr "Daftar tidak diblokir" -#: src/view/screens/ProfileList.tsx:302 +#: src/view/screens/ProfileList.tsx:297 msgid "List unmuted" msgstr "Daftar tidak dibisukan" -#: src/Navigation.tsx:112 -#: src/view/screens/Profile.tsx:185 -#: src/view/shell/desktop/LeftNav.tsx:379 -#: src/view/shell/Drawer.tsx:492 -#: src/view/shell/Drawer.tsx:493 +#: src/Navigation.tsx:114 +#: src/view/screens/Profile.tsx:187 +#: src/view/screens/Profile.tsx:193 +#: src/view/shell/desktop/LeftNav.tsx:383 +#: src/view/shell/Drawer.tsx:495 +#: src/view/shell/Drawer.tsx:496 msgid "Lists" msgstr "Daftar" #: src/view/com/post-thread/PostThread.tsx:333 #: src/view/com/post-thread/PostThread.tsx:341 -msgid "Load more posts" -msgstr "Muat postingan lainnya" +#~ msgid "Load more posts" +#~ msgstr "Muat postingan lainnya" #: src/view/screens/Notifications.tsx:159 msgid "Load new notifications" msgstr "Muat notifikasi baru" -#: src/view/com/feeds/FeedPage.tsx:115 -#: src/view/screens/Profile.tsx:440 +#: src/screens/Profile/Sections/Feed.tsx:70 +#: src/view/com/feeds/FeedPage.tsx:124 #: src/view/screens/ProfileFeed.tsx:495 -#: src/view/screens/ProfileList.tsx:681 +#: src/view/screens/ProfileList.tsx:695 msgid "Load new posts" msgstr "Muat postingan baru" -#: src/view/com/composer/text-input/mobile/Autocomplete.tsx:95 +#: src/view/com/composer/text-input/mobile/Autocomplete.tsx:99 msgid "Loading..." msgstr "Memuat..." @@ -2275,7 +2649,7 @@ msgstr "Memuat..." #~ msgid "Local dev server" #~ msgstr "Server dev lokal" -#: src/Navigation.tsx:209 +#: src/Navigation.tsx:221 msgid "Log" msgstr "Catatan" @@ -2286,11 +2660,11 @@ msgstr "Catatan" msgid "Log out" msgstr "" -#: src/view/screens/Moderation.tsx:155 +#: src/screens/Moderation/index.tsx:444 msgid "Logged-out visibility" msgstr "Visibilitas pengguna yang tidak login" -#: src/view/com/auth/login/ChooseAccountForm.tsx:133 +#: src/view/com/auth/login/ChooseAccountForm.tsx:137 msgid "Login to account that is not listed" msgstr "Masuk ke akun yang tidak ada di daftar" @@ -2313,7 +2687,7 @@ msgstr "" msgid "May only contain letters and numbers" msgstr "" -#: src/view/screens/Profile.tsx:182 +#: src/view/screens/Profile.tsx:190 msgid "Media" msgstr "Media" @@ -2326,38 +2700,46 @@ msgid "Mentioned users" msgstr "Pengguna yang disebutkan" #: src/view/com/util/ViewHeader.tsx:87 -#: src/view/screens/Search/Search.tsx:646 +#: src/view/screens/Search/Search.tsx:647 msgid "Menu" msgstr "Menu" #~ msgid "Message from server" #~ msgstr "Pesan dari server" -#: src/view/com/posts/FeedErrorMessage.tsx:197 +#: src/view/com/posts/FeedErrorMessage.tsx:192 msgid "Message from server: {0}" msgstr "Pesan dari server: {0}" -#: src/Navigation.tsx:117 -#: src/view/screens/Moderation.tsx:66 -#: src/view/screens/Settings/index.tsx:625 -#: src/view/shell/desktop/LeftNav.tsx:397 -#: src/view/shell/Drawer.tsx:511 -#: src/view/shell/Drawer.tsx:512 +#: src/lib/moderation/useReportOptions.ts:45 +msgid "Misleading Account" +msgstr "" + +#: src/Navigation.tsx:119 +#: src/screens/Moderation/index.tsx:106 +#: src/view/screens/Settings/index.tsx:641 +#: src/view/shell/desktop/LeftNav.tsx:401 +#: src/view/shell/Drawer.tsx:514 +#: src/view/shell/Drawer.tsx:515 msgid "Moderation" msgstr "Moderasi" +#: src/components/moderation/ModerationDetailsDialog.tsx:113 +msgid "Moderation details" +msgstr "" + #: src/view/com/lists/ListCard.tsx:93 #: src/view/com/modals/UserAddRemoveLists.tsx:206 msgid "Moderation list by {0}" msgstr "Daftar moderasi oleh {0}" -#: src/view/screens/ProfileList.tsx:775 +#: src/view/screens/ProfileList.tsx:789 msgid "Moderation list by <0/>" msgstr "Daftar moderasi oleh <0/>" #: src/view/com/lists/ListCard.tsx:91 #: src/view/com/modals/UserAddRemoveLists.tsx:204 -#: src/view/screens/ProfileList.tsx:773 +#: src/view/screens/ProfileList.tsx:787 msgid "Moderation list by you" msgstr "Daftar moderasi oleh Anda" @@ -2369,30 +2751,41 @@ msgstr "Daftar moderasi dibuat" msgid "Moderation list updated" msgstr "Daftar moderasi diperbarui" -#: src/view/screens/Moderation.tsx:114 +#: src/screens/Moderation/index.tsx:245 msgid "Moderation lists" msgstr "Daftar moderasi" -#: src/Navigation.tsx:122 +#: src/Navigation.tsx:124 #: src/view/screens/ModerationModlists.tsx:58 msgid "Moderation Lists" msgstr "Daftar Moderasi" -#: src/view/screens/Settings/index.tsx:619 +#: src/view/screens/Settings/index.tsx:635 msgid "Moderation settings" msgstr "Pengaturan moderasi" -#: src/view/com/modals/ModerationDetails.tsx:35 +#: src/Navigation.tsx:216 +msgid "Moderation states" +msgstr "" + +#: src/screens/Moderation/index.tsx:217 +msgid "Moderation tools" +msgstr "" + +#: src/components/moderation/ModerationDetailsDialog.tsx:49 +#: src/lib/moderation/useModerationCauseDescription.ts:40 msgid "Moderator has chosen to set a general warning on the content." msgstr "Moderator telah memilih untuk menetapkan peringatan umum pada konten." +#: src/view/com/post-thread/PostThreadItem.tsx:541 +msgid "More" +msgstr "" + #: src/view/shell/desktop/Feeds.tsx:65 msgid "More feeds" msgstr "Feed lainnya" -#: src/view/com/profile/ProfileHeader.tsx:523 -#: src/view/screens/ProfileFeed.tsx:363 -#: src/view/screens/ProfileList.tsx:617 +#: src/view/screens/ProfileList.tsx:599 msgid "More options" msgstr "Pilihan lainnya" @@ -2416,11 +2809,12 @@ msgstr "" msgid "Mute {truncatedTag}" msgstr "" -#: src/view/com/profile/ProfileHeader.tsx:327 +#: src/view/com/profile/ProfileMenu.tsx:279 +#: src/view/com/profile/ProfileMenu.tsx:286 msgid "Mute Account" msgstr "Bisukan Akun" -#: src/view/screens/ProfileList.tsx:544 +#: src/view/screens/ProfileList.tsx:518 msgid "Mute accounts" msgstr "Bisukan akun" @@ -2440,17 +2834,18 @@ msgstr "" msgid "Mute in text & tags" msgstr "" -#: src/view/screens/ProfileList.tsx:491 +#: src/view/screens/ProfileList.tsx:461 +#: src/view/screens/ProfileList.tsx:624 msgid "Mute list" msgstr "Daftar akun yang dibisukan" -#: src/view/screens/ProfileList.tsx:275 +#: src/view/screens/ProfileList.tsx:619 msgid "Mute these accounts?" msgstr "Bisukan akun ini?" #: src/view/screens/ProfileList.tsx:279 -msgid "Mute this List" -msgstr "Bisukan Daftar ini" +#~ msgid "Mute this List" +#~ msgstr "Bisukan Daftar ini" #: src/components/dialogs/MutedWords.tsx:127 msgid "Mute this word in post text and tags" @@ -2474,11 +2869,11 @@ msgstr "" msgid "Muted" msgstr "Dibisukan" -#: src/view/screens/Moderation.tsx:128 +#: src/screens/Moderation/index.tsx:257 msgid "Muted accounts" msgstr "Akun yang dibisukan" -#: src/Navigation.tsx:127 +#: src/Navigation.tsx:129 #: src/view/screens/ModerationMutedAccounts.tsx:107 msgid "Muted Accounts" msgstr "Akun yang Dibisukan" @@ -2487,15 +2882,20 @@ msgstr "Akun yang Dibisukan" msgid "Muted accounts have their posts removed from your feed and from your notifications. Mutes are completely private." msgstr "Postingan dari akun yang dibisukan akan dihilangkan dari feed dan notifikasi Anda. Pembisuan ini bersifat privat." -#: src/view/screens/Moderation.tsx:100 +#: src/lib/moderation/useModerationCauseDescription.ts:85 +msgid "Muted by \"{0}\"" +msgstr "" + +#: src/screens/Moderation/index.tsx:233 msgid "Muted words & tags" msgstr "" -#: src/view/screens/ProfileList.tsx:277 +#: src/view/screens/ProfileList.tsx:621 msgid "Muting is private. Muted accounts can interact with you, but you will not see their posts or receive notifications from them." msgstr "Pembisuan akun bersifat privat. Akun yang dibisukan tetap dapat berinteraksi dengan Anda, namun Anda tidak akan melihat postingan atau notifikasi dari mereka." -#: src/view/com/modals/BirthDateSettings.tsx:56 +#: src/components/dialogs/BirthDateSettings.tsx:35 +#: src/components/dialogs/BirthDateSettings.tsx:38 msgid "My Birthday" msgstr "Tanggal Lahir Saya" @@ -2507,13 +2907,17 @@ msgstr "Feed Saya" msgid "My Profile" msgstr "Profil Saya" -#: src/view/screens/Settings/index.tsx:582 +#: src/view/screens/Settings/index.tsx:592 +msgid "My saved feeds" +msgstr "" + +#: src/view/screens/Settings/index.tsx:598 msgid "My Saved Feeds" msgstr "Feed Tersimpan Saya" #: src/view/com/auth/server-input/index.tsx:118 -msgid "my-server.com" -msgstr "" +#~ msgid "my-server.com" +#~ msgstr "" #: src/view/com/modals/AddAppPasswords.tsx:179 #: src/view/com/modals/CreateOrEditList.tsx:290 @@ -2524,6 +2928,12 @@ msgstr "Nama" msgid "Name is required" msgstr "Nama harus diisi" +#: src/lib/moderation/useReportOptions.ts:57 +#: src/lib/moderation/useReportOptions.ts:78 +#: src/lib/moderation/useReportOptions.ts:86 +msgid "Name or Description Violates Community Standards" +msgstr "" + #: src/screens/Onboarding/index.tsx:25 msgid "Nature" msgstr "" @@ -2532,7 +2942,7 @@ msgstr "" #: src/view/com/auth/login/ForgotPasswordForm.tsx:219 #: src/view/com/auth/login/LoginForm.tsx:289 #: src/view/com/auth/login/SetNewPasswordForm.tsx:196 -#: src/view/com/modals/ChangePassword.tsx:166 +#: src/view/com/modals/ChangePassword.tsx:168 msgid "Navigates to the next screen" msgstr "Menuju ke layar berikutnya" @@ -2540,13 +2950,17 @@ msgstr "Menuju ke layar berikutnya" msgid "Navigates to your profile" msgstr "Menuju ke profil Anda" +#: src/components/ReportDialog/SelectReportOptionView.tsx:124 +msgid "Need to report a copyright violation?" +msgstr "" + #: src/view/com/modals/EmbedConsent.tsx:107 #: src/view/com/modals/EmbedConsent.tsx:123 msgid "Never load embeds from {0}" msgstr "Jangan pernah memuat embed dari {0}" #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:72 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:72 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:74 msgid "Never lose access to your followers and data." msgstr "Tidak akan lagi kehilangan akses ke data dan pengikut Anda." @@ -2555,7 +2969,11 @@ msgid "Never lose access to your followers or data." msgstr "" #: src/components/dialogs/MutedWords.tsx:293 -msgid "Nevermind" +#~ msgid "Nevermind" +#~ msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:520 +msgid "Nevermind, create a handle for me" msgstr "" #: src/view/screens/Lists.tsx:76 @@ -2572,29 +2990,30 @@ msgid "New Moderation List" msgstr "Daftar Moderasi Baru" #: src/view/com/auth/login/SetNewPasswordForm.tsx:150 +#: src/view/com/modals/ChangePassword.tsx:212 msgid "New password" msgstr "Kata sandi baru" -#: src/view/com/modals/ChangePassword.tsx:215 +#: src/view/com/modals/ChangePassword.tsx:217 msgid "New Password" msgstr "" -#: src/view/com/feeds/FeedPage.tsx:126 +#: src/view/com/feeds/FeedPage.tsx:135 msgctxt "action" msgid "New post" msgstr "Postingan baru" #: src/view/screens/Feeds.tsx:555 #: src/view/screens/Notifications.tsx:168 -#: src/view/screens/Profile.tsx:382 +#: src/view/screens/Profile.tsx:450 #: src/view/screens/ProfileFeed.tsx:433 -#: src/view/screens/ProfileList.tsx:196 -#: src/view/screens/ProfileList.tsx:224 -#: src/view/shell/desktop/LeftNav.tsx:248 +#: src/view/screens/ProfileList.tsx:199 +#: src/view/screens/ProfileList.tsx:227 +#: src/view/shell/desktop/LeftNav.tsx:252 msgid "New post" msgstr "Postingan baru" -#: src/view/shell/desktop/LeftNav.tsx:258 +#: src/view/shell/desktop/LeftNav.tsx:262 msgctxt "action" msgid "New Post" msgstr "Postingan baru" @@ -2621,8 +3040,8 @@ msgstr "" #: src/view/com/auth/login/SetNewPasswordForm.tsx:187 #: src/view/com/auth/login/SetNewPasswordForm.tsx:198 #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:79 -#: src/view/com/modals/ChangePassword.tsx:251 #: src/view/com/modals/ChangePassword.tsx:253 +#: src/view/com/modals/ChangePassword.tsx:255 msgid "Next" msgstr "Berikutnya" @@ -2631,7 +3050,7 @@ msgctxt "action" msgid "Next" msgstr "Selanjutnya" -#: src/view/com/lightbox/Lightbox.web.tsx:149 +#: src/view/com/lightbox/Lightbox.web.tsx:169 msgid "Next image" msgstr "Gambar berikutnya" @@ -2644,12 +3063,16 @@ msgstr "Gambar berikutnya" msgid "No" msgstr "Tidak" -#: src/view/screens/ProfileFeed.tsx:584 -#: src/view/screens/ProfileList.tsx:755 +#: src/view/screens/ProfileFeed.tsx:561 +#: src/view/screens/ProfileList.tsx:769 msgid "No description" msgstr "Tidak ada deskripsi" -#: src/view/com/profile/ProfileHeader.tsx:170 +#: src/view/com/modals/ChangeHandle.tsx:406 +msgid "No DNS Panel" +msgstr "" + +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:111 msgid "No longer following {0}" msgstr "Tidak lagi mengikuti {0}" @@ -2657,12 +3080,12 @@ msgstr "Tidak lagi mengikuti {0}" msgid "No notifications yet!" msgstr "Belum ada notifikasi!" -#: src/view/com/composer/text-input/mobile/Autocomplete.tsx:97 -#: src/view/com/composer/text-input/web/Autocomplete.tsx:191 +#: src/view/com/composer/text-input/mobile/Autocomplete.tsx:101 +#: src/view/com/composer/text-input/web/Autocomplete.tsx:195 msgid "No result" msgstr "Tidak ada hasil" -#: src/components/Lists.tsx:192 +#: src/components/Lists.tsx:189 msgid "No results found" msgstr "" @@ -2671,8 +3094,8 @@ msgid "No results found for \"{query}\"" msgstr "Tidak ada hasil ditemukan untuk \"{query}\"" #: src/view/com/modals/ListAddRemoveUsers.tsx:127 -#: src/view/screens/Search/Search.tsx:281 -#: src/view/screens/Search/Search.tsx:309 +#: src/view/screens/Search/Search.tsx:282 +#: src/view/screens/Search/Search.tsx:310 msgid "No results found for {query}" msgstr "Tidak ada hasil ditemukan untuk {query}" @@ -2684,12 +3107,21 @@ msgstr "Tidak terima kasih" msgid "Nobody" msgstr "Tak seorang pun" +#: src/components/LikedByList.tsx:102 +#: src/components/LikesDialog.tsx:99 +msgid "Nobody has liked this yet. Maybe you should be the first!" +msgstr "" + +#: src/lib/moderation/useGlobalLabelStrings.ts:42 +msgid "Non-sexual Nudity" +msgstr "" + #: src/view/com/modals/SelfLabel.tsx:135 msgid "Not Applicable." msgstr "Tidak Berlaku." -#: src/Navigation.tsx:107 -#: src/view/screens/Profile.tsx:106 +#: src/Navigation.tsx:109 +#: src/view/screens/Profile.tsx:97 msgid "Not Found" msgstr "Tidak ditemukan" @@ -2698,17 +3130,22 @@ msgstr "Tidak ditemukan" msgid "Not right now" msgstr "Jangan sekarang" -#: src/view/screens/Moderation.tsx:252 +#: src/view/com/profile/ProfileMenu.tsx:368 +#: src/view/com/util/forms/PostDropdownBtn.tsx:342 +msgid "Note about sharing" +msgstr "" + +#: src/screens/Moderation/index.tsx:542 msgid "Note: Bluesky is an open and public network. This setting only limits the visibility of your content on the Bluesky app and website, and other apps may not respect this setting. Your content may still be shown to logged-out users by other apps and websites." msgstr "Catatan: Bluesky merupakan jaringan terbuka dan publik. Pengaturan ini hanya akan membatasi visibilitas konten Anda pada aplikasi dan website Bluesky, dan aplikasi lain mungkin tidak mengindahkan pengaturan ini. Konten Anda mungkin tetap ditampilkan kepada pengguna yang tidak login oleh aplikasi dan website lain." -#: src/Navigation.tsx:457 +#: src/Navigation.tsx:469 #: src/view/screens/Notifications.tsx:124 #: src/view/screens/Notifications.tsx:148 -#: src/view/shell/bottom-bar/BottomBar.tsx:205 -#: src/view/shell/desktop/LeftNav.tsx:361 -#: src/view/shell/Drawer.tsx:435 -#: src/view/shell/Drawer.tsx:436 +#: src/view/shell/bottom-bar/BottomBar.tsx:207 +#: src/view/shell/desktop/LeftNav.tsx:365 +#: src/view/shell/Drawer.tsx:438 +#: src/view/shell/Drawer.tsx:439 msgid "Notifications" msgstr "Notifikasi" @@ -2716,7 +3153,15 @@ msgstr "Notifikasi" msgid "Nudity" msgstr "Ketelanjangan" -#: src/view/com/util/ErrorBoundary.tsx:35 +#: src/lib/moderation/useReportOptions.ts:71 +msgid "Nudity or pornography not labeled as such" +msgstr "" + +#: src/lib/moderation/useLabelBehaviorDescription.ts:11 +msgid "Off" +msgstr "" + +#: src/view/com/util/ErrorBoundary.tsx:49 msgid "Oh no!" msgstr "Oh tidak!" @@ -2724,6 +3169,10 @@ msgstr "Oh tidak!" msgid "Oh no! Something went wrong." msgstr "" +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:127 +msgid "OK" +msgstr "" + #: src/view/com/auth/login/PasswordUpdatedForm.tsx:41 msgid "Okay" msgstr "Baiklah" @@ -2732,11 +3181,11 @@ msgstr "Baiklah" msgid "Oldest replies first" msgstr "Balasan terlama terlebih dahulu" -#: src/view/screens/Settings/index.tsx:234 +#: src/view/screens/Settings/index.tsx:240 msgid "Onboarding reset" msgstr "Atur ulang orientasi" -#: src/view/com/composer/Composer.tsx:382 +#: src/view/com/composer/Composer.tsx:391 msgid "One or more images is missing alt text." msgstr "Satu atau lebih gambar belum ada teks alt." @@ -2744,13 +3193,13 @@ msgstr "Satu atau lebih gambar belum ada teks alt." msgid "Only {0} can reply." msgstr "Hanya {0} dapat membalas." -#: src/components/Lists.tsx:82 +#: src/components/Lists.tsx:83 msgid "Oops, something went wrong!" msgstr "" -#: src/components/Lists.tsx:188 -#: src/view/screens/AppPasswords.tsx:65 -#: src/view/screens/Profile.tsx:106 +#: src/components/Lists.tsx:157 +#: src/view/screens/AppPasswords.tsx:67 +#: src/view/screens/Profile.tsx:97 msgid "Oops!" msgstr "Uups!" @@ -2759,34 +3208,47 @@ msgid "Open" msgstr "" #: src/view/screens/Moderation.tsx:75 -msgid "Open content filtering settings" -msgstr "" +#~ msgid "Open content filtering settings" +#~ msgstr "" -#: src/view/com/composer/Composer.tsx:477 -#: src/view/com/composer/Composer.tsx:478 +#: src/view/com/composer/Composer.tsx:490 +#: src/view/com/composer/Composer.tsx:491 msgid "Open emoji picker" msgstr "Buka pemilih emoji" -#: src/view/screens/Settings/index.tsx:712 +#: src/view/screens/ProfileFeed.tsx:299 +msgid "Open feed options menu" +msgstr "" + +#: src/view/screens/Settings/index.tsx:730 msgid "Open links with in-app browser" msgstr "Buka tautan dengan browser dalam aplikasi" -#: src/view/screens/Moderation.tsx:92 -msgid "Open muted words settings" +#: src/screens/Moderation/index.tsx:229 +msgid "Open muted words and tags settings" msgstr "" +#: src/view/screens/Moderation.tsx:92 +#~ msgid "Open muted words settings" +#~ msgstr "" + #: src/view/com/home/HomeHeaderLayoutMobile.tsx:50 msgid "Open navigation" msgstr "Buka navigasi" -#: src/view/com/util/forms/PostDropdownBtn.tsx:175 +#: src/view/com/util/forms/PostDropdownBtn.tsx:183 msgid "Open post options menu" msgstr "" -#: src/view/screens/Settings/index.tsx:804 +#: src/view/screens/Settings/index.tsx:824 +#: src/view/screens/Settings/index.tsx:834 msgid "Open storybook page" msgstr "Buka halaman buku cerita" +#: src/view/screens/Settings/index.tsx:812 +msgid "Open system log" +msgstr "" + #: src/view/com/util/forms/DropdownButton.tsx:154 msgid "Opens {numItems} options" msgstr "Membuka opsi {numItems}" @@ -2795,11 +3257,11 @@ msgstr "Membuka opsi {numItems}" msgid "Opens additional details for a debug entry" msgstr "Membuka detail tambahan untuk entri debug" -#: src/view/com/notifications/FeedItem.tsx:349 +#: src/view/com/notifications/FeedItem.tsx:353 msgid "Opens an expanded list of users in this notification" msgstr "Membuka daftar pengguna yang diperluas dalam notifikasi ini" -#: src/view/com/composer/photos/OpenCameraBtn.tsx:61 +#: src/view/com/composer/photos/OpenCameraBtn.tsx:78 msgid "Opens camera on device" msgstr "Membuka kamera pada perangkat" @@ -2807,7 +3269,7 @@ msgstr "Membuka kamera pada perangkat" msgid "Opens composer" msgstr "Membuka penyusun postingan" -#: src/view/screens/Settings/index.tsx:595 +#: src/view/screens/Settings/index.tsx:611 msgid "Opens configurable language settings" msgstr "Membuka pengaturan bahasa yang dapat dikonfigurasi" @@ -2816,20 +3278,30 @@ msgid "Opens device photo gallery" msgstr "Membuka galeri foto perangkat" #: src/view/com/profile/ProfileHeader.tsx:420 -msgid "Opens editor for profile display name, avatar, background image, and description" -msgstr "Membuka editor untuk nama tampilan profil, avatar, gambar latar belakang, dan deskripsi" +#~ msgid "Opens editor for profile display name, avatar, background image, and description" +#~ msgstr "Membuka editor untuk nama tampilan profil, avatar, gambar latar belakang, dan deskripsi" -#: src/view/screens/Settings/index.tsx:649 +#: src/view/screens/Settings/index.tsx:665 msgid "Opens external embeds settings" msgstr "Membuka pengaturan penyematan eksternal" +#: src/view/com/auth/HomeLoggedOutCTA.tsx:56 +#: src/view/com/auth/SplashScreen.tsx:70 +msgid "Opens flow to create a new Bluesky account" +msgstr "" + +#: src/view/com/auth/HomeLoggedOutCTA.tsx:74 +#: src/view/com/auth/SplashScreen.tsx:83 +msgid "Opens flow to sign into your existing Bluesky account" +msgstr "" + #: src/view/com/profile/ProfileHeader.tsx:575 -msgid "Opens followers list" -msgstr "Membuka daftar pengikut" +#~ msgid "Opens followers list" +#~ msgstr "Membuka daftar pengikut" #: src/view/com/profile/ProfileHeader.tsx:594 -msgid "Opens following list" -msgstr "Membuka daftar mengikuti" +#~ msgid "Opens following list" +#~ msgstr "Membuka daftar mengikuti" #: src/view/screens/Settings.tsx:412 #~ msgid "Opens invite code list" @@ -2839,15 +3311,35 @@ msgstr "Membuka daftar mengikuti" msgid "Opens list of invite codes" msgstr "Membuka daftar kode undangan" +#: src/view/screens/Settings/index.tsx:794 +msgid "Opens modal for account deletion confirmation. Requires email code" +msgstr "" + #: src/view/screens/Settings/index.tsx:774 -msgid "Opens modal for account deletion confirmation. Requires email code." -msgstr "Membuka modal untuk konfirmasi penghapusan akun. Membutuhkan kode email." +#~ msgid "Opens modal for account deletion confirmation. Requires email code." +#~ msgstr "Membuka modal untuk konfirmasi penghapusan akun. Membutuhkan kode email." + +#: src/view/screens/Settings/index.tsx:752 +msgid "Opens modal for changing your Bluesky password" +msgstr "" + +#: src/view/screens/Settings/index.tsx:714 +msgid "Opens modal for choosing a new Bluesky handle" +msgstr "" + +#: src/view/screens/Settings/index.tsx:775 +msgid "Opens modal for downloading your Bluesky account data (repository)" +msgstr "" + +#: src/view/screens/Settings/index.tsx:966 +msgid "Opens modal for email verification" +msgstr "" #: src/view/com/modals/ChangeHandle.tsx:281 msgid "Opens modal for using custom domain" msgstr "Buka modal untuk menggunakan domain kustom" -#: src/view/screens/Settings/index.tsx:620 +#: src/view/screens/Settings/index.tsx:636 msgid "Opens moderation settings" msgstr "Buka pengaturan moderasi" @@ -2860,27 +3352,40 @@ msgstr "Membuka formulir pengaturan ulang kata sandi" msgid "Opens screen to edit Saved Feeds" msgstr "Membuka layar untuk mengedit Umpan Tersimpan" -#: src/view/screens/Settings/index.tsx:576 +#: src/view/screens/Settings/index.tsx:593 msgid "Opens screen with all saved feeds" msgstr "Buka halaman dengan semua feed tersimpan" +#: src/view/screens/Settings/index.tsx:692 +msgid "Opens the app password settings" +msgstr "" + #: src/view/screens/Settings/index.tsx:676 -msgid "Opens the app password settings page" -msgstr "Buka halaman pengaturan kata sandi aplikasi" +#~ msgid "Opens the app password settings page" +#~ msgstr "Buka halaman pengaturan kata sandi aplikasi" + +#: src/view/screens/Settings/index.tsx:550 +msgid "Opens the Following feed preferences" +msgstr "" #: src/view/screens/Settings/index.tsx:535 -msgid "Opens the home feed preferences" -msgstr "Buka preferensi feed beranda" +#~ msgid "Opens the home feed preferences" +#~ msgstr "Buka preferensi feed beranda" + +#: src/view/com/modals/LinkWarning.tsx:76 +msgid "Opens the linked website" +msgstr "" -#: src/view/screens/Settings/index.tsx:805 +#: src/view/screens/Settings/index.tsx:825 +#: src/view/screens/Settings/index.tsx:835 msgid "Opens the storybook page" msgstr "Buka halaman storybook" -#: src/view/screens/Settings/index.tsx:793 +#: src/view/screens/Settings/index.tsx:813 msgid "Opens the system log page" msgstr "Buka halaman log sistem" -#: src/view/screens/Settings/index.tsx:556 +#: src/view/screens/Settings/index.tsx:571 msgid "Opens the threads preferences" msgstr "Buka preferensi utasan" @@ -2888,6 +3393,10 @@ msgstr "Buka preferensi utasan" msgid "Option {0} of {numItems}" msgstr "Opsi {0} dari {numItems}" +#: src/components/ReportDialog/SubmitView.tsx:162 +msgid "Optionally provide additional information below:" +msgstr "" + #: src/view/com/modals/Threadgate.tsx:89 msgid "Or combine these options:" msgstr "Atau gabungkan opsi-opsi berikut:" @@ -2896,7 +3405,11 @@ msgstr "Atau gabungkan opsi-opsi berikut:" #~ msgid "Or you can try our \"Discover\" algorithm:" #~ msgstr "" -#: src/view/com/auth/login/ChooseAccountForm.tsx:138 +#: src/lib/moderation/useReportOptions.ts:25 +msgid "Other" +msgstr "" + +#: src/view/com/auth/login/ChooseAccountForm.tsx:142 msgid "Other account" msgstr "Akun lainnya" @@ -2908,7 +3421,7 @@ msgstr "Akun lainnya" msgid "Other..." msgstr "Lainnya..." -#: src/components/Lists.tsx:194 +#: src/components/Lists.tsx:190 #: src/view/screens/NotFound.tsx:45 msgid "Page not found" msgstr "Halaman tidak ditemukan" @@ -2919,12 +3432,18 @@ msgstr "" #: src/view/com/auth/create/Step1.tsx:191 #: src/view/com/auth/create/Step1.tsx:201 +#: src/view/com/auth/login/LoginForm.tsx:210 #: src/view/com/auth/login/LoginForm.tsx:226 #: src/view/com/auth/login/SetNewPasswordForm.tsx:161 +#: src/view/com/modals/DeleteAccount.tsx:195 #: src/view/com/modals/DeleteAccount.tsx:202 msgid "Password" msgstr "Kata sandi" +#: src/view/com/modals/ChangePassword.tsx:142 +msgid "Password Changed" +msgstr "" + #: src/view/com/auth/login/Login.tsx:157 msgid "Password updated" msgstr "Kata sandi diganti" @@ -2933,11 +3452,11 @@ msgstr "Kata sandi diganti" msgid "Password updated!" msgstr "Kata sandi diganti!" -#: src/Navigation.tsx:162 +#: src/Navigation.tsx:164 msgid "People followed by @{0}" msgstr "Orang yang diikuti oleh @{0}" -#: src/Navigation.tsx:155 +#: src/Navigation.tsx:157 msgid "People following @{0}" msgstr "Orang yang mengikuti @{0}" @@ -2961,11 +3480,15 @@ msgstr "" msgid "Pictures meant for adults." msgstr "Gambar yang ditujukan untuk orang dewasa." -#: src/view/screens/ProfileFeed.tsx:354 -#: src/view/screens/ProfileList.tsx:581 +#: src/view/screens/ProfileFeed.tsx:291 +#: src/view/screens/ProfileList.tsx:563 msgid "Pin to home" msgstr "Sematkan ke beranda" +#: src/view/screens/ProfileFeed.tsx:294 +msgid "Pin to Home" +msgstr "" + #: src/view/screens/SavedFeeds.tsx:88 msgid "Pinned Feeds" msgstr "Feed Tersemat" @@ -3031,10 +3554,14 @@ msgstr "Masukkan email Anda." msgid "Please enter your password as well:" msgstr "Masukkan juga kata sandi Anda:" +#: src/components/moderation/LabelsOnMeDialog.tsx:222 +msgid "Please explain why you think this label was incorrectly applied by {0}" +msgstr "" + #: src/view/com/modals/AppealLabel.tsx:72 #: src/view/com/modals/AppealLabel.tsx:75 -msgid "Please tell us why you think this content warning was incorrectly applied!" -msgstr "Mohon beri tahu kami mengapa menurut Anda peringatan konten ini salah diterapkan!" +#~ msgid "Please tell us why you think this content warning was incorrectly applied!" +#~ msgstr "Mohon beri tahu kami mengapa menurut Anda peringatan konten ini salah diterapkan!" #~ msgid "Please tell us why you think this decision was incorrect." #~ msgstr "Mohon beritahu kami mengapa menurut Anda keputusan ini salah." @@ -3043,7 +3570,7 @@ msgstr "Mohon beri tahu kami mengapa menurut Anda peringatan konten ini salah di msgid "Please Verify Your Email" msgstr "Mohon Verifikasi Email Anda" -#: src/view/com/composer/Composer.tsx:222 +#: src/view/com/composer/Composer.tsx:221 msgid "Please wait for your link card to finish loading" msgstr "Harap tunggu hingga kartu tautan Anda selesai dimuat" @@ -3055,13 +3582,17 @@ msgstr "" msgid "Porn" msgstr "Pornografi" -#: src/view/com/composer/Composer.tsx:357 -#: src/view/com/composer/Composer.tsx:365 +#: src/lib/moderation/useGlobalLabelStrings.ts:34 +msgid "Pornography" +msgstr "" + +#: src/view/com/composer/Composer.tsx:366 +#: src/view/com/composer/Composer.tsx:374 msgctxt "action" msgid "Post" msgstr "Posting" -#: src/view/com/post-thread/PostThread.tsx:303 +#: src/view/com/post-thread/PostThread.tsx:292 msgctxt "description" msgid "Post" msgstr "Posting" @@ -3073,20 +3604,30 @@ msgstr "Posting" msgid "Post by {0}" msgstr "Postingan oleh {0}" -#: src/Navigation.tsx:174 -#: src/Navigation.tsx:181 -#: src/Navigation.tsx:188 +#: src/Navigation.tsx:176 +#: src/Navigation.tsx:183 +#: src/Navigation.tsx:190 msgid "Post by @{0}" msgstr "Postingan oleh @{0}" -#: src/view/com/util/forms/PostDropdownBtn.tsx:108 +#: src/view/com/util/forms/PostDropdownBtn.tsx:105 msgid "Post deleted" msgstr "Postingan dihapus" -#: src/view/com/post-thread/PostThread.tsx:462 +#: src/view/com/post-thread/PostThread.tsx:157 msgid "Post hidden" msgstr "Postingan disembunyikan" +#: src/components/moderation/ModerationDetailsDialog.tsx:98 +#: src/lib/moderation/useModerationCauseDescription.ts:99 +msgid "Post Hidden by Muted Word" +msgstr "" + +#: src/components/moderation/ModerationDetailsDialog.tsx:101 +#: src/lib/moderation/useModerationCauseDescription.ts:108 +msgid "Post Hidden by You" +msgstr "" + #: src/view/com/composer/select-language/SelectLangBtn.tsx:87 msgid "Post language" msgstr "Bahasa postingan" @@ -3095,7 +3636,8 @@ msgstr "Bahasa postingan" msgid "Post Languages" msgstr "Bahasa Postingan" -#: src/view/com/post-thread/PostThread.tsx:514 +#: src/view/com/post-thread/PostThread.tsx:152 +#: src/view/com/post-thread/PostThread.tsx:164 msgid "Post not found" msgstr "Postingan tidak ditemukan" @@ -3103,7 +3645,7 @@ msgstr "Postingan tidak ditemukan" msgid "posts" msgstr "" -#: src/view/screens/Profile.tsx:180 +#: src/view/screens/Profile.tsx:188 msgid "Posts" msgstr "Postingan" @@ -3119,7 +3661,11 @@ msgstr "Postingan disembunyikan" msgid "Potentially Misleading Link" msgstr "Tautan yang Mungkin Menyesatkan" -#: src/view/com/lightbox/Lightbox.web.tsx:135 +#: src/components/Lists.tsx:88 +msgid "Press to retry" +msgstr "" + +#: src/view/com/lightbox/Lightbox.web.tsx:150 msgid "Previous image" msgstr "Gambar sebelumnya" @@ -3131,15 +3677,16 @@ msgstr "Bahasa Utama" msgid "Prioritize Your Follows" msgstr "Prioritaskan Pengikut Anda" -#: src/view/screens/Settings/index.tsx:632 +#: src/view/screens/Settings/index.tsx:648 #: src/view/shell/desktop/RightNav.tsx:72 msgid "Privacy" msgstr "Privasi" -#: src/Navigation.tsx:219 +#: src/Navigation.tsx:231 +#: src/view/com/auth/create/Policies.tsx:69 #: src/view/screens/PrivacyPolicy.tsx:29 -#: src/view/screens/Settings/index.tsx:891 -#: src/view/shell/Drawer.tsx:262 +#: src/view/screens/Settings/index.tsx:921 +#: src/view/shell/Drawer.tsx:265 msgid "Privacy Policy" msgstr "Kebijakan Privasi" @@ -3147,11 +3694,16 @@ msgstr "Kebijakan Privasi" msgid "Processing..." msgstr "Memproses..." -#: src/view/shell/bottom-bar/BottomBar.tsx:247 -#: src/view/shell/desktop/LeftNav.tsx:415 +#: src/view/screens/DebugMod.tsx:888 +#: src/view/screens/Profile.tsx:340 +msgid "profile" +msgstr "" + +#: src/view/shell/bottom-bar/BottomBar.tsx:251 +#: src/view/shell/desktop/LeftNav.tsx:419 #: src/view/shell/Drawer.tsx:70 -#: src/view/shell/Drawer.tsx:546 -#: src/view/shell/Drawer.tsx:547 +#: src/view/shell/Drawer.tsx:549 +#: src/view/shell/Drawer.tsx:550 msgid "Profile" msgstr "Profil" @@ -3159,7 +3711,7 @@ msgstr "Profil" msgid "Profile updated" msgstr "Profil diperbarui" -#: src/view/screens/Settings/index.tsx:949 +#: src/view/screens/Settings/index.tsx:979 msgid "Protect your account by verifying your email." msgstr "Amankan akun Anda dengan memverifikasi email Anda." @@ -3175,11 +3727,11 @@ msgstr "Daftar publik yang dapat dibagikan oleh pengguna untuk dibisukan atau di msgid "Public, shareable lists which can drive feeds." msgstr "Publik, daftar yang dapat dibagikan dan dapat berimbas ke feed." -#: src/view/com/composer/Composer.tsx:342 +#: src/view/com/composer/Composer.tsx:351 msgid "Publish post" msgstr "Publikasikan postingan" -#: src/view/com/composer/Composer.tsx:342 +#: src/view/com/composer/Composer.tsx:351 msgid "Publish reply" msgstr "Publikasikan balasan" @@ -3208,6 +3760,10 @@ msgstr "Acak (alias \"Rolet Poster\")" msgid "Ratios" msgstr "Rasio" +#: src/view/screens/Search/Search.tsx:776 +msgid "Recent Searches" +msgstr "" + #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:116 msgid "Recommended Feeds" msgstr "Feed Direkomendasikan" @@ -3216,36 +3772,50 @@ msgstr "Feed Direkomendasikan" msgid "Recommended Users" msgstr "Pengguna Direkomendasikan" -#: src/components/dialogs/MutedWords.tsx:298 -#: src/view/com/modals/ListAddRemoveUsers.tsx:264 +#: src/components/dialogs/MutedWords.tsx:287 +#: src/view/com/feeds/FeedSourceCard.tsx:283 +#: src/view/com/modals/ListAddRemoveUsers.tsx:268 #: src/view/com/modals/SelfLabel.tsx:83 #: src/view/com/modals/UserAddRemoveLists.tsx:219 -#: src/view/com/util/UserAvatar.tsx:285 -#: src/view/com/util/UserBanner.tsx:91 +#: src/view/com/posts/FeedErrorMessage.tsx:204 msgid "Remove" msgstr "Hapus" #: src/view/com/feeds/FeedSourceCard.tsx:108 -msgid "Remove {0} from my feeds?" -msgstr "Hapus {0} dari daftar feed saya?" +#~ msgid "Remove {0} from my feeds?" +#~ msgstr "Hapus {0} dari daftar feed saya?" #: src/view/com/util/AccountDropdownBtn.tsx:22 msgid "Remove account" msgstr "Hapus akun" -#: src/view/com/posts/FeedErrorMessage.tsx:131 -#: src/view/com/posts/FeedErrorMessage.tsx:166 +#: src/view/com/util/UserAvatar.tsx:358 +msgid "Remove Avatar" +msgstr "" + +#: src/view/com/util/UserBanner.tsx:148 +msgid "Remove Banner" +msgstr "" + +#: src/view/com/posts/FeedErrorMessage.tsx:160 msgid "Remove feed" msgstr "Hapus feed" -#: src/view/com/feeds/FeedSourceCard.tsx:107 -#: src/view/com/feeds/FeedSourceCard.tsx:169 -#: src/view/com/feeds/FeedSourceCard.tsx:174 -#: src/view/com/feeds/FeedSourceCard.tsx:245 -#: src/view/screens/ProfileFeed.tsx:273 +#: src/view/com/posts/FeedErrorMessage.tsx:201 +msgid "Remove feed?" +msgstr "" + +#: src/view/com/feeds/FeedSourceCard.tsx:173 +#: src/view/com/feeds/FeedSourceCard.tsx:233 +#: src/view/screens/ProfileFeed.tsx:334 +#: src/view/screens/ProfileFeed.tsx:340 msgid "Remove from my feeds" msgstr "Hapus dari feed saya" +#: src/view/com/feeds/FeedSourceCard.tsx:278 +msgid "Remove from my feeds?" +msgstr "" + #: src/view/com/composer/photos/Gallery.tsx:167 msgid "Remove image" msgstr "Hapus gambar" @@ -3254,7 +3824,7 @@ msgstr "Hapus gambar" msgid "Remove image preview" msgstr "Hapus pratinjau gambar" -#: src/components/dialogs/MutedWords.tsx:343 +#: src/components/dialogs/MutedWords.tsx:330 msgid "Remove mute word from your list" msgstr "" @@ -3263,28 +3833,35 @@ msgid "Remove repost" msgstr "Hapus postingan ulang" #: src/view/com/feeds/FeedSourceCard.tsx:175 -msgid "Remove this feed from my feeds?" -msgstr "Hapus feed ini dari feed saya?" +#~ msgid "Remove this feed from my feeds?" +#~ msgstr "Hapus feed ini dari feed saya?" + +#: src/view/com/posts/FeedErrorMessage.tsx:202 +msgid "Remove this feed from your saved feeds" +msgstr "" #: src/view/com/posts/FeedErrorMessage.tsx:132 -msgid "Remove this feed from your saved feeds?" -msgstr "Hapus feed ini dari feed tersimpan Anda?" +#~ msgid "Remove this feed from your saved feeds?" +#~ msgstr "Hapus feed ini dari feed tersimpan Anda?" #: src/view/com/modals/ListAddRemoveUsers.tsx:199 #: src/view/com/modals/UserAddRemoveLists.tsx:152 msgid "Removed from list" msgstr "Dihapus dari daftar" -#: src/view/com/feeds/FeedSourceCard.tsx:113 -#: src/view/com/feeds/FeedSourceCard.tsx:180 +#: src/view/com/feeds/FeedSourceCard.tsx:121 msgid "Removed from my feeds" msgstr "Dihapus dari feed saya" +#: src/view/screens/ProfileFeed.tsx:208 +msgid "Removed from your feeds" +msgstr "" + #: src/view/com/composer/ExternalEmbed.tsx:71 msgid "Removes default thumbnail from {0}" msgstr "Menghapus gambar pra tinjau bawaan dari {0}" -#: src/view/screens/Profile.tsx:181 +#: src/view/screens/Profile.tsx:189 msgid "Replies" msgstr "Balasan" @@ -3292,7 +3869,7 @@ msgstr "Balasan" msgid "Replies to this thread are disabled" msgstr "Balasan ke utas ini dinonaktifkan" -#: src/view/com/composer/Composer.tsx:355 +#: src/view/com/composer/Composer.tsx:364 msgctxt "action" msgid "Reply" msgstr "Balas" @@ -3301,34 +3878,55 @@ msgstr "Balas" msgid "Reply Filters" msgstr "Penyaring Balasan" -#: src/view/com/post/Post.tsx:167 -#: src/view/com/posts/FeedItem.tsx:287 +#: src/view/com/post/Post.tsx:166 +#: src/view/com/posts/FeedItem.tsx:280 msgctxt "description" msgid "Reply to <0/>" msgstr "Balas ke <0/>" #: src/view/com/modals/report/Modal.tsx:166 -msgid "Report {collectionName}" -msgstr "Laporkan {collectionName}" +#~ msgid "Report {collectionName}" +#~ msgstr "Laporkan {collectionName}" -#: src/view/com/profile/ProfileHeader.tsx:361 +#: src/view/com/profile/ProfileMenu.tsx:319 +#: src/view/com/profile/ProfileMenu.tsx:322 msgid "Report Account" msgstr "Laporkan Akun" -#: src/view/screens/ProfileFeed.tsx:293 +#: src/view/screens/ProfileFeed.tsx:351 +#: src/view/screens/ProfileFeed.tsx:353 msgid "Report feed" msgstr "Laporkan feed" -#: src/view/screens/ProfileList.tsx:459 +#: src/view/screens/ProfileList.tsx:429 msgid "Report List" msgstr "Laporkan Daftar" -#: src/view/com/modals/report/SendReportButton.tsx:37 -#: src/view/com/util/forms/PostDropdownBtn.tsx:301 -#: src/view/com/util/forms/PostDropdownBtn.tsx:309 +#: src/view/com/util/forms/PostDropdownBtn.tsx:292 +#: src/view/com/util/forms/PostDropdownBtn.tsx:294 msgid "Report post" msgstr "Laporkan postingan" +#: src/components/ReportDialog/SelectReportOptionView.tsx:43 +msgid "Report this content" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:56 +msgid "Report this feed" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:53 +msgid "Report this list" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:50 +msgid "Report this post" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:47 +msgid "Report this user" +msgstr "" + #: src/view/com/modals/Repost.tsx:43 #: src/view/com/modals/Repost.tsx:48 #: src/view/com/modals/Repost.tsx:53 @@ -3354,7 +3952,7 @@ msgstr "Posting ulang atau kutip postingan" msgid "Reposted By" msgstr "" -#: src/view/com/posts/FeedItem.tsx:207 +#: src/view/com/posts/FeedItem.tsx:197 msgid "Reposted by {0}" msgstr "" @@ -3362,15 +3960,15 @@ msgstr "" #~ msgid "Reposted by {0})" #~ msgstr "Diposting ulang oleh {0})" -#: src/view/com/posts/FeedItem.tsx:224 +#: src/view/com/posts/FeedItem.tsx:214 msgid "Reposted by <0/>" msgstr "Diposting ulang oleh <0/>" -#: src/view/com/notifications/FeedItem.tsx:162 +#: src/view/com/notifications/FeedItem.tsx:166 msgid "reposted your post" msgstr "posting ulang posting Anda" -#: src/view/com/post-thread/PostThreadItem.tsx:188 +#: src/view/com/post-thread/PostThreadItem.tsx:187 msgid "Reposts of this post" msgstr "Posting ulang postingan ini" @@ -3383,12 +3981,12 @@ msgstr "Ajukan Perubahan" #~ msgid "Request code" #~ msgstr "" -#: src/view/com/modals/ChangePassword.tsx:239 #: src/view/com/modals/ChangePassword.tsx:241 +#: src/view/com/modals/ChangePassword.tsx:243 msgid "Request Code" msgstr "" -#: src/view/screens/Settings/index.tsx:456 +#: src/view/screens/Settings/index.tsx:471 msgid "Require alt text before posting" msgstr "Memerlukan teks alt sebelum memposting" @@ -3398,18 +3996,20 @@ msgstr "Diwajibkan untuk provider ini" #: src/view/com/auth/login/SetNewPasswordForm.tsx:124 #: src/view/com/auth/login/SetNewPasswordForm.tsx:136 +#: src/view/com/modals/ChangePassword.tsx:185 msgid "Reset code" msgstr "Kode reset" -#: src/view/com/modals/ChangePassword.tsx:190 +#: src/view/com/modals/ChangePassword.tsx:192 msgid "Reset Code" msgstr "" #: src/view/screens/Settings/index.tsx:824 -msgid "Reset onboarding" -msgstr "Atur ulang onboarding" +#~ msgid "Reset onboarding" +#~ msgstr "Atur ulang onboarding" -#: src/view/screens/Settings/index.tsx:827 +#: src/view/screens/Settings/index.tsx:854 +#: src/view/screens/Settings/index.tsx:857 msgid "Reset onboarding state" msgstr "Reset status onboarding" @@ -3418,18 +4018,19 @@ msgid "Reset password" msgstr "Reset kata sandi" #: src/view/screens/Settings/index.tsx:814 -msgid "Reset preferences" -msgstr "Atur ulang preferensi" +#~ msgid "Reset preferences" +#~ msgstr "Atur ulang preferensi" -#: src/view/screens/Settings/index.tsx:817 +#: src/view/screens/Settings/index.tsx:844 +#: src/view/screens/Settings/index.tsx:847 msgid "Reset preferences state" msgstr "Atur ulang status preferensi" -#: src/view/screens/Settings/index.tsx:825 +#: src/view/screens/Settings/index.tsx:855 msgid "Resets the onboarding state" msgstr "Reset status onboarding" -#: src/view/screens/Settings/index.tsx:815 +#: src/view/screens/Settings/index.tsx:845 msgid "Resets the preferences state" msgstr "Reset status preferensi" @@ -3442,6 +4043,7 @@ msgstr "Mencoba masuk kembali" msgid "Retries the last action, which errored out" msgstr "Coba kembali tindakan terakhir, yang gagal" +#: src/components/Lists.tsx:98 #: src/screens/Onboarding/StepInterests/index.tsx:221 #: src/screens/Onboarding/StepInterests/index.tsx:224 #: src/view/com/auth/create/CreateAccount.tsx:181 @@ -3457,10 +4059,19 @@ msgstr "Ulangi" #~ msgid "Retry." #~ msgstr "" -#: src/view/screens/ProfileList.tsx:903 +#: src/view/screens/ProfileList.tsx:917 msgid "Return to previous page" msgstr "Kembali ke halaman sebelumnya" +#: src/view/screens/NotFound.tsx:59 +msgid "Returns to home page" +msgstr "" + +#: src/view/screens/NotFound.tsx:58 +#: src/view/screens/ProfileFeed.tsx:112 +msgid "Returns to previous page" +msgstr "" + #: src/view/shell/desktop/RightNav.tsx:55 #~ msgid "SANDBOX. Posts and accounts are not permanent." #~ msgstr "SANDBOX. Postingan dan akun tidak bersifat permanen." @@ -3471,12 +4082,10 @@ msgctxt "action" msgid "Save" msgstr "Simpan" -#: src/view/com/modals/BirthDateSettings.tsx:94 -#: src/view/com/modals/BirthDateSettings.tsx:97 +#: src/components/dialogs/BirthDateSettings.tsx:125 #: src/view/com/modals/ChangeHandle.tsx:173 #: src/view/com/modals/CreateOrEditList.tsx:337 #: src/view/com/modals/EditProfile.tsx:224 -#: src/view/screens/ProfileFeed.tsx:346 msgid "Save" msgstr "Simpan" @@ -3484,6 +4093,10 @@ msgstr "Simpan" msgid "Save alt text" msgstr "Simpan teks alt" +#: src/components/dialogs/BirthDateSettings.tsx:119 +msgid "Save birthday" +msgstr "" + #: src/view/com/modals/EditProfile.tsx:232 msgid "Save Changes" msgstr "Simpan Perubahan" @@ -3496,10 +4109,23 @@ msgstr "Simpan perubahan handle" msgid "Save image crop" msgstr "Simpan potongan gambar" +#: src/view/screens/ProfileFeed.tsx:335 +#: src/view/screens/ProfileFeed.tsx:341 +msgid "Save to my feeds" +msgstr "" + #: src/view/screens/SavedFeeds.tsx:122 msgid "Saved Feeds" msgstr "Simpan Feed" +#: src/view/com/lightbox/Lightbox.tsx:81 +msgid "Saved to your camera roll." +msgstr "" + +#: src/view/screens/ProfileFeed.tsx:212 +msgid "Saved to your feeds" +msgstr "" + #: src/view/com/modals/EditProfile.tsx:225 msgid "Saves any changes to your profile" msgstr "Simpan setiap perubahan pada profil Anda" @@ -3508,33 +4134,37 @@ msgstr "Simpan setiap perubahan pada profil Anda" msgid "Saves handle change to {handle}" msgstr "Simpan perubahan handle ke {handle}" +#: src/view/com/modals/crop-image/CropImage.web.tsx:145 +msgid "Saves image crop settings" +msgstr "" + #: src/screens/Onboarding/index.tsx:36 msgid "Science" msgstr "" -#: src/view/screens/ProfileList.tsx:859 +#: src/view/screens/ProfileList.tsx:873 msgid "Scroll to top" msgstr "Gulir ke atas" -#: src/Navigation.tsx:447 +#: src/Navigation.tsx:459 #: src/view/com/auth/LoggedOut.tsx:122 #: src/view/com/modals/ListAddRemoveUsers.tsx:75 #: src/view/com/util/forms/SearchInput.tsx:67 #: src/view/com/util/forms/SearchInput.tsx:79 -#: src/view/screens/Search/Search.tsx:419 -#: src/view/screens/Search/Search.tsx:668 -#: src/view/screens/Search/Search.tsx:686 -#: src/view/shell/bottom-bar/BottomBar.tsx:159 -#: src/view/shell/desktop/LeftNav.tsx:324 -#: src/view/shell/desktop/Search.tsx:214 -#: src/view/shell/desktop/Search.tsx:223 -#: src/view/shell/Drawer.tsx:362 -#: src/view/shell/Drawer.tsx:363 +#: src/view/screens/Search/Search.tsx:420 +#: src/view/screens/Search/Search.tsx:669 +#: src/view/screens/Search/Search.tsx:687 +#: src/view/shell/bottom-bar/BottomBar.tsx:161 +#: src/view/shell/desktop/LeftNav.tsx:328 +#: src/view/shell/desktop/Search.tsx:215 +#: src/view/shell/desktop/Search.tsx:224 +#: src/view/shell/Drawer.tsx:365 +#: src/view/shell/Drawer.tsx:366 msgid "Search" msgstr "Cari" -#: src/view/screens/Search/Search.tsx:735 -#: src/view/shell/desktop/Search.tsx:255 +#: src/view/screens/Search/Search.tsx:736 +#: src/view/shell/desktop/Search.tsx:256 msgid "Search for \"{query}\"" msgstr "" @@ -3608,6 +4238,14 @@ msgstr "Pilih {item}" msgid "Select from an existing account" msgstr "Pilih dari akun yang sudah ada" +#: src/view/screens/LanguageSettings.tsx:299 +msgid "Select languages" +msgstr "" + +#: src/components/ReportDialog/SelectLabelerView.tsx:32 +msgid "Select moderator" +msgstr "" + #: src/view/com/util/Selector.tsx:107 msgid "Select option {i} of {numItems}" msgstr "Pilih opsi {i} dari {numItems}" @@ -3621,6 +4259,10 @@ msgstr "Pilih layanan" msgid "Select some accounts below to follow" msgstr "" +#: src/components/ReportDialog/SubmitView.tsx:135 +msgid "Select the moderation service(s) to report to" +msgstr "" + #: src/view/com/auth/server-input/index.tsx:82 msgid "Select the service that hosts your data." msgstr "" @@ -3633,7 +4275,7 @@ msgstr "" msgid "Select topical feeds to follow from the list below" msgstr "" -#: src/screens/Onboarding/StepModeration/index.tsx:75 +#: src/screens/Onboarding/StepModeration/index.tsx:62 msgid "Select what you want to see (or not see), and we’ll handle the rest." msgstr "" @@ -3642,8 +4284,12 @@ msgid "Select which languages you want your subscribed feeds to include. If none msgstr "Pilih bahasa yang ingin Anda langgani di feed Anda. Jika tidak memilih, maka semua bahasa akan ditampilkan." #: src/view/screens/LanguageSettings.tsx:98 -msgid "Select your app language for the default text to display in the app" -msgstr "Pilih bahasa aplikasi Anda untuk tampilan teks bawaan dalam aplikasi" +#~ msgid "Select your app language for the default text to display in the app" +#~ msgstr "Pilih bahasa aplikasi Anda untuk tampilan teks bawaan dalam aplikasi" + +#: src/view/screens/LanguageSettings.tsx:98 +msgid "Select your app language for the default text to display in the app." +msgstr "" #: src/screens/Onboarding/StepInterests/index.tsx:196 msgid "Select your interests from the options below" @@ -3682,14 +4328,23 @@ msgstr "Kirim Email" #~ msgid "Send Email" #~ msgstr "Kirim Email" -#: src/view/shell/Drawer.tsx:295 -#: src/view/shell/Drawer.tsx:316 +#: src/view/shell/Drawer.tsx:298 +#: src/view/shell/Drawer.tsx:319 msgid "Send feedback" msgstr "Kirim masukan" +#: src/components/ReportDialog/SubmitView.tsx:214 +#: src/components/ReportDialog/SubmitView.tsx:218 +msgid "Send report" +msgstr "" + #: src/view/com/modals/report/SendReportButton.tsx:45 -msgid "Send Report" -msgstr "Kirim Laporan" +#~ msgid "Send Report" +#~ msgstr "Kirim Laporan" + +#: src/components/ReportDialog/SelectLabelerView.tsx:46 +msgid "Send report to {0}" +msgstr "" #: src/view/com/modals/DeleteAccount.tsx:133 msgid "Sends email with confirmation code for account deletion" @@ -3700,34 +4355,38 @@ msgid "Server address" msgstr "" #: src/view/com/modals/ContentFilteringSettings.tsx:311 -msgid "Set {value} for {labelGroup} content moderation policy" -msgstr "Tetapkan {value} untuk kebijakan moderasi konten {labelGroup}" +#~ msgid "Set {value} for {labelGroup} content moderation policy" +#~ msgstr "Tetapkan {value} untuk kebijakan moderasi konten {labelGroup}" #: src/view/com/modals/ContentFilteringSettings.tsx:160 #: src/view/com/modals/ContentFilteringSettings.tsx:179 -msgctxt "action" -msgid "Set Age" -msgstr "Tetapkan Usia" +#~ msgctxt "action" +#~ msgid "Set Age" +#~ msgstr "Tetapkan Usia" + +#: src/screens/Moderation/index.tsx:306 +msgid "Set birthdate" +msgstr "" #: src/view/screens/Settings/index.tsx:488 -msgid "Set color theme to dark" -msgstr "Atur tema menjadi gelap" +#~ msgid "Set color theme to dark" +#~ msgstr "Atur tema menjadi gelap" #: src/view/screens/Settings/index.tsx:481 -msgid "Set color theme to light" -msgstr "Atur tema menjadi terang" +#~ msgid "Set color theme to light" +#~ msgstr "Atur tema menjadi terang" #: src/view/screens/Settings/index.tsx:475 -msgid "Set color theme to system setting" -msgstr "Atur tema warna ke pengaturan sistem" +#~ msgid "Set color theme to system setting" +#~ msgstr "Atur tema warna ke pengaturan sistem" #: src/view/screens/Settings/index.tsx:514 -msgid "Set dark theme to the dark theme" -msgstr "" +#~ msgid "Set dark theme to the dark theme" +#~ msgstr "" #: src/view/screens/Settings/index.tsx:507 -msgid "Set dark theme to the dim theme" -msgstr "" +#~ msgid "Set dark theme to the dim theme" +#~ msgstr "" #: src/view/com/auth/login/SetNewPasswordForm.tsx:104 msgid "Set new password" @@ -3769,6 +4428,26 @@ msgstr "" msgid "Sets Bluesky username" msgstr "Atur nama pengguna Bluesky" +#: src/view/screens/Settings/index.tsx:503 +msgid "Sets color theme to dark" +msgstr "" + +#: src/view/screens/Settings/index.tsx:496 +msgid "Sets color theme to light" +msgstr "" + +#: src/view/screens/Settings/index.tsx:490 +msgid "Sets color theme to system setting" +msgstr "" + +#: src/view/screens/Settings/index.tsx:529 +msgid "Sets dark theme to the dark theme" +msgstr "" + +#: src/view/screens/Settings/index.tsx:522 +msgid "Sets dark theme to the dim theme" +msgstr "" + #: src/view/com/auth/login/ForgotPasswordForm.tsx:157 msgid "Sets email for password reset" msgstr "Atur email untuk pengaturan ulang kata sandi" @@ -3781,16 +4460,28 @@ msgstr "Atur penyedia hosting untuk pengaturan ulang kata sandi" #~ msgid "Sets hosting provider to {label}" #~ msgstr "Atur penyedia hosting ke {label}" +#: src/view/com/modals/crop-image/CropImage.web.tsx:123 +msgid "Sets image aspect ratio to square" +msgstr "" + +#: src/view/com/modals/crop-image/CropImage.web.tsx:113 +msgid "Sets image aspect ratio to tall" +msgstr "" + +#: src/view/com/modals/crop-image/CropImage.web.tsx:103 +msgid "Sets image aspect ratio to wide" +msgstr "" + #: src/view/com/auth/create/Step1.tsx:97 #: src/view/com/auth/login/LoginForm.tsx:151 msgid "Sets server for the Bluesky client" msgstr "Atur server untuk klien Bluesky" -#: src/Navigation.tsx:137 -#: src/view/screens/Settings/index.tsx:294 -#: src/view/shell/desktop/LeftNav.tsx:433 -#: src/view/shell/Drawer.tsx:567 -#: src/view/shell/Drawer.tsx:568 +#: src/Navigation.tsx:139 +#: src/view/screens/Settings/index.tsx:309 +#: src/view/shell/desktop/LeftNav.tsx:437 +#: src/view/shell/Drawer.tsx:570 +#: src/view/shell/Drawer.tsx:571 msgid "Settings" msgstr "Pengaturan" @@ -3798,28 +4489,39 @@ msgstr "Pengaturan" msgid "Sexual activity or erotic nudity." msgstr "Aktivitas seksual atau ketelanjangan erotis." +#: src/lib/moderation/useGlobalLabelStrings.ts:38 +msgid "Sexually Suggestive" +msgstr "" + #: src/view/com/lightbox/Lightbox.tsx:141 msgctxt "action" msgid "Share" msgstr "Bagikan" -#: src/view/com/profile/ProfileHeader.tsx:295 -#: src/view/com/util/forms/PostDropdownBtn.tsx:231 +#: src/view/com/profile/ProfileMenu.tsx:215 +#: src/view/com/profile/ProfileMenu.tsx:224 +#: src/view/com/util/forms/PostDropdownBtn.tsx:228 #: src/view/com/util/forms/PostDropdownBtn.tsx:237 -#: src/view/com/util/post-ctrls/PostCtrls.tsx:215 -#: src/view/screens/ProfileList.tsx:418 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:218 +#: src/view/screens/ProfileList.tsx:388 msgid "Share" msgstr "Bagikan" -#: src/view/screens/ProfileFeed.tsx:305 +#: src/view/com/profile/ProfileMenu.tsx:373 +#: src/view/com/util/forms/PostDropdownBtn.tsx:347 +msgid "Share anyway" +msgstr "" + +#: src/view/screens/ProfileFeed.tsx:361 +#: src/view/screens/ProfileFeed.tsx:363 msgid "Share feed" msgstr "Bagikan feed" -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:43 -#: src/view/com/modals/ContentFilteringSettings.tsx:266 -#: src/view/com/util/moderation/ContentHider.tsx:107 -#: src/view/com/util/moderation/PostHider.tsx:108 -#: src/view/screens/Settings/index.tsx:344 +#: src/components/moderation/ContentHider.tsx:115 +#: src/components/moderation/GlobalModerationLabelPref.tsx:45 +#: src/components/moderation/PostHider.tsx:107 +#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:54 +#: src/view/screens/Settings/index.tsx:359 msgid "Show" msgstr "Tampilkan" @@ -3827,21 +4529,31 @@ msgstr "Tampilkan" msgid "Show all replies" msgstr "Tampilkan semua balasan" -#: src/view/com/util/moderation/ScreenHider.tsx:132 +#: src/components/moderation/ScreenHider.tsx:162 +#: src/components/moderation/ScreenHider.tsx:165 msgid "Show anyway" msgstr "Tetap tampilkan" +#: src/lib/moderation/useLabelBehaviorDescription.ts:27 +#: src/lib/moderation/useLabelBehaviorDescription.ts:63 +msgid "Show badge" +msgstr "" + +#: src/lib/moderation/useLabelBehaviorDescription.ts:61 +msgid "Show badge and filter from feeds" +msgstr "" + #: src/view/com/modals/EmbedConsent.tsx:87 msgid "Show embeds from {0}" msgstr "Tampilkan embed dari {0}" -#: src/view/com/profile/ProfileHeader.tsx:459 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:193 msgid "Show follows similar to {0}" msgstr "Tampilkan berikut ini mirip dengan {0}" -#: src/view/com/post-thread/PostThreadItem.tsx:538 -#: src/view/com/post/Post.tsx:198 -#: src/view/com/posts/FeedItem.tsx:363 +#: src/view/com/post-thread/PostThreadItem.tsx:507 +#: src/view/com/post/Post.tsx:201 +#: src/view/com/posts/FeedItem.tsx:355 msgid "Show More" msgstr "Tampilkan Lebih Lanjut" @@ -3893,40 +4605,48 @@ msgstr "Tampilkan Posting Ulang" msgid "Show reposts in Following" msgstr "" -#: src/view/com/util/moderation/ContentHider.tsx:67 -#: src/view/com/util/moderation/PostHider.tsx:61 +#: src/components/moderation/ContentHider.tsx:68 +#: src/components/moderation/PostHider.tsx:64 msgid "Show the content" msgstr "Tampilkan konten" -#: src/view/com/notifications/FeedItem.tsx:347 +#: src/view/com/notifications/FeedItem.tsx:351 msgid "Show users" msgstr "Tampilkan pengguna" +#: src/lib/moderation/useLabelBehaviorDescription.ts:58 +msgid "Show warning" +msgstr "" + +#: src/lib/moderation/useLabelBehaviorDescription.ts:56 +msgid "Show warning and filter from feeds" +msgstr "" + #: src/view/com/profile/ProfileHeader.tsx:462 -msgid "Shows a list of users similar to this user." -msgstr "Tampilkan daftar pengguna yang mirip dengan pengguna ini." +#~ msgid "Shows a list of users similar to this user." +#~ msgstr "Tampilkan daftar pengguna yang mirip dengan pengguna ini." -#: src/view/com/post-thread/PostThreadFollowBtn.tsx:124 -#: src/view/com/profile/ProfileHeader.tsx:506 +#: src/view/com/post-thread/PostThreadFollowBtn.tsx:127 msgid "Shows posts from {0} in your feed" msgstr "Tampilkan postingan dari {0} di feed Anda" -#: src/view/com/auth/HomeLoggedOutCTA.tsx:70 +#: src/view/com/auth/HomeLoggedOutCTA.tsx:72 #: src/view/com/auth/login/Login.tsx:98 -#: src/view/com/auth/SplashScreen.tsx:79 -#: src/view/shell/bottom-bar/BottomBar.tsx:285 -#: src/view/shell/bottom-bar/BottomBar.tsx:286 -#: src/view/shell/bottom-bar/BottomBar.tsx:288 +#: src/view/com/auth/SplashScreen.tsx:81 +#: src/view/shell/bottom-bar/BottomBar.tsx:289 +#: src/view/shell/bottom-bar/BottomBar.tsx:290 +#: src/view/shell/bottom-bar/BottomBar.tsx:292 #: src/view/shell/bottom-bar/BottomBarWeb.tsx:178 #: src/view/shell/bottom-bar/BottomBarWeb.tsx:179 #: src/view/shell/bottom-bar/BottomBarWeb.tsx:181 #: src/view/shell/NavSignupCard.tsx:58 #: src/view/shell/NavSignupCard.tsx:59 +#: src/view/shell/NavSignupCard.tsx:61 msgid "Sign in" msgstr "Masuk" -#: src/view/com/auth/HomeLoggedOutCTA.tsx:78 -#: src/view/com/auth/SplashScreen.tsx:82 +#: src/view/com/auth/HomeLoggedOutCTA.tsx:82 +#: src/view/com/auth/SplashScreen.tsx:86 #: src/view/com/auth/SplashScreen.web.tsx:91 msgid "Sign In" msgstr "Masuk" @@ -3935,7 +4655,7 @@ msgstr "Masuk" msgid "Sign in as {0}" msgstr "Masuk sebagai {0}" -#: src/view/com/auth/login/ChooseAccountForm.tsx:118 +#: src/view/com/auth/login/ChooseAccountForm.tsx:122 #: src/view/com/auth/login/Login.tsx:116 msgid "Sign in as..." msgstr "Masuk sebagai..." @@ -3944,16 +4664,16 @@ msgstr "Masuk sebagai..." msgid "Sign into" msgstr "Masuk ke" -#: src/view/com/modals/SwitchAccount.tsx:64 -#: src/view/com/modals/SwitchAccount.tsx:69 -#: src/view/screens/Settings/index.tsx:100 -#: src/view/screens/Settings/index.tsx:103 +#: src/view/com/modals/SwitchAccount.tsx:68 +#: src/view/com/modals/SwitchAccount.tsx:73 +#: src/view/screens/Settings/index.tsx:105 +#: src/view/screens/Settings/index.tsx:108 msgid "Sign out" msgstr "Keluar" -#: src/view/shell/bottom-bar/BottomBar.tsx:275 -#: src/view/shell/bottom-bar/BottomBar.tsx:276 -#: src/view/shell/bottom-bar/BottomBar.tsx:278 +#: src/view/shell/bottom-bar/BottomBar.tsx:279 +#: src/view/shell/bottom-bar/BottomBar.tsx:280 +#: src/view/shell/bottom-bar/BottomBar.tsx:282 #: src/view/shell/bottom-bar/BottomBarWeb.tsx:168 #: src/view/shell/bottom-bar/BottomBarWeb.tsx:169 #: src/view/shell/bottom-bar/BottomBarWeb.tsx:171 @@ -3967,25 +4687,26 @@ msgstr "Daftar" msgid "Sign up or sign in to join the conversation" msgstr "Daftar atau masuk untuk bergabung dalam obrolan" -#: src/view/com/util/moderation/ScreenHider.tsx:76 +#: src/components/moderation/ScreenHider.tsx:98 +#: src/lib/moderation/useGlobalLabelStrings.ts:28 msgid "Sign-in Required" msgstr "Dibutuhkan Masuk" -#: src/view/screens/Settings/index.tsx:355 +#: src/view/screens/Settings/index.tsx:370 msgid "Signed in as" msgstr "Masuk sebagai" -#: src/view/com/auth/login/ChooseAccountForm.tsx:103 +#: src/view/com/auth/login/ChooseAccountForm.tsx:107 msgid "Signed in as @{0}" msgstr "Masuk sebagai @{0}" -#: src/view/com/modals/SwitchAccount.tsx:66 +#: src/view/com/modals/SwitchAccount.tsx:70 msgid "Signs {0} out of Bluesky" msgstr "Mengeluarkan {0} dari Bluesky" #: src/screens/Onboarding/StepInterests/index.tsx:235 #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:195 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:33 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:35 msgid "Skip" msgstr "Lewati" @@ -4005,15 +4726,21 @@ msgstr "" #~ msgid "Something went wrong and we're not sure what." #~ msgstr "Ada yang tidak beres dan kami tidak yakin apa itu." -#: src/components/Lists.tsx:203 -msgid "Something went wrong!" +#: src/components/ReportDialog/index.tsx:52 +#: src/screens/Moderation/index.tsx:116 +#: src/screens/Profile/Sections/Labels.tsx:77 +msgid "Something went wrong, please try again." msgstr "" +#: src/components/Lists.tsx:203 +#~ msgid "Something went wrong!" +#~ msgstr "" + #: src/view/com/modals/Waitlist.tsx:51 #~ msgid "Something went wrong. Check your email and try again." #~ msgstr "Ada yang tidak beres. Periksa email Anda dan coba lagi." -#: src/App.native.tsx:66 +#: src/App.native.tsx:71 msgid "Sorry! Your session expired. Please log in again." msgstr "Maaf! Sesi Anda telah berakhir. Silakan masuk lagi." @@ -4025,6 +4752,18 @@ msgstr "Urutkan Balasan" msgid "Sort replies to the same post by:" msgstr "Urutkan balasan ke postingan yang sama berdasarkan:" +#: src/components/moderation/LabelsOnMeDialog.tsx:147 +msgid "Source:" +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:65 +msgid "Spam" +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:53 +msgid "Spam; excessive mentions or replies" +msgstr "" + #: src/screens/Onboarding/index.tsx:30 msgid "Sports" msgstr "" @@ -4037,7 +4776,7 @@ msgstr "Persegi" #~ msgid "Staging" #~ msgstr "Staging" -#: src/view/screens/Settings/index.tsx:871 +#: src/view/screens/Settings/index.tsx:901 msgid "Status page" msgstr "Halaman status" @@ -4049,37 +4788,50 @@ msgstr "" #~ msgid "Step {step} of 3" #~ msgstr "Langkah {step} dari 3" -#: src/view/screens/Settings/index.tsx:274 +#: src/view/screens/Settings/index.tsx:288 msgid "Storage cleared, you need to restart the app now." msgstr "Penyimpanan dihapus, Anda perlu memulai ulang aplikasi sekarang." -#: src/Navigation.tsx:204 -#: src/view/screens/Settings/index.tsx:807 +#: src/Navigation.tsx:211 +#: src/view/screens/Settings/index.tsx:827 msgid "Storybook" msgstr "Storybook" -#: src/view/com/modals/AppealLabel.tsx:101 +#: src/components/moderation/LabelsOnMeDialog.tsx:256 +#: src/components/moderation/LabelsOnMeDialog.tsx:257 msgid "Submit" msgstr "Kirim" -#: src/view/screens/ProfileList.tsx:608 +#: src/view/screens/ProfileList.tsx:590 msgid "Subscribe" msgstr "Langganan" +#: src/screens/Profile/Sections/Labels.tsx:181 +msgid "Subscribe to @{0} to use these labels:" +msgstr "" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:222 +msgid "Subscribe to Labeler" +msgstr "" + #: src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx:173 #: src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx:308 msgid "Subscribe to the {0} feed" msgstr "" -#: src/view/screens/ProfileList.tsx:604 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:185 +msgid "Subscribe to this labeler" +msgstr "" + +#: src/view/screens/ProfileList.tsx:586 msgid "Subscribe to this list" msgstr "Langganan ke daftar ini" -#: src/view/screens/Search/Search.tsx:374 +#: src/view/screens/Search/Search.tsx:375 msgid "Suggested Follows" msgstr "Saran untuk Diikuti" -#: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:64 +#: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:65 msgid "Suggested for you" msgstr "Disarankan untuk Anda" @@ -4087,7 +4839,7 @@ msgstr "Disarankan untuk Anda" msgid "Suggestive" msgstr "Sugestif" -#: src/Navigation.tsx:214 +#: src/Navigation.tsx:226 #: src/view/screens/Support.tsx:30 #: src/view/screens/Support.tsx:33 msgid "Support" @@ -4097,29 +4849,29 @@ msgstr "Dukungan" #~ msgid "Swipe up to see more" #~ msgstr "Geser ke atas untuk melihat lebih banyak" -#: src/view/com/modals/SwitchAccount.tsx:117 +#: src/view/com/modals/SwitchAccount.tsx:121 msgid "Switch Account" msgstr "Pindah Akun" -#: src/view/com/modals/SwitchAccount.tsx:97 -#: src/view/screens/Settings/index.tsx:130 +#: src/view/com/modals/SwitchAccount.tsx:101 +#: src/view/screens/Settings/index.tsx:135 msgid "Switch to {0}" msgstr "Beralih ke {0}" -#: src/view/com/modals/SwitchAccount.tsx:98 -#: src/view/screens/Settings/index.tsx:131 +#: src/view/com/modals/SwitchAccount.tsx:102 +#: src/view/screens/Settings/index.tsx:136 msgid "Switches the account you are logged in to" msgstr "Mengganti akun yang Anda masuki" -#: src/view/screens/Settings/index.tsx:472 +#: src/view/screens/Settings/index.tsx:487 msgid "System" msgstr "Sistem" -#: src/view/screens/Settings/index.tsx:795 +#: src/view/screens/Settings/index.tsx:815 msgid "System log" msgstr "Log sistem" -#: src/components/dialogs/MutedWords.tsx:337 +#: src/components/dialogs/MutedWords.tsx:324 msgid "tag" msgstr "" @@ -4147,30 +4899,49 @@ msgstr "" msgid "Terms" msgstr "Ketentuan" -#: src/Navigation.tsx:224 -#: src/view/screens/Settings/index.tsx:885 +#: src/Navigation.tsx:236 +#: src/view/com/auth/create/Policies.tsx:59 +#: src/view/screens/Settings/index.tsx:915 #: src/view/screens/TermsOfService.tsx:29 -#: src/view/shell/Drawer.tsx:256 +#: src/view/shell/Drawer.tsx:259 msgid "Terms of Service" msgstr "Ketentuan Layanan" -#: src/components/dialogs/MutedWords.tsx:337 +#: src/lib/moderation/useReportOptions.ts:58 +#: src/lib/moderation/useReportOptions.ts:79 +#: src/lib/moderation/useReportOptions.ts:87 +msgid "Terms used violate community standards" +msgstr "" + +#: src/components/dialogs/MutedWords.tsx:324 msgid "text" msgstr "" -#: src/view/com/modals/AppealLabel.tsx:70 -#: src/view/com/modals/report/InputIssueDetails.tsx:51 +#: src/components/moderation/LabelsOnMeDialog.tsx:220 msgid "Text input field" msgstr "Area input teks" +#: src/components/ReportDialog/SubmitView.tsx:78 +msgid "Thank you. Your report has been sent." +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:466 +msgid "That contains the following:" +msgstr "" + #: src/view/com/auth/create/CreateAccount.tsx:94 msgid "That handle is already taken." msgstr "" -#: src/view/com/profile/ProfileHeader.tsx:263 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:274 +#: src/view/com/profile/ProfileMenu.tsx:349 msgid "The account will be able to interact with you after unblocking." msgstr "Akun ini akan dapat berinteraksi dengan Anda setelah blokir dibuka." +#: src/components/moderation/ModerationDetailsDialog.tsx:128 +msgid "the author" +msgstr "" + #: src/view/screens/CommunityGuidelines.tsx:36 msgid "The Community Guidelines have been moved to <0/>" msgstr "Panduan Komunitas telah dipindahkan ke <0/>" @@ -4179,11 +4950,20 @@ msgstr "Panduan Komunitas telah dipindahkan ke <0/>" msgid "The Copyright Policy has been moved to <0/>" msgstr "Kebijakan Hak Cipta telah dipindahkan ke <0/>" +#: src/components/moderation/LabelsOnMeDialog.tsx:49 +msgid "The following labels were applied to your account." +msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:50 +msgid "The following labels were applied to your content." +msgstr "" + #: src/screens/Onboarding/Layout.tsx:60 msgid "The following steps will help customize your Bluesky experience." msgstr "" -#: src/view/com/post-thread/PostThread.tsx:517 +#: src/view/com/post-thread/PostThread.tsx:153 +#: src/view/com/post-thread/PostThread.tsx:165 msgid "The post may have been deleted." msgstr "Postingan mungkin telah dihapus." @@ -4206,20 +4986,21 @@ msgstr "Ketentuan Layanan telah dipindahkan ke" msgid "There are many feeds to try:" msgstr "" -#: src/view/screens/ProfileFeed.tsx:550 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:113 +#: src/view/screens/ProfileFeed.tsx:543 msgid "There was an an issue contacting the server, please check your internet connection and try again." msgstr "Ada masalah saat menghubungi server, silakan periksa koneksi internet Anda dan coba lagi." -#: src/view/com/posts/FeedErrorMessage.tsx:139 +#: src/view/com/posts/FeedErrorMessage.tsx:138 msgid "There was an an issue removing this feed. Please check your internet connection and try again." msgstr "Ada masalah saat menghapus feed ini. Periksa koneksi internet Anda dan coba lagi." -#: src/view/screens/ProfileFeed.tsx:210 +#: src/view/screens/ProfileFeed.tsx:217 msgid "There was an an issue updating your feeds, please check your internet connection and try again." msgstr "Ada masalah saat memperbarui feed Anda, periksa koneksi internet Anda dan coba lagi." -#: src/view/screens/ProfileFeed.tsx:237 -#: src/view/screens/ProfileList.tsx:267 +#: src/view/screens/ProfileFeed.tsx:244 +#: src/view/screens/ProfileList.tsx:275 #: src/view/screens/SavedFeeds.tsx:209 #: src/view/screens/SavedFeeds.tsx:231 #: src/view/screens/SavedFeeds.tsx:252 @@ -4228,9 +5009,8 @@ msgstr "Ada masalah saat menghubungi server" #: src/view/com/auth/onboarding/RecommendedFeedsItem.tsx:57 #: src/view/com/auth/onboarding/RecommendedFeedsItem.tsx:66 -#: src/view/com/feeds/FeedSourceCard.tsx:115 -#: src/view/com/feeds/FeedSourceCard.tsx:129 -#: src/view/com/feeds/FeedSourceCard.tsx:183 +#: src/view/com/feeds/FeedSourceCard.tsx:110 +#: src/view/com/feeds/FeedSourceCard.tsx:123 msgid "There was an issue contacting your server" msgstr "Ada masalah saat menghubungi server Anda" @@ -4238,7 +5018,7 @@ msgstr "Ada masalah saat menghubungi server Anda" msgid "There was an issue fetching notifications. Tap here to try again." msgstr "Ada masalah saat mengambil notifikasi. Ketuk di sini untuk mencoba lagi." -#: src/view/com/posts/Feed.tsx:265 +#: src/view/com/posts/Feed.tsx:283 msgid "There was an issue fetching posts. Tap here to try again." msgstr "Ada masalah saat mengambil postingan. Ketuk di sini untuk mencoba lagi." @@ -4251,34 +5031,40 @@ msgstr "Ada masalah saat mengambil daftar. Ketuk di sini untuk mencoba lagi." msgid "There was an issue fetching your lists. Tap here to try again." msgstr "Ada masalah saat mengambil daftar Anda. Ketuk di sini untuk mencoba lagi." -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:63 -#: src/view/com/modals/ContentFilteringSettings.tsx:126 +#: src/components/ReportDialog/SubmitView.tsx:83 +msgid "There was an issue sending your report. Please check your internet connection." +msgstr "" + +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:65 msgid "There was an issue syncing your preferences with the server" msgstr "Ada masalah saat mensinkronkan preferensi Anda dengan server" -#: src/view/screens/AppPasswords.tsx:66 +#: src/view/screens/AppPasswords.tsx:68 msgid "There was an issue with fetching your app passwords" msgstr "Ada masalah dengan pengambilan kata sandi aplikasi Anda" -#: src/view/com/post-thread/PostThreadFollowBtn.tsx:93 -#: src/view/com/post-thread/PostThreadFollowBtn.tsx:105 -#: src/view/com/profile/ProfileHeader.tsx:157 -#: src/view/com/profile/ProfileHeader.tsx:178 -#: src/view/com/profile/ProfileHeader.tsx:217 -#: src/view/com/profile/ProfileHeader.tsx:230 -#: src/view/com/profile/ProfileHeader.tsx:250 -#: src/view/com/profile/ProfileHeader.tsx:272 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:98 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:120 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:134 +#: src/view/com/post-thread/PostThreadFollowBtn.tsx:96 +#: src/view/com/post-thread/PostThreadFollowBtn.tsx:108 +#: src/view/com/profile/ProfileMenu.tsx:106 +#: src/view/com/profile/ProfileMenu.tsx:117 +#: src/view/com/profile/ProfileMenu.tsx:132 +#: src/view/com/profile/ProfileMenu.tsx:143 +#: src/view/com/profile/ProfileMenu.tsx:157 +#: src/view/com/profile/ProfileMenu.tsx:170 msgid "There was an issue! {0}" msgstr "Ada masalah! {0}" #: src/view/screens/ProfileList.tsx:288 -#: src/view/screens/ProfileList.tsx:307 -#: src/view/screens/ProfileList.tsx:329 -#: src/view/screens/ProfileList.tsx:348 +#: src/view/screens/ProfileList.tsx:302 +#: src/view/screens/ProfileList.tsx:316 +#: src/view/screens/ProfileList.tsx:330 msgid "There was an issue. Please check your internet connection and try again." msgstr "Ada masalah. Periksa koneksi internet Anda dan coba lagi." -#: src/view/com/util/ErrorBoundary.tsx:36 +#: src/view/com/util/ErrorBoundary.tsx:51 msgid "There was an unexpected issue in the application. Please let us know if this happened to you!" msgstr "Sepertinya ada masalah pada aplikasi. Harap beri tahu kami jika Anda mengalaminya!" @@ -4301,19 +5087,32 @@ msgstr "" #~ msgid "This {0} has been labeled." #~ msgstr "Ini {0} telah diberi label." -#: src/view/com/util/moderation/ScreenHider.tsx:88 +#: src/components/moderation/ScreenHider.tsx:117 msgid "This {screenDescription} has been flagged:" msgstr "Ini {screenDescription} telah ditandai:" -#: src/view/com/util/moderation/ScreenHider.tsx:83 +#: src/components/moderation/ScreenHider.tsx:112 msgid "This account has requested that users sign in to view their profile." msgstr "Akun ini mewajibkan pengguna untuk masuk agar bisa melihat profilnya." +#: src/components/moderation/LabelsOnMeDialog.tsx:205 +msgid "This appeal will be sent to <0>{0}." +msgstr "" + +#: src/lib/moderation/useGlobalLabelStrings.ts:19 +msgid "This content has been hidden by the moderators." +msgstr "" + +#: src/lib/moderation/useGlobalLabelStrings.ts:24 +msgid "This content has received a general warning from moderators." +msgstr "" + #: src/view/com/modals/EmbedConsent.tsx:68 msgid "This content is hosted by {0}. Do you want to enable external media?" msgstr "Konten ini disediakan oleh {0}. Apakah Anda ingin mengaktifkan media eksternal?" -#: src/view/com/modals/ModerationDetails.tsx:67 +#: src/components/moderation/ModerationDetailsDialog.tsx:78 +#: src/lib/moderation/useModerationCauseDescription.ts:77 msgid "This content is not available because one of the users involved has blocked the other." msgstr "Konten ini tidak tersedia karena salah satu pengguna yang terlibat telah memblokir pengguna lainnya." @@ -4322,16 +5121,20 @@ msgid "This content is not viewable without a Bluesky account." msgstr "Konten ini tidak dapat dilihat tanpa akun Bluesky." #: src/view/screens/Settings/ExportCarDialog.tsx:75 -msgid "This feature is in beta. You can read more about repository exports in <0>this blogpost." +#~ msgid "This feature is in beta. You can read more about repository exports in <0>this blogpost." +#~ msgstr "" + +#: src/view/screens/Settings/ExportCarDialog.tsx:75 +msgid "This feature is in beta. You can read more about repository exports in <0>this blogpost." msgstr "" #: src/view/com/posts/FeedErrorMessage.tsx:114 msgid "This feed is currently receiving high traffic and is temporarily unavailable. Please try again later." msgstr "Feed ini sedang menerima terlalu banyak trafik dan sementara tidak tersedia. Silakan coba lagi nanti." -#: src/view/screens/Profile.tsx:420 +#: src/screens/Profile/Sections/Feed.tsx:50 #: src/view/screens/ProfileFeed.tsx:476 -#: src/view/screens/ProfileList.tsx:661 +#: src/view/screens/ProfileList.tsx:675 msgid "This feed is empty!" msgstr "Feed ini kosong!" @@ -4339,7 +5142,7 @@ msgstr "Feed ini kosong!" msgid "This feed is empty! You may need to follow more users or tune your language settings." msgstr "Feed ini kosong! Anda mungkin perlu mengikuti lebih banyak pengguna atau menyesuaikan pengaturan bahasa Anda." -#: src/view/com/modals/BirthDateSettings.tsx:61 +#: src/components/dialogs/BirthDateSettings.tsx:41 msgid "This information is not shared with other users." msgstr "Informasi ini tidak akan dibagikan ke pengguna lainnya." @@ -4351,14 +5154,26 @@ msgstr "Ini penting jika Anda butuh untuk mengganti email atau reset kata sandi #~ msgid "This is the service that keeps you online." #~ msgstr "Ini adalah layanan yang menjaga Anda tetap online." +#: src/components/moderation/ModerationDetailsDialog.tsx:125 +msgid "This label was applied by {0}." +msgstr "" + +#: src/screens/Profile/Sections/Labels.tsx:168 +msgid "This labeler hasn't declared what labels it publishes, and may not be active." +msgstr "" + #: src/view/com/modals/LinkWarning.tsx:58 msgid "This link is taking you to the following website:" msgstr "Tautan ini akan membawa Anda ke website:" -#: src/view/screens/ProfileList.tsx:839 +#: src/view/screens/ProfileList.tsx:853 msgid "This list is empty!" msgstr "Daftar ini kosong!" +#: src/screens/Profile/ErrorState.tsx:40 +msgid "This moderation service is unavailable. See below for more details. If this issue persists, contact us." +msgstr "" + #: src/view/com/modals/AddAppPasswords.tsx:106 msgid "This name is already in use" msgstr "Nama ini sudah digunakan" @@ -4367,36 +5182,81 @@ msgstr "Nama ini sudah digunakan" msgid "This post has been deleted." msgstr "Postingan ini telah dihapus." -#: src/view/com/modals/ModerationDetails.tsx:62 +#: src/view/com/util/forms/PostDropdownBtn.tsx:344 +msgid "This post is only visible to logged-in users. It won't be visible to people who aren't logged in." +msgstr "" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:326 +msgid "This post will be hidden from feeds." +msgstr "" + +#: src/view/com/profile/ProfileMenu.tsx:370 +msgid "This profile is only visible to logged-in users. It won't be visible to people who aren't logged in." +msgstr "" + +#: src/view/com/auth/create/Policies.tsx:46 +msgid "This service has not provided terms of service or a privacy policy." +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:446 +msgid "This should create a domain record at:" +msgstr "" + +#: src/view/com/profile/ProfileFollowers.tsx:95 +msgid "This user doesn't have any followers." +msgstr "" + +#: src/components/moderation/ModerationDetailsDialog.tsx:73 +#: src/lib/moderation/useModerationCauseDescription.ts:68 msgid "This user has blocked you. You cannot view their content." msgstr "Pengguna ini telah memblokir Anda. Anda tidak dapat melihat konten mereka." +#: src/lib/moderation/useGlobalLabelStrings.ts:30 +msgid "This user has requested that their content only be shown to signed-in users." +msgstr "" + #: src/view/com/modals/ModerationDetails.tsx:42 -msgid "This user is included in the <0/> list which you have blocked." -msgstr "Pengguna ini termasuk dalam daftar <0/> yang telah Anda blokir." +#~ msgid "This user is included in the <0/> list which you have blocked." +#~ msgstr "Pengguna ini termasuk dalam daftar <0/> yang telah Anda blokir." #: src/view/com/modals/ModerationDetails.tsx:74 -msgid "This user is included in the <0/> list which you have muted." +#~ msgid "This user is included in the <0/> list which you have muted." +#~ msgstr "" + +#: src/components/moderation/ModerationDetailsDialog.tsx:56 +msgid "This user is included in the <0>{0} list which you have blocked." +msgstr "" + +#: src/components/moderation/ModerationDetailsDialog.tsx:85 +msgid "This user is included in the <0>{0} list which you have muted." msgstr "" #: src/view/com/modals/ModerationDetails.tsx:74 #~ msgid "This user is included the <0/> list which you have muted." #~ msgstr "Pengguna ini termasuk dalam daftar <0/> yang telah Anda bisukan." +#: src/view/com/profile/ProfileFollows.tsx:94 +msgid "This user isn't following anyone." +msgstr "" + #: src/view/com/modals/SelfLabel.tsx:137 msgid "This warning is only available for posts with media attached." msgstr "Peringatan ini hanya tersedia untuk postingan dengan lampiran media." -#: src/components/dialogs/MutedWords.tsx:285 +#: src/components/dialogs/MutedWords.tsx:284 msgid "This will delete {0} from your muted words. You can always add it back later." msgstr "" #: src/view/com/util/forms/PostDropdownBtn.tsx:282 -msgid "This will hide this post from your feeds." -msgstr "Ini akan menyembunyikan postingan ini dari feed Anda." +#~ msgid "This will hide this post from your feeds." +#~ msgstr "Ini akan menyembunyikan postingan ini dari feed Anda." + +#: src/view/screens/Settings/index.tsx:570 +msgid "Thread preferences" +msgstr "" #: src/view/screens/PreferencesThreads.tsx:53 -#: src/view/screens/Settings/index.tsx:565 +#: src/view/screens/Settings/index.tsx:580 msgid "Thread Preferences" msgstr "Preferensi Utasan" @@ -4404,10 +5264,14 @@ msgstr "Preferensi Utasan" msgid "Threaded Mode" msgstr "Mode Utasan" -#: src/Navigation.tsx:257 +#: src/Navigation.tsx:269 msgid "Threads Preferences" msgstr "Preferensi Utas" +#: src/components/ReportDialog/SelectLabelerView.tsx:35 +msgid "To whom would you like to send this report?" +msgstr "" + #: src/components/dialogs/MutedWords.tsx:113 msgid "Toggle between muted word options." msgstr "" @@ -4416,14 +5280,18 @@ msgstr "" msgid "Toggle dropdown" msgstr "Beralih dropdown" +#: src/screens/Moderation/index.tsx:334 +msgid "Toggle to enable or disable adult content" +msgstr "" + #: src/view/com/modals/EditImage.tsx:271 msgid "Transformations" msgstr "Transformasi" -#: src/view/com/post-thread/PostThreadItem.tsx:685 -#: src/view/com/post-thread/PostThreadItem.tsx:687 -#: src/view/com/util/forms/PostDropdownBtn.tsx:215 -#: src/view/com/util/forms/PostDropdownBtn.tsx:217 +#: src/view/com/post-thread/PostThreadItem.tsx:644 +#: src/view/com/post-thread/PostThreadItem.tsx:646 +#: src/view/com/util/forms/PostDropdownBtn.tsx:212 +#: src/view/com/util/forms/PostDropdownBtn.tsx:214 msgid "Translate" msgstr "Terjemahkan" @@ -4435,11 +5303,15 @@ msgstr "Coba lagi" #~ msgid "Try again" #~ msgstr "Ulangi" -#: src/view/screens/ProfileList.tsx:506 +#: src/view/com/modals/ChangeHandle.tsx:429 +msgid "Type:" +msgstr "" + +#: src/view/screens/ProfileList.tsx:478 msgid "Un-block list" msgstr "Buka blokir daftar" -#: src/view/screens/ProfileList.tsx:491 +#: src/view/screens/ProfileList.tsx:461 msgid "Un-mute list" msgstr "Bunyikan daftar" @@ -4451,21 +5323,28 @@ msgstr "Bunyikan daftar" msgid "Unable to contact your service. Please check your Internet connection." msgstr "Tidak dapat terhubung ke layanan. Mohon periksa koneksi internet Anda." -#: src/view/com/profile/ProfileHeader.tsx:433 -#: src/view/screens/ProfileList.tsx:590 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:174 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:278 +#: src/view/com/profile/ProfileMenu.tsx:361 +#: src/view/screens/ProfileList.tsx:572 msgid "Unblock" msgstr "Buka blokir" -#: src/view/com/profile/ProfileHeader.tsx:436 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:179 msgctxt "action" msgid "Unblock" msgstr "Buka blokir" -#: src/view/com/profile/ProfileHeader.tsx:261 -#: src/view/com/profile/ProfileHeader.tsx:345 +#: src/view/com/profile/ProfileMenu.tsx:299 +#: src/view/com/profile/ProfileMenu.tsx:305 msgid "Unblock Account" msgstr "Buka blokir Akun" +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:272 +#: src/view/com/profile/ProfileMenu.tsx:343 +msgid "Unblock Account?" +msgstr "" + #: src/view/com/modals/Repost.tsx:42 #: src/view/com/modals/Repost.tsx:55 #: src/view/com/util/post-ctrls/RepostButton.tsx:60 @@ -4473,25 +5352,39 @@ msgstr "Buka blokir Akun" msgid "Undo repost" msgstr "Batalkan posting ulang" -#: src/view/com/profile/FollowButton.tsx:55 +#: src/view/com/auth/onboarding/RecommendedFollowsItem.tsx:141 +#: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:246 +msgid "Unfollow" +msgstr "" + +#: src/view/com/profile/FollowButton.tsx:60 msgctxt "action" msgid "Unfollow" msgstr "Berhenti mengikuti" -#: src/view/com/profile/ProfileHeader.tsx:485 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:213 msgid "Unfollow {0}" msgstr "Berhenti mengikuti {0}" +#: src/view/com/profile/ProfileMenu.tsx:241 +#: src/view/com/profile/ProfileMenu.tsx:251 +msgid "Unfollow Account" +msgstr "" + #: src/view/com/auth/create/state.ts:262 msgid "Unfortunately, you do not meet the requirements to create an account." msgstr "Sayangnya, Anda tidak memenuhi syarat untuk membuat akun." -#: src/view/com/util/post-ctrls/PostCtrls.tsx:182 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:185 msgid "Unlike" msgstr "Tidak suka" +#: src/view/screens/ProfileFeed.tsx:572 +msgid "Unlike this feed" +msgstr "" + #: src/components/TagMenu/index.tsx:249 -#: src/view/screens/ProfileList.tsx:597 +#: src/view/screens/ProfileList.tsx:579 msgid "Unmute" msgstr "Bunyikan" @@ -4499,7 +5392,8 @@ msgstr "Bunyikan" msgid "Unmute {truncatedTag}" msgstr "" -#: src/view/com/profile/ProfileHeader.tsx:326 +#: src/view/com/profile/ProfileMenu.tsx:278 +#: src/view/com/profile/ProfileMenu.tsx:284 msgid "Unmute Account" msgstr "Bunyikan Akun" @@ -4516,26 +5410,46 @@ msgstr "" msgid "Unmute thread" msgstr "Bunyikan utasan" -#: src/view/screens/ProfileFeed.tsx:354 -#: src/view/screens/ProfileList.tsx:581 +#: src/view/screens/ProfileFeed.tsx:294 +#: src/view/screens/ProfileList.tsx:563 msgid "Unpin" msgstr "Lepas sematan" -#: src/view/screens/ProfileList.tsx:474 +#: src/view/screens/ProfileFeed.tsx:291 +msgid "Unpin from home" +msgstr "" + +#: src/view/screens/ProfileList.tsx:444 msgid "Unpin moderation list" msgstr "Lepas sematan daftar moderasi" #: src/view/screens/ProfileFeed.tsx:346 -msgid "Unsave" -msgstr "Batal simpan" +#~ msgid "Unsave" +#~ msgstr "Batal simpan" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:220 +msgid "Unsubscribe" +msgstr "" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:184 +msgid "Unsubscribe from this labeler" +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:70 +msgid "Unwanted Sexual Content" +msgstr "" #: src/view/com/modals/UserAddRemoveLists.tsx:70 msgid "Update {displayName} in Lists" msgstr "Memperbarui {displayName} di Daftar" #: src/lib/hooks/useOTAUpdate.ts:15 -msgid "Update Available" -msgstr "Pembaruan Tersedia" +#~ msgid "Update Available" +#~ msgstr "Pembaruan Tersedia" + +#: src/view/com/modals/ChangeHandle.tsx:509 +msgid "Update to {handle}" +msgstr "" #: src/view/com/auth/login/SetNewPasswordForm.tsx:204 msgid "Updating..." @@ -4545,11 +5459,38 @@ msgstr "Memperbarui..." msgid "Upload a text file to:" msgstr "Unggah berkas teks ke:" -#: src/view/screens/AppPasswords.tsx:195 +#: src/view/com/util/UserAvatar.tsx:326 +#: src/view/com/util/UserAvatar.tsx:329 +#: src/view/com/util/UserBanner.tsx:116 +#: src/view/com/util/UserBanner.tsx:119 +msgid "Upload from Camera" +msgstr "" + +#: src/view/com/util/UserAvatar.tsx:343 +#: src/view/com/util/UserBanner.tsx:133 +msgid "Upload from Files" +msgstr "" + +#: src/view/com/util/UserAvatar.tsx:337 +#: src/view/com/util/UserAvatar.tsx:341 +#: src/view/com/util/UserBanner.tsx:127 +#: src/view/com/util/UserBanner.tsx:131 +msgid "Upload from Library" +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:409 +msgid "Use a file on your server" +msgstr "" + +#: src/view/screens/AppPasswords.tsx:197 msgid "Use app passwords to login to other Bluesky clients without giving full access to your account or password." msgstr "Gunakan kata sandi aplikasi untuk masuk ke klien Bluesky lainnya tanpa memberikan akses penuh ke akun atau kata sandi Anda." -#: src/view/com/modals/ChangeHandle.tsx:515 +#: src/view/com/modals/ChangeHandle.tsx:518 +msgid "Use bsky.social as hosting provider" +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:517 msgid "Use default provider" msgstr "Gunakan layanan bawaan" @@ -4563,6 +5504,10 @@ msgstr "Gunakan peramban dalam aplikasi" msgid "Use my default browser" msgstr "Gunakan peramban bawaan saya" +#: src/view/com/modals/ChangeHandle.tsx:401 +msgid "Use the DNS panel" +msgstr "" + #: src/view/com/modals/AddAppPasswords.tsx:155 msgid "Use this to sign into the other app along with your handle." msgstr "Gunakan ini untuk masuk ke aplikasi lain dengan handle Anda." @@ -4575,15 +5520,24 @@ msgstr "Gunakan ini untuk masuk ke aplikasi lain dengan handle Anda." msgid "Used by:" msgstr "Digunakan oleh:" -#: src/view/com/modals/ModerationDetails.tsx:54 +#: src/components/moderation/ModerationDetailsDialog.tsx:65 +#: src/lib/moderation/useModerationCauseDescription.ts:56 msgid "User Blocked" msgstr "Pengguna Diblokir" -#: src/view/com/modals/ModerationDetails.tsx:40 +#: src/lib/moderation/useModerationCauseDescription.ts:48 +msgid "User Blocked by \"{0}\"" +msgstr "" + +#: src/components/moderation/ModerationDetailsDialog.tsx:54 msgid "User Blocked by List" msgstr "Pengguna Diblokir oleh Daftar" -#: src/view/com/modals/ModerationDetails.tsx:60 +#: src/lib/moderation/useModerationCauseDescription.ts:66 +msgid "User Blocking You" +msgstr "" + +#: src/components/moderation/ModerationDetailsDialog.tsx:71 msgid "User Blocks You" msgstr "Pengguna Memblokir Anda" @@ -4596,13 +5550,13 @@ msgstr "Handle pengguna" msgid "User list by {0}" msgstr "Daftar pengguna oleh {0}" -#: src/view/screens/ProfileList.tsx:763 +#: src/view/screens/ProfileList.tsx:777 msgid "User list by <0/>" msgstr "Daftar pengguna oleh<0/>" #: src/view/com/lists/ListCard.tsx:83 #: src/view/com/modals/UserAddRemoveLists.tsx:196 -#: src/view/screens/ProfileList.tsx:761 +#: src/view/screens/ProfileList.tsx:775 msgid "User list by you" msgstr "Daftar pengguna oleh Anda" @@ -4623,7 +5577,7 @@ msgstr "Daftar Pengguna" msgid "Username or email address" msgstr "Nama pengguna atau alamat email" -#: src/view/screens/ProfileList.tsx:797 +#: src/view/screens/ProfileList.tsx:811 msgid "Users" msgstr "Pengguna" @@ -4635,19 +5589,31 @@ msgstr "pengguna yang diikuti <0/>" msgid "Users in \"{0}\"" msgstr "Pengguna di \"{0}\"" +#: src/components/LikesDialog.tsx:85 +msgid "Users that have liked this content or profile" +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:437 +msgid "Value:" +msgstr "" + #: src/view/com/auth/create/Step2.tsx:243 #~ msgid "Verification code" #~ msgstr "" -#: src/view/screens/Settings/index.tsx:910 +#: src/view/com/modals/ChangeHandle.tsx:510 +msgid "Verify {0}" +msgstr "" + +#: src/view/screens/Settings/index.tsx:940 msgid "Verify email" msgstr "Verifikasi email" -#: src/view/screens/Settings/index.tsx:935 +#: src/view/screens/Settings/index.tsx:965 msgid "Verify my email" msgstr "Verifikasi email saya" -#: src/view/screens/Settings/index.tsx:944 +#: src/view/screens/Settings/index.tsx:974 msgid "Verify My Email" msgstr "Verifikasi Email Saya" @@ -4664,7 +5630,7 @@ msgstr "Verifikasi Email Anda" msgid "Video Games" msgstr "" -#: src/view/com/profile/ProfileHeader.tsx:662 +#: src/screens/Profile/Header/Shell.tsx:110 msgid "View {0}'s avatar" msgstr "Lihat avatar {0}" @@ -4672,11 +5638,23 @@ msgstr "Lihat avatar {0}" msgid "View debug entry" msgstr "Lihat entri debug" -#: src/view/com/posts/FeedSlice.tsx:103 +#: src/components/ReportDialog/SelectReportOptionView.tsx:133 +msgid "View details" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:128 +msgid "View details for reporting a copyright violation" +msgstr "" + +#: src/view/com/posts/FeedSlice.tsx:99 msgid "View full thread" msgstr "Lihat utas lengkap" -#: src/view/com/posts/FeedErrorMessage.tsx:172 +#: src/components/moderation/LabelsOnMe.tsx:51 +msgid "View information about these labels" +msgstr "" + +#: src/view/com/posts/FeedErrorMessage.tsx:166 msgid "View profile" msgstr "Lihat profil" @@ -4684,15 +5662,34 @@ msgstr "Lihat profil" msgid "View the avatar" msgstr "Lihat avatar" +#: src/components/LabelingServiceCard/index.tsx:140 +msgid "View the labeling service provided by @{0}" +msgstr "" + +#: src/view/screens/ProfileFeed.tsx:584 +msgid "View users who like this feed" +msgstr "" + #: src/view/com/modals/LinkWarning.tsx:75 +#: src/view/com/modals/LinkWarning.tsx:77 msgid "Visit Site" msgstr "Kunjungi Halaman" -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:42 -#: src/view/com/modals/ContentFilteringSettings.tsx:259 +#: src/components/moderation/GlobalModerationLabelPref.tsx:44 +#: src/lib/moderation/useLabelBehaviorDescription.ts:17 +#: src/lib/moderation/useLabelBehaviorDescription.ts:22 +#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:53 msgid "Warn" msgstr "Peringatkan" +#: src/lib/moderation/useLabelBehaviorDescription.ts:48 +msgid "Warn content" +msgstr "" + +#: src/lib/moderation/useLabelBehaviorDescription.ts:46 +msgid "Warn content and filter from feeds" +msgstr "" + #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:134 msgid "We also think you'll like \"For You\" by Skygaze:" msgstr "" @@ -4729,6 +5726,14 @@ msgstr "" msgid "We recommend our \"Discover\" feed:" msgstr "" +#: src/components/dialogs/BirthDateSettings.tsx:52 +msgid "We were unable to load your birth date preferences. Please try again." +msgstr "" + +#: src/screens/Moderation/index.tsx:387 +msgid "We were unable to load your configured labelers at this time." +msgstr "" + #: src/screens/Onboarding/StepInterests/index.tsx:133 msgid "We weren't able to connect. Please try again to continue setting up your account. If it continues to fail, you can skip this flow." msgstr "" @@ -4738,8 +5743,8 @@ msgid "We will let you know when your account is ready." msgstr "" #: src/view/com/modals/AppealLabel.tsx:48 -msgid "We'll look into your appeal promptly." -msgstr "Kami akan segera memeriksa permohonan banding Anda." +#~ msgid "We'll look into your appeal promptly." +#~ msgstr "Kami akan segera memeriksa permohonan banding Anda." #: src/screens/Onboarding/StepInterests/index.tsx:138 msgid "We'll use this to help customize your experience." @@ -4749,7 +5754,7 @@ msgstr "" msgid "We're so excited to have you join us!" msgstr "Kami sangat senang Anda bergabung dengan kami!" -#: src/view/screens/ProfileList.tsx:86 +#: src/view/screens/ProfileList.tsx:89 msgid "We're sorry, but we were unable to resolve this list. If this persists, please contact the list creator, @{handleOrDid}." msgstr "Mohon maaf, kami tidak dapat menyelesaikan daftar ini. Jika hal ini terus berlanjut, silakan hubungi pembuat daftar, @{handleOrDid}." @@ -4757,16 +5762,20 @@ msgstr "Mohon maaf, kami tidak dapat menyelesaikan daftar ini. Jika hal ini teru msgid "We're sorry, but we weren't able to load your muted words at this time. Please try again." msgstr "" -#: src/view/screens/Search/Search.tsx:254 +#: src/view/screens/Search/Search.tsx:255 msgid "We're sorry, but your search could not be completed. Please try again in a few minutes." msgstr "Maaf, pencarian Anda tidak dapat dilakukan. Mohon coba lagi dalam beberapa menit." -#: src/components/Lists.tsx:211 +#: src/components/Lists.tsx:194 #: src/view/screens/NotFound.tsx:48 msgid "We're sorry! We can't find the page you were looking for." msgstr "Maaf! Kami tidak dapat menemukan halaman yang Anda cari." -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:46 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:319 +msgid "We're sorry! You can only subscribe to ten labelers, and you've reached your limit of ten." +msgstr "" + +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:48 msgid "Welcome to <0>Bluesky" msgstr "Selamat Datang di <0>Bluesky" @@ -4775,14 +5784,14 @@ msgid "What are your interests?" msgstr "" #: src/view/com/modals/report/Modal.tsx:169 -msgid "What is the issue with this {collectionName}?" -msgstr "Apa yang bermasalah dengan {collectionName}?" +#~ msgid "What is the issue with this {collectionName}?" +#~ msgstr "Apa yang bermasalah dengan {collectionName}?" #~ msgid "What's next?" #~ msgstr "Apa selanjutnya?" #: src/view/com/auth/SplashScreen.tsx:59 -#: src/view/com/composer/Composer.tsx:286 +#: src/view/com/composer/Composer.tsx:295 msgid "What's up?" msgstr "Apa kabar?" @@ -4799,16 +5808,36 @@ msgstr "Bahasa apa yang ingin Anda lihat di feed Anda?" msgid "Who can reply" msgstr "Siapa yang dapat membalas" +#: src/components/ReportDialog/SelectReportOptionView.tsx:44 +msgid "Why should this content be reviewed?" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:57 +msgid "Why should this feed be reviewed?" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:54 +msgid "Why should this list be reviewed?" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:51 +msgid "Why should this post be reviewed?" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:48 +msgid "Why should this user be reviewed?" +msgstr "" + #: src/view/com/modals/crop-image/CropImage.web.tsx:102 msgid "Wide" msgstr "Lebar" -#: src/view/com/composer/Composer.tsx:422 +#: src/view/com/composer/Composer.tsx:435 msgid "Write post" msgstr "Tulis postingan" -#: src/view/com/composer/Composer.tsx:285 -#: src/view/com/composer/Prompt.tsx:33 +#: src/view/com/composer/Composer.tsx:294 +#: src/view/com/composer/Prompt.tsx:37 msgid "Write your reply" msgstr "Tulis balasan Anda" @@ -4838,6 +5867,10 @@ msgstr "Ya" msgid "You are in line." msgstr "" +#: src/view/com/profile/ProfileFollows.tsx:93 +msgid "You are not following anyone." +msgstr "" + #: src/view/com/posts/FollowingEmptyState.tsx:67 #: src/view/com/posts/FollowingEndOfFeed.tsx:68 msgid "You can also discover new Custom Feeds to follow." @@ -4860,6 +5893,10 @@ msgstr "" msgid "You can now sign in with your new password." msgstr "Sekarang Anda dapat masuk dengan kata sandi baru." +#: src/view/com/profile/ProfileFollowers.tsx:94 +msgid "You do not have any followers." +msgstr "" + #: src/view/com/modals/InviteCodes.tsx:66 msgid "You don't have any invite codes yet! We'll send you some when you've been on Bluesky for a little longer." msgstr "Anda belum memiliki kode undangan! Kami akan mengirimkan kode saat Anda sudah sedikit lama di Bluesky." @@ -4876,11 +5913,13 @@ msgstr "Anda tidak memiliki feed yang disimpan!" msgid "You don't have any saved feeds." msgstr "Anda tidak memiliki feed yang disimpan." -#: src/view/com/post-thread/PostThread.tsx:465 +#: src/view/com/post-thread/PostThread.tsx:159 msgid "You have blocked the author or you have been blocked by the author." msgstr "Anda telah memblokir atau diblokir oleh penulis ini." -#: src/view/com/modals/ModerationDetails.tsx:56 +#: src/components/moderation/ModerationDetailsDialog.tsx:67 +#: src/lib/moderation/useModerationCauseDescription.ts:50 +#: src/lib/moderation/useModerationCauseDescription.ts:58 msgid "You have blocked this user. You cannot view their content." msgstr "Anda telah memblokir pengguna ini. Anda tidak dapat melihat konten mereka." @@ -4891,9 +5930,26 @@ msgstr "Anda telah memblokir pengguna ini. Anda tidak dapat melihat konten merek msgid "You have entered an invalid code. It should look like XXXXX-XXXXX." msgstr "" +#: src/lib/moderation/useModerationCauseDescription.ts:109 +msgid "You have hidden this post" +msgstr "" + +#: src/components/moderation/ModerationDetailsDialog.tsx:102 +msgid "You have hidden this post." +msgstr "" + +#: src/components/moderation/ModerationDetailsDialog.tsx:95 +#: src/lib/moderation/useModerationCauseDescription.ts:92 +msgid "You have muted this account." +msgstr "" + +#: src/lib/moderation/useModerationCauseDescription.ts:86 +msgid "You have muted this user" +msgstr "" + #: src/view/com/modals/ModerationDetails.tsx:87 -msgid "You have muted this user." -msgstr "Anda telah membisukan pengguna ini." +#~ msgid "You have muted this user." +#~ msgstr "Anda telah membisukan pengguna ini." #: src/view/com/feeds/ProfileFeedgens.tsx:136 msgid "You have no feeds." @@ -4905,34 +5961,50 @@ msgid "You have no lists." msgstr "Anda tidak punya daftar." #: src/view/screens/ModerationBlockedAccounts.tsx:132 -msgid "You have not blocked any accounts yet. To block an account, go to their profile and selected \"Block account\" from the menu on their account." -msgstr "Anda belum memblokir akun lain. Untuk memblokir akun, kunjungi profil mereka dan pilih \"Blokir akun\" pada menu di akun mereka." +msgid "You have not blocked any accounts yet. To block an account, go to their profile and select \"Block account\" from the menu on their account." +msgstr "" -#: src/view/screens/AppPasswords.tsx:87 +#: src/view/screens/ModerationBlockedAccounts.tsx:132 +#~ msgid "You have not blocked any accounts yet. To block an account, go to their profile and selected \"Block account\" from the menu on their account." +#~ msgstr "Anda belum memblokir akun lain. Untuk memblokir akun, kunjungi profil mereka dan pilih \"Blokir akun\" pada menu di akun mereka." + +#: src/view/screens/AppPasswords.tsx:89 msgid "You have not created any app passwords yet. You can create one by pressing the button below." msgstr "Anda belum membuat kata sandi aplikasi. Anda dapat membuatnya dengan menekan tombol di bawah ini." #: src/view/screens/ModerationMutedAccounts.tsx:131 -msgid "You have not muted any accounts yet. To mute an account, go to their profile and selected \"Mute account\" from the menu on their account." -msgstr "Anda belum membisukan akun lain. Untuk membisukan akun, kunjungi profil mereka dan pilih \"Bisukan akun\" pada menu di akun mereka." +msgid "You have not muted any accounts yet. To mute an account, go to their profile and select \"Mute account\" from the menu on their account." +msgstr "" + +#: src/view/screens/ModerationMutedAccounts.tsx:131 +#~ msgid "You have not muted any accounts yet. To mute an account, go to their profile and selected \"Mute account\" from the menu on their account." +#~ msgstr "Anda belum membisukan akun lain. Untuk membisukan akun, kunjungi profil mereka dan pilih \"Bisukan akun\" pada menu di akun mereka." #: src/components/dialogs/MutedWords.tsx:250 msgid "You haven't muted any words or tags yet" msgstr "" +#: src/components/moderation/LabelsOnMeDialog.tsx:69 +msgid "You may appeal these labels if you feel they were placed in error." +msgstr "" + #: src/view/com/modals/ContentFilteringSettings.tsx:175 -msgid "You must be 18 or older to enable adult content." -msgstr "Anda harus berusia 18 tahun atau lebih untuk mengaktifkan konten dewasa." +#~ msgid "You must be 18 or older to enable adult content." +#~ msgstr "Anda harus berusia 18 tahun atau lebih untuk mengaktifkan konten dewasa." -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:103 +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:110 msgid "You must be 18 years or older to enable adult content" msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:147 +#: src/components/ReportDialog/SubmitView.tsx:205 +msgid "You must select at least one labeler for a report" +msgstr "" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:144 msgid "You will no longer receive notifications for this thread" msgstr "Anda tidak akan lagi menerima notifikasi untuk utas ini" -#: src/view/com/util/forms/PostDropdownBtn.tsx:150 +#: src/view/com/util/forms/PostDropdownBtn.tsx:147 msgid "You will now receive notifications for this thread" msgstr "Anda sekarang akan menerima notifikasi untuk utas ini" @@ -4940,7 +6012,7 @@ msgstr "Anda sekarang akan menerima notifikasi untuk utas ini" msgid "You will receive an email with a \"reset code.\" Enter that code here, then enter your new password." msgstr "Anda akan menerima email berisikan \"kode reset\". Masukkan kode tersebut di sini, lalu masukkan kata sandi baru." -#: src/screens/Onboarding/StepModeration/index.tsx:72 +#: src/screens/Onboarding/StepModeration/index.tsx:59 msgid "You're in control" msgstr "" @@ -4954,6 +6026,11 @@ msgstr "" msgid "You're ready to go!" msgstr "" +#: src/components/moderation/ModerationDetailsDialog.tsx:99 +#: src/lib/moderation/useModerationCauseDescription.ts:101 +msgid "You've chosen to hide a word or tag within this post." +msgstr "" + #: src/view/com/posts/FollowingEndOfFeed.tsx:48 msgid "You've reached the end of your feed! Find some more accounts to follow." msgstr "Anda telah mencapai akhir feed Anda! Temukan beberapa akun lain untuk diikuti." @@ -5026,26 +6103,26 @@ msgstr "Handle lengkap Anda akan menjadi <0>@{0}" msgid "Your muted words" msgstr "" -#: src/view/com/modals/ChangePassword.tsx:155 +#: src/view/com/modals/ChangePassword.tsx:157 msgid "Your password has been changed successfully!" msgstr "" -#: src/view/com/composer/Composer.tsx:274 +#: src/view/com/composer/Composer.tsx:283 msgid "Your post has been published" msgstr "Postingan Anda telah dipublikasikan" #: src/screens/Onboarding/StepFinished.tsx:105 #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:59 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:59 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:61 msgid "Your posts, likes, and blocks are public. Mutes are private." msgstr "Postingan, suka, dan blokir Anda bersifat publik. Bisukan bersifat privat." -#: src/view/com/modals/SwitchAccount.tsx:84 -#: src/view/screens/Settings/index.tsx:118 +#: src/view/com/modals/SwitchAccount.tsx:88 +#: src/view/screens/Settings/index.tsx:123 msgid "Your profile" msgstr "Profil Anda" -#: src/view/com/composer/Composer.tsx:273 +#: src/view/com/composer/Composer.tsx:282 msgid "Your reply has been published" msgstr "Balasan Anda telah dipublikasikan" diff --git a/src/locale/locales/it/messages.po b/src/locale/locales/it/messages.po index 89f7b71063..ec8bf6d734 100644 --- a/src/locale/locales/it/messages.po +++ b/src/locale/locales/it/messages.po @@ -18,7 +18,6 @@ msgstr "" msgid "(no email)" msgstr "(no email)" -#: src/view/shell/desktop/RightNav.tsx:168 #~ msgid "{0, plural, one {# invite code available} other {# invite codes available}}" #~ msgstr "{0, plural, one {# codice d'invito disponibile} other {# codici d'inviti disponibili}}" @@ -26,13 +25,25 @@ msgstr "(no email)" #~ msgstr "{0}" #~ msgid "{0} {purposeLabel} List" -#~ msgstr "Llista {purposeLabel} {0}" +#~ msgstr "Lista {purposeLabel} {0}" -#: src/view/com/profile/ProfileHeader.tsx:593 +#: src/screens/Profile/Header/Metrics.tsx:45 msgid "{following} following" msgstr "{following} seguendo" -#: src/view/shell/Drawer.tsx:440 +#~ msgid "{invitesAvailable, plural, one {Invite codes: # available} other {Invite codes: # available}}" +#~ msgstr "{invitesAvailable, plural, one {Codici d'invito: # available} other {Codici d'invito: # available}}" + +#~ msgid "{invitesAvailable} invite code available" +#~ msgstr "{invitesAvailable} codice d'invito disponibile" + +#~ msgid "{invitesAvailable} invite codes available" +#~ msgstr "{invitesAvailable} codici d'invito disponibili" + +#~ msgid "{message}" +#~ msgstr "{message}" + +#: src/view/shell/Drawer.tsx:443 msgid "{numUnreadNotifications} unread" msgstr "{numUnreadNotifications} non letto" @@ -40,7 +51,11 @@ msgstr "{numUnreadNotifications} non letto" msgid "<0/> members" msgstr "<0/> membri" -#: src/view/com/profile/ProfileHeader.tsx:595 +#: src/view/shell/Drawer.tsx:97 +msgid "<0>{0} following" +msgstr "" + +#: src/screens/Profile/Header/Metrics.tsx:46 msgid "<0>{following} <1>following" msgstr "<0>{following} <1>seguiti" @@ -56,20 +71,20 @@ msgstr "<0>Segui alcuni<1>utenti<2>consigliati" msgid "<0>Welcome to<1>Bluesky" msgstr "<0>Ti diamo il benvenuto a<1>Bluesky" -#: src/view/com/profile/ProfileHeader.tsx:558 +#: src/screens/Profile/Header/Handle.tsx:42 msgid "⚠Invalid Handle" msgstr "⚠Nome utente non valido" #: src/view/com/util/moderation/LabelInfo.tsx:45 -msgid "A content warning has been applied to this {0}." -msgstr "A questo post è stato applicato un avviso di contenuto {0}." +#~ msgid "A content warning has been applied to this {0}." +#~ msgstr "A questo post è stato applicato un avviso di contenuto {0}." #: src/lib/hooks/useOTAUpdate.ts:16 -msgid "A new version of the app is available. Please update to continue using the app." -msgstr "È disponibile una nuova versione dell'app. Aggiorna per continuare a utilizzarla." +#~ msgid "A new version of the app is available. Please update to continue using the app." +#~ msgstr "È disponibile una nuova versione dell'app. Aggiorna per continuare a utilizzarla." #: src/view/com/util/ViewHeader.tsx:89 -#: src/view/screens/Search/Search.tsx:647 +#: src/view/screens/Search/Search.tsx:648 msgid "Access navigation links and settings" msgstr "Accedi alle impostazioni di navigazione" @@ -78,29 +93,38 @@ msgid "Access profile and other navigation links" msgstr "Accedi al profilo e altre impostazioni di navigazione" #: src/view/com/modals/EditImage.tsx:299 -#: src/view/screens/Settings/index.tsx:451 +#: src/view/screens/Settings/index.tsx:466 msgid "Accessibility" msgstr "Accessibilità" +#: src/components/moderation/LabelsOnMe.tsx:42 +msgid "account" +msgstr "" + #: src/view/com/auth/login/LoginForm.tsx:166 -#: src/view/screens/Settings/index.tsx:308 -#: src/view/screens/Settings/index.tsx:721 +#: src/view/screens/Settings/index.tsx:323 +#: src/view/screens/Settings/index.tsx:739 msgid "Account" msgstr "Account" -#: src/view/com/profile/ProfileHeader.tsx:246 +#: src/view/com/profile/ProfileMenu.tsx:139 msgid "Account blocked" msgstr "Account bloccato" -#: src/view/com/profile/ProfileHeader.tsx:213 +#: src/view/com/profile/ProfileMenu.tsx:153 +msgid "Account followed" +msgstr "" + +#: src/view/com/profile/ProfileMenu.tsx:113 msgid "Account muted" msgstr "Account silenziato" -#: src/view/com/modals/ModerationDetails.tsx:86 +#: src/components/moderation/ModerationDetailsDialog.tsx:94 +#: src/lib/moderation/useModerationCauseDescription.ts:91 msgid "Account Muted" msgstr "Account Silenziato" -#: src/view/com/modals/ModerationDetails.tsx:72 +#: src/components/moderation/ModerationDetailsDialog.tsx:83 msgid "Account Muted by List" msgstr "Account silenziato dalla Lista" @@ -112,19 +136,24 @@ msgstr "Opzioni dell'account" msgid "Account removed from quick access" msgstr "Account rimosso dall'accesso immediato" -#: src/view/com/profile/ProfileHeader.tsx:268 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:130 +#: src/view/com/profile/ProfileMenu.tsx:128 msgid "Account unblocked" msgstr "Account sbloccato" -#: src/view/com/profile/ProfileHeader.tsx:226 +#: src/view/com/profile/ProfileMenu.tsx:166 +msgid "Account unfollowed" +msgstr "" + +#: src/view/com/profile/ProfileMenu.tsx:102 msgid "Account unmuted" msgstr "Account non silenziato" #: src/components/dialogs/MutedWords.tsx:165 #: src/view/com/auth/onboarding/RecommendedFeedsItem.tsx:150 -#: src/view/com/modals/ListAddRemoveUsers.tsx:264 +#: src/view/com/modals/ListAddRemoveUsers.tsx:268 #: src/view/com/modals/UserAddRemoveLists.tsx:219 -#: src/view/screens/ProfileList.tsx:813 +#: src/view/screens/ProfileList.tsx:827 msgid "Add" msgstr "Aggiungi" @@ -132,12 +161,12 @@ msgstr "Aggiungi" msgid "Add a content warning" msgstr "Aggiungi un avviso sul contenuto" -#: src/view/screens/ProfileList.tsx:803 +#: src/view/screens/ProfileList.tsx:817 msgid "Add a user to this list" msgstr "Aggiungi un utente a questo elenco" -#: src/view/screens/Settings/index.tsx:383 -#: src/view/screens/Settings/index.tsx:392 +#: src/view/screens/Settings/index.tsx:398 +#: src/view/screens/Settings/index.tsx:407 msgid "Add account" msgstr "Aggiungi account" @@ -147,25 +176,26 @@ msgstr "Aggiungi account" msgid "Add alt text" msgstr "Aggiungi testo alternativo" -#: src/view/screens/AppPasswords.tsx:102 src/view/screens/AppPasswords.tsx:143 -#: src/view/screens/AppPasswords.tsx:156 +#: src/view/screens/AppPasswords.tsx:104 +#: src/view/screens/AppPasswords.tsx:145 +#: src/view/screens/AppPasswords.tsx:158 msgid "Add App Password" msgstr "Aggiungi la Password per l'App" #: src/view/com/modals/report/InputIssueDetails.tsx:41 #: src/view/com/modals/report/Modal.tsx:191 -msgid "Add details" -msgstr "Aggiungi i dettagli" +#~ msgid "Add details" +#~ msgstr "Aggiungi i dettagli" #: src/view/com/modals/report/Modal.tsx:194 -msgid "Add details to report" -msgstr "Aggiungi dettagli da segnalare" +#~ msgid "Add details to report" +#~ msgstr "Aggiungi dettagli da segnalare" -#: src/view/com/composer/Composer.tsx:453 +#: src/view/com/composer/Composer.tsx:466 msgid "Add link card" msgstr "Aggiungi la scheda collegata al link" -#: src/view/com/composer/Composer.tsx:458 +#: src/view/com/composer/Composer.tsx:471 msgid "Add link card:" msgstr "Aggiungi la scheda relazionata al link:" @@ -181,12 +211,12 @@ msgstr "" msgid "Add the following DNS record to your domain:" msgstr "Aggiungi il seguente record DNS al tuo dominio:" -#: src/view/com/profile/ProfileHeader.tsx:310 +#: src/view/com/profile/ProfileMenu.tsx:263 +#: src/view/com/profile/ProfileMenu.tsx:266 msgid "Add to Lists" msgstr "Aggiungi alle liste" -#: src/view/com/feeds/FeedSourceCard.tsx:245 -#: src/view/screens/ProfileFeed.tsx:273 +#: src/view/com/feeds/FeedSourceCard.tsx:234 msgid "Add to my feeds" msgstr "Aggiungi ai miei feed" @@ -199,7 +229,7 @@ msgstr "Aggiunto" msgid "Added to list" msgstr "Aggiunto alla lista" -#: src/view/com/feeds/FeedSourceCard.tsx:127 +#: src/view/com/feeds/FeedSourceCard.tsx:108 msgid "Added to my feeds" msgstr "Aggiunto ai miei feeds" @@ -207,15 +237,21 @@ msgstr "Aggiunto ai miei feeds" msgid "Adjust the number of likes a reply must have to be shown in your feed." msgstr "Modifica il numero Mi Piace che una risposta deve avere per essere mostrata nel tuo feed." +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:117 #: src/view/com/modals/SelfLabel.tsx:75 msgid "Adult Content" msgstr "Contenuto per adulti" #: src/view/com/modals/ContentFilteringSettings.tsx:141 -msgid "Adult content can only be enabled via the Web at <0/>." -msgstr "I contenuti per adulti possono essere abilitati solo dal sito Web a <0/>." +#~ msgid "Adult content can only be enabled via the Web at <0/>." +#~ msgstr "I contenuti per adulti possono essere abilitati solo dal sito Web a <0/>." -#: src/view/screens/Settings/index.tsx:664 +#: src/components/moderation/ModerationLabelPref.tsx:114 +msgid "Adult content is disabled." +msgstr "" + +#: src/screens/Moderation/index.tsx:377 +#: src/view/screens/Settings/index.tsx:680 msgid "Advanced" msgstr "Avanzato" @@ -224,11 +260,11 @@ msgid "All the feeds you've saved, right in one place." msgstr "Tutti i feed che hai salvato, in un unico posto." #: src/view/com/auth/login/ForgotPasswordForm.tsx:221 -#: src/view/com/modals/ChangePassword.tsx:168 +#: src/view/com/modals/ChangePassword.tsx:170 msgid "Already have a code?" msgstr "Hai già un codice?" -#: src/view/com/auth/login/ChooseAccountForm.tsx:98 +#: src/view/com/auth/login/ChooseAccountForm.tsx:102 msgid "Already signed in as @{0}" msgstr "Già effettuato l'accesso come @{0}" @@ -252,12 +288,18 @@ msgstr "È stata inviata un'e-mail a {0}. Include un codice di conferma che puoi msgid "An email has been sent to your previous address, {0}. It includes a confirmation code which you can enter below." msgstr "Una email è stata inviata al tuo indirizzo precedente, {0}. Include un codice di conferma che puoi inserire di seguito." -#: src/view/com/profile/FollowButton.tsx:30 -#: src/view/com/profile/FollowButton.tsx:40 +#: src/lib/moderation/useReportOptions.ts:26 +msgid "An issue not included in these options" +msgstr "" + +#: src/view/com/profile/FollowButton.tsx:35 +#: src/view/com/profile/FollowButton.tsx:45 +#: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:188 +#: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:198 msgid "An issue occurred, please try again." msgstr "Si è verificato un problema, riprova un'altra volta." -#: src/view/com/notifications/FeedItem.tsx:237 +#: src/view/com/notifications/FeedItem.tsx:240 #: src/view/com/threadgate/WhoCanReply.tsx:178 msgid "and" msgstr "e" @@ -266,11 +308,15 @@ msgstr "e" msgid "Animals" msgstr "Animali" +#: src/lib/moderation/useReportOptions.ts:31 +msgid "Anti-Social Behavior" +msgstr "" + #: src/view/screens/LanguageSettings.tsx:95 msgid "App Language" msgstr "Lingua dell'app" -#: src/view/screens/AppPasswords.tsx:228 +#: src/view/screens/AppPasswords.tsx:223 msgid "App password deleted" msgstr "Password dell'app eliminata" @@ -282,57 +328,75 @@ msgstr "Le password per le app possono contenere solo lettere, numeri, spazi, tr msgid "App Password names must be at least 4 characters long." msgstr "I nomi delle password delle app devono contenere almeno 4 caratteri." -#: src/view/screens/Settings/index.tsx:675 +#: src/view/screens/Settings/index.tsx:691 msgid "App password settings" msgstr "Impostazioni della password dell'app" -#: src/view/screens/Settings.tsx:650 #~ msgid "App passwords" #~ msgstr "Passwords dell'app" -#: src/Navigation.tsx:239 -#: src/view/screens/AppPasswords.tsx:187 -#: src/view/screens/Settings/index.tsx:684 +#: src/Navigation.tsx:251 +#: src/view/screens/AppPasswords.tsx:189 +#: src/view/screens/Settings/index.tsx:700 msgid "App Passwords" msgstr "Passwords dell'App" +#: src/components/moderation/LabelsOnMeDialog.tsx:134 +#: src/components/moderation/LabelsOnMeDialog.tsx:137 +msgid "Appeal" +msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:202 +msgid "Appeal \"{0}\" label" +msgstr "" + #: src/view/com/util/forms/PostDropdownBtn.tsx:337 #: src/view/com/util/forms/PostDropdownBtn.tsx:346 -msgid "Appeal content warning" -msgstr "Ricorso contro l'avviso sui contenuti" +#~ msgid "Appeal content warning" +#~ msgstr "Ricorso contro l'avviso sui contenuti" #: src/view/com/modals/AppealLabel.tsx:65 -msgid "Appeal Content Warning" -msgstr "Ricorso contro l'Avviso sui Contenuti" +#~ msgid "Appeal Content Warning" +#~ msgstr "Ricorso contro l'Avviso sui Contenuti" + +#~ msgid "Appeal Decision" +#~ msgstr "Decisión de apelación" + +#: src/components/moderation/LabelsOnMeDialog.tsx:193 +msgid "Appeal submitted." +msgstr "" #: src/view/com/util/moderation/LabelInfo.tsx:52 -msgid "Appeal this decision" -msgstr "Appella contro questa decisione" +#~ msgid "Appeal this decision" +#~ msgstr "Appella contro questa decisione" #: src/view/com/util/moderation/LabelInfo.tsx:56 -msgid "Appeal this decision." -msgstr "Appella contro questa decisione." +#~ msgid "Appeal this decision." +#~ msgstr "Appella contro questa decisione." -#: src/view/screens/Settings/index.tsx:466 +#: src/view/screens/Settings/index.tsx:481 msgid "Appearance" msgstr "Aspetto" -#: src/view/screens/AppPasswords.tsx:224 +#: src/view/screens/AppPasswords.tsx:265 msgid "Are you sure you want to delete the app password \"{name}\"?" msgstr "Conferma di voler eliminare la password dell'app \"{name}\"?" -#: src/view/com/composer/Composer.tsx:150 +#: src/view/com/feeds/FeedSourceCard.tsx:280 +msgid "Are you sure you want to remove {0} from your feeds?" +msgstr "" + +#: src/view/com/composer/Composer.tsx:508 msgid "Are you sure you'd like to discard this draft?" msgstr "Conferma di voler eliminare questa bozza?" #: src/components/dialogs/MutedWords.tsx:282 -#: src/view/screens/ProfileList.tsx:365 msgid "Are you sure?" msgstr "Confermi?" #: src/view/com/util/forms/PostDropdownBtn.tsx:322 -msgid "Are you sure? This cannot be undone." -msgstr "Vuoi proseguire? Questa operazione non può essere annullata." +#~ msgid "Are you sure? This cannot be undone." +#~ msgstr "Vuoi proseguire? Questa operazione non può essere annullata." #: src/view/com/composer/select-language/SuggestedLanguage.tsx:60 msgid "Are you writing in <0>{0}?" @@ -346,78 +410,86 @@ msgstr "Arte" msgid "Artistic or non-erotic nudity." msgstr "Nudità artistica o non erotica." +#: src/components/moderation/LabelsOnMeDialog.tsx:247 +#: src/components/moderation/LabelsOnMeDialog.tsx:248 +#: src/screens/Profile/Header/Shell.tsx:97 #: src/view/com/auth/create/CreateAccount.tsx:158 -#: src/view/com/auth/login/ChooseAccountForm.tsx:151 +#: src/view/com/auth/login/ChooseAccountForm.tsx:155 #: src/view/com/auth/login/ForgotPasswordForm.tsx:174 #: src/view/com/auth/login/LoginForm.tsx:259 #: src/view/com/auth/login/SetNewPasswordForm.tsx:179 -#: src/view/com/modals/report/InputIssueDetails.tsx:46 -#: src/view/com/post-thread/PostThread.tsx:472 -#: src/view/com/post-thread/PostThread.tsx:522 -#: src/view/com/post-thread/PostThread.tsx:530 -#: src/view/com/profile/ProfileHeader.tsx:649 #: src/view/com/util/ViewHeader.tsx:87 msgid "Back" msgstr "Indietro" #: src/view/com/post-thread/PostThread.tsx:480 -msgctxt "action" -msgid "Back" -msgstr "Indietro" +#~ msgctxt "action" +#~ msgid "Back" +#~ msgstr "Indietro" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:136 msgid "Based on your interest in {interestsText}" msgstr "Basato su i tuoi interessi {interestsText}" -#: src/view/screens/Settings/index.tsx:523 +#: src/view/screens/Settings/index.tsx:538 msgid "Basics" msgstr "Preferenze" +#: src/components/dialogs/BirthDateSettings.tsx:107 #: src/view/com/auth/create/Step1.tsx:227 -#: src/view/com/modals/BirthDateSettings.tsx:73 msgid "Birthday" msgstr "Compleanno" -#: src/view/screens/Settings/index.tsx:340 +#: src/view/screens/Settings/index.tsx:355 msgid "Birthday:" msgstr "Compleanno:" -#: src/view/com/profile/ProfileHeader.tsx:239 -#: src/view/com/profile/ProfileHeader.tsx:346 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:278 +#: src/view/com/profile/ProfileMenu.tsx:361 +msgid "Block" +msgstr "" + +#: src/view/com/profile/ProfileMenu.tsx:300 +#: src/view/com/profile/ProfileMenu.tsx:307 msgid "Block Account" msgstr "Blocca l'account" -#: src/view/screens/ProfileList.tsx:556 +#: src/view/com/profile/ProfileMenu.tsx:344 +msgid "Block Account?" +msgstr "" + +#: src/view/screens/ProfileList.tsx:530 msgid "Block accounts" msgstr "Blocca gli accounts" -#: src/view/screens/ProfileList.tsx:506 +#: src/view/screens/ProfileList.tsx:478 +#: src/view/screens/ProfileList.tsx:634 msgid "Block list" msgstr "Lista di blocchi" -#: src/view/screens/ProfileList.tsx:316 +#: src/view/screens/ProfileList.tsx:629 msgid "Block these accounts?" msgstr "Vuoi bloccare questi accounts?" #: src/view/screens/ProfileList.tsx:320 -msgid "Block this List" -msgstr "Blocca questa Lista" +#~ msgid "Block this List" +#~ msgstr "Blocca questa Lista" #: src/view/com/lists/ListCard.tsx:110 -#: src/view/com/util/post-embeds/QuoteEmbed.tsx:61 +#: src/view/com/util/post-embeds/QuoteEmbed.tsx:55 msgid "Blocked" msgstr "Bloccato" -#: src/view/screens/Moderation.tsx:142 +#: src/screens/Moderation/index.tsx:269 msgid "Blocked accounts" msgstr "Accounts bloccati" -#: src/Navigation.tsx:132 +#: src/Navigation.tsx:134 #: src/view/screens/ModerationBlockedAccounts.tsx:107 msgid "Blocked Accounts" msgstr "Accounts bloccati" -#: src/view/com/profile/ProfileHeader.tsx:241 +#: src/view/com/profile/ProfileMenu.tsx:356 msgid "Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you." msgstr "Gli account bloccati non possono rispondere nelle tue discussioni, menzionarti o interagire in nessun altro modo con te." @@ -425,15 +497,23 @@ msgstr "Gli account bloccati non possono rispondere nelle tue discussioni, menzi msgid "Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you. You will not see their content and they will be prevented from seeing yours." msgstr "Gli account bloccati non possono rispondere nelle tue discussioni, menzionarti in nessun altro modo con te. Non vedrai il loro contenuto e non vedranno il tuo.." -#: src/view/com/post-thread/PostThread.tsx:324 +#: src/view/com/post-thread/PostThread.tsx:313 msgid "Blocked post." msgstr "Post bloccato." -#: src/view/screens/ProfileList.tsx:318 +#: src/screens/Profile/Sections/Labels.tsx:153 +msgid "Blocking does not prevent this labeler from placing labels on your account." +msgstr "" + +#: src/view/screens/ProfileList.tsx:631 msgid "Blocking is public. Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you." msgstr "Il blocco è pubblico. Gli accounts bloccati non possono rispondere nelle tue discussioni, menzionarti o interagire con te in nessun altro modo." -#: src/view/com/auth/HomeLoggedOutCTA.tsx:93 +#: src/view/com/profile/ProfileMenu.tsx:353 +msgid "Blocking will not prevent labels from being applied on your account, but it will stop this account from replying in your threads or interacting with you." +msgstr "" + +#: src/view/com/auth/HomeLoggedOutCTA.tsx:97 #: src/view/com/auth/SplashScreen.web.tsx:133 msgid "Blog" msgstr "Blog" @@ -449,17 +529,17 @@ msgid "Bluesky is an open network where you can choose your hosting provider. Cu msgstr "Bluesky è una network aperto in cui puoi scegliere il tuo provider di hosting. L'hosting personalizzato adesso è disponibile in versione beta per i developers." #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:80 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:80 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:82 msgid "Bluesky is flexible." msgstr "Bluesky è flessibile." #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:69 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:69 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:71 msgid "Bluesky is open." msgstr "Bluesky è aperto." #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:56 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:56 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:58 msgid "Bluesky is public." msgstr "Bluesky è pubblico." @@ -467,23 +547,37 @@ msgstr "Bluesky è pubblico." #~ msgid "Bluesky uses invites to build a healthier community. If you don't know anybody with an invite, you can sign up for the waitlist and we'll send one soon." #~ msgstr "Bluesky utilizza gli inviti per costruire una comunità più sana. Se non conosci nessuno con un invito, puoi iscriverti alla lista d'attesa e te ne invieremo uno al più presto." -#: src/view/screens/Moderation.tsx:245 +#: src/screens/Moderation/index.tsx:535 msgid "Bluesky will not show your profile and posts to logged-out users. Other apps may not honor this request. This does not make your account private." msgstr "Bluesky non mostrerà il tuo profilo e i tuoi post agli utenti disconnessi. Altre app potrebbero non rispettare questa richiesta. Questo non rende il tuo account privato." +#~ msgid "Bluesky.Social" +#~ msgstr "Bluesky.Social" + +#: src/lib/moderation/useLabelBehaviorDescription.ts:53 +msgid "Blur images" +msgstr "" + +#: src/lib/moderation/useLabelBehaviorDescription.ts:51 +msgid "Blur images and filter from feeds" +msgstr "" + #: src/screens/Onboarding/index.tsx:33 msgid "Books" msgstr "Libri" -#: src/view/screens/Settings/index.tsx:859 +#: src/view/screens/Settings/index.tsx:889 msgid "Build version {0} {1}" msgstr "Versione {0} {1}" -#: src/view/com/auth/HomeLoggedOutCTA.tsx:87 +#: src/view/com/auth/HomeLoggedOutCTA.tsx:91 #: src/view/com/auth/SplashScreen.web.tsx:128 msgid "Business" msgstr "Attività commerciale" +#~ msgid "Button disabled. Input custom domain to proceed." +#~ msgstr "Pulsante disabilitato. Inserisci il dominio personalizzato per procedere." + #: src/view/com/profile/ProfileSubpageHeader.tsx:157 msgid "by —" msgstr "da—" @@ -492,16 +586,23 @@ msgstr "da—" msgid "by {0}" msgstr "da {0}" +#: src/components/LabelingServiceCard/index.tsx:57 +msgid "By {0}" +msgstr "" + #: src/view/com/profile/ProfileSubpageHeader.tsx:161 msgid "by <0/>" msgstr "da <0/>" +#: src/view/com/auth/create/Policies.tsx:87 +msgid "By creating an account you agree to the {els}." +msgstr "" + #: src/view/com/profile/ProfileSubpageHeader.tsx:159 msgid "by you" msgstr "da te" -#: src/view/com/composer/photos/OpenCameraBtn.tsx:60 -#: src/view/com/util/UserAvatar.tsx:224 src/view/com/util/UserBanner.tsx:40 +#: src/view/com/composer/photos/OpenCameraBtn.tsx:77 msgid "Camera" msgstr "Fotocamera" @@ -509,26 +610,33 @@ msgstr "Fotocamera" msgid "Can only contain letters, numbers, spaces, dashes, and underscores. Must be at least 4 characters long, but no more than 32 characters long." msgstr "Può contenere solo lettere, numeri, spazi, trattini e trattini bassi. Deve contenere almeno 4 caratteri, ma non più di 32 caratteri." -#: src/components/Prompt.tsx:101 -#: src/view/com/composer/Composer.tsx:307 -#: src/view/com/composer/Composer.tsx:312 +#: src/components/Menu/index.tsx:213 +#: src/components/Prompt.tsx:116 +#: src/components/Prompt.tsx:118 +#: src/components/TagMenu/index.tsx:268 +#: src/view/com/composer/Composer.tsx:316 +#: src/view/com/composer/Composer.tsx:321 #: src/view/com/modals/ChangeEmail.tsx:218 #: src/view/com/modals/ChangeEmail.tsx:220 -#: src/view/com/modals/ChangePassword.tsx:265 -#: src/view/com/modals/ChangePassword.tsx:268 +#: src/view/com/modals/ChangeHandle.tsx:153 +#: src/view/com/modals/ChangePassword.tsx:267 +#: src/view/com/modals/ChangePassword.tsx:270 #: src/view/com/modals/CreateOrEditList.tsx:355 +#: src/view/com/modals/crop-image/CropImage.web.tsx:137 #: src/view/com/modals/EditImage.tsx:323 #: src/view/com/modals/EditProfile.tsx:249 #: src/view/com/modals/InAppBrowserConsent.tsx:78 -#: src/view/com/modals/LinkWarning.tsx:87 src/view/com/modals/Repost.tsx:87 +#: src/view/com/modals/InAppBrowserConsent.tsx:80 +#: src/view/com/modals/LinkWarning.tsx:87 +#: src/view/com/modals/LinkWarning.tsx:89 +#: src/view/com/modals/Repost.tsx:87 #: src/view/com/modals/VerifyEmail.tsx:247 #: src/view/com/modals/VerifyEmail.tsx:253 -#: src/view/screens/Search/Search.tsx:716 -#: src/view/shell/desktop/Search.tsx:238 +#: src/view/screens/Search/Search.tsx:717 +#: src/view/shell/desktop/Search.tsx:239 msgid "Cancel" msgstr "Cancella" -#: src/view/com/modals/Confirm.tsx:88 src/view/com/modals/Confirm.tsx:91 #: src/view/com/modals/CreateOrEditList.tsx:360 #: src/view/com/modals/DeleteAccount.tsx:156 #: src/view/com/modals/DeleteAccount.tsx:234 @@ -541,6 +649,9 @@ msgstr "Cancella" msgid "Cancel account deletion" msgstr "Annulla la cancellazione dell'account" +#~ msgid "Cancel add image alt text" +#~ msgstr "Cancel·la afegir text a la imatge" + #: src/view/com/modals/ChangeHandle.tsx:149 msgid "Cancel change handle" msgstr "Annulla il cambio del tuo nome utente" @@ -558,7 +669,7 @@ msgid "Cancel quote post" msgstr "Annnulla la citazione del post" #: src/view/com/modals/ListAddRemoveUsers.tsx:87 -#: src/view/shell/desktop/Search.tsx:234 +#: src/view/shell/desktop/Search.tsx:235 msgid "Cancel search" msgstr "Annulla la ricerca" @@ -566,17 +677,25 @@ msgstr "Annulla la ricerca" #~ msgid "Cancel waitlist signup" #~ msgstr "Annulla l'iscrizione alla lista d'attesa" -#: src/view/screens/Settings/index.tsx:334 +#: src/view/com/modals/LinkWarning.tsx:88 +msgid "Cancels opening the linked website" +msgstr "" + +#: src/view/screens/Settings/index.tsx:349 msgctxt "action" msgid "Change" msgstr "Cambia" -#: src/view/screens/Settings/index.tsx:696 +#: src/view/com/modals/VerifyEmail.tsx:152 +msgid "Change" +msgstr "Cambia" + +#: src/view/screens/Settings/index.tsx:712 msgid "Change handle" msgstr "Cambia il nome utente" #: src/view/com/modals/ChangeHandle.tsx:161 -#: src/view/screens/Settings/index.tsx:705 +#: src/view/screens/Settings/index.tsx:723 msgid "Change Handle" msgstr "Cambia il Nome Utente" @@ -584,11 +703,12 @@ msgstr "Cambia il Nome Utente" msgid "Change my email" msgstr "Cambia la mia email" -#: src/view/screens/Settings/index.tsx:732 +#: src/view/screens/Settings/index.tsx:750 msgid "Change password" msgstr "Cambia la password" -#: src/view/screens/Settings/index.tsx:741 +#: src/view/com/modals/ChangePassword.tsx:141 +#: src/view/screens/Settings/index.tsx:761 msgid "Change Password" msgstr "Cambia la Password" @@ -597,14 +717,15 @@ msgid "Change post language to {0}" msgstr "Cambia la lingua del post a {0}" #: src/view/screens/Settings/index.tsx:733 -msgid "Change your Bluesky password" -msgstr "Cambia la tua password di Bluesky" +#~ msgid "Change your Bluesky password" +#~ msgstr "Cambia la tua password di Bluesky" #: src/view/com/modals/ChangeEmail.tsx:109 msgid "Change Your Email" msgstr "Cambia la tua email" -#: src/screens/Deactivated.tsx:72 src/screens/Deactivated.tsx:76 +#: src/screens/Deactivated.tsx:72 +#: src/screens/Deactivated.tsx:76 msgid "Check my status" msgstr "Verifica il mio stato" @@ -625,8 +746,8 @@ msgid "Choose \"Everybody\" or \"Nobody\"" msgstr "Scegli \"Tutti\" o \"Nessuno\"" #: src/view/screens/Settings/index.tsx:697 -msgid "Choose a new Bluesky username or create" -msgstr "Scegli un nuovo nome utente Bluesky o creane uno" +#~ msgid "Choose a new Bluesky username or create" +#~ msgstr "Scegli un nuovo nome utente Bluesky o creane uno" #: src/view/com/auth/server-input/index.tsx:79 msgid "Choose Service" @@ -637,7 +758,7 @@ msgid "Choose the algorithms that power your custom feeds." msgstr "Scegli gli algoritmi che compilano i tuoi feed personalizzati." #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:83 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:83 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:85 msgid "Choose the algorithms that power your experience with custom feeds." msgstr "Scegli gli algoritmi che alimentano la tua esperienza con feed personalizzati." @@ -649,29 +770,35 @@ msgstr "Scegli i tuoi feed principali" msgid "Choose your password" msgstr "Scegli la tua password" -#: src/view/screens/Settings/index.tsx:834 -#: src/view/screens/Settings/index.tsx:835 +#: src/view/screens/Settings/index.tsx:864 msgid "Clear all legacy storage data" msgstr "Cancella tutti i dati legacy in archivio" -#: src/view/screens/Settings/index.tsx:837 +#: src/view/screens/Settings/index.tsx:867 msgid "Clear all legacy storage data (restart after this)" msgstr "Cancella tutti i dati legacy in archivio (poi ricomincia)" -#: src/view/screens/Settings/index.tsx:846 -#: src/view/screens/Settings/index.tsx:847 +#: src/view/screens/Settings/index.tsx:876 msgid "Clear all storage data" msgstr "Cancella tutti i dati in archivio" -#: src/view/screens/Settings/index.tsx:849 +#: src/view/screens/Settings/index.tsx:879 msgid "Clear all storage data (restart after this)" msgstr "Cancella tutti i dati in archivio (poi ricomincia)" #: src/view/com/util/forms/SearchInput.tsx:88 -#: src/view/screens/Search/Search.tsx:697 +#: src/view/screens/Search/Search.tsx:698 msgid "Clear search query" msgstr "Annulla la ricerca" +#: src/view/screens/Settings/index.tsx:865 +msgid "Clears all legacy storage data" +msgstr "" + +#: src/view/screens/Settings/index.tsx:877 +msgid "Clears all storage data" +msgstr "" + #: src/view/screens/Support.tsx:40 msgid "click here" msgstr "clicca qui" @@ -688,8 +815,8 @@ msgstr "" msgid "Climate" msgstr "Clima" -#: src/view/com/modals/ChangePassword.tsx:265 -#: src/view/com/modals/ChangePassword.tsx:268 +#: src/view/com/modals/ChangePassword.tsx:267 +#: src/view/com/modals/ChangePassword.tsx:270 msgid "Close" msgstr "Chiudi" @@ -702,27 +829,28 @@ msgstr "Chiudi il dialogo attivo" msgid "Close alert" msgstr "Chiudi l'avviso" -#: src/view/com/util/BottomSheetCustomBackdrop.tsx:33 +#: src/view/com/util/BottomSheetCustomBackdrop.tsx:36 msgid "Close bottom drawer" msgstr "Chiudi il bottom drawer" -#: src/view/com/lightbox/ImageViewing/components/ImageDefaultHeader.tsx:26 +#: src/view/com/lightbox/ImageViewing/components/ImageDefaultHeader.tsx:36 msgid "Close image" msgstr "Chiudi l'immagine" -#: src/view/com/lightbox/Lightbox.web.tsx:119 +#: src/view/com/lightbox/Lightbox.web.tsx:129 msgid "Close image viewer" msgstr "Chiudi il visualizzatore di immagini" -#: src/view/shell/index.web.tsx:51 +#: src/view/shell/index.web.tsx:55 msgid "Close navigation footer" msgstr "Chiudi la navigazione del footer" +#: src/components/Menu/index.tsx:207 #: src/components/TagMenu/index.tsx:262 msgid "Close this dialog" msgstr "" -#: src/view/shell/index.web.tsx:52 +#: src/view/shell/index.web.tsx:56 msgid "Closes bottom navigation bar" msgstr "Chiude la barra di navigazione in basso" @@ -730,15 +858,15 @@ msgstr "Chiude la barra di navigazione in basso" msgid "Closes password update alert" msgstr "Chiude l'avviso di aggiornamento della password" -#: src/view/com/composer/Composer.tsx:309 +#: src/view/com/composer/Composer.tsx:318 msgid "Closes post composer and discards post draft" msgstr "Chiude l'editore del post ed elimina la bozza del post" -#: src/view/com/lightbox/ImageViewing/components/ImageDefaultHeader.tsx:27 +#: src/view/com/lightbox/ImageViewing/components/ImageDefaultHeader.tsx:37 msgid "Closes viewer for header image" msgstr "Chiude il visualizzatore dell'immagine di intestazione" -#: src/view/com/notifications/FeedItem.tsx:318 +#: src/view/com/notifications/FeedItem.tsx:321 msgid "Collapses list of users for a given notification" msgstr "Comprime l'elenco degli utenti per una determinata notifica" @@ -750,7 +878,7 @@ msgstr "Commedia" msgid "Comics" msgstr "Fumetti" -#: src/Navigation.tsx:229 +#: src/Navigation.tsx:241 #: src/view/screens/CommunityGuidelines.tsx:32 msgid "Community Guidelines" msgstr "Linee guida della community" @@ -763,7 +891,7 @@ msgstr "Completa l'incorporazione e inizia a utilizzare il tuo account" msgid "Complete the challenge" msgstr "" -#: src/view/com/composer/Composer.tsx:424 +#: src/view/com/composer/Composer.tsx:437 msgid "Compose posts up to {MAX_GRAPHEME_LENGTH} characters in length" msgstr "Componi un post fino a {MAX_GRAPHEME_LENGTH} caratteri" @@ -771,12 +899,18 @@ msgstr "Componi un post fino a {MAX_GRAPHEME_LENGTH} caratteri" msgid "Compose reply" msgstr "Scrivi la risposta" -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:67 +#: src/components/moderation/GlobalModerationLabelPref.tsx:69 +#: src/components/moderation/ModerationLabelPref.tsx:149 +#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:81 msgid "Configure content filtering setting for category: {0}" msgstr "Configura l'impostazione del filtro dei contenuti per la categoria:{0}" -#: src/components/Prompt.tsx:124 -#: src/view/com/modals/AppealLabel.tsx:98 +#: src/components/moderation/ModerationLabelPref.tsx:116 +msgid "Configured in <0>moderation settings." +msgstr "" + +#: src/components/Prompt.tsx:152 +#: src/components/Prompt.tsx:155 #: src/view/com/modals/SelfLabel.tsx:154 #: src/view/com/modals/VerifyEmail.tsx:231 #: src/view/com/modals/VerifyEmail.tsx:233 @@ -785,10 +919,10 @@ msgstr "Configura l'impostazione del filtro dei contenuti per la categoria:{0}" msgid "Confirm" msgstr "Conferma" -#: src/view/com/modals/Confirm.tsx:75 src/view/com/modals/Confirm.tsx:78 -msgctxt "action" -msgid "Confirm" -msgstr "Conferma" +#: src/view/com/modals/Confirm.tsx:NaN +#~ msgctxt "action" +#~ msgid "Confirm" +#~ msgstr "Conferma" #: src/view/com/modals/ChangeEmail.tsx:193 #: src/view/com/modals/ChangeEmail.tsx:195 @@ -804,10 +938,19 @@ msgid "Confirm delete account" msgstr "Conferma l'eliminazione dell'account" #: src/view/com/modals/ContentFilteringSettings.tsx:156 -msgid "Confirm your age to enable adult content." -msgstr "Conferma la tua età per abilitare i contenuti per adulti." +#~ msgid "Confirm your age to enable adult content." +#~ msgstr "Conferma la tua età per abilitare i contenuti per adulti." + +#: src/screens/Moderation/index.tsx:303 +msgid "Confirm your age:" +msgstr "" + +#: src/screens/Moderation/index.tsx:294 +msgid "Confirm your birthdate" +msgstr "" #: src/view/com/modals/ChangeEmail.tsx:157 +#: src/view/com/modals/DeleteAccount.tsx:176 #: src/view/com/modals/DeleteAccount.tsx:182 #: src/view/com/modals/VerifyEmail.tsx:165 msgid "Confirmation code" @@ -826,25 +969,40 @@ msgstr "Connessione in corso..." msgid "Contact support" msgstr "Contatta il supporto" +#: src/components/moderation/LabelsOnMe.tsx:42 +msgid "content" +msgstr "" + +#: src/lib/moderation/useGlobalLabelStrings.ts:18 +msgid "Content Blocked" +msgstr "" + #: src/view/screens/Moderation.tsx:83 -msgid "Content filtering" -msgstr "Filtro dei contenuti" +#~ msgid "Content filtering" +#~ msgstr "Filtro dei contenuti" #: src/view/com/modals/ContentFilteringSettings.tsx:44 -msgid "Content Filtering" -msgstr "Filtro dei Contenuti" +#~ msgid "Content Filtering" +#~ msgstr "Filtro dei Contenuti" + +#: src/screens/Moderation/index.tsx:287 +msgid "Content filters" +msgstr "" #: src/view/com/modals/lang-settings/ContentLanguagesSettings.tsx:74 #: src/view/screens/LanguageSettings.tsx:278 msgid "Content Languages" msgstr "Lingue dei contenuti" -#: src/view/com/modals/ModerationDetails.tsx:65 +#: src/components/moderation/ModerationDetailsDialog.tsx:76 +#: src/lib/moderation/useModerationCauseDescription.ts:75 msgid "Content Not Available" msgstr "Contenuto non disponibile" -#: src/view/com/modals/ModerationDetails.tsx:33 -#: src/view/com/util/moderation/ScreenHider.tsx:78 +#: src/components/moderation/ModerationDetailsDialog.tsx:47 +#: src/components/moderation/ScreenHider.tsx:100 +#: src/lib/moderation/useGlobalLabelStrings.ts:22 +#: src/lib/moderation/useModerationCauseDescription.ts:38 msgid "Content Warning" msgstr "Avviso sul Contenuto" @@ -852,19 +1010,24 @@ msgstr "Avviso sul Contenuto" msgid "Content warnings" msgstr "Avviso sui contenuti" +#: src/components/Menu/index.web.tsx:84 +msgid "Context menu backdrop, click to close the menu." +msgstr "" + #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:170 #: src/screens/Onboarding/StepFollowingFeed.tsx:153 #: src/screens/Onboarding/StepInterests/index.tsx:248 -#: src/screens/Onboarding/StepModeration/index.tsx:118 +#: src/screens/Onboarding/StepModeration/index.tsx:102 #: src/screens/Onboarding/StepTopicalFeeds.tsx:114 #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:148 #: src/view/com/auth/onboarding/RecommendedFollows.tsx:209 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:96 msgid "Continue" msgstr "Continua" #: src/screens/Onboarding/StepFollowingFeed.tsx:150 #: src/screens/Onboarding/StepInterests/index.tsx:245 -#: src/screens/Onboarding/StepModeration/index.tsx:115 +#: src/screens/Onboarding/StepModeration/index.tsx:99 #: src/screens/Onboarding/StepTopicalFeeds.tsx:111 msgid "Continue to next step" msgstr "Vai al passaggio successivo" @@ -886,13 +1049,14 @@ msgstr "Cucina" msgid "Copied" msgstr "Copiato" -#: src/view/screens/Settings/index.tsx:241 +#: src/view/screens/Settings/index.tsx:247 msgid "Copied build version to clipboard" msgstr "Versione di build copiata nella clipboard" #: src/view/com/modals/AddAppPasswords.tsx:76 +#: src/view/com/modals/ChangeHandle.tsx:327 #: src/view/com/modals/InviteCodes.tsx:152 -#: src/view/com/util/forms/PostDropdownBtn.tsx:161 +#: src/view/com/util/forms/PostDropdownBtn.tsx:158 msgid "Copied to clipboard" msgstr "Copiato nel clipboard" @@ -904,34 +1068,38 @@ msgstr "Copia la password dell'app" msgid "Copy" msgstr "Copia" -#: src/view/screens/ProfileList.tsx:418 +#: src/view/com/modals/ChangeHandle.tsx:481 +msgid "Copy {0}" +msgstr "" + +#: src/view/screens/ProfileList.tsx:388 msgid "Copy link to list" msgstr "Copia il link alla lista" -#: src/view/com/util/forms/PostDropdownBtn.tsx:231 +#: src/view/com/util/forms/PostDropdownBtn.tsx:228 #: src/view/com/util/forms/PostDropdownBtn.tsx:237 msgid "Copy link to post" msgstr "Copia il link al post" #: src/view/com/profile/ProfileHeader.tsx:295 -msgid "Copy link to profile" -msgstr "Copia il link al profilo" +#~ msgid "Copy link to profile" +#~ msgstr "Copia il link al profilo" -#: src/view/com/util/forms/PostDropdownBtn.tsx:223 -#: src/view/com/util/forms/PostDropdownBtn.tsx:225 +#: src/view/com/util/forms/PostDropdownBtn.tsx:220 +#: src/view/com/util/forms/PostDropdownBtn.tsx:222 msgid "Copy post text" msgstr "Copia il testo del post" -#: src/Navigation.tsx:234 +#: src/Navigation.tsx:246 #: src/view/screens/CopyrightPolicy.tsx:29 msgid "Copyright Policy" msgstr "Politica sul diritto d'autore" -#: src/view/screens/ProfileFeed.tsx:97 +#: src/view/screens/ProfileFeed.tsx:102 msgid "Could not load feed" msgstr "Feed non caricato" -#: src/view/screens/ProfileList.tsx:893 +#: src/view/screens/ProfileList.tsx:907 msgid "Could not load list" msgstr "No si è potuto caricare la lista" @@ -939,13 +1107,13 @@ msgstr "No si è potuto caricare la lista" #~ msgid "Country" #~ msgstr "Paese" -#: src/view/com/auth/HomeLoggedOutCTA.tsx:62 -#: src/view/com/auth/SplashScreen.tsx:71 +#: src/view/com/auth/HomeLoggedOutCTA.tsx:64 +#: src/view/com/auth/SplashScreen.tsx:73 #: src/view/com/auth/SplashScreen.web.tsx:81 msgid "Create a new account" msgstr "Crea un nuovo account" -#: src/view/screens/Settings/index.tsx:384 +#: src/view/screens/Settings/index.tsx:399 msgid "Create a new Bluesky account" msgstr "Crea un nuovo Bluesky account" @@ -962,19 +1130,23 @@ msgstr "Crea un password per l'app" msgid "Create new account" msgstr "Crea un nuovo account" -#: src/view/screens/AppPasswords.tsx:249 +#: src/components/ReportDialog/SelectReportOptionView.tsx:94 +msgid "Create report for {0}" +msgstr "" + +#: src/view/screens/AppPasswords.tsx:246 msgid "Created {0}" msgstr "Creato {0}" #: src/view/screens/ProfileFeed.tsx:616 -msgid "Created by <0/>" -msgstr "Creato da <0/>" +#~ msgid "Created by <0/>" +#~ msgstr "Creato da <0/>" #: src/view/screens/ProfileFeed.tsx:614 -msgid "Created by you" -msgstr "Creato da te" +#~ msgid "Created by you" +#~ msgstr "Creato da te" -#: src/view/com/composer/Composer.tsx:455 +#: src/view/com/composer/Composer.tsx:468 msgid "Creates a card with a thumbnail. The card links to {url}" msgstr "Crea una scheda con una miniatura. La scheda si collega a {url}" @@ -1000,8 +1172,11 @@ msgstr "I feed personalizzati creati dalla comunità ti offrono nuove esperienze msgid "Customize media from external sites." msgstr "Personalizza i media da i siti esterni." -#: src/view/screens/Settings/index.tsx:485 -#: src/view/screens/Settings/index.tsx:511 +#~ msgid "Danger Zone" +#~ msgstr "Zona di Pericolo" + +#: src/view/screens/Settings/index.tsx:500 +#: src/view/screens/Settings/index.tsx:526 msgid "Dark" msgstr "Scuro" @@ -1009,15 +1184,25 @@ msgstr "Scuro" msgid "Dark mode" msgstr "Aspetto scuro" -#: src/view/screens/Settings/index.tsx:498 +#: src/view/screens/Settings/index.tsx:513 msgid "Dark Theme" msgstr "Tema scuro" +#: src/view/screens/Settings/index.tsx:837 +msgid "Debug Moderation" +msgstr "" + #: src/view/screens/Debug.tsx:83 msgid "Debug panel" msgstr "Pannello per il debug" -#: src/view/screens/Settings/index.tsx:772 +#: src/view/com/util/forms/PostDropdownBtn.tsx:319 +#: src/view/screens/AppPasswords.tsx:268 +#: src/view/screens/ProfileList.tsx:613 +msgid "Delete" +msgstr "" + +#: src/view/screens/Settings/index.tsx:792 msgid "Delete account" msgstr "Eliminare l'account" @@ -1025,12 +1210,15 @@ msgstr "Eliminare l'account" msgid "Delete Account" msgstr "Eliminare l'Account" -#: src/view/screens/AppPasswords.tsx:222 src/view/screens/AppPasswords.tsx:242 +#: src/view/screens/AppPasswords.tsx:239 msgid "Delete app password" msgstr "Elimina la password dell'app" -#: src/view/screens/ProfileList.tsx:364 -#: src/view/screens/ProfileList.tsx:445 +#: src/view/screens/AppPasswords.tsx:263 +msgid "Delete app password?" +msgstr "" + +#: src/view/screens/ProfileList.tsx:415 msgid "Delete List" msgstr "Elimina la lista" @@ -1038,24 +1226,31 @@ msgstr "Elimina la lista" msgid "Delete my account" msgstr "Cancellare account" -#: src/view/screens/Settings/index.tsx:784 +#~ msgid "Delete my account…" +#~ msgstr "Cancella il mio account…" + +#: src/view/screens/Settings/index.tsx:804 msgid "Delete My Account…" msgstr "Cancellare Account…" -#: src/view/com/util/forms/PostDropdownBtn.tsx:317 -#: src/view/com/util/forms/PostDropdownBtn.tsx:326 +#: src/view/com/util/forms/PostDropdownBtn.tsx:302 +#: src/view/com/util/forms/PostDropdownBtn.tsx:304 msgid "Delete post" msgstr "Elimina il post" -#: src/view/com/util/forms/PostDropdownBtn.tsx:321 +#: src/view/screens/ProfileList.tsx:608 +msgid "Delete this list?" +msgstr "" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:314 msgid "Delete this post?" msgstr "Eliminare questo post?" -#: src/view/com/util/post-embeds/QuoteEmbed.tsx:70 +#: src/view/com/util/post-embeds/QuoteEmbed.tsx:64 msgid "Deleted" msgstr "Eliminato" -#: src/view/com/post-thread/PostThread.tsx:316 +#: src/view/com/post-thread/PostThread.tsx:305 msgid "Deleted post." msgstr "Post eliminato." @@ -1067,29 +1262,40 @@ msgid "Description" msgstr "Descrizione" #~ msgid "Dev Server" -#~ msgstr "Servidor de desenvolupament" +#~ msgstr "Server di sviluppo" -#: src/view/screens/Settings.tsx:711 #~ msgid "Developer Tools" #~ msgstr "Strumenti per sviluppatori" -#: src/view/com/composer/Composer.tsx:218 +#: src/view/com/composer/Composer.tsx:217 msgid "Did you want to say anything?" msgstr "Volevi dire qualcosa?" -#: src/view/screens/Settings/index.tsx:504 +#: src/view/screens/Settings/index.tsx:519 msgid "Dim" msgstr "Fioco" -#: src/view/com/composer/Composer.tsx:151 +#: src/lib/moderation/useLabelBehaviorDescription.ts:32 +#: src/lib/moderation/useLabelBehaviorDescription.ts:42 +#: src/lib/moderation/useLabelBehaviorDescription.ts:68 +#: src/screens/Moderation/index.tsx:343 +msgid "Disabled" +msgstr "" + +#: src/view/com/composer/Composer.tsx:510 msgid "Discard" msgstr "Scartare" #: src/view/com/composer/Composer.tsx:145 -msgid "Discard draft" -msgstr "Scarta la bozza" +#~ msgid "Discard draft" +#~ msgstr "Scarta la bozza" + +#: src/view/com/composer/Composer.tsx:507 +msgid "Discard draft?" +msgstr "" -#: src/view/screens/Moderation.tsx:226 +#: src/screens/Moderation/index.tsx:520 +#: src/screens/Moderation/index.tsx:524 msgid "Discourage apps from showing my account to logged-out users" msgstr "Scoraggia le app dal mostrare il mio account agli utenti disconnessi" @@ -1098,6 +1304,9 @@ msgstr "Scoraggia le app dal mostrare il mio account agli utenti disconnessi" msgid "Discover new custom feeds" msgstr "Scopri nuovi feeds personalizzati" +#~ msgid "Discover new feeds" +#~ msgstr "Scopri nuovi feeds" + #: src/view/screens/Feeds.tsx:689 msgid "Discover New Feeds" msgstr "Scopri nuovi feeds" @@ -1110,7 +1319,19 @@ msgstr "Nome visualizzato" msgid "Display Name" msgstr "Nome Visualizzato" -#: src/view/com/modals/ChangeHandle.tsx:487 +#: src/view/com/modals/ChangeHandle.tsx:398 +msgid "DNS Panel" +msgstr "" + +#: src/lib/moderation/useGlobalLabelStrings.ts:39 +msgid "Does not include nudity." +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:482 +msgid "Domain Value" +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:489 msgid "Domain verified!" msgstr "Dominio verificato!" @@ -1121,7 +1342,8 @@ msgstr "Dominio verificato!" #: src/view/com/auth/onboarding/RecommendedFollows.tsx:86 #: src/view/com/modals/EditImage.tsx:333 #: src/view/com/modals/ListAddRemoveUsers.tsx:144 -#: src/view/com/modals/SelfLabel.tsx:157 src/view/com/modals/Threadgate.tsx:129 +#: src/view/com/modals/SelfLabel.tsx:157 +#: src/view/com/modals/Threadgate.tsx:129 #: src/view/com/modals/Threadgate.tsx:132 #: src/view/com/modals/UserAddRemoveLists.tsx:95 #: src/view/com/modals/UserAddRemoveLists.tsx:98 @@ -1130,19 +1352,19 @@ msgctxt "action" msgid "Done" msgstr "Fatto" +#: src/components/dialogs/BirthDateSettings.tsx:119 +#: src/components/dialogs/BirthDateSettings.tsx:125 #: src/view/com/auth/server-input/index.tsx:165 #: src/view/com/auth/server-input/index.tsx:166 #: src/view/com/modals/AddAppPasswords.tsx:226 #: src/view/com/modals/AltImage.tsx:139 -#: src/view/com/modals/ContentFilteringSettings.tsx:88 -#: src/view/com/modals/ContentFilteringSettings.tsx:96 #: src/view/com/modals/crop-image/CropImage.web.tsx:152 #: src/view/com/modals/InviteCodes.tsx:80 #: src/view/com/modals/InviteCodes.tsx:123 #: src/view/com/modals/ListAddRemoveUsers.tsx:142 #: src/view/screens/PreferencesFollowingFeed.tsx:311 -#: src/view/screens/Settings/ExportCarDialog.tsx:93 #: src/view/screens/Settings/ExportCarDialog.tsx:94 +#: src/view/screens/Settings/ExportCarDialog.tsx:95 msgid "Done" msgstr "Fatto" @@ -1155,8 +1377,8 @@ msgid "Double tap to sign in" msgstr "Usa il doppio tocco per accedere" #: src/view/screens/Settings/index.tsx:755 -msgid "Download Bluesky account data (repository)" -msgstr "Scarica i dati dell'account Bluesky (archivio)" +#~ msgid "Download Bluesky account data (repository)" +#~ msgstr "Scarica i dati dell'account Bluesky (archivio)" #: src/view/screens/Settings/ExportCarDialog.tsx:59 #: src/view/screens/Settings/ExportCarDialog.tsx:63 @@ -1167,18 +1389,30 @@ msgstr "Scarica il CAR file" msgid "Drop to add images" msgstr "Trascina e rilascia per aggiungere immagini" -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:111 +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:120 msgid "Due to Apple policies, adult content can only be enabled on the web after completing sign up." msgstr "A causa delle politiche di Apple, i contenuti per adulti possono essere abilitati sul Web solo dopo aver completato la registrazione." +#: src/view/com/modals/ChangeHandle.tsx:257 +msgid "e.g. alice" +msgstr "" + #: src/view/com/modals/EditProfile.tsx:185 msgid "e.g. Alice Roberts" msgstr "e.g. Anna Rossi" +#: src/view/com/modals/ChangeHandle.tsx:381 +msgid "e.g. alice.com" +msgstr "" + #: src/view/com/modals/EditProfile.tsx:203 msgid "e.g. Artist, dog-lover, and avid reader." msgstr "e.g. Artista, amo i gatti, mi piace leggere." +#: src/lib/moderation/useGlobalLabelStrings.ts:43 +msgid "E.g. artistic nudes." +msgstr "" + #: src/view/com/modals/CreateOrEditList.tsx:283 msgid "e.g. Great Posters" msgstr "e.g. Gli utenti più seguiti" @@ -1204,12 +1438,17 @@ msgctxt "action" msgid "Edit" msgstr "Modifica" +#: src/view/com/util/UserAvatar.tsx:299 +#: src/view/com/util/UserBanner.tsx:85 +msgid "Edit avatar" +msgstr "" + #: src/view/com/composer/photos/Gallery.tsx:144 #: src/view/com/modals/EditImage.tsx:207 msgid "Edit image" msgstr "Modifica l'immagine" -#: src/view/screens/ProfileList.tsx:433 +#: src/view/screens/ProfileList.tsx:403 msgid "Edit list details" msgstr "Modifica i dettagli della lista" @@ -1217,7 +1456,7 @@ msgstr "Modifica i dettagli della lista" msgid "Edit Moderation List" msgstr "Modifica l'elenco di moderazione" -#: src/Navigation.tsx:244 +#: src/Navigation.tsx:256 #: src/view/screens/Feeds.tsx:434 #: src/view/screens/SavedFeeds.tsx:84 msgid "Edit My Feeds" @@ -1227,11 +1466,13 @@ msgstr "Modifica i miei feeds" msgid "Edit my profile" msgstr "Modifica il mio profilo" -#: src/view/com/profile/ProfileHeader.tsx:418 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:172 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:161 msgid "Edit profile" msgstr "Modifica il profilo" -#: src/view/com/profile/ProfileHeader.tsx:423 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:175 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:164 msgid "Edit Profile" msgstr "Modifica il Profilo" @@ -1280,7 +1521,7 @@ msgstr "Email Aggiornata" msgid "Email verified" msgstr "Email verificata" -#: src/view/screens/Settings/index.tsx:312 +#: src/view/screens/Settings/index.tsx:327 msgid "Email:" msgstr "Email:" @@ -1288,12 +1529,16 @@ msgstr "Email:" msgid "Enable {0} only" msgstr "Attiva {0} solo" -#: src/view/com/modals/ContentFilteringSettings.tsx:167 +#: src/screens/Moderation/index.tsx:331 +msgid "Enable adult content" +msgstr "" + +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:94 msgid "Enable Adult Content" msgstr "Attiva Contenuto per Adulti" -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:76 -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:77 +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:78 +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:79 msgid "Enable adult content in your feeds" msgstr "Abilita i contenuti per adulti nei tuoi feeds" @@ -1309,7 +1554,11 @@ msgstr "Attiva i lettori multimediali per" msgid "Enable this setting to only see replies between people you follow." msgstr "Abilita questa impostazione per vedere solo le risposte delle persone che segui." -#: src/view/screens/Profile.tsx:455 +#: src/screens/Moderation/index.tsx:341 +msgid "Enabled" +msgstr "" + +#: src/screens/Profile/Sections/Feed.tsx:84 msgid "End of feed" msgstr "Fine del feed" @@ -1326,7 +1575,10 @@ msgstr "" msgid "Enter Confirmation Code" msgstr "Inserire il codice di conferma" -#: src/view/com/modals/ChangePassword.tsx:151 +#~ msgid "Enter the address of your provider:" +#~ msgstr "Inserisci l'indirizzo del tuo provider:" + +#: src/view/com/modals/ChangePassword.tsx:153 msgid "Enter the code you received to change your password." msgstr "Inserisci il codice che hai ricevuto per modificare la tua password." @@ -1338,8 +1590,8 @@ msgstr "Inserisci il dominio che vuoi utilizzare" msgid "Enter the email you used to create your account. We'll send you a \"reset code\" so you can set a new password." msgstr "Inserisci l'e-mail che hai utilizzato per creare il tuo account. Ti invieremo un \"codice di reset\" in modo che tu possa impostare una nuova password." +#: src/components/dialogs/BirthDateSettings.tsx:108 #: src/view/com/auth/create/Step1.tsx:228 -#: src/view/com/modals/BirthDateSettings.tsx:74 msgid "Enter your birth date" msgstr "Inserisci la tua data di nascita" @@ -1379,16 +1631,28 @@ msgstr "Errore:" msgid "Everybody" msgstr "Tutti" +#: src/lib/moderation/useReportOptions.ts:66 +msgid "Excessive mentions or replies" +msgstr "" + +#: src/view/com/modals/DeleteAccount.tsx:231 +msgid "Exits account deletion process" +msgstr "" + #: src/view/com/modals/ChangeHandle.tsx:150 msgid "Exits handle change process" msgstr "Uscita dal processo di modifica" -#: src/view/com/lightbox/Lightbox.web.tsx:120 +#: src/view/com/modals/crop-image/CropImage.web.tsx:135 +msgid "Exits image cropping process" +msgstr "" + +#: src/view/com/lightbox/Lightbox.web.tsx:130 msgid "Exits image view" msgstr "Uscita dalla visualizzazione dell'immagine" #: src/view/com/modals/ListAddRemoveUsers.tsx:88 -#: src/view/shell/desktop/Search.tsx:235 +#: src/view/shell/desktop/Search.tsx:236 msgid "Exits inputting search query" msgstr "Uscita dall'inserzione della domanda di ricerca" @@ -1396,7 +1660,7 @@ msgstr "Uscita dall'inserzione della domanda di ricerca" #~ msgid "Exits signing up for waitlist with {email}" #~ msgstr "Uscita dall'iscrizione alla lista d'attesa con {email}" -#: src/view/com/lightbox/Lightbox.web.tsx:163 +#: src/view/com/lightbox/Lightbox.web.tsx:183 msgid "Expand alt text" msgstr "Ampliare il testo alternativo" @@ -1405,12 +1669,20 @@ msgstr "Ampliare il testo alternativo" msgid "Expand or collapse the full post you are replying to" msgstr "Espandi o comprimi l'intero post a cui stai rispondendo" -#: src/view/screens/Settings/index.tsx:753 +#: src/lib/moderation/useGlobalLabelStrings.ts:47 +msgid "Explicit or potentially disturbing media." +msgstr "" + +#: src/lib/moderation/useGlobalLabelStrings.ts:35 +msgid "Explicit sexual images." +msgstr "" + +#: src/view/screens/Settings/index.tsx:773 msgid "Export my data" msgstr "Esporta i miei dati" #: src/view/screens/Settings/ExportCarDialog.tsx:44 -#: src/view/screens/Settings/index.tsx:764 +#: src/view/screens/Settings/index.tsx:784 msgid "Export My Data" msgstr "Esporta i miei dati" @@ -1423,13 +1695,13 @@ msgstr "Media esterni" msgid "External media may allow websites to collect information about you and your device. No information is sent or requested until you press the \"play\" button." msgstr "I multimediali esterni possono consentire ai siti web di raccogliere informazioni su di te e sul tuo dispositivo. Nessuna informazione viene inviata o richiesta finché non si preme il pulsante \"Riproduci\"." -#: src/Navigation.tsx:263 +#: src/Navigation.tsx:275 #: src/view/screens/PreferencesExternalEmbeds.tsx:52 -#: src/view/screens/Settings/index.tsx:657 +#: src/view/screens/Settings/index.tsx:673 msgid "External Media Preferences" msgstr "Preferenze multimediali esterni" -#: src/view/screens/Settings/index.tsx:648 +#: src/view/screens/Settings/index.tsx:664 msgid "External media settings" msgstr "Impostazioni multimediali esterni" @@ -1442,7 +1714,7 @@ msgstr "Impossibile creare la password dell'app." msgid "Failed to create the list. Check your internet connection and try again." msgstr "Impossibile creare l'elenco. Controlla la connessione Internet e riprova." -#: src/view/com/util/forms/PostDropdownBtn.tsx:128 +#: src/view/com/util/forms/PostDropdownBtn.tsx:125 msgid "Failed to delete post, please try again" msgstr "Non possiamo eliminare il post, riprova di nuovo" @@ -1451,11 +1723,15 @@ msgstr "Non possiamo eliminare il post, riprova di nuovo" msgid "Failed to load recommended feeds" msgstr "Non possiamo caricare i feed consigliati" -#: src/Navigation.tsx:194 +#: src/view/com/lightbox/Lightbox.tsx:83 +msgid "Failed to save image: {0}" +msgstr "" + +#: src/Navigation.tsx:196 msgid "Feed" msgstr "Feed" -#: src/view/com/feeds/FeedSourceCard.tsx:231 +#: src/view/com/feeds/FeedSourceCard.tsx:218 msgid "Feed by {0}" msgstr "Feed fatto da {0}" @@ -1468,17 +1744,18 @@ msgstr "Feed offline" #~ msgstr "Preferenze del feed" #: src/view/shell/desktop/RightNav.tsx:61 -#: src/view/shell/Drawer.tsx:311 +#: src/view/shell/Drawer.tsx:314 msgid "Feedback" msgstr "Commenti" -#: src/Navigation.tsx:452 +#: src/Navigation.tsx:464 #: src/view/screens/Feeds.tsx:419 #: src/view/screens/Feeds.tsx:524 -#: src/view/screens/Profile.tsx:184 -#: src/view/shell/bottom-bar/BottomBar.tsx:181 -#: src/view/shell/desktop/LeftNav.tsx:342 src/view/shell/Drawer.tsx:476 -#: src/view/shell/Drawer.tsx:477 +#: src/view/screens/Profile.tsx:192 +#: src/view/shell/bottom-bar/BottomBar.tsx:183 +#: src/view/shell/desktop/LeftNav.tsx:346 +#: src/view/shell/Drawer.tsx:479 +#: src/view/shell/Drawer.tsx:480 msgid "Feeds" msgstr "Feeds" @@ -1494,6 +1771,14 @@ msgstr "I feed sono algoritmi personalizzati che gli utenti creano con un minimo msgid "Feeds can be topical as well!" msgstr "I feeds possono anche avere tematiche!" +#: src/view/com/modals/ChangeHandle.tsx:482 +msgid "File Contents" +msgstr "" + +#: src/lib/moderation/useLabelBehaviorDescription.ts:66 +msgid "Filter from feeds" +msgstr "" + #: src/screens/Onboarding/StepFinished.tsx:151 msgid "Finalizing" msgstr "Finalizzando" @@ -1504,15 +1789,15 @@ msgstr "Finalizzando" msgid "Find accounts to follow" msgstr "Trova account da seguire" -#: src/view/screens/Search/Search.tsx:440 +#: src/view/screens/Search/Search.tsx:441 msgid "Find users on Bluesky" msgstr "Trova utenti su Bluesky" -#: src/view/screens/Search/Search.tsx:438 +#: src/view/screens/Search/Search.tsx:439 msgid "Find users with the search tool on the right" msgstr "Trova gli utenti con lo strumento di ricerca sulla destra" -#: src/view/com/auth/onboarding/RecommendedFollowsItem.tsx:150 +#: src/view/com/auth/onboarding/RecommendedFollowsItem.tsx:155 msgid "Finding similar accounts..." msgstr "Trovare account simili…" @@ -1540,27 +1825,35 @@ msgstr "Flessibile" msgid "Flip horizontal" msgstr "Gira in orizzontale" -#: src/view/com/modals/EditImage.tsx:120 src/view/com/modals/EditImage.tsx:287 +#: src/view/com/modals/EditImage.tsx:120 +#: src/view/com/modals/EditImage.tsx:287 msgid "Flip vertically" msgstr "Gira in verticale" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:181 -#: src/view/com/post-thread/PostThreadFollowBtn.tsx:136 -#: src/view/com/profile/ProfileHeader.tsx:513 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:229 +#: src/view/com/auth/onboarding/RecommendedFollowsItem.tsx:141 +#: src/view/com/post-thread/PostThreadFollowBtn.tsx:139 +#: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:246 msgid "Follow" msgstr "Segui" -#: src/view/com/profile/FollowButton.tsx:64 +#: src/view/com/profile/FollowButton.tsx:69 msgctxt "action" msgid "Follow" msgstr "Segui" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:58 -#: src/view/com/post-thread/PostThreadFollowBtn.tsx:122 -#: src/view/com/profile/ProfileHeader.tsx:504 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:214 +#: src/view/com/post-thread/PostThreadFollowBtn.tsx:125 msgid "Follow {0}" msgstr "Segui {0}" +#: src/view/com/profile/ProfileMenu.tsx:242 +#: src/view/com/profile/ProfileMenu.tsx:253 +msgid "Follow Account" +msgstr "" + #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:179 msgid "Follow All" msgstr "Segui tutti" @@ -1573,7 +1866,7 @@ msgstr "Segui gli account selezionati e vai al passaggio successivo" msgid "Follow some users to get started. We can recommend you more users based on who you find interesting." msgstr "Segui alcuni utenti per iniziare. Possiamo consigliarti più utenti in base a chi trovi interessante." -#: src/view/com/profile/ProfileCard.tsx:194 +#: src/view/com/profile/ProfileCard.tsx:216 msgid "Followed by {0}" msgstr "Seguito da {0}" @@ -1585,33 +1878,42 @@ msgstr "Utenti seguiti" msgid "Followed users only" msgstr "Solo utenti seguiti" -#: src/view/com/notifications/FeedItem.tsx:166 +#: src/view/com/notifications/FeedItem.tsx:170 msgid "followed you" msgstr "ti segue" +#: src/view/com/profile/ProfileFollowers.tsx:109 #: src/view/screens/ProfileFollowers.tsx:25 msgid "Followers" msgstr "Followers" -#: src/view/com/post-thread/PostThreadFollowBtn.tsx:136 -#: src/view/com/profile/ProfileHeader.tsx:495 +#~ msgid "following" +#~ msgstr "following" + +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:227 +#: src/view/com/post-thread/PostThreadFollowBtn.tsx:139 +#: src/view/com/profile/ProfileFollows.tsx:108 #: src/view/screens/ProfileFollows.tsx:25 msgid "Following" msgstr "Following" -#: src/view/com/profile/ProfileHeader.tsx:149 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:89 msgid "Following {0}" msgstr "Seguiti {0}" -#: src/Navigation.tsx:250 +#: src/view/screens/Settings/index.tsx:549 +msgid "Following feed preferences" +msgstr "" + +#: src/Navigation.tsx:262 #: src/view/com/home/HomeHeaderLayout.web.tsx:50 #: src/view/com/home/HomeHeaderLayoutMobile.tsx:84 #: src/view/screens/PreferencesFollowingFeed.tsx:104 -#: src/view/screens/Settings/index.tsx:543 +#: src/view/screens/Settings/index.tsx:558 msgid "Following Feed Preferences" msgstr "" -#: src/view/com/profile/ProfileHeader.tsx:546 +#: src/screens/Profile/Header/Handle.tsx:24 msgid "Follows you" msgstr "Ti segue" @@ -1639,16 +1941,21 @@ msgstr "Dimenticato" msgid "Forgot password" msgstr "Ho dimenticato il password" -#: src/view/com/auth/login/Login.tsx:127 src/view/com/auth/login/Login.tsx:143 +#: src/view/com/auth/login/Login.tsx:127 +#: src/view/com/auth/login/Login.tsx:143 msgid "Forgot Password" msgstr "Ho dimenticato il Password" +#: src/lib/moderation/useReportOptions.ts:52 +msgid "Frequently Posts Unwanted Content" +msgstr "" + #: src/screens/Hashtag.tsx:108 #: src/screens/Hashtag.tsx:148 msgid "From @{sanitizedAuthor}" msgstr "" -#: src/view/com/posts/FeedItem.tsx:189 +#: src/view/com/posts/FeedItem.tsx:179 msgctxt "from-feed" msgid "From <0/>" msgstr "Da <0/>" @@ -1662,25 +1969,46 @@ msgstr "Galleria" msgid "Get Started" msgstr "Inizia" -#: src/view/com/auth/LoggedOut.tsx:81 src/view/com/auth/LoggedOut.tsx:82 -#: src/view/com/util/moderation/ScreenHider.tsx:123 -#: src/view/shell/desktop/LeftNav.tsx:104 +#: src/lib/moderation/useReportOptions.ts:37 +msgid "Glaring violations of law or terms of service" +msgstr "" + +#: src/components/moderation/ScreenHider.tsx:144 +#: src/components/moderation/ScreenHider.tsx:153 +#: src/view/com/auth/LoggedOut.tsx:81 +#: src/view/com/auth/LoggedOut.tsx:82 +#: src/view/screens/NotFound.tsx:55 +#: src/view/screens/ProfileFeed.tsx:111 +#: src/view/screens/ProfileList.tsx:916 +#: src/view/shell/desktop/LeftNav.tsx:108 msgid "Go back" msgstr "Torna indietro" -#: src/view/screens/ProfileFeed.tsx:106 -#: src/view/screens/ProfileFeed.tsx:111 -#: src/view/screens/ProfileList.tsx:902 -#: src/view/screens/ProfileList.tsx:907 +#: src/screens/Profile/ErrorState.tsx:62 +#: src/screens/Profile/ErrorState.tsx:66 +#: src/view/screens/NotFound.tsx:54 +#: src/view/screens/ProfileFeed.tsx:116 +#: src/view/screens/ProfileList.tsx:921 msgid "Go Back" msgstr "Torna Indietro" -#: src/screens/Onboarding/Layout.tsx:104 src/screens/Onboarding/Layout.tsx:193 +#: src/components/ReportDialog/SelectReportOptionView.tsx:74 +#: src/components/ReportDialog/SubmitView.tsx:104 +#: src/screens/Onboarding/Layout.tsx:104 +#: src/screens/Onboarding/Layout.tsx:193 msgid "Go back to previous step" msgstr "Torna al passaggio precedente" -#: src/view/screens/Search/Search.tsx:747 -#: src/view/shell/desktop/Search.tsx:262 +#: src/view/screens/NotFound.tsx:55 +msgid "Go home" +msgstr "" + +#: src/view/screens/NotFound.tsx:54 +msgid "Go Home" +msgstr "" + +#: src/view/screens/Search/Search.tsx:748 +#: src/view/shell/desktop/Search.tsx:263 msgid "Go to @{queryMaybeHandle}" msgstr "Vai a @{queryMaybeHandle}" @@ -1688,15 +2016,23 @@ msgstr "Vai a @{queryMaybeHandle}" #: src/view/com/auth/login/ForgotPasswordForm.tsx:218 #: src/view/com/auth/login/LoginForm.tsx:288 #: src/view/com/auth/login/SetNewPasswordForm.tsx:195 -#: src/view/com/modals/ChangePassword.tsx:165 +#: src/view/com/modals/ChangePassword.tsx:167 msgid "Go to next" msgstr "Seguente" +#: src/lib/moderation/useGlobalLabelStrings.ts:46 +msgid "Graphic Media" +msgstr "" + #: src/view/com/modals/ChangeHandle.tsx:265 msgid "Handle" msgstr "Nome Utente" -#: src/Navigation.tsx:270 +#: src/lib/moderation/useReportOptions.ts:32 +msgid "Harassment, trolling, or intolerance" +msgstr "" + +#: src/Navigation.tsx:282 msgid "Hashtag" msgstr "" @@ -1713,7 +2049,7 @@ msgid "Having trouble?" msgstr "Ci sono problemi?" #: src/view/shell/desktop/RightNav.tsx:90 -#: src/view/shell/Drawer.tsx:321 +#: src/view/shell/Drawer.tsx:324 msgid "Help" msgstr "Aiuto" @@ -1733,40 +2069,45 @@ msgstr "Ecco alcuni feed di attualità scelti in base ai tuoi interessi: {intere msgid "Here is your app password." msgstr "Ecco la password dell'app." -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:41 -#: src/view/com/modals/ContentFilteringSettings.tsx:251 -#: src/view/com/util/moderation/ContentHider.tsx:105 -#: src/view/com/util/moderation/PostHider.tsx:108 +#: src/components/moderation/ContentHider.tsx:115 +#: src/components/moderation/GlobalModerationLabelPref.tsx:43 +#: src/components/moderation/PostHider.tsx:107 +#: src/lib/moderation/useLabelBehaviorDescription.ts:15 +#: src/lib/moderation/useLabelBehaviorDescription.ts:20 +#: src/lib/moderation/useLabelBehaviorDescription.ts:25 +#: src/lib/moderation/useLabelBehaviorDescription.ts:30 +#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:52 +#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:76 +#: src/view/com/util/forms/PostDropdownBtn.tsx:328 msgid "Hide" msgstr "Nascondi" -#: src/view/com/modals/ContentFilteringSettings.tsx:224 -#: src/view/com/notifications/FeedItem.tsx:326 +#: src/view/com/notifications/FeedItem.tsx:329 msgctxt "action" msgid "Hide" msgstr "Nascondi" #: src/view/com/util/forms/PostDropdownBtn.tsx:276 -#: src/view/com/util/forms/PostDropdownBtn.tsx:287 +#: src/view/com/util/forms/PostDropdownBtn.tsx:278 msgid "Hide post" msgstr "Nascondi il messaggio" -#: src/view/com/util/moderation/ContentHider.tsx:67 -#: src/view/com/util/moderation/PostHider.tsx:61 +#: src/components/moderation/ContentHider.tsx:67 +#: src/components/moderation/PostHider.tsx:64 msgid "Hide the content" msgstr "Nascondere il contenuto" -#: src/view/com/util/forms/PostDropdownBtn.tsx:280 +#: src/view/com/util/forms/PostDropdownBtn.tsx:325 msgid "Hide this post?" msgstr "Vuoi nascondere questo post?" -#: src/view/com/notifications/FeedItem.tsx:316 +#: src/view/com/notifications/FeedItem.tsx:319 msgid "Hide user list" msgstr "Nascondi elenco utenti" #: src/view/com/profile/ProfileHeader.tsx:487 -msgid "Hides posts from {0} in your feed" -msgstr "Nasconde i post di {0} nel tuo feed" +#~ msgid "Hides posts from {0} in your feed" +#~ msgstr "Nasconde i post di {0} nel tuo feed" #: src/view/com/posts/FeedErrorMessage.tsx:111 msgid "Hmm, some kind of issue occurred when contacting the feed server. Please let the feed owner know about this issue." @@ -1788,25 +2129,41 @@ msgstr "Il server del feed ha dato una risposta negativa. Informa il proprietari msgid "Hmm, we're having trouble finding this feed. It may have been deleted." msgstr "Stiamo riscontrando problemi nel trovare questo feed. Potrebbe essere stato cancellato." -#: src/Navigation.tsx:442 -#: src/view/shell/bottom-bar/BottomBar.tsx:137 -#: src/view/shell/desktop/LeftNav.tsx:306 -#: src/view/shell/Drawer.tsx:398 -#: src/view/shell/Drawer.tsx:399 +#: src/screens/Moderation/index.tsx:61 +msgid "Hmmmm, it seems we're having trouble loading this data. See below for more details. If this issue persists, please contact us." +msgstr "" + +#: src/screens/Profile/ErrorState.tsx:31 +msgid "Hmmmm, we couldn't load that moderation service." +msgstr "" + +#: src/Navigation.tsx:454 +#: src/view/shell/bottom-bar/BottomBar.tsx:139 +#: src/view/shell/desktop/LeftNav.tsx:310 +#: src/view/shell/Drawer.tsx:401 +#: src/view/shell/Drawer.tsx:402 msgid "Home" msgstr "Home" -#: src/Navigation.tsx:247 src/view/com/pager/FeedsTabBarMobile.tsx:123 +#: src/Navigation.tsx:NaN #: src/view/screens/PreferencesHomeFeed.tsx:104 #: src/view/screens/Settings/index.tsx:543 #~ msgid "Home Feed Preferences" #~ msgstr "Preferenze per i feed per la pagina d'inizio" +#: src/view/com/modals/ChangeHandle.tsx:421 +msgid "Host:" +msgstr "" + #: src/view/com/auth/create/Step1.tsx:75 #: src/view/com/auth/login/ForgotPasswordForm.tsx:120 +#: src/view/com/modals/ChangeHandle.tsx:280 msgid "Hosting provider" msgstr "Servizio di hosting" +#~ msgid "Hosting provider address" +#~ msgstr "Indirizzo del fornitore di hosting" + #: src/view/com/modals/InAppBrowserConsent.tsx:44 msgid "How should we open this link?" msgstr "Come dovremmo aprire questo link?" @@ -1823,7 +2180,7 @@ msgstr "Ho un codice di conferma" msgid "I have my own domain" msgstr "Ho il mio dominio" -#: src/view/com/lightbox/Lightbox.web.tsx:165 +#: src/view/com/lightbox/Lightbox.web.tsx:185 msgid "If alt text is long, toggles alt text expanded state" msgstr "Se il testo alternativo è lungo, attiva/disattiva lo stato del testo alternativo" @@ -1831,10 +2188,26 @@ msgstr "Se il testo alternativo è lungo, attiva/disattiva lo stato del testo al msgid "If none are selected, suitable for all ages." msgstr "Se niente è selezionato, adatto a tutte le età." -#: src/view/com/modals/ChangePassword.tsx:146 +#: src/view/com/auth/create/Policies.tsx:91 +msgid "If you are not yet an adult according to the laws of your country, your parent or legal guardian must read these Terms on your behalf." +msgstr "" + +#: src/view/screens/ProfileList.tsx:610 +msgid "If you delete this list, you won't be able to recover it." +msgstr "" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:316 +msgid "If you remove this post, you won't be able to recover it." +msgstr "" + +#: src/view/com/modals/ChangePassword.tsx:148 msgid "If you want to change your password, we will send you a code to verify that this is your account." msgstr "Se vuoi modificare la password, ti invieremo un codice per verificare se questo è il tuo account." +#: src/lib/moderation/useReportOptions.ts:36 +msgid "Illegal and Urgent" +msgstr "" + #: src/view/com/util/images/Gallery.tsx:38 msgid "Image" msgstr "Immagine" @@ -1843,9 +2216,13 @@ msgstr "Immagine" msgid "Image alt text" msgstr "Testo alternativo dell'immagine" -#: src/view/com/util/UserAvatar.tsx:311 src/view/com/util/UserBanner.tsx:118 -msgid "Image options" -msgstr "Opzioni per l'immagine" +#: src/view/com/util/UserAvatar.tsx:NaN +#~ msgid "Image options" +#~ msgstr "Opzioni per l'immagine" + +#: src/lib/moderation/useReportOptions.ts:47 +msgid "Impersonation or false claims about identity or affiliation" +msgstr "" #: src/view/com/auth/login/SetNewPasswordForm.tsx:138 msgid "Input code sent to your email for password reset" @@ -1899,11 +2276,15 @@ msgstr "Inserisci il nome utente o l'indirizzo email che hai utilizzato al momen msgid "Input your password" msgstr "Inserisci la tua password" +#: src/view/com/modals/ChangeHandle.tsx:390 +msgid "Input your preferred hosting provider" +msgstr "" + #: src/view/com/auth/create/Step2.tsx:80 msgid "Input your user handle" msgstr "Inserisci il tuo identificatore" -#: src/view/com/post-thread/PostThreadItem.tsx:226 +#: src/view/com/post-thread/PostThreadItem.tsx:221 msgid "Invalid or unsupported post record" msgstr "Protocollo del post non valido o non supportato" @@ -1911,6 +2292,9 @@ msgstr "Protocollo del post non valido o non supportato" msgid "Invalid username or password" msgstr "Nome dell'utente o password errato" +#~ msgid "Invite" +#~ msgstr "Invita" + #: src/view/com/modals/InviteCodes.tsx:93 msgid "Invite a Friend" msgstr "Invita un amico" @@ -1928,6 +2312,9 @@ msgstr "Codice invito non accettato. Controlla di averlo inserito correttamente msgid "Invite codes: {0} available" msgstr "Codici di invito: {0} disponibili" +#~ msgid "Invite codes: {invitesAvailable} available" +#~ msgstr "Codici di invito: {invitesAvailable} disponibili" + #: src/view/com/modals/InviteCodes.tsx:169 msgid "Invite codes: 1 available" msgstr "Codici di invito: 1 disponibile" @@ -1936,7 +2323,7 @@ msgstr "Codici di invito: 1 disponibile" msgid "It shows posts from the people you follow as they happen." msgstr "Mostra i post delle persone che segui." -#: src/view/com/auth/HomeLoggedOutCTA.tsx:99 +#: src/view/com/auth/HomeLoggedOutCTA.tsx:103 #: src/view/com/auth/SplashScreen.web.tsx:138 msgid "Jobs" msgstr "Lavori" @@ -1958,20 +2345,52 @@ msgstr "Lavori" msgid "Journalism" msgstr "Giornalismo" +#: src/components/moderation/LabelsOnMe.tsx:59 +msgid "label has been placed on this {labelTarget}" +msgstr "" + +#: src/components/moderation/ContentHider.tsx:144 +msgid "Labeled by {0}." +msgstr "" + +#: src/components/moderation/ContentHider.tsx:142 +msgid "Labeled by the author." +msgstr "" + +#: src/view/screens/Profile.tsx:186 +msgid "Labels" +msgstr "" + +#: src/screens/Profile/Sections/Labels.tsx:143 +msgid "Labels are annotations on users and content. They can be used to hide, warn, and categorize the network." +msgstr "" + +#: src/components/moderation/LabelsOnMe.tsx:61 +msgid "labels have been placed on this {labelTarget}" +msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:63 +msgid "Labels on your account" +msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:65 +msgid "Labels on your content" +msgstr "" + #: src/view/com/composer/select-language/SelectLangBtn.tsx:104 msgid "Language selection" msgstr "Seleziona la lingua" -#: src/view/screens/Settings/index.tsx:594 +#: src/view/screens/Settings/index.tsx:610 msgid "Language settings" msgstr "Impostazione delle lingue" -#: src/Navigation.tsx:142 +#: src/Navigation.tsx:144 #: src/view/screens/LanguageSettings.tsx:89 msgid "Language Settings" msgstr "Impostazione delle Lingue" -#: src/view/screens/Settings/index.tsx:603 +#: src/view/screens/Settings/index.tsx:619 msgid "Languages" msgstr "Lingue" @@ -1980,27 +2399,31 @@ msgid "Last step!" msgstr "Ultimo passo!" #: src/view/com/util/moderation/ContentHider.tsx:103 -msgid "Learn more" -msgstr "Ulteriori informazioni" +#~ msgid "Learn more" +#~ msgstr "Ulteriori informazioni" -#: src/view/com/util/moderation/PostAlerts.tsx:47 -#: src/view/com/util/moderation/ProfileHeaderAlerts.tsx:65 -#: src/view/com/util/moderation/ScreenHider.tsx:104 +#: src/components/moderation/ScreenHider.tsx:129 msgid "Learn More" msgstr "Ulteriori Informazioni" -#: src/view/com/util/moderation/ContentHider.tsx:85 -#: src/view/com/util/moderation/PostAlerts.tsx:40 -#: src/view/com/util/moderation/PostHider.tsx:78 -#: src/view/com/util/moderation/ProfileHeaderAlerts.tsx:49 -#: src/view/com/util/moderation/ScreenHider.tsx:101 +#: src/components/moderation/ContentHider.tsx:65 +#: src/components/moderation/ContentHider.tsx:128 +msgid "Learn more about the moderation applied to this content." +msgstr "" + +#: src/components/moderation/PostHider.tsx:85 +#: src/components/moderation/ScreenHider.tsx:126 msgid "Learn more about this warning" msgstr "Ulteriori informazioni su questo avviso" -#: src/view/screens/Moderation.tsx:262 +#: src/screens/Moderation/index.tsx:551 msgid "Learn more about what is public on Bluesky." msgstr "Scopri cosa è pubblico su Bluesky." +#: src/components/moderation/ContentHider.tsx:152 +msgid "Learn more." +msgstr "" + #: src/view/com/modals/lang-settings/ContentLanguagesSettings.tsx:82 msgid "Leave them all unchecked to see any language." msgstr "Deseleziona tutte per vedere qualsiasi lingua." @@ -2013,11 +2436,12 @@ msgstr "Stai lasciando Bluesky" msgid "left to go." msgstr "mancano." -#: src/view/screens/Settings/index.tsx:278 +#: src/view/screens/Settings/index.tsx:292 msgid "Legacy storage cleared, you need to restart the app now." msgstr "L'archivio legacy è stato cancellato, riattiva la app." -#: src/view/com/auth/login/Login.tsx:128 src/view/com/auth/login/Login.tsx:144 +#: src/view/com/auth/login/Login.tsx:128 +#: src/view/com/auth/login/Login.tsx:144 msgid "Let's get your password reset!" msgstr "Reimpostazione della password!" @@ -2025,56 +2449,69 @@ msgstr "Reimpostazione della password!" msgid "Let's go!" msgstr "Andiamo!" -#: src/view/com/util/UserAvatar.tsx:248 src/view/com/util/UserBanner.tsx:62 -msgid "Library" -msgstr "Biblioteca" +#: src/view/com/util/UserAvatar.tsx:NaN +#~ msgid "Library" +#~ msgstr "Biblioteca" -#: src/view/screens/Settings/index.tsx:479 +#: src/view/screens/Settings/index.tsx:494 msgid "Light" msgstr "Chiaro" -#: src/view/com/util/post-ctrls/PostCtrls.tsx:182 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:185 msgid "Like" msgstr "Mi piace" -#: src/view/screens/ProfileFeed.tsx:591 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:257 +#: src/view/screens/ProfileFeed.tsx:572 msgid "Like this feed" msgstr "Metti mi piace a questo feed" -#: src/Navigation.tsx:199 +#: src/components/LikesDialog.tsx:87 +#: src/Navigation.tsx:201 +#: src/Navigation.tsx:206 msgid "Liked by" msgstr "Piace a" +#: src/screens/Profile/ProfileLabelerLikedBy.tsx:42 #: src/view/screens/PostLikedBy.tsx:27 #: src/view/screens/ProfileFeedLikedBy.tsx:27 msgid "Liked By" msgstr "Piace A" -#: src/view/com/feeds/FeedSourceCard.tsx:279 +#: src/view/com/feeds/FeedSourceCard.tsx:268 msgid "Liked by {0} {1}" msgstr "Piace a {0} {1}" -#: src/view/screens/ProfileFeed.tsx:606 +#: src/components/LabelingServiceCard/index.tsx:72 +msgid "Liked by {count} {0}" +msgstr "" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:277 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:291 +#: src/view/screens/ProfileFeed.tsx:587 msgid "Liked by {likeCount} {0}" msgstr "Piace a {likeCount} {0}" -#: src/view/com/notifications/FeedItem.tsx:170 +#: src/view/com/notifications/FeedItem.tsx:174 msgid "liked your custom feed" msgstr "piace il tuo feed personalizzato" -#: src/view/com/notifications/FeedItem.tsx:155 +#~ msgid "liked your custom feed{0}" +#~ msgstr "piace il feed personalizzato{0}" + +#: src/view/com/notifications/FeedItem.tsx:159 msgid "liked your post" msgstr "piace il tuo post" -#: src/view/screens/Profile.tsx:183 +#: src/view/screens/Profile.tsx:191 msgid "Likes" msgstr "Mi piace" -#: src/view/com/post-thread/PostThreadItem.tsx:183 +#: src/view/com/post-thread/PostThreadItem.tsx:182 msgid "Likes on this post" msgstr "Mi Piace in questo post" -#: src/Navigation.tsx:168 +#: src/Navigation.tsx:170 msgid "List" msgstr "Lista" @@ -2082,15 +2519,15 @@ msgstr "Lista" msgid "List Avatar" msgstr "Lista avatar" -#: src/view/screens/ProfileList.tsx:324 +#: src/view/screens/ProfileList.tsx:311 msgid "List blocked" msgstr "Lista bloccata" -#: src/view/com/feeds/FeedSourceCard.tsx:233 +#: src/view/com/feeds/FeedSourceCard.tsx:220 msgid "List by {0}" msgstr "Lista di {0}" -#: src/view/screens/ProfileList.tsx:378 +#: src/view/screens/ProfileList.tsx:355 msgid "List deleted" msgstr "Lista cancellata" @@ -2102,63 +2539,68 @@ msgstr "Lista muta" msgid "List Name" msgstr "Nome della lista" -#: src/view/screens/ProfileList.tsx:343 +#: src/view/screens/ProfileList.tsx:325 msgid "List unblocked" msgstr "Lista sbloccata" -#: src/view/screens/ProfileList.tsx:302 +#: src/view/screens/ProfileList.tsx:297 msgid "List unmuted" msgstr "Lista non mutata" -#: src/Navigation.tsx:112 -#: src/view/screens/Profile.tsx:185 -#: src/view/shell/desktop/LeftNav.tsx:379 -#: src/view/shell/Drawer.tsx:492 -#: src/view/shell/Drawer.tsx:493 +#: src/Navigation.tsx:114 +#: src/view/screens/Profile.tsx:187 +#: src/view/screens/Profile.tsx:193 +#: src/view/shell/desktop/LeftNav.tsx:383 +#: src/view/shell/Drawer.tsx:495 +#: src/view/shell/Drawer.tsx:496 msgid "Lists" msgstr "Liste" #: src/view/com/post-thread/PostThread.tsx:333 #: src/view/com/post-thread/PostThread.tsx:341 -msgid "Load more posts" -msgstr "Carica più post" +#~ msgid "Load more posts" +#~ msgstr "Carica più post" #: src/view/screens/Notifications.tsx:159 msgid "Load new notifications" msgstr "Carica più notifiche" -#: src/view/com/feeds/FeedPage.tsx:115 -#: src/view/screens/Profile.tsx:440 +#: src/screens/Profile/Sections/Feed.tsx:70 +#: src/view/com/feeds/FeedPage.tsx:124 #: src/view/screens/ProfileFeed.tsx:495 -#: src/view/screens/ProfileList.tsx:681 +#: src/view/screens/ProfileList.tsx:695 msgid "Load new posts" msgstr "Carica nuovi posts" -#: src/view/com/composer/text-input/mobile/Autocomplete.tsx:95 +#: src/view/com/composer/text-input/mobile/Autocomplete.tsx:99 msgid "Loading..." msgstr "Caricamento..." -#: src/view/com/modals/ServerInput.tsx:50 #~ msgid "Local dev server" #~ msgstr "Server di sviluppo locale" -#: src/Navigation.tsx:209 +#: src/Navigation.tsx:221 msgid "Log" msgstr "Log" -#: src/screens/Deactivated.tsx:149 src/screens/Deactivated.tsx:152 -#: src/screens/Deactivated.tsx:178 src/screens/Deactivated.tsx:181 +#: src/screens/Deactivated.tsx:149 +#: src/screens/Deactivated.tsx:152 +#: src/screens/Deactivated.tsx:178 +#: src/screens/Deactivated.tsx:181 msgid "Log out" msgstr "Disconnetta l'account" -#: src/view/screens/Moderation.tsx:155 +#: src/screens/Moderation/index.tsx:444 msgid "Logged-out visibility" msgstr "Visibilità degli utenti disconnessi" -#: src/view/com/auth/login/ChooseAccountForm.tsx:133 +#: src/view/com/auth/login/ChooseAccountForm.tsx:137 msgid "Login to account that is not listed" msgstr "Accedi all'account che non è nella lista" +#~ msgid "Looks like this feed is only available to users with a Bluesky account. Please sign up or sign in to view this feed!" +#~ msgstr "Sembra che questo feed sia disponibile solo per gli utenti con un account Bluesky. Per favore registrati o accedi per visualizzare questo feed!" + #: src/view/com/modals/LinkWarning.tsx:65 msgid "Make sure this is where you intend to go!" msgstr "Assicurati che questo sia dove intendi andare!" @@ -2175,7 +2617,7 @@ msgstr "" msgid "May only contain letters and numbers" msgstr "" -#: src/view/screens/Profile.tsx:182 +#: src/view/screens/Profile.tsx:190 msgid "Media" msgstr "Media" @@ -2188,34 +2630,46 @@ msgid "Mentioned users" msgstr "Utenti menzionati" #: src/view/com/util/ViewHeader.tsx:87 -#: src/view/screens/Search/Search.tsx:646 +#: src/view/screens/Search/Search.tsx:647 msgid "Menu" msgstr "Menù" -#: src/view/com/posts/FeedErrorMessage.tsx:197 +#~ msgid "Message from server" +#~ msgstr "Messaggio dal server" + +#: src/view/com/posts/FeedErrorMessage.tsx:192 msgid "Message from server: {0}" msgstr "Messaggio dal server: {0}" -#: src/Navigation.tsx:117 -#: src/view/screens/Moderation.tsx:66 -#: src/view/screens/Settings/index.tsx:625 -#: src/view/shell/desktop/LeftNav.tsx:397 src/view/shell/Drawer.tsx:511 -#: src/view/shell/Drawer.tsx:512 +#: src/lib/moderation/useReportOptions.ts:45 +msgid "Misleading Account" +msgstr "" + +#: src/Navigation.tsx:119 +#: src/screens/Moderation/index.tsx:106 +#: src/view/screens/Settings/index.tsx:641 +#: src/view/shell/desktop/LeftNav.tsx:401 +#: src/view/shell/Drawer.tsx:514 +#: src/view/shell/Drawer.tsx:515 msgid "Moderation" msgstr "Moderazione" +#: src/components/moderation/ModerationDetailsDialog.tsx:113 +msgid "Moderation details" +msgstr "" + #: src/view/com/lists/ListCard.tsx:93 #: src/view/com/modals/UserAddRemoveLists.tsx:206 msgid "Moderation list by {0}" msgstr "Lista di moderazione di {0}" -#: src/view/screens/ProfileList.tsx:775 +#: src/view/screens/ProfileList.tsx:789 msgid "Moderation list by <0/>" msgstr "Lista di moderazione di <0/>" #: src/view/com/lists/ListCard.tsx:91 #: src/view/com/modals/UserAddRemoveLists.tsx:204 -#: src/view/screens/ProfileList.tsx:773 +#: src/view/screens/ProfileList.tsx:787 msgid "Moderation list by you" msgstr "Le tue liste di moderazione" @@ -2227,30 +2681,41 @@ msgstr "Lista di moderazione creata" msgid "Moderation list updated" msgstr "Lista di moderazione aggiornata" -#: src/view/screens/Moderation.tsx:114 +#: src/screens/Moderation/index.tsx:245 msgid "Moderation lists" msgstr "Liste di moderazione" -#: src/Navigation.tsx:122 +#: src/Navigation.tsx:124 #: src/view/screens/ModerationModlists.tsx:58 msgid "Moderation Lists" msgstr "Liste di Moderazione" -#: src/view/screens/Settings/index.tsx:619 +#: src/view/screens/Settings/index.tsx:635 msgid "Moderation settings" msgstr "Impostazioni di moderazione" -#: src/view/com/modals/ModerationDetails.tsx:35 +#: src/Navigation.tsx:216 +msgid "Moderation states" +msgstr "" + +#: src/screens/Moderation/index.tsx:217 +msgid "Moderation tools" +msgstr "" + +#: src/components/moderation/ModerationDetailsDialog.tsx:49 +#: src/lib/moderation/useModerationCauseDescription.ts:40 msgid "Moderator has chosen to set a general warning on the content." msgstr "Il moderatore ha scelto di mettere un avviso generale sul contenuto." +#: src/view/com/post-thread/PostThreadItem.tsx:541 +msgid "More" +msgstr "" + #: src/view/shell/desktop/Feeds.tsx:65 msgid "More feeds" msgstr "Altri feed" -#: src/view/com/profile/ProfileHeader.tsx:523 -#: src/view/screens/ProfileFeed.tsx:363 -#: src/view/screens/ProfileList.tsx:617 +#: src/view/screens/ProfileList.tsx:599 msgid "More options" msgstr "Altre opzioni" @@ -2274,11 +2739,12 @@ msgstr "" msgid "Mute {truncatedTag}" msgstr "" -#: src/view/com/profile/ProfileHeader.tsx:327 +#: src/view/com/profile/ProfileMenu.tsx:279 +#: src/view/com/profile/ProfileMenu.tsx:286 msgid "Mute Account" msgstr "Silenziare Account" -#: src/view/screens/ProfileList.tsx:544 +#: src/view/screens/ProfileList.tsx:518 msgid "Mute accounts" msgstr "Silenziare accounts" @@ -2298,17 +2764,18 @@ msgstr "" msgid "Mute in text & tags" msgstr "" -#: src/view/screens/ProfileList.tsx:491 +#: src/view/screens/ProfileList.tsx:461 +#: src/view/screens/ProfileList.tsx:624 msgid "Mute list" msgstr "Silenziare la lista" -#: src/view/screens/ProfileList.tsx:275 +#: src/view/screens/ProfileList.tsx:619 msgid "Mute these accounts?" msgstr "Vuoi silenziare queste liste?" #: src/view/screens/ProfileList.tsx:279 -msgid "Mute this List" -msgstr "Silenzia questa Lista" +#~ msgid "Mute this List" +#~ msgstr "Silenzia questa Lista" #: src/components/dialogs/MutedWords.tsx:127 msgid "Mute this word in post text and tags" @@ -2332,11 +2799,11 @@ msgstr "" msgid "Muted" msgstr "Silenziato" -#: src/view/screens/Moderation.tsx:128 +#: src/screens/Moderation/index.tsx:257 msgid "Muted accounts" msgstr "Account silenziato" -#: src/Navigation.tsx:127 +#: src/Navigation.tsx:129 #: src/view/screens/ModerationMutedAccounts.tsx:107 msgid "Muted Accounts" msgstr "Accounts Silenziati" @@ -2345,15 +2812,20 @@ msgstr "Accounts Silenziati" msgid "Muted accounts have their posts removed from your feed and from your notifications. Mutes are completely private." msgstr "I post degli account silenziati verranno rimossi dal tuo feed e dalle tue notifiche. Silenziare è completamente privato." -#: src/view/screens/Moderation.tsx:100 +#: src/lib/moderation/useModerationCauseDescription.ts:85 +msgid "Muted by \"{0}\"" +msgstr "" + +#: src/screens/Moderation/index.tsx:233 msgid "Muted words & tags" msgstr "" -#: src/view/screens/ProfileList.tsx:277 +#: src/view/screens/ProfileList.tsx:621 msgid "Muting is private. Muted accounts can interact with you, but you will not see their posts or receive notifications from them." msgstr "Silenziare un account è privato. Gli account silenziati possono interagire con te, ma non vedrai i loro post né riceverai le loro notifiche." -#: src/view/com/modals/BirthDateSettings.tsx:56 +#: src/components/dialogs/BirthDateSettings.tsx:35 +#: src/components/dialogs/BirthDateSettings.tsx:38 msgid "My Birthday" msgstr "Il mio Compleanno" @@ -2365,13 +2837,17 @@ msgstr "I miei Feeds" msgid "My Profile" msgstr "Il mio Profilo" -#: src/view/screens/Settings/index.tsx:582 +#: src/view/screens/Settings/index.tsx:592 +msgid "My saved feeds" +msgstr "" + +#: src/view/screens/Settings/index.tsx:598 msgid "My Saved Feeds" msgstr "I miei Feeds Salvati" #: src/view/com/auth/server-input/index.tsx:118 -msgid "my-server.com" -msgstr "my-server.com" +#~ msgid "my-server.com" +#~ msgstr "my-server.com" #: src/view/com/modals/AddAppPasswords.tsx:179 #: src/view/com/modals/CreateOrEditList.tsx:290 @@ -2382,6 +2858,12 @@ msgstr "Nome" msgid "Name is required" msgstr "Il nome è obbligatorio" +#: src/lib/moderation/useReportOptions.ts:57 +#: src/lib/moderation/useReportOptions.ts:78 +#: src/lib/moderation/useReportOptions.ts:86 +msgid "Name or Description Violates Community Standards" +msgstr "" + #: src/screens/Onboarding/index.tsx:25 msgid "Nature" msgstr "Natura" @@ -2390,7 +2872,7 @@ msgstr "Natura" #: src/view/com/auth/login/ForgotPasswordForm.tsx:219 #: src/view/com/auth/login/LoginForm.tsx:289 #: src/view/com/auth/login/SetNewPasswordForm.tsx:196 -#: src/view/com/modals/ChangePassword.tsx:166 +#: src/view/com/modals/ChangePassword.tsx:168 msgid "Navigates to the next screen" msgstr "Vai alla schermata successiva" @@ -2398,13 +2880,17 @@ msgstr "Vai alla schermata successiva" msgid "Navigates to your profile" msgstr "Vai al tuo profilo" +#: src/components/ReportDialog/SelectReportOptionView.tsx:124 +msgid "Need to report a copyright violation?" +msgstr "" + #: src/view/com/modals/EmbedConsent.tsx:107 #: src/view/com/modals/EmbedConsent.tsx:123 msgid "Never load embeds from {0}" msgstr "Non caricare mai gli inserimenti di {0}" #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:72 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:72 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:74 msgid "Never lose access to your followers and data." msgstr "Non perdere mai l'accesso ai tuoi follower e ai tuoi dati." @@ -2413,7 +2899,11 @@ msgid "Never lose access to your followers or data." msgstr "Non perdere mai l'accesso ai tuoi follower o ai tuoi dati." #: src/components/dialogs/MutedWords.tsx:293 -msgid "Nevermind" +#~ msgid "Nevermind" +#~ msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:520 +msgid "Nevermind, create a handle for me" msgstr "" #: src/view/screens/Lists.tsx:76 @@ -2430,33 +2920,37 @@ msgid "New Moderation List" msgstr "Nuova Lista di Moderazione" #: src/view/com/auth/login/SetNewPasswordForm.tsx:150 +#: src/view/com/modals/ChangePassword.tsx:212 msgid "New password" msgstr "Nuovo Password" -#: src/view/com/modals/ChangePassword.tsx:215 +#: src/view/com/modals/ChangePassword.tsx:217 msgid "New Password" msgstr "Nuovo Password" -#: src/view/com/feeds/FeedPage.tsx:126 +#: src/view/com/feeds/FeedPage.tsx:135 msgctxt "action" msgid "New post" msgstr "Nuovo Post" #: src/view/screens/Feeds.tsx:555 #: src/view/screens/Notifications.tsx:168 -#: src/view/screens/Profile.tsx:382 +#: src/view/screens/Profile.tsx:450 #: src/view/screens/ProfileFeed.tsx:433 -#: src/view/screens/ProfileList.tsx:196 -#: src/view/screens/ProfileList.tsx:224 -#: src/view/shell/desktop/LeftNav.tsx:248 +#: src/view/screens/ProfileList.tsx:199 +#: src/view/screens/ProfileList.tsx:227 +#: src/view/shell/desktop/LeftNav.tsx:252 msgid "New post" msgstr "Nuovo post" -#: src/view/shell/desktop/LeftNav.tsx:258 +#: src/view/shell/desktop/LeftNav.tsx:262 msgctxt "action" msgid "New Post" msgstr "Nuovo post" +#~ msgid "New Post" +#~ msgstr "Nuovo Post" + #: src/view/com/modals/CreateOrEditList.tsx:247 msgid "New User List" msgstr "Nuova lista" @@ -2476,8 +2970,8 @@ msgstr "Notizie" #: src/view/com/auth/login/SetNewPasswordForm.tsx:187 #: src/view/com/auth/login/SetNewPasswordForm.tsx:198 #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:79 -#: src/view/com/modals/ChangePassword.tsx:251 #: src/view/com/modals/ChangePassword.tsx:253 +#: src/view/com/modals/ChangePassword.tsx:255 msgid "Next" msgstr "Seguente" @@ -2486,7 +2980,7 @@ msgctxt "action" msgid "Next" msgstr "Seguente" -#: src/view/com/lightbox/Lightbox.web.tsx:149 +#: src/view/com/lightbox/Lightbox.web.tsx:169 msgid "Next image" msgstr "Immagine seguente" @@ -2499,12 +2993,16 @@ msgstr "Immagine seguente" msgid "No" msgstr "No" -#: src/view/screens/ProfileFeed.tsx:584 -#: src/view/screens/ProfileList.tsx:755 +#: src/view/screens/ProfileFeed.tsx:561 +#: src/view/screens/ProfileList.tsx:769 msgid "No description" msgstr "Senza descrizione" -#: src/view/com/profile/ProfileHeader.tsx:170 +#: src/view/com/modals/ChangeHandle.tsx:406 +msgid "No DNS Panel" +msgstr "" + +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:111 msgid "No longer following {0}" msgstr "Non segui più {0}" @@ -2512,12 +3010,12 @@ msgstr "Non segui più {0}" msgid "No notifications yet!" msgstr "Ancora nessuna notifica!" -#: src/view/com/composer/text-input/mobile/Autocomplete.tsx:97 -#: src/view/com/composer/text-input/web/Autocomplete.tsx:191 +#: src/view/com/composer/text-input/mobile/Autocomplete.tsx:101 +#: src/view/com/composer/text-input/web/Autocomplete.tsx:195 msgid "No result" msgstr "Nessun risultato" -#: src/components/Lists.tsx:192 +#: src/components/Lists.tsx:189 msgid "No results found" msgstr "" @@ -2526,8 +3024,8 @@ msgid "No results found for \"{query}\"" msgstr "Nessun risultato trovato per \"{query}\"" #: src/view/com/modals/ListAddRemoveUsers.tsx:127 -#: src/view/screens/Search/Search.tsx:281 -#: src/view/screens/Search/Search.tsx:309 +#: src/view/screens/Search/Search.tsx:282 +#: src/view/screens/Search/Search.tsx:310 msgid "No results found for {query}" msgstr "Nessun risultato trovato per {query}" @@ -2539,12 +3037,21 @@ msgstr "No grazie" msgid "Nobody" msgstr "Nessuno" +#: src/components/LikedByList.tsx:102 +#: src/components/LikesDialog.tsx:99 +msgid "Nobody has liked this yet. Maybe you should be the first!" +msgstr "" + +#: src/lib/moderation/useGlobalLabelStrings.ts:42 +msgid "Non-sexual Nudity" +msgstr "" + #: src/view/com/modals/SelfLabel.tsx:135 msgid "Not Applicable." msgstr "Non applicabile." -#: src/Navigation.tsx:107 -#: src/view/screens/Profile.tsx:106 +#: src/Navigation.tsx:109 +#: src/view/screens/Profile.tsx:97 msgid "Not Found" msgstr "Non trovato" @@ -2553,16 +3060,22 @@ msgstr "Non trovato" msgid "Not right now" msgstr "Non adesso" -#: src/view/screens/Moderation.tsx:252 +#: src/view/com/profile/ProfileMenu.tsx:368 +#: src/view/com/util/forms/PostDropdownBtn.tsx:342 +msgid "Note about sharing" +msgstr "" + +#: src/screens/Moderation/index.tsx:542 msgid "Note: Bluesky is an open and public network. This setting only limits the visibility of your content on the Bluesky app and website, and other apps may not respect this setting. Your content may still be shown to logged-out users by other apps and websites." msgstr "Nota: Bluesky è una rete aperta e pubblica. Questa impostazione limita solo la visibilità dei tuoi contenuti sull'app e sul sito Web di Bluesky e altre app potrebbero non rispettare questa impostazione. I tuoi contenuti potrebbero comunque essere mostrati agli utenti disconnessi da altre app e siti web." -#: src/Navigation.tsx:457 +#: src/Navigation.tsx:469 #: src/view/screens/Notifications.tsx:124 #: src/view/screens/Notifications.tsx:148 -#: src/view/shell/bottom-bar/BottomBar.tsx:205 -#: src/view/shell/desktop/LeftNav.tsx:361 src/view/shell/Drawer.tsx:435 -#: src/view/shell/Drawer.tsx:436 +#: src/view/shell/bottom-bar/BottomBar.tsx:207 +#: src/view/shell/desktop/LeftNav.tsx:365 +#: src/view/shell/Drawer.tsx:438 +#: src/view/shell/Drawer.tsx:439 msgid "Notifications" msgstr "Notifiche" @@ -2570,7 +3083,15 @@ msgstr "Notifiche" msgid "Nudity" msgstr "Nudità" -#: src/view/com/util/ErrorBoundary.tsx:35 +#: src/lib/moderation/useReportOptions.ts:71 +msgid "Nudity or pornography not labeled as such" +msgstr "" + +#: src/lib/moderation/useLabelBehaviorDescription.ts:11 +msgid "Off" +msgstr "" + +#: src/view/com/util/ErrorBoundary.tsx:49 msgid "Oh no!" msgstr "Oh no!" @@ -2578,6 +3099,10 @@ msgstr "Oh no!" msgid "Oh no! Something went wrong." msgstr "Oh no! Qualcosa è andato storto." +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:127 +msgid "OK" +msgstr "" + #: src/view/com/auth/login/PasswordUpdatedForm.tsx:41 msgid "Okay" msgstr "Va bene" @@ -2586,11 +3111,11 @@ msgstr "Va bene" msgid "Oldest replies first" msgstr "Mostrare prima le risposte più vecchie" -#: src/view/screens/Settings/index.tsx:234 +#: src/view/screens/Settings/index.tsx:240 msgid "Onboarding reset" msgstr "Reimpostazione dell'onboarding" -#: src/view/com/composer/Composer.tsx:382 +#: src/view/com/composer/Composer.tsx:391 msgid "One or more images is missing alt text." msgstr "A una o più immagini manca il testo alternativo." @@ -2598,13 +3123,13 @@ msgstr "A una o più immagini manca il testo alternativo." msgid "Only {0} can reply." msgstr "Solo {0} può rispondere." -#: src/components/Lists.tsx:82 +#: src/components/Lists.tsx:83 msgid "Oops, something went wrong!" msgstr "" -#: src/components/Lists.tsx:188 -#: src/view/screens/AppPasswords.tsx:65 -#: src/view/screens/Profile.tsx:106 +#: src/components/Lists.tsx:157 +#: src/view/screens/AppPasswords.tsx:67 +#: src/view/screens/Profile.tsx:97 msgid "Oops!" msgstr "Ops!" @@ -2613,34 +3138,47 @@ msgid "Open" msgstr "Apri" #: src/view/screens/Moderation.tsx:75 -msgid "Open content filtering settings" -msgstr "" +#~ msgid "Open content filtering settings" +#~ msgstr "" -#: src/view/com/composer/Composer.tsx:477 -#: src/view/com/composer/Composer.tsx:478 +#: src/view/com/composer/Composer.tsx:490 +#: src/view/com/composer/Composer.tsx:491 msgid "Open emoji picker" msgstr "Apri il selettore emoji" -#: src/view/screens/Settings/index.tsx:712 +#: src/view/screens/ProfileFeed.tsx:299 +msgid "Open feed options menu" +msgstr "" + +#: src/view/screens/Settings/index.tsx:730 msgid "Open links with in-app browser" msgstr "Apri i links con il navigatore della app" -#: src/view/screens/Moderation.tsx:92 -msgid "Open muted words settings" +#: src/screens/Moderation/index.tsx:229 +msgid "Open muted words and tags settings" msgstr "" +#: src/view/screens/Moderation.tsx:92 +#~ msgid "Open muted words settings" +#~ msgstr "" + #: src/view/com/home/HomeHeaderLayoutMobile.tsx:50 msgid "Open navigation" msgstr "Apri la navigazione" -#: src/view/com/util/forms/PostDropdownBtn.tsx:175 +#: src/view/com/util/forms/PostDropdownBtn.tsx:183 msgid "Open post options menu" msgstr "" -#: src/view/screens/Settings/index.tsx:804 +#: src/view/screens/Settings/index.tsx:824 +#: src/view/screens/Settings/index.tsx:834 msgid "Open storybook page" msgstr "Apri la pagina della cronologia" +#: src/view/screens/Settings/index.tsx:812 +msgid "Open system log" +msgstr "" + #: src/view/com/util/forms/DropdownButton.tsx:154 msgid "Opens {numItems} options" msgstr "Apre le {numItems} opzioni" @@ -2649,11 +3187,11 @@ msgstr "Apre le {numItems} opzioni" msgid "Opens additional details for a debug entry" msgstr "Apre dettagli aggiuntivi per una debug entry" -#: src/view/com/notifications/FeedItem.tsx:349 +#: src/view/com/notifications/FeedItem.tsx:353 msgid "Opens an expanded list of users in this notification" msgstr "Apre un elenco ampliato di utenti in questa notifica" -#: src/view/com/composer/photos/OpenCameraBtn.tsx:61 +#: src/view/com/composer/photos/OpenCameraBtn.tsx:78 msgid "Opens camera on device" msgstr "Apre la fotocamera sul dispositivo" @@ -2661,7 +3199,7 @@ msgstr "Apre la fotocamera sul dispositivo" msgid "Opens composer" msgstr "Apre il compositore" -#: src/view/screens/Settings/index.tsx:595 +#: src/view/screens/Settings/index.tsx:611 msgid "Opens configurable language settings" msgstr "Apre le impostazioni configurabili delle lingue" @@ -2670,34 +3208,67 @@ msgid "Opens device photo gallery" msgstr "Apre la galleria fotografica del dispositivo" #: src/view/com/profile/ProfileHeader.tsx:420 -msgid "Opens editor for profile display name, avatar, background image, and description" -msgstr "Apre l'editor per il nome configurato del profilo, l'avatar, l'immagine di sfondo e la descrizione" +#~ msgid "Opens editor for profile display name, avatar, background image, and description" +#~ msgstr "Apre l'editor per il nome configurato del profilo, l'avatar, l'immagine di sfondo e la descrizione" -#: src/view/screens/Settings/index.tsx:649 +#: src/view/screens/Settings/index.tsx:665 msgid "Opens external embeds settings" msgstr "Apre le impostazioni esterne per gli incorporamenti" +#: src/view/com/auth/HomeLoggedOutCTA.tsx:56 +#: src/view/com/auth/SplashScreen.tsx:70 +msgid "Opens flow to create a new Bluesky account" +msgstr "" + +#: src/view/com/auth/HomeLoggedOutCTA.tsx:74 +#: src/view/com/auth/SplashScreen.tsx:83 +msgid "Opens flow to sign into your existing Bluesky account" +msgstr "" + #: src/view/com/profile/ProfileHeader.tsx:575 -msgid "Opens followers list" -msgstr "Apre la lista dei followers" +#~ msgid "Opens followers list" +#~ msgstr "Apre la lista dei followers" #: src/view/com/profile/ProfileHeader.tsx:594 -msgid "Opens following list" -msgstr "Apre la lista di chi segui" +#~ msgid "Opens following list" +#~ msgstr "Apre la lista di chi segui" + +#~ msgid "Opens invite code list" +#~ msgstr "Apre la lista dei codici di invito" #: src/view/com/modals/InviteCodes.tsx:172 msgid "Opens list of invite codes" msgstr "Apre la lista dei codici di invito" +#: src/view/screens/Settings/index.tsx:794 +msgid "Opens modal for account deletion confirmation. Requires email code" +msgstr "" + #: src/view/screens/Settings/index.tsx:774 -msgid "Opens modal for account deletion confirmation. Requires email code." -msgstr "Apre il modal per la conferma dell'eliminazione dell'account. Richiede un codice email." +#~ msgid "Opens modal for account deletion confirmation. Requires email code." +#~ msgstr "Apre il modal per la conferma dell'eliminazione dell'account. Richiede un codice email." + +#: src/view/screens/Settings/index.tsx:752 +msgid "Opens modal for changing your Bluesky password" +msgstr "" + +#: src/view/screens/Settings/index.tsx:714 +msgid "Opens modal for choosing a new Bluesky handle" +msgstr "" + +#: src/view/screens/Settings/index.tsx:775 +msgid "Opens modal for downloading your Bluesky account data (repository)" +msgstr "" + +#: src/view/screens/Settings/index.tsx:966 +msgid "Opens modal for email verification" +msgstr "" #: src/view/com/modals/ChangeHandle.tsx:281 msgid "Opens modal for using custom domain" msgstr "Apre il modal per l'utilizzo del dominio personalizzato" -#: src/view/screens/Settings/index.tsx:620 +#: src/view/screens/Settings/index.tsx:636 msgid "Opens moderation settings" msgstr "Apre le impostazioni di moderazione" @@ -2710,27 +3281,40 @@ msgstr "Apre il modulo di reimpostazione della password" msgid "Opens screen to edit Saved Feeds" msgstr "Apre la schermata per modificare i feed salvati" -#: src/view/screens/Settings/index.tsx:576 +#: src/view/screens/Settings/index.tsx:593 msgid "Opens screen with all saved feeds" msgstr "Apre la schermata con tutti i feed salvati" +#: src/view/screens/Settings/index.tsx:692 +msgid "Opens the app password settings" +msgstr "" + #: src/view/screens/Settings/index.tsx:676 -msgid "Opens the app password settings page" -msgstr "Apre la pagina delle impostazioni della password dell'app" +#~ msgid "Opens the app password settings page" +#~ msgstr "Apre la pagina delle impostazioni della password dell'app" + +#: src/view/screens/Settings/index.tsx:550 +msgid "Opens the Following feed preferences" +msgstr "" #: src/view/screens/Settings/index.tsx:535 -msgid "Opens the home feed preferences" -msgstr "Apre le preferenze del home feed" +#~ msgid "Opens the home feed preferences" +#~ msgstr "Apre le preferenze del home feed" + +#: src/view/com/modals/LinkWarning.tsx:76 +msgid "Opens the linked website" +msgstr "" -#: src/view/screens/Settings/index.tsx:805 +#: src/view/screens/Settings/index.tsx:825 +#: src/view/screens/Settings/index.tsx:835 msgid "Opens the storybook page" msgstr "Apri la pagina della cronologia" -#: src/view/screens/Settings/index.tsx:793 +#: src/view/screens/Settings/index.tsx:813 msgid "Opens the system log page" msgstr "Apre la pagina del registro di sistema" -#: src/view/screens/Settings/index.tsx:556 +#: src/view/screens/Settings/index.tsx:571 msgid "Opens the threads preferences" msgstr "Apre le preferenze dei threads" @@ -2738,19 +3322,30 @@ msgstr "Apre le preferenze dei threads" msgid "Option {0} of {numItems}" msgstr "Opzione {0} di {numItems}" +#: src/components/ReportDialog/SubmitView.tsx:162 +msgid "Optionally provide additional information below:" +msgstr "" + #: src/view/com/modals/Threadgate.tsx:89 msgid "Or combine these options:" msgstr "Oppure combina queste opzioni:" -#: src/view/com/auth/login/ChooseAccountForm.tsx:138 +#: src/lib/moderation/useReportOptions.ts:25 +msgid "Other" +msgstr "" + +#: src/view/com/auth/login/ChooseAccountForm.tsx:142 msgid "Other account" msgstr "Altro account" +#~ msgid "Other service" +#~ msgstr "Altro servizio" + #: src/view/com/composer/select-language/SelectLangBtn.tsx:91 msgid "Other..." msgstr "Altro..." -#: src/components/Lists.tsx:194 +#: src/components/Lists.tsx:190 #: src/view/screens/NotFound.tsx:45 msgid "Page not found" msgstr "Pagina non trovata" @@ -2761,12 +3356,18 @@ msgstr "Pagina non trovata" #: src/view/com/auth/create/Step1.tsx:191 #: src/view/com/auth/create/Step1.tsx:201 +#: src/view/com/auth/login/LoginForm.tsx:210 #: src/view/com/auth/login/LoginForm.tsx:226 #: src/view/com/auth/login/SetNewPasswordForm.tsx:161 +#: src/view/com/modals/DeleteAccount.tsx:195 #: src/view/com/modals/DeleteAccount.tsx:202 msgid "Password" msgstr "Password" +#: src/view/com/modals/ChangePassword.tsx:142 +msgid "Password Changed" +msgstr "" + #: src/view/com/auth/login/Login.tsx:157 msgid "Password updated" msgstr "Password aggiornata" @@ -2775,11 +3376,11 @@ msgstr "Password aggiornata" msgid "Password updated!" msgstr "Password aggiornata!" -#: src/Navigation.tsx:162 +#: src/Navigation.tsx:164 msgid "People followed by @{0}" msgstr "Persone seguite da @{0}" -#: src/Navigation.tsx:155 +#: src/Navigation.tsx:157 msgid "People following @{0}" msgstr "Persone che seguono @{0}" @@ -2803,11 +3404,15 @@ msgstr "Animali di compagnia" msgid "Pictures meant for adults." msgstr "Immagini per adulti." -#: src/view/screens/ProfileFeed.tsx:354 -#: src/view/screens/ProfileList.tsx:581 +#: src/view/screens/ProfileFeed.tsx:291 +#: src/view/screens/ProfileList.tsx:563 msgid "Pin to home" msgstr "Fissa sulla home page" +#: src/view/screens/ProfileFeed.tsx:294 +msgid "Pin to Home" +msgstr "" + #: src/view/screens/SavedFeeds.tsx:88 msgid "Pinned Feeds" msgstr "Feeds Fissi" @@ -2873,16 +3478,23 @@ msgstr "Inserisci la tua email." msgid "Please enter your password as well:" msgstr "Inserisci anche la tua password:" +#: src/components/moderation/LabelsOnMeDialog.tsx:222 +msgid "Please explain why you think this label was incorrectly applied by {0}" +msgstr "" + #: src/view/com/modals/AppealLabel.tsx:72 #: src/view/com/modals/AppealLabel.tsx:75 -msgid "Please tell us why you think this content warning was incorrectly applied!" -msgstr "Spiegaci perché ritieni che questo avviso sui contenuti sia stato applicato in modo errato!" +#~ msgid "Please tell us why you think this content warning was incorrectly applied!" +#~ msgstr "Spiegaci perché ritieni che questo avviso sui contenuti sia stato applicato in modo errato!" + +#~ msgid "Please tell us why you think this decision was incorrect." +#~ msgstr "Per favore spiegaci perché ritieni che questa decisione sia stata sbagliata." #: src/view/com/modals/VerifyEmail.tsx:101 msgid "Please Verify Your Email" msgstr "Verifica la tua email" -#: src/view/com/composer/Composer.tsx:222 +#: src/view/com/composer/Composer.tsx:221 msgid "Please wait for your link card to finish loading" msgstr "Attendi il caricamento della scheda di collegamento" @@ -2894,38 +3506,52 @@ msgstr "Politica" msgid "Porn" msgstr "Porno" -#: src/view/com/composer/Composer.tsx:357 -#: src/view/com/composer/Composer.tsx:365 +#: src/lib/moderation/useGlobalLabelStrings.ts:34 +msgid "Pornography" +msgstr "" + +#: src/view/com/composer/Composer.tsx:366 +#: src/view/com/composer/Composer.tsx:374 msgctxt "action" msgid "Post" msgstr "Post" -#: src/view/com/post-thread/PostThread.tsx:303 +#: src/view/com/post-thread/PostThread.tsx:292 msgctxt "description" msgid "Post" msgstr "Post" #~ msgid "Post" -#~ msgstr "Publicació" +#~ msgstr "Post" #: src/view/com/post-thread/PostThreadItem.tsx:175 msgid "Post by {0}" msgstr "Pubblicato da {0}" -#: src/Navigation.tsx:174 -#: src/Navigation.tsx:181 -#: src/Navigation.tsx:188 +#: src/Navigation.tsx:176 +#: src/Navigation.tsx:183 +#: src/Navigation.tsx:190 msgid "Post by @{0}" msgstr "Pubblicato da @{0}" -#: src/view/com/util/forms/PostDropdownBtn.tsx:108 +#: src/view/com/util/forms/PostDropdownBtn.tsx:105 msgid "Post deleted" msgstr "Post eliminato" -#: src/view/com/post-thread/PostThread.tsx:462 +#: src/view/com/post-thread/PostThread.tsx:157 msgid "Post hidden" msgstr "Post nascosto" +#: src/components/moderation/ModerationDetailsDialog.tsx:98 +#: src/lib/moderation/useModerationCauseDescription.ts:99 +msgid "Post Hidden by Muted Word" +msgstr "" + +#: src/components/moderation/ModerationDetailsDialog.tsx:101 +#: src/lib/moderation/useModerationCauseDescription.ts:108 +msgid "Post Hidden by You" +msgstr "" + #: src/view/com/composer/select-language/SelectLangBtn.tsx:87 msgid "Post language" msgstr "Lingua del post" @@ -2934,7 +3560,8 @@ msgstr "Lingua del post" msgid "Post Languages" msgstr "Lingue del post" -#: src/view/com/post-thread/PostThread.tsx:514 +#: src/view/com/post-thread/PostThread.tsx:152 +#: src/view/com/post-thread/PostThread.tsx:164 msgid "Post not found" msgstr "Post non trovato" @@ -2942,7 +3569,7 @@ msgstr "Post non trovato" msgid "posts" msgstr "" -#: src/view/screens/Profile.tsx:180 +#: src/view/screens/Profile.tsx:188 msgid "Posts" msgstr "Post" @@ -2958,7 +3585,11 @@ msgstr "Post nascosto" msgid "Potentially Misleading Link" msgstr "Link potenzialmente fuorviante" -#: src/view/com/lightbox/Lightbox.web.tsx:135 +#: src/components/Lists.tsx:88 +msgid "Press to retry" +msgstr "" + +#: src/view/com/lightbox/Lightbox.web.tsx:150 msgid "Previous image" msgstr "Immagine precedente" @@ -2970,15 +3601,16 @@ msgstr "Lingua principale" msgid "Prioritize Your Follows" msgstr "Dai priorità a quelli che segui" -#: src/view/screens/Settings/index.tsx:632 +#: src/view/screens/Settings/index.tsx:648 #: src/view/shell/desktop/RightNav.tsx:72 msgid "Privacy" msgstr "Privacy" -#: src/Navigation.tsx:219 +#: src/Navigation.tsx:231 +#: src/view/com/auth/create/Policies.tsx:69 #: src/view/screens/PrivacyPolicy.tsx:29 -#: src/view/screens/Settings/index.tsx:891 -#: src/view/shell/Drawer.tsx:262 +#: src/view/screens/Settings/index.tsx:921 +#: src/view/shell/Drawer.tsx:265 msgid "Privacy Policy" msgstr "Informativa sulla privacy" @@ -2986,9 +3618,16 @@ msgstr "Informativa sulla privacy" msgid "Processing..." msgstr "Elaborazione in corso…" -#: src/view/shell/bottom-bar/BottomBar.tsx:247 -#: src/view/shell/desktop/LeftNav.tsx:415 src/view/shell/Drawer.tsx:70 -#: src/view/shell/Drawer.tsx:546 src/view/shell/Drawer.tsx:547 +#: src/view/screens/DebugMod.tsx:888 +#: src/view/screens/Profile.tsx:340 +msgid "profile" +msgstr "" + +#: src/view/shell/bottom-bar/BottomBar.tsx:251 +#: src/view/shell/desktop/LeftNav.tsx:419 +#: src/view/shell/Drawer.tsx:70 +#: src/view/shell/Drawer.tsx:549 +#: src/view/shell/Drawer.tsx:550 msgid "Profile" msgstr "Profilo" @@ -2996,7 +3635,7 @@ msgstr "Profilo" msgid "Profile updated" msgstr "Profilo aggiornato" -#: src/view/screens/Settings/index.tsx:949 +#: src/view/screens/Settings/index.tsx:979 msgid "Protect your account by verifying your email." msgstr "Proteggi il tuo account verificando la tua email." @@ -3012,11 +3651,11 @@ msgstr "Elenchi pubblici e condivisibili di utenti da disattivare o bloccare in msgid "Public, shareable lists which can drive feeds." msgstr "Liste pubbliche e condivisibili che possono impulsare i feeds." -#: src/view/com/composer/Composer.tsx:342 +#: src/view/com/composer/Composer.tsx:351 msgid "Publish post" msgstr "Pubblica il post" -#: src/view/com/composer/Composer.tsx:342 +#: src/view/com/composer/Composer.tsx:351 msgid "Publish reply" msgstr "Pubblica la risposta" @@ -3034,6 +3673,9 @@ msgctxt "action" msgid "Quote Post" msgstr "Cita il post" +#~ msgid "Quote Post" +#~ msgstr "Cita il post" + #: src/view/screens/PreferencesThreads.tsx:86 msgid "Random (aka \"Poster's Roulette\")" msgstr "Selezione a caso (nota anche come \"Poster's Roulette\")" @@ -3042,6 +3684,10 @@ msgstr "Selezione a caso (nota anche come \"Poster's Roulette\")" msgid "Ratios" msgstr "Rapporti" +#: src/view/screens/Search/Search.tsx:776 +msgid "Recent Searches" +msgstr "" + #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:116 msgid "Recommended Feeds" msgstr "Feeds consigliati" @@ -3050,35 +3696,50 @@ msgstr "Feeds consigliati" msgid "Recommended Users" msgstr "Utenti consigliati" -#: src/components/dialogs/MutedWords.tsx:298 -#: src/view/com/modals/ListAddRemoveUsers.tsx:264 +#: src/components/dialogs/MutedWords.tsx:287 +#: src/view/com/feeds/FeedSourceCard.tsx:283 +#: src/view/com/modals/ListAddRemoveUsers.tsx:268 #: src/view/com/modals/SelfLabel.tsx:83 #: src/view/com/modals/UserAddRemoveLists.tsx:219 -#: src/view/com/util/UserAvatar.tsx:285 src/view/com/util/UserBanner.tsx:91 +#: src/view/com/posts/FeedErrorMessage.tsx:204 msgid "Remove" msgstr "Rimuovi" #: src/view/com/feeds/FeedSourceCard.tsx:108 -msgid "Remove {0} from my feeds?" -msgstr "Rimuovere {0} dai miei feeds?" +#~ msgid "Remove {0} from my feeds?" +#~ msgstr "Rimuovere {0} dai miei feeds?" #: src/view/com/util/AccountDropdownBtn.tsx:22 msgid "Remove account" msgstr "Rimuovi l'account" -#: src/view/com/posts/FeedErrorMessage.tsx:131 -#: src/view/com/posts/FeedErrorMessage.tsx:166 +#: src/view/com/util/UserAvatar.tsx:358 +msgid "Remove Avatar" +msgstr "" + +#: src/view/com/util/UserBanner.tsx:148 +msgid "Remove Banner" +msgstr "" + +#: src/view/com/posts/FeedErrorMessage.tsx:160 msgid "Remove feed" msgstr "Rimuovi il feed" -#: src/view/com/feeds/FeedSourceCard.tsx:107 -#: src/view/com/feeds/FeedSourceCard.tsx:169 -#: src/view/com/feeds/FeedSourceCard.tsx:174 -#: src/view/com/feeds/FeedSourceCard.tsx:245 -#: src/view/screens/ProfileFeed.tsx:273 +#: src/view/com/posts/FeedErrorMessage.tsx:201 +msgid "Remove feed?" +msgstr "" + +#: src/view/com/feeds/FeedSourceCard.tsx:173 +#: src/view/com/feeds/FeedSourceCard.tsx:233 +#: src/view/screens/ProfileFeed.tsx:334 +#: src/view/screens/ProfileFeed.tsx:340 msgid "Remove from my feeds" msgstr "Rimuovi dai miei feed" +#: src/view/com/feeds/FeedSourceCard.tsx:278 +msgid "Remove from my feeds?" +msgstr "" + #: src/view/com/composer/photos/Gallery.tsx:167 msgid "Remove image" msgstr "Rimuovi l'immagine" @@ -3087,7 +3748,7 @@ msgstr "Rimuovi l'immagine" msgid "Remove image preview" msgstr "Rimuovi l'anteprima dell'immagine" -#: src/components/dialogs/MutedWords.tsx:343 +#: src/components/dialogs/MutedWords.tsx:330 msgid "Remove mute word from your list" msgstr "" @@ -3096,28 +3757,35 @@ msgid "Remove repost" msgstr "Rimuovi la ripubblicazione" #: src/view/com/feeds/FeedSourceCard.tsx:175 -msgid "Remove this feed from my feeds?" -msgstr "Rimuovere questo feed dai miei feeds?" +#~ msgid "Remove this feed from my feeds?" +#~ msgstr "Rimuovere questo feed dai miei feeds?" + +#: src/view/com/posts/FeedErrorMessage.tsx:202 +msgid "Remove this feed from your saved feeds" +msgstr "" #: src/view/com/posts/FeedErrorMessage.tsx:132 -msgid "Remove this feed from your saved feeds?" -msgstr "Elimina questo feed dai feeds salvati?" +#~ msgid "Remove this feed from your saved feeds?" +#~ msgstr "Elimina questo feed dai feeds salvati?" #: src/view/com/modals/ListAddRemoveUsers.tsx:199 #: src/view/com/modals/UserAddRemoveLists.tsx:152 msgid "Removed from list" msgstr "Elimina dalla lista" -#: src/view/com/feeds/FeedSourceCard.tsx:113 -#: src/view/com/feeds/FeedSourceCard.tsx:180 +#: src/view/com/feeds/FeedSourceCard.tsx:121 msgid "Removed from my feeds" msgstr "Rimuovere dai miei feeds" +#: src/view/screens/ProfileFeed.tsx:208 +msgid "Removed from your feeds" +msgstr "" + #: src/view/com/composer/ExternalEmbed.tsx:71 msgid "Removes default thumbnail from {0}" msgstr "Elimina la miniatura predefinita da {0}" -#: src/view/screens/Profile.tsx:181 +#: src/view/screens/Profile.tsx:189 msgid "Replies" msgstr "Risposte" @@ -3125,7 +3793,7 @@ msgstr "Risposte" msgid "Replies to this thread are disabled" msgstr "Le risposte a questo thread sono disabilitate" -#: src/view/com/composer/Composer.tsx:355 +#: src/view/com/composer/Composer.tsx:364 msgctxt "action" msgid "Reply" msgstr "Risposta" @@ -3134,35 +3802,57 @@ msgstr "Risposta" msgid "Reply Filters" msgstr "Filtri di risposta" -#: src/view/com/post/Post.tsx:167 -#: src/view/com/posts/FeedItem.tsx:287 +#: src/view/com/post/Post.tsx:166 +#: src/view/com/posts/FeedItem.tsx:280 msgctxt "description" msgid "Reply to <0/>" msgstr "In risposta a <0/>" #: src/view/com/modals/report/Modal.tsx:166 -msgid "Report {collectionName}" -msgstr "Segnala {collectionName}" +#~ msgid "Report {collectionName}" +#~ msgstr "Segnala {collectionName}" -#: src/view/com/profile/ProfileHeader.tsx:361 +#: src/view/com/profile/ProfileMenu.tsx:319 +#: src/view/com/profile/ProfileMenu.tsx:322 msgid "Report Account" msgstr "Segnala il conto" -#: src/view/screens/ProfileFeed.tsx:293 +#: src/view/screens/ProfileFeed.tsx:351 +#: src/view/screens/ProfileFeed.tsx:353 msgid "Report feed" msgstr "Segnala il feed" -#: src/view/screens/ProfileList.tsx:459 +#: src/view/screens/ProfileList.tsx:429 msgid "Report List" msgstr "Segnala la lista" -#: src/view/com/modals/report/SendReportButton.tsx:37 -#: src/view/com/util/forms/PostDropdownBtn.tsx:301 -#: src/view/com/util/forms/PostDropdownBtn.tsx:309 +#: src/view/com/util/forms/PostDropdownBtn.tsx:292 +#: src/view/com/util/forms/PostDropdownBtn.tsx:294 msgid "Report post" msgstr "Segnala il post" -#: src/view/com/modals/Repost.tsx:43 src/view/com/modals/Repost.tsx:48 +#: src/components/ReportDialog/SelectReportOptionView.tsx:43 +msgid "Report this content" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:56 +msgid "Report this feed" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:53 +msgid "Report this list" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:50 +msgid "Report this post" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:47 +msgid "Report this user" +msgstr "" + +#: src/view/com/modals/Repost.tsx:43 +#: src/view/com/modals/Repost.tsx:48 #: src/view/com/modals/Repost.tsx:53 #: src/view/com/util/post-ctrls/RepostButton.tsx:61 msgctxt "action" @@ -3178,23 +3868,29 @@ msgstr "Ripubblicare" msgid "Repost or quote post" msgstr "Ripubblicare o citare il post" +#~ msgid "Reposted by" +#~ msgstr "Repost di" + #: src/view/screens/PostRepostedBy.tsx:27 msgid "Reposted By" msgstr "Repost di" -#: src/view/com/posts/FeedItem.tsx:207 +#: src/view/com/posts/FeedItem.tsx:197 msgid "Reposted by {0}" msgstr "Repost di {0}" -#: src/view/com/posts/FeedItem.tsx:224 +#~ msgid "Reposted by {0})" +#~ msgstr "Repost di {0})" + +#: src/view/com/posts/FeedItem.tsx:214 msgid "Reposted by <0/>" msgstr "Repost di <0/>" -#: src/view/com/notifications/FeedItem.tsx:162 +#: src/view/com/notifications/FeedItem.tsx:166 msgid "reposted your post" msgstr "reposted il tuo post" -#: src/view/com/post-thread/PostThreadItem.tsx:188 +#: src/view/com/post-thread/PostThreadItem.tsx:187 msgid "Reposts of this post" msgstr "Repost di questo post" @@ -3207,12 +3903,12 @@ msgstr "Richiedi un cambio" #~ msgid "Request code" #~ msgstr "Richiedi un codice" -#: src/view/com/modals/ChangePassword.tsx:239 #: src/view/com/modals/ChangePassword.tsx:241 +#: src/view/com/modals/ChangePassword.tsx:243 msgid "Request Code" msgstr "Richiedi il codice" -#: src/view/screens/Settings/index.tsx:456 +#: src/view/screens/Settings/index.tsx:471 msgid "Require alt text before posting" msgstr "Richiedi il testo alternativo prima di pubblicare" @@ -3222,18 +3918,20 @@ msgstr "Obbligatorio per questo operatore" #: src/view/com/auth/login/SetNewPasswordForm.tsx:124 #: src/view/com/auth/login/SetNewPasswordForm.tsx:136 +#: src/view/com/modals/ChangePassword.tsx:185 msgid "Reset code" msgstr "Reimpostare il codice" -#: src/view/com/modals/ChangePassword.tsx:190 +#: src/view/com/modals/ChangePassword.tsx:192 msgid "Reset Code" msgstr "Reimposta il Codice" #: src/view/screens/Settings/index.tsx:824 -msgid "Reset onboarding" -msgstr "Reimposta l'incorporazione" +#~ msgid "Reset onboarding" +#~ msgstr "Reimposta l'incorporazione" -#: src/view/screens/Settings/index.tsx:827 +#: src/view/screens/Settings/index.tsx:854 +#: src/view/screens/Settings/index.tsx:857 msgid "Reset onboarding state" msgstr "Reimposta lo stato dell' incorporazione" @@ -3242,18 +3940,19 @@ msgid "Reset password" msgstr "Reimposta la password" #: src/view/screens/Settings/index.tsx:814 -msgid "Reset preferences" -msgstr "Reimposta le preferenze" +#~ msgid "Reset preferences" +#~ msgstr "Reimposta le preferenze" -#: src/view/screens/Settings/index.tsx:817 +#: src/view/screens/Settings/index.tsx:844 +#: src/view/screens/Settings/index.tsx:847 msgid "Reset preferences state" msgstr "Reimposta lo stato delle preferenze" -#: src/view/screens/Settings/index.tsx:825 +#: src/view/screens/Settings/index.tsx:855 msgid "Resets the onboarding state" msgstr "Reimposta lo stato dell'incorporazione" -#: src/view/screens/Settings/index.tsx:815 +#: src/view/screens/Settings/index.tsx:845 msgid "Resets the preferences state" msgstr "Reimposta lo stato delle preferenze" @@ -3266,6 +3965,7 @@ msgstr "Ritenta l'accesso" msgid "Retries the last action, which errored out" msgstr "Ritenta l'ultima azione che ha generato un errore" +#: src/components/Lists.tsx:98 #: src/screens/Onboarding/StepInterests/index.tsx:221 #: src/screens/Onboarding/StepInterests/index.tsx:224 #: src/view/com/auth/create/CreateAccount.tsx:181 @@ -3281,10 +3981,19 @@ msgstr "Riprova" #~ msgid "Retry." #~ msgstr "Riprova." -#: src/view/screens/ProfileList.tsx:903 +#: src/view/screens/ProfileList.tsx:917 msgid "Return to previous page" msgstr "Ritorna alla pagina precedente" +#: src/view/screens/NotFound.tsx:59 +msgid "Returns to home page" +msgstr "" + +#: src/view/screens/NotFound.tsx:58 +#: src/view/screens/ProfileFeed.tsx:112 +msgid "Returns to previous page" +msgstr "" + #: src/view/shell/desktop/RightNav.tsx:55 #~ msgid "SANDBOX. Posts and accounts are not permanent." #~ msgstr "SANDBOX. I post e gli account non sono permanenti." @@ -3295,12 +4004,10 @@ msgctxt "action" msgid "Save" msgstr "Salva" -#: src/view/com/modals/BirthDateSettings.tsx:94 -#: src/view/com/modals/BirthDateSettings.tsx:97 +#: src/components/dialogs/BirthDateSettings.tsx:125 #: src/view/com/modals/ChangeHandle.tsx:173 #: src/view/com/modals/CreateOrEditList.tsx:337 #: src/view/com/modals/EditProfile.tsx:224 -#: src/view/screens/ProfileFeed.tsx:346 msgid "Save" msgstr "Salva" @@ -3308,6 +4015,10 @@ msgstr "Salva" msgid "Save alt text" msgstr "Salva il testo alternativo" +#: src/components/dialogs/BirthDateSettings.tsx:119 +msgid "Save birthday" +msgstr "" + #: src/view/com/modals/EditProfile.tsx:232 msgid "Save Changes" msgstr "Salva i cambi" @@ -3320,10 +4031,23 @@ msgstr "Salva la modifica del tuo identificatore" msgid "Save image crop" msgstr "Salva il ritaglio dell'immagine" +#: src/view/screens/ProfileFeed.tsx:335 +#: src/view/screens/ProfileFeed.tsx:341 +msgid "Save to my feeds" +msgstr "" + #: src/view/screens/SavedFeeds.tsx:122 msgid "Saved Feeds" msgstr "Canali salvati" +#: src/view/com/lightbox/Lightbox.tsx:81 +msgid "Saved to your camera roll." +msgstr "" + +#: src/view/screens/ProfileFeed.tsx:212 +msgid "Saved to your feeds" +msgstr "" + #: src/view/com/modals/EditProfile.tsx:225 msgid "Saves any changes to your profile" msgstr "Salva eventuali modifiche al tuo profilo" @@ -3332,31 +4056,37 @@ msgstr "Salva eventuali modifiche al tuo profilo" msgid "Saves handle change to {handle}" msgstr "Salva la modifica del cambio dell'utente in {handle}" +#: src/view/com/modals/crop-image/CropImage.web.tsx:145 +msgid "Saves image crop settings" +msgstr "" + #: src/screens/Onboarding/index.tsx:36 msgid "Science" msgstr "Scienza" -#: src/view/screens/ProfileList.tsx:859 +#: src/view/screens/ProfileList.tsx:873 msgid "Scroll to top" msgstr "Scorri verso l'alto" -#: src/Navigation.tsx:447 +#: src/Navigation.tsx:459 #: src/view/com/auth/LoggedOut.tsx:122 #: src/view/com/modals/ListAddRemoveUsers.tsx:75 #: src/view/com/util/forms/SearchInput.tsx:67 #: src/view/com/util/forms/SearchInput.tsx:79 -#: src/view/screens/Search/Search.tsx:419 -#: src/view/screens/Search/Search.tsx:668 -#: src/view/screens/Search/Search.tsx:686 -#: src/view/shell/bottom-bar/BottomBar.tsx:159 -#: src/view/shell/desktop/LeftNav.tsx:324 src/view/shell/desktop/Search.tsx:214 -#: src/view/shell/desktop/Search.tsx:223 src/view/shell/Drawer.tsx:362 -#: src/view/shell/Drawer.tsx:363 +#: src/view/screens/Search/Search.tsx:420 +#: src/view/screens/Search/Search.tsx:669 +#: src/view/screens/Search/Search.tsx:687 +#: src/view/shell/bottom-bar/BottomBar.tsx:161 +#: src/view/shell/desktop/LeftNav.tsx:328 +#: src/view/shell/desktop/Search.tsx:215 +#: src/view/shell/desktop/Search.tsx:224 +#: src/view/shell/Drawer.tsx:365 +#: src/view/shell/Drawer.tsx:366 msgid "Search" msgstr "Cerca" -#: src/view/screens/Search/Search.tsx:735 -#: src/view/shell/desktop/Search.tsx:255 +#: src/view/screens/Search/Search.tsx:736 +#: src/view/shell/desktop/Search.tsx:256 msgid "Search for \"{query}\"" msgstr "Cerca \"{query}\"" @@ -3422,10 +4152,21 @@ msgstr "Scopri cosa c'è dopo" msgid "Select {item}" msgstr "Seleziona {item}" +#~ msgid "Select Bluesky Social" +#~ msgstr "Seleziona Bluesky Social" + #: src/view/com/auth/login/Login.tsx:117 msgid "Select from an existing account" msgstr "Seleziona da un account esistente" +#: src/view/screens/LanguageSettings.tsx:299 +msgid "Select languages" +msgstr "" + +#: src/components/ReportDialog/SelectLabelerView.tsx:32 +msgid "Select moderator" +msgstr "" + #: src/view/com/util/Selector.tsx:107 msgid "Select option {i} of {numItems}" msgstr "Seleziona l'opzione {i} di {numItems}" @@ -3439,6 +4180,10 @@ msgstr "Selecciona el servei" msgid "Select some accounts below to follow" msgstr "Seleziona alcuni account da seguire qui giù" +#: src/components/ReportDialog/SubmitView.tsx:135 +msgid "Select the moderation service(s) to report to" +msgstr "" + #: src/view/com/auth/server-input/index.tsx:82 msgid "Select the service that hosts your data." msgstr "Seleziona il servizio che ospita i tuoi dati." @@ -3447,7 +4192,7 @@ msgstr "Seleziona il servizio che ospita i tuoi dati." msgid "Select topical feeds to follow from the list below" msgstr "Seleziona i feeds con temi da seguire dal seguente elenco" -#: src/screens/Onboarding/StepModeration/index.tsx:75 +#: src/screens/Onboarding/StepModeration/index.tsx:62 msgid "Select what you want to see (or not see), and we’ll handle the rest." msgstr "Seleziona ciò che vuoi vedere (o non vedere) e noi gestiremo il resto." @@ -3456,8 +4201,12 @@ msgid "Select which languages you want your subscribed feeds to include. If none msgstr "Seleziona le lingue che desideri includere nei feed a cui sei iscritto. Se non ne viene selezionata nessuna, verranno visualizzate tutte le lingue." #: src/view/screens/LanguageSettings.tsx:98 -msgid "Select your app language for the default text to display in the app" -msgstr "Seleziona la lingua dell'app per il testo predefinito da visualizzare nell'app" +#~ msgid "Select your app language for the default text to display in the app" +#~ msgstr "Seleziona la lingua dell'app per il testo predefinito da visualizzare nell'app" + +#: src/view/screens/LanguageSettings.tsx:98 +msgid "Select your app language for the default text to display in the app." +msgstr "" #: src/screens/Onboarding/StepInterests/index.tsx:196 msgid "Select your interests from the options below" @@ -3493,13 +4242,26 @@ msgctxt "action" msgid "Send Email" msgstr "Invia email" -#: src/view/shell/Drawer.tsx:295 src/view/shell/Drawer.tsx:316 +#~ msgid "Send Email" +#~ msgstr "Envia Email" + +#: src/view/shell/Drawer.tsx:298 +#: src/view/shell/Drawer.tsx:319 msgid "Send feedback" msgstr "Invia feedback" +#: src/components/ReportDialog/SubmitView.tsx:214 +#: src/components/ReportDialog/SubmitView.tsx:218 +msgid "Send report" +msgstr "" + #: src/view/com/modals/report/SendReportButton.tsx:45 -msgid "Send Report" -msgstr "Invia segnalazione" +#~ msgid "Send Report" +#~ msgstr "Invia segnalazione" + +#: src/components/ReportDialog/SelectLabelerView.tsx:46 +msgid "Send report to {0}" +msgstr "" #: src/view/com/modals/DeleteAccount.tsx:133 msgid "Sends email with confirmation code for account deletion" @@ -3510,34 +4272,38 @@ msgid "Server address" msgstr "Indirizzo del server" #: src/view/com/modals/ContentFilteringSettings.tsx:311 -msgid "Set {value} for {labelGroup} content moderation policy" -msgstr "Imposta {value} per la politica di moderazione dei contenuti di {labelGroup}" +#~ msgid "Set {value} for {labelGroup} content moderation policy" +#~ msgstr "Imposta {value} per la politica di moderazione dei contenuti di {labelGroup}" #: src/view/com/modals/ContentFilteringSettings.tsx:160 #: src/view/com/modals/ContentFilteringSettings.tsx:179 -msgctxt "action" -msgid "Set Age" -msgstr "Imposta l'età" +#~ msgctxt "action" +#~ msgid "Set Age" +#~ msgstr "Imposta l'età" + +#: src/screens/Moderation/index.tsx:306 +msgid "Set birthdate" +msgstr "" #: src/view/screens/Settings/index.tsx:488 -msgid "Set color theme to dark" -msgstr "Imposta il colore del tema scuro" +#~ msgid "Set color theme to dark" +#~ msgstr "Imposta il colore del tema scuro" #: src/view/screens/Settings/index.tsx:481 -msgid "Set color theme to light" -msgstr "Imposta il colore del tema su chiaro" +#~ msgid "Set color theme to light" +#~ msgstr "Imposta il colore del tema su chiaro" #: src/view/screens/Settings/index.tsx:475 -msgid "Set color theme to system setting" -msgstr "Imposta il colore del tema basato sulle impostazioni del tuo sistema" +#~ msgid "Set color theme to system setting" +#~ msgstr "Imposta il colore del tema basato sulle impostazioni del tuo sistema" #: src/view/screens/Settings/index.tsx:514 -msgid "Set dark theme to the dark theme" -msgstr "Imposta il tema scuro sul tema scuro" +#~ msgid "Set dark theme to the dark theme" +#~ msgstr "Imposta il tema scuro sul tema scuro" #: src/view/screens/Settings/index.tsx:507 -msgid "Set dark theme to the dim theme" -msgstr "Imposta il tema scuro sul tema scuro" +#~ msgid "Set dark theme to the dim theme" +#~ msgstr "Imposta il tema scuro sul tema scuro" #: src/view/com/auth/login/SetNewPasswordForm.tsx:104 msgid "Set new password" @@ -3579,6 +4345,26 @@ msgstr "Configura il tuo account" msgid "Sets Bluesky username" msgstr "Imposta il tuo nome utente di Bluesky" +#: src/view/screens/Settings/index.tsx:503 +msgid "Sets color theme to dark" +msgstr "" + +#: src/view/screens/Settings/index.tsx:496 +msgid "Sets color theme to light" +msgstr "" + +#: src/view/screens/Settings/index.tsx:490 +msgid "Sets color theme to system setting" +msgstr "" + +#: src/view/screens/Settings/index.tsx:529 +msgid "Sets dark theme to the dark theme" +msgstr "" + +#: src/view/screens/Settings/index.tsx:522 +msgid "Sets dark theme to the dim theme" +msgstr "" + #: src/view/com/auth/login/ForgotPasswordForm.tsx:157 msgid "Sets email for password reset" msgstr "Imposta l'email per la reimpostazione della password" @@ -3587,16 +4373,28 @@ msgstr "Imposta l'email per la reimpostazione della password" msgid "Sets hosting provider for password reset" msgstr "Imposta il provider del hosting per la reimpostazione della password" +#: src/view/com/modals/crop-image/CropImage.web.tsx:123 +msgid "Sets image aspect ratio to square" +msgstr "" + +#: src/view/com/modals/crop-image/CropImage.web.tsx:113 +msgid "Sets image aspect ratio to tall" +msgstr "" + +#: src/view/com/modals/crop-image/CropImage.web.tsx:103 +msgid "Sets image aspect ratio to wide" +msgstr "" + #: src/view/com/auth/create/Step1.tsx:97 #: src/view/com/auth/login/LoginForm.tsx:151 msgid "Sets server for the Bluesky client" msgstr "Imposta il server per il client Bluesky" -#: src/Navigation.tsx:137 -#: src/view/screens/Settings/index.tsx:294 -#: src/view/shell/desktop/LeftNav.tsx:433 -#: src/view/shell/Drawer.tsx:567 -#: src/view/shell/Drawer.tsx:568 +#: src/Navigation.tsx:139 +#: src/view/screens/Settings/index.tsx:309 +#: src/view/shell/desktop/LeftNav.tsx:437 +#: src/view/shell/Drawer.tsx:570 +#: src/view/shell/Drawer.tsx:571 msgid "Settings" msgstr "Impostazioni" @@ -3604,28 +4402,39 @@ msgstr "Impostazioni" msgid "Sexual activity or erotic nudity." msgstr "Attività sessuale o nudità erotica." +#: src/lib/moderation/useGlobalLabelStrings.ts:38 +msgid "Sexually Suggestive" +msgstr "" + #: src/view/com/lightbox/Lightbox.tsx:141 msgctxt "action" msgid "Share" msgstr "Condividi" -#: src/view/com/profile/ProfileHeader.tsx:295 -#: src/view/com/util/forms/PostDropdownBtn.tsx:231 +#: src/view/com/profile/ProfileMenu.tsx:215 +#: src/view/com/profile/ProfileMenu.tsx:224 +#: src/view/com/util/forms/PostDropdownBtn.tsx:228 #: src/view/com/util/forms/PostDropdownBtn.tsx:237 -#: src/view/com/util/post-ctrls/PostCtrls.tsx:215 -#: src/view/screens/ProfileList.tsx:418 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:218 +#: src/view/screens/ProfileList.tsx:388 msgid "Share" msgstr "Condividi" -#: src/view/screens/ProfileFeed.tsx:305 +#: src/view/com/profile/ProfileMenu.tsx:373 +#: src/view/com/util/forms/PostDropdownBtn.tsx:347 +msgid "Share anyway" +msgstr "" + +#: src/view/screens/ProfileFeed.tsx:361 +#: src/view/screens/ProfileFeed.tsx:363 msgid "Share feed" msgstr "Condividi il feed" -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:43 -#: src/view/com/modals/ContentFilteringSettings.tsx:266 -#: src/view/com/util/moderation/ContentHider.tsx:107 -#: src/view/com/util/moderation/PostHider.tsx:108 -#: src/view/screens/Settings/index.tsx:344 +#: src/components/moderation/ContentHider.tsx:115 +#: src/components/moderation/GlobalModerationLabelPref.tsx:45 +#: src/components/moderation/PostHider.tsx:107 +#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:54 +#: src/view/screens/Settings/index.tsx:359 msgid "Show" msgstr "Mostra" @@ -3633,21 +4442,31 @@ msgstr "Mostra" msgid "Show all replies" msgstr "Mostra tutte le repliche" -#: src/view/com/util/moderation/ScreenHider.tsx:132 +#: src/components/moderation/ScreenHider.tsx:162 +#: src/components/moderation/ScreenHider.tsx:165 msgid "Show anyway" msgstr "Mostra comunque" +#: src/lib/moderation/useLabelBehaviorDescription.ts:27 +#: src/lib/moderation/useLabelBehaviorDescription.ts:63 +msgid "Show badge" +msgstr "" + +#: src/lib/moderation/useLabelBehaviorDescription.ts:61 +msgid "Show badge and filter from feeds" +msgstr "" + #: src/view/com/modals/EmbedConsent.tsx:87 msgid "Show embeds from {0}" msgstr "Mostra incorporamenti di {0}" -#: src/view/com/profile/ProfileHeader.tsx:459 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:193 msgid "Show follows similar to {0}" msgstr "Mostra follows simile a {0}" -#: src/view/com/post-thread/PostThreadItem.tsx:538 -#: src/view/com/post/Post.tsx:198 -#: src/view/com/posts/FeedItem.tsx:363 +#: src/view/com/post-thread/PostThreadItem.tsx:507 +#: src/view/com/post/Post.tsx:201 +#: src/view/com/posts/FeedItem.tsx:355 msgid "Show More" msgstr "Mostra di più" @@ -3699,38 +4518,48 @@ msgstr "Mostra ripubblicazioni" msgid "Show reposts in Following" msgstr "Mostra i re-repost in Seguiti" -#: src/view/com/util/moderation/ContentHider.tsx:67 -#: src/view/com/util/moderation/PostHider.tsx:61 +#: src/components/moderation/ContentHider.tsx:68 +#: src/components/moderation/PostHider.tsx:64 msgid "Show the content" msgstr "Mostra il contenuto" -#: src/view/com/notifications/FeedItem.tsx:347 +#: src/view/com/notifications/FeedItem.tsx:351 msgid "Show users" msgstr "Mostra utenti" +#: src/lib/moderation/useLabelBehaviorDescription.ts:58 +msgid "Show warning" +msgstr "" + +#: src/lib/moderation/useLabelBehaviorDescription.ts:56 +msgid "Show warning and filter from feeds" +msgstr "" + #: src/view/com/profile/ProfileHeader.tsx:462 -msgid "Shows a list of users similar to this user." -msgstr "Mostra un elenco di utenti simili a questo utente." +#~ msgid "Shows a list of users similar to this user." +#~ msgstr "Mostra un elenco di utenti simili a questo utente." -#: src/view/com/post-thread/PostThreadFollowBtn.tsx:124 -#: src/view/com/profile/ProfileHeader.tsx:506 +#: src/view/com/post-thread/PostThreadFollowBtn.tsx:127 msgid "Shows posts from {0} in your feed" msgstr "Mostra i post di {0} nel tuo feed" -#: src/view/com/auth/HomeLoggedOutCTA.tsx:70 -#: src/view/com/auth/login/Login.tsx:98 src/view/com/auth/SplashScreen.tsx:79 -#: src/view/shell/bottom-bar/BottomBar.tsx:285 -#: src/view/shell/bottom-bar/BottomBar.tsx:286 -#: src/view/shell/bottom-bar/BottomBar.tsx:288 +#: src/view/com/auth/HomeLoggedOutCTA.tsx:72 +#: src/view/com/auth/login/Login.tsx:98 +#: src/view/com/auth/SplashScreen.tsx:81 +#: src/view/shell/bottom-bar/BottomBar.tsx:289 +#: src/view/shell/bottom-bar/BottomBar.tsx:290 +#: src/view/shell/bottom-bar/BottomBar.tsx:292 #: src/view/shell/bottom-bar/BottomBarWeb.tsx:178 #: src/view/shell/bottom-bar/BottomBarWeb.tsx:179 #: src/view/shell/bottom-bar/BottomBarWeb.tsx:181 -#: src/view/shell/NavSignupCard.tsx:58 src/view/shell/NavSignupCard.tsx:59 +#: src/view/shell/NavSignupCard.tsx:58 +#: src/view/shell/NavSignupCard.tsx:59 +#: src/view/shell/NavSignupCard.tsx:61 msgid "Sign in" msgstr "Accedi" -#: src/view/com/auth/HomeLoggedOutCTA.tsx:78 -#: src/view/com/auth/SplashScreen.tsx:82 +#: src/view/com/auth/HomeLoggedOutCTA.tsx:82 +#: src/view/com/auth/SplashScreen.tsx:86 #: src/view/com/auth/SplashScreen.web.tsx:91 msgid "Sign In" msgstr "Accedi" @@ -3739,7 +4568,7 @@ msgstr "Accedi" msgid "Sign in as {0}" msgstr "Accedi come... {0}" -#: src/view/com/auth/login/ChooseAccountForm.tsx:118 +#: src/view/com/auth/login/ChooseAccountForm.tsx:122 #: src/view/com/auth/login/Login.tsx:116 msgid "Sign in as..." msgstr "Accedi come..." @@ -3748,20 +4577,21 @@ msgstr "Accedi come..." msgid "Sign into" msgstr "Accedere a" -#: src/view/com/modals/SwitchAccount.tsx:64 -#: src/view/com/modals/SwitchAccount.tsx:69 -#: src/view/screens/Settings/index.tsx:100 -#: src/view/screens/Settings/index.tsx:103 +#: src/view/com/modals/SwitchAccount.tsx:68 +#: src/view/com/modals/SwitchAccount.tsx:73 +#: src/view/screens/Settings/index.tsx:105 +#: src/view/screens/Settings/index.tsx:108 msgid "Sign out" msgstr "Disconnetta" -#: src/view/shell/bottom-bar/BottomBar.tsx:275 -#: src/view/shell/bottom-bar/BottomBar.tsx:276 -#: src/view/shell/bottom-bar/BottomBar.tsx:278 +#: src/view/shell/bottom-bar/BottomBar.tsx:279 +#: src/view/shell/bottom-bar/BottomBar.tsx:280 +#: src/view/shell/bottom-bar/BottomBar.tsx:282 #: src/view/shell/bottom-bar/BottomBarWeb.tsx:168 #: src/view/shell/bottom-bar/BottomBarWeb.tsx:169 #: src/view/shell/bottom-bar/BottomBarWeb.tsx:171 -#: src/view/shell/NavSignupCard.tsx:49 src/view/shell/NavSignupCard.tsx:50 +#: src/view/shell/NavSignupCard.tsx:49 +#: src/view/shell/NavSignupCard.tsx:50 #: src/view/shell/NavSignupCard.tsx:52 msgid "Sign up" msgstr "Iscrizione" @@ -3770,25 +4600,26 @@ msgstr "Iscrizione" msgid "Sign up or sign in to join the conversation" msgstr "Iscriviti o accedi per partecipare alla conversazione" -#: src/view/com/util/moderation/ScreenHider.tsx:76 +#: src/components/moderation/ScreenHider.tsx:98 +#: src/lib/moderation/useGlobalLabelStrings.ts:28 msgid "Sign-in Required" msgstr "È richiesta l'autenticazione" -#: src/view/screens/Settings/index.tsx:355 +#: src/view/screens/Settings/index.tsx:370 msgid "Signed in as" msgstr "Registrato come" -#: src/view/com/auth/login/ChooseAccountForm.tsx:103 +#: src/view/com/auth/login/ChooseAccountForm.tsx:107 msgid "Signed in as @{0}" msgstr "Registrato come @{0}" -#: src/view/com/modals/SwitchAccount.tsx:66 +#: src/view/com/modals/SwitchAccount.tsx:70 msgid "Signs {0} out of Bluesky" msgstr "{0} esce da Bluesky" #: src/screens/Onboarding/StepInterests/index.tsx:235 #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:195 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:33 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:35 msgid "Skip" msgstr "Salta questo passo" @@ -3804,19 +4635,24 @@ msgstr "Salta questa corrente" msgid "Software Dev" msgstr "Sviluppo Software" -#: src/view/com/modals/ProfilePreview.tsx:62 #~ msgid "Something went wrong and we're not sure what." #~ msgstr "Qualcosa è andato storto ma non siamo sicuri di cosa." -#: src/components/Lists.tsx:203 -msgid "Something went wrong!" +#: src/components/ReportDialog/index.tsx:52 +#: src/screens/Moderation/index.tsx:116 +#: src/screens/Profile/Sections/Labels.tsx:77 +msgid "Something went wrong, please try again." msgstr "" +#: src/components/Lists.tsx:203 +#~ msgid "Something went wrong!" +#~ msgstr "" + #: src/view/com/modals/Waitlist.tsx:51 #~ msgid "Something went wrong. Check your email and try again." #~ msgstr "Qualcosa è andato storto. Controlla la tua email e riprova." -#: src/App.native.tsx:66 +#: src/App.native.tsx:71 msgid "Sorry! Your session expired. Please log in again." msgstr "Scusa! La tua sessione è scaduta. Per favore accedi di nuovo." @@ -3828,6 +4664,18 @@ msgstr "Ordina le risposte" msgid "Sort replies to the same post by:" msgstr "Ordina le risposte allo stesso post per:" +#: src/components/moderation/LabelsOnMeDialog.tsx:147 +msgid "Source:" +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:65 +msgid "Spam" +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:53 +msgid "Spam; excessive mentions or replies" +msgstr "" + #: src/screens/Onboarding/index.tsx:30 msgid "Sports" msgstr "Sports" @@ -3836,7 +4684,10 @@ msgstr "Sports" msgid "Square" msgstr "Quadrato" -#: src/view/screens/Settings/index.tsx:871 +#~ msgid "Staging" +#~ msgstr "Allestimento" + +#: src/view/screens/Settings/index.tsx:901 msgid "Status page" msgstr "Pagina di stato" @@ -3844,37 +4695,50 @@ msgstr "Pagina di stato" msgid "Step {0} of {numSteps}" msgstr "Passo {0} di {numSteps}" -#: src/view/screens/Settings/index.tsx:274 +#: src/view/screens/Settings/index.tsx:288 msgid "Storage cleared, you need to restart the app now." msgstr "Spazio di archiviazione eliminato. Riavvia l'app." -#: src/Navigation.tsx:204 -#: src/view/screens/Settings/index.tsx:807 +#: src/Navigation.tsx:211 +#: src/view/screens/Settings/index.tsx:827 msgid "Storybook" msgstr "Cronologia" -#: src/view/com/modals/AppealLabel.tsx:101 +#: src/components/moderation/LabelsOnMeDialog.tsx:256 +#: src/components/moderation/LabelsOnMeDialog.tsx:257 msgid "Submit" msgstr "Invia" -#: src/view/screens/ProfileList.tsx:608 +#: src/view/screens/ProfileList.tsx:590 msgid "Subscribe" msgstr "Iscriviti" +#: src/screens/Profile/Sections/Labels.tsx:181 +msgid "Subscribe to @{0} to use these labels:" +msgstr "" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:222 +msgid "Subscribe to Labeler" +msgstr "" + #: src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx:173 #: src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx:308 msgid "Subscribe to the {0} feed" msgstr "Iscriviti a {0} feed" -#: src/view/screens/ProfileList.tsx:604 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:185 +msgid "Subscribe to this labeler" +msgstr "" + +#: src/view/screens/ProfileList.tsx:586 msgid "Subscribe to this list" msgstr "Iscriviti alla lista" -#: src/view/screens/Search/Search.tsx:374 +#: src/view/screens/Search/Search.tsx:375 msgid "Suggested Follows" msgstr "Followers suggeriti" -#: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:64 +#: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:65 msgid "Suggested for you" msgstr "Suggerito per te" @@ -3882,35 +4746,38 @@ msgstr "Suggerito per te" msgid "Suggestive" msgstr "Suggestivo" -#: src/Navigation.tsx:214 +#: src/Navigation.tsx:226 #: src/view/screens/Support.tsx:30 #: src/view/screens/Support.tsx:33 msgid "Support" msgstr "Supporto" -#: src/view/com/modals/SwitchAccount.tsx:117 +#~ msgid "Swipe up to see more" +#~ msgstr "Scorri verso l'alto per vedere di più" + +#: src/view/com/modals/SwitchAccount.tsx:121 msgid "Switch Account" msgstr "Cambia account" -#: src/view/com/modals/SwitchAccount.tsx:97 -#: src/view/screens/Settings/index.tsx:130 +#: src/view/com/modals/SwitchAccount.tsx:101 +#: src/view/screens/Settings/index.tsx:135 msgid "Switch to {0}" msgstr "Cambia a {0}" -#: src/view/com/modals/SwitchAccount.tsx:98 -#: src/view/screens/Settings/index.tsx:131 +#: src/view/com/modals/SwitchAccount.tsx:102 +#: src/view/screens/Settings/index.tsx:136 msgid "Switches the account you are logged in to" msgstr "Cambia l'account dal quale hai effettuato l'accesso" -#: src/view/screens/Settings/index.tsx:472 +#: src/view/screens/Settings/index.tsx:487 msgid "System" msgstr "Sistema" -#: src/view/screens/Settings/index.tsx:795 +#: src/view/screens/Settings/index.tsx:815 msgid "System log" msgstr "Registro di sistema" -#: src/components/dialogs/MutedWords.tsx:337 +#: src/components/dialogs/MutedWords.tsx:324 msgid "tag" msgstr "" @@ -3938,30 +4805,49 @@ msgstr "Tecnologia" msgid "Terms" msgstr "Termini" -#: src/Navigation.tsx:224 -#: src/view/screens/Settings/index.tsx:885 +#: src/Navigation.tsx:236 +#: src/view/com/auth/create/Policies.tsx:59 +#: src/view/screens/Settings/index.tsx:915 #: src/view/screens/TermsOfService.tsx:29 -#: src/view/shell/Drawer.tsx:256 +#: src/view/shell/Drawer.tsx:259 msgid "Terms of Service" msgstr "Termini di servizio" -#: src/components/dialogs/MutedWords.tsx:337 +#: src/lib/moderation/useReportOptions.ts:58 +#: src/lib/moderation/useReportOptions.ts:79 +#: src/lib/moderation/useReportOptions.ts:87 +msgid "Terms used violate community standards" +msgstr "" + +#: src/components/dialogs/MutedWords.tsx:324 msgid "text" msgstr "" -#: src/view/com/modals/AppealLabel.tsx:70 -#: src/view/com/modals/report/InputIssueDetails.tsx:51 +#: src/components/moderation/LabelsOnMeDialog.tsx:220 msgid "Text input field" msgstr "Campo di testo" +#: src/components/ReportDialog/SubmitView.tsx:78 +msgid "Thank you. Your report has been sent." +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:466 +msgid "That contains the following:" +msgstr "" + #: src/view/com/auth/create/CreateAccount.tsx:94 msgid "That handle is already taken." msgstr "" -#: src/view/com/profile/ProfileHeader.tsx:263 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:274 +#: src/view/com/profile/ProfileMenu.tsx:349 msgid "The account will be able to interact with you after unblocking." msgstr "L'account sarà in grado di interagire con te dopo lo sblocco." +#: src/components/moderation/ModerationDetailsDialog.tsx:128 +msgid "the author" +msgstr "" + #: src/view/screens/CommunityGuidelines.tsx:36 msgid "The Community Guidelines have been moved to <0/>" msgstr "Le Linee guida della community sono state spostate a<0/>" @@ -3970,11 +4856,20 @@ msgstr "Le Linee guida della community sono state spostate a<0/>" msgid "The Copyright Policy has been moved to <0/>" msgstr "La politica sul copyright è stata spostata a <0/>" +#: src/components/moderation/LabelsOnMeDialog.tsx:49 +msgid "The following labels were applied to your account." +msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:50 +msgid "The following labels were applied to your content." +msgstr "" + #: src/screens/Onboarding/Layout.tsx:60 msgid "The following steps will help customize your Bluesky experience." msgstr "I passaggi seguenti ti aiuteranno a personalizzare la tua esperienza con Bluesky." -#: src/view/com/post-thread/PostThread.tsx:517 +#: src/view/com/post-thread/PostThread.tsx:153 +#: src/view/com/post-thread/PostThread.tsx:165 msgid "The post may have been deleted." msgstr "Il post potrebbe essere stato cancellato." @@ -3986,6 +4881,9 @@ msgstr "La politica sulla privacy è stata spostata a <0/><0/>" msgid "The support form has been moved. If you need help, please <0/> or visit {HELP_DESK_URL} to get in touch with us." msgstr "Il modulo di supporto è stato spostato. Se hai bisogno di aiuto, <0/> o visita {HELP_DESK_URL} per metterti in contatto con noi." +#~ msgid "The support form has been moved. If you need help, please<0/> or visit {HELP_DESK_URL} to get in touch with us." +#~ msgstr "Il modulo di supporto è stato spostato. Se hai bisogno di aiuto, <0/> o visita {HELP_DESK_URL} per metterti in contatto con noi." + #: src/view/screens/TermsOfService.tsx:33 msgid "The Terms of Service have been moved to" msgstr "I Termini di Servizio sono stati spostati a" @@ -3994,20 +4892,21 @@ msgstr "I Termini di Servizio sono stati spostati a" msgid "There are many feeds to try:" msgstr "Ci sono molti feed da provare:" -#: src/view/screens/ProfileFeed.tsx:550 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:113 +#: src/view/screens/ProfileFeed.tsx:543 msgid "There was an an issue contacting the server, please check your internet connection and try again." msgstr "Si è verificato un problema nel contattare il server, controlla la tua connessione Internet e riprova." -#: src/view/com/posts/FeedErrorMessage.tsx:139 +#: src/view/com/posts/FeedErrorMessage.tsx:138 msgid "There was an an issue removing this feed. Please check your internet connection and try again." msgstr "Si è verificato un problema durante la rimozione di questo feed. Per favore controlla la tua connessione Internet e prova di nuovo." -#: src/view/screens/ProfileFeed.tsx:210 +#: src/view/screens/ProfileFeed.tsx:217 msgid "There was an an issue updating your feeds, please check your internet connection and try again." msgstr "Si è verificato un problema durante la rimozione di questo feed. Per favore controlla la tua connessione Internet e prova di nuovo." -#: src/view/screens/ProfileFeed.tsx:237 -#: src/view/screens/ProfileList.tsx:267 +#: src/view/screens/ProfileFeed.tsx:244 +#: src/view/screens/ProfileList.tsx:275 #: src/view/screens/SavedFeeds.tsx:209 #: src/view/screens/SavedFeeds.tsx:231 #: src/view/screens/SavedFeeds.tsx:252 @@ -4016,9 +4915,8 @@ msgstr "Si è verificato un problema durante il contatto con il server" #: src/view/com/auth/onboarding/RecommendedFeedsItem.tsx:57 #: src/view/com/auth/onboarding/RecommendedFeedsItem.tsx:66 -#: src/view/com/feeds/FeedSourceCard.tsx:115 -#: src/view/com/feeds/FeedSourceCard.tsx:129 -#: src/view/com/feeds/FeedSourceCard.tsx:183 +#: src/view/com/feeds/FeedSourceCard.tsx:110 +#: src/view/com/feeds/FeedSourceCard.tsx:123 msgid "There was an issue contacting your server" msgstr "Si è verificato un problema durante il contatto con il tuo server" @@ -4026,7 +4924,7 @@ msgstr "Si è verificato un problema durante il contatto con il tuo server" msgid "There was an issue fetching notifications. Tap here to try again." msgstr "Si è verificato un problema durante il recupero delle notifiche. Tocca qui per riprovare." -#: src/view/com/posts/Feed.tsx:265 +#: src/view/com/posts/Feed.tsx:283 msgid "There was an issue fetching posts. Tap here to try again." msgstr "Si è verificato un problema nel recupero dei post. Tocca qui per riprovare." @@ -4039,34 +4937,40 @@ msgstr "Si è verificato un problema durante il recupero dell'elenco. Tocca qui msgid "There was an issue fetching your lists. Tap here to try again." msgstr "Si è verificato un problema durante il recupero delle tue liste. Tocca qui per riprovare." -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:63 -#: src/view/com/modals/ContentFilteringSettings.tsx:126 +#: src/components/ReportDialog/SubmitView.tsx:83 +msgid "There was an issue sending your report. Please check your internet connection." +msgstr "" + +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:65 msgid "There was an issue syncing your preferences with the server" msgstr "Si è verificato un problema durante la sincronizzazione delle tue preferenze con il server" -#: src/view/screens/AppPasswords.tsx:66 +#: src/view/screens/AppPasswords.tsx:68 msgid "There was an issue with fetching your app passwords" msgstr "Si è verificato un problema durante il recupero delle password dell'app" -#: src/view/com/post-thread/PostThreadFollowBtn.tsx:93 -#: src/view/com/post-thread/PostThreadFollowBtn.tsx:105 -#: src/view/com/profile/ProfileHeader.tsx:157 -#: src/view/com/profile/ProfileHeader.tsx:178 -#: src/view/com/profile/ProfileHeader.tsx:217 -#: src/view/com/profile/ProfileHeader.tsx:230 -#: src/view/com/profile/ProfileHeader.tsx:250 -#: src/view/com/profile/ProfileHeader.tsx:272 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:98 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:120 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:134 +#: src/view/com/post-thread/PostThreadFollowBtn.tsx:96 +#: src/view/com/post-thread/PostThreadFollowBtn.tsx:108 +#: src/view/com/profile/ProfileMenu.tsx:106 +#: src/view/com/profile/ProfileMenu.tsx:117 +#: src/view/com/profile/ProfileMenu.tsx:132 +#: src/view/com/profile/ProfileMenu.tsx:143 +#: src/view/com/profile/ProfileMenu.tsx:157 +#: src/view/com/profile/ProfileMenu.tsx:170 msgid "There was an issue! {0}" msgstr "Si è verificato un problema! {0}" #: src/view/screens/ProfileList.tsx:288 -#: src/view/screens/ProfileList.tsx:307 -#: src/view/screens/ProfileList.tsx:329 -#: src/view/screens/ProfileList.tsx:348 +#: src/view/screens/ProfileList.tsx:302 +#: src/view/screens/ProfileList.tsx:316 +#: src/view/screens/ProfileList.tsx:330 msgid "There was an issue. Please check your internet connection and try again." msgstr "Si è verificato un problema. Per favore controlla la tua connessione Internet e prova di nuovo." -#: src/view/com/util/ErrorBoundary.tsx:36 +#: src/view/com/util/ErrorBoundary.tsx:51 msgid "There was an unexpected issue in the application. Please let us know if this happened to you!" msgstr "Si è verificato un problema imprevisto nell'applicazione. Per favore facci sapere se ti è successo!" @@ -4082,19 +4986,35 @@ msgstr "C'è stata un'ondata di nuovi utenti su Bluesky! Attiveremo il tuo accou msgid "These are popular accounts you might like:" msgstr "Questi sono gli account popolari che potrebbero piacerti:" -#: src/view/com/util/moderation/ScreenHider.tsx:88 +#~ msgid "This {0} has been labeled." +#~ msgstr "Questo {0} è stato etichettato." + +#: src/components/moderation/ScreenHider.tsx:117 msgid "This {screenDescription} has been flagged:" msgstr "Questa {screenDescription} è stata segnalata:" -#: src/view/com/util/moderation/ScreenHider.tsx:83 +#: src/components/moderation/ScreenHider.tsx:112 msgid "This account has requested that users sign in to view their profile." msgstr "Questo account ha richiesto agli utenti di accedere Bluesky per visualizzare il profilo." +#: src/components/moderation/LabelsOnMeDialog.tsx:205 +msgid "This appeal will be sent to <0>{0}." +msgstr "" + +#: src/lib/moderation/useGlobalLabelStrings.ts:19 +msgid "This content has been hidden by the moderators." +msgstr "" + +#: src/lib/moderation/useGlobalLabelStrings.ts:24 +msgid "This content has received a general warning from moderators." +msgstr "" + #: src/view/com/modals/EmbedConsent.tsx:68 msgid "This content is hosted by {0}. Do you want to enable external media?" msgstr "Questo contenuto è hosted da {0}. Vuoi abilitare i media esterni?" -#: src/view/com/modals/ModerationDetails.tsx:67 +#: src/components/moderation/ModerationDetailsDialog.tsx:78 +#: src/lib/moderation/useModerationCauseDescription.ts:77 msgid "This content is not available because one of the users involved has blocked the other." msgstr "Questo contenuto non è disponibile perché uno degli utenti coinvolti ha bloccato l'altro." @@ -4103,16 +5023,20 @@ msgid "This content is not viewable without a Bluesky account." msgstr "Questo contenuto non è visualizzabile senza un account Bluesky." #: src/view/screens/Settings/ExportCarDialog.tsx:75 -msgid "This feature is in beta. You can read more about repository exports in <0>this blogpost." -msgstr "Questa funzionalità è in versione beta. Puoi leggere ulteriori informazioni sulle esportazioni dell' archivio in <0>questo post del blog." +#~ msgid "This feature is in beta. You can read more about repository exports in <0>this blogpost." +#~ msgstr "Questa funzionalità è in versione beta. Puoi leggere ulteriori informazioni sulle esportazioni dell' archivio in <0>questo post del blog." + +#: src/view/screens/Settings/ExportCarDialog.tsx:75 +msgid "This feature is in beta. You can read more about repository exports in <0>this blogpost." +msgstr "" #: src/view/com/posts/FeedErrorMessage.tsx:114 msgid "This feed is currently receiving high traffic and is temporarily unavailable. Please try again later." msgstr "Questo canale al momento sta ricevendo molte visite ed è temporaneamente non disponibile. Riprova più tardi." -#: src/view/screens/Profile.tsx:420 +#: src/screens/Profile/Sections/Feed.tsx:50 #: src/view/screens/ProfileFeed.tsx:476 -#: src/view/screens/ProfileList.tsx:661 +#: src/view/screens/ProfileList.tsx:675 msgid "This feed is empty!" msgstr "Questo feed è vuoto!" @@ -4120,7 +5044,7 @@ msgstr "Questo feed è vuoto!" msgid "This feed is empty! You may need to follow more users or tune your language settings." msgstr "Questo feed è vuoto! Prova a seguire più utenti o ottimizza le impostazioni della lingua." -#: src/view/com/modals/BirthDateSettings.tsx:61 +#: src/components/dialogs/BirthDateSettings.tsx:41 msgid "This information is not shared with other users." msgstr "Queste informazioni non vengono condivise con altri utenti." @@ -4128,14 +5052,29 @@ msgstr "Queste informazioni non vengono condivise con altri utenti." msgid "This is important in case you ever need to change your email or reset your password." msgstr "Questo è importante nel caso in cui avessi bisogno di modificare la tua email o reimpostare la password." +#~ msgid "This is the service that keeps you online." +#~ msgstr "Questo è il servizio che ti mantiene online." + +#: src/components/moderation/ModerationDetailsDialog.tsx:125 +msgid "This label was applied by {0}." +msgstr "" + +#: src/screens/Profile/Sections/Labels.tsx:168 +msgid "This labeler hasn't declared what labels it publishes, and may not be active." +msgstr "" + #: src/view/com/modals/LinkWarning.tsx:58 msgid "This link is taking you to the following website:" msgstr "Questo link ti porta al seguente sito web:" -#: src/view/screens/ProfileList.tsx:839 +#: src/view/screens/ProfileList.tsx:853 msgid "This list is empty!" msgstr "La lista è vuota!" +#: src/screens/Profile/ErrorState.tsx:40 +msgid "This moderation service is unavailable. See below for more details. If this issue persists, contact us." +msgstr "" + #: src/view/com/modals/AddAppPasswords.tsx:106 msgid "This name is already in use" msgstr "Questo nome è già in uso" @@ -4144,32 +5083,80 @@ msgstr "Questo nome è già in uso" msgid "This post has been deleted." msgstr "Questo post è stato cancellato." -#: src/view/com/modals/ModerationDetails.tsx:62 +#: src/view/com/util/forms/PostDropdownBtn.tsx:344 +msgid "This post is only visible to logged-in users. It won't be visible to people who aren't logged in." +msgstr "" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:326 +msgid "This post will be hidden from feeds." +msgstr "" + +#: src/view/com/profile/ProfileMenu.tsx:370 +msgid "This profile is only visible to logged-in users. It won't be visible to people who aren't logged in." +msgstr "" + +#: src/view/com/auth/create/Policies.tsx:46 +msgid "This service has not provided terms of service or a privacy policy." +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:446 +msgid "This should create a domain record at:" +msgstr "" + +#: src/view/com/profile/ProfileFollowers.tsx:95 +msgid "This user doesn't have any followers." +msgstr "" + +#: src/components/moderation/ModerationDetailsDialog.tsx:73 +#: src/lib/moderation/useModerationCauseDescription.ts:68 msgid "This user has blocked you. You cannot view their content." msgstr "Questo utente ti ha bloccato. Non è possibile visualizzare il suo contenuto." +#: src/lib/moderation/useGlobalLabelStrings.ts:30 +msgid "This user has requested that their content only be shown to signed-in users." +msgstr "" + #: src/view/com/modals/ModerationDetails.tsx:42 -msgid "This user is included in the <0/> list which you have blocked." -msgstr "Questo utente è incluso nell'elenco <0/> che hai bloccato." +#~ msgid "This user is included in the <0/> list which you have blocked." +#~ msgstr "Questo utente è incluso nell'elenco <0/> che hai bloccato." #: src/view/com/modals/ModerationDetails.tsx:74 -msgid "This user is included in the <0/> list which you have muted." -msgstr "Questo utente è incluso nell'elenco <0/> che hai disattivato." +#~ msgid "This user is included in the <0/> list which you have muted." +#~ msgstr "Questo utente è incluso nell'elenco <0/> che hai disattivato." + +#: src/components/moderation/ModerationDetailsDialog.tsx:56 +msgid "This user is included in the <0>{0} list which you have blocked." +msgstr "" + +#: src/components/moderation/ModerationDetailsDialog.tsx:85 +msgid "This user is included in the <0>{0} list which you have muted." +msgstr "" + +#~ msgid "This user is included the <0/> list which you have muted." +#~ msgstr "Questo utente è incluso nella lista <0/> che hai silenziato." + +#: src/view/com/profile/ProfileFollows.tsx:94 +msgid "This user isn't following anyone." +msgstr "" #: src/view/com/modals/SelfLabel.tsx:137 msgid "This warning is only available for posts with media attached." msgstr "Questo avviso è disponibile solo per i post con contenuti multimediali allegati." -#: src/components/dialogs/MutedWords.tsx:285 +#: src/components/dialogs/MutedWords.tsx:284 msgid "This will delete {0} from your muted words. You can always add it back later." msgstr "" #: src/view/com/util/forms/PostDropdownBtn.tsx:282 -msgid "This will hide this post from your feeds." -msgstr "Questo nasconderà il post dai tuoi feeds." +#~ msgid "This will hide this post from your feeds." +#~ msgstr "Questo nasconderà il post dai tuoi feeds." + +#: src/view/screens/Settings/index.tsx:570 +msgid "Thread preferences" +msgstr "" #: src/view/screens/PreferencesThreads.tsx:53 -#: src/view/screens/Settings/index.tsx:565 +#: src/view/screens/Settings/index.tsx:580 msgid "Thread Preferences" msgstr "Preferenze delle discussioni" @@ -4177,10 +5164,14 @@ msgstr "Preferenze delle discussioni" msgid "Threaded Mode" msgstr "Modalità discussione" -#: src/Navigation.tsx:257 +#: src/Navigation.tsx:269 msgid "Threads Preferences" msgstr "Preferenze per le discussioni" +#: src/components/ReportDialog/SelectLabelerView.tsx:35 +msgid "To whom would you like to send this report?" +msgstr "" + #: src/components/dialogs/MutedWords.tsx:113 msgid "Toggle between muted word options." msgstr "" @@ -4189,14 +5180,18 @@ msgstr "" msgid "Toggle dropdown" msgstr "Attiva/disattiva il menu a discesa" +#: src/screens/Moderation/index.tsx:334 +msgid "Toggle to enable or disable adult content" +msgstr "" + #: src/view/com/modals/EditImage.tsx:271 msgid "Transformations" msgstr "Trasformazioni" -#: src/view/com/post-thread/PostThreadItem.tsx:685 -#: src/view/com/post-thread/PostThreadItem.tsx:687 -#: src/view/com/util/forms/PostDropdownBtn.tsx:215 -#: src/view/com/util/forms/PostDropdownBtn.tsx:217 +#: src/view/com/post-thread/PostThreadItem.tsx:644 +#: src/view/com/post-thread/PostThreadItem.tsx:646 +#: src/view/com/util/forms/PostDropdownBtn.tsx:212 +#: src/view/com/util/forms/PostDropdownBtn.tsx:214 msgid "Translate" msgstr "Tradurre" @@ -4206,13 +5201,17 @@ msgid "Try again" msgstr "Riprova" #~ msgid "Try again" -#~ msgstr "Torna-ho a provar" +#~ msgstr "Provalo di nuovo" -#: src/view/screens/ProfileList.tsx:506 +#: src/view/com/modals/ChangeHandle.tsx:429 +msgid "Type:" +msgstr "" + +#: src/view/screens/ProfileList.tsx:478 msgid "Un-block list" msgstr "Sblocca la lista" -#: src/view/screens/ProfileList.tsx:491 +#: src/view/screens/ProfileList.tsx:461 msgid "Un-mute list" msgstr "Riattiva questa lista" @@ -4224,46 +5223,68 @@ msgstr "Riattiva questa lista" msgid "Unable to contact your service. Please check your Internet connection." msgstr "Impossibile contattare il servizio. Per favore controlla la tua connessione Internet." -#: src/view/com/profile/ProfileHeader.tsx:433 -#: src/view/screens/ProfileList.tsx:590 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:174 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:278 +#: src/view/com/profile/ProfileMenu.tsx:361 +#: src/view/screens/ProfileList.tsx:572 msgid "Unblock" msgstr "Sblocca" -#: src/view/com/profile/ProfileHeader.tsx:436 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:179 msgctxt "action" msgid "Unblock" msgstr "Sblocca" -#: src/view/com/profile/ProfileHeader.tsx:261 -#: src/view/com/profile/ProfileHeader.tsx:345 +#: src/view/com/profile/ProfileMenu.tsx:299 +#: src/view/com/profile/ProfileMenu.tsx:305 msgid "Unblock Account" msgstr "Sblocca il conto" -#: src/view/com/modals/Repost.tsx:42 src/view/com/modals/Repost.tsx:55 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:272 +#: src/view/com/profile/ProfileMenu.tsx:343 +msgid "Unblock Account?" +msgstr "" + +#: src/view/com/modals/Repost.tsx:42 +#: src/view/com/modals/Repost.tsx:55 #: src/view/com/util/post-ctrls/RepostButton.tsx:60 #: src/view/com/util/post-ctrls/RepostButton.web.tsx:48 msgid "Undo repost" msgstr "Annulla la ripubblicazione" -#: src/view/com/profile/FollowButton.tsx:55 +#: src/view/com/auth/onboarding/RecommendedFollowsItem.tsx:141 +#: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:246 +msgid "Unfollow" +msgstr "" + +#: src/view/com/profile/FollowButton.tsx:60 msgctxt "action" msgid "Unfollow" msgstr "Smetti di seguire" -#: src/view/com/profile/ProfileHeader.tsx:485 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:213 msgid "Unfollow {0}" msgstr "Smetti di seguire {0}" +#: src/view/com/profile/ProfileMenu.tsx:241 +#: src/view/com/profile/ProfileMenu.tsx:251 +msgid "Unfollow Account" +msgstr "" + #: src/view/com/auth/create/state.ts:262 msgid "Unfortunately, you do not meet the requirements to create an account." msgstr "Sfortunatamente, non soddisfi i requisiti per creare un account." -#: src/view/com/util/post-ctrls/PostCtrls.tsx:182 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:185 msgid "Unlike" msgstr "Togli Mi piace" +#: src/view/screens/ProfileFeed.tsx:572 +msgid "Unlike this feed" +msgstr "" + #: src/components/TagMenu/index.tsx:249 -#: src/view/screens/ProfileList.tsx:597 +#: src/view/screens/ProfileList.tsx:579 msgid "Unmute" msgstr "Riattiva" @@ -4271,7 +5292,8 @@ msgstr "Riattiva" msgid "Unmute {truncatedTag}" msgstr "" -#: src/view/com/profile/ProfileHeader.tsx:326 +#: src/view/com/profile/ProfileMenu.tsx:278 +#: src/view/com/profile/ProfileMenu.tsx:284 msgid "Unmute Account" msgstr "Riattiva questo account" @@ -4288,26 +5310,46 @@ msgstr "" msgid "Unmute thread" msgstr "Riattiva questa discussione" -#: src/view/screens/ProfileFeed.tsx:354 -#: src/view/screens/ProfileList.tsx:581 +#: src/view/screens/ProfileFeed.tsx:294 +#: src/view/screens/ProfileList.tsx:563 msgid "Unpin" msgstr "Stacca dal profilo" -#: src/view/screens/ProfileList.tsx:474 +#: src/view/screens/ProfileFeed.tsx:291 +msgid "Unpin from home" +msgstr "" + +#: src/view/screens/ProfileList.tsx:444 msgid "Unpin moderation list" msgstr "Stacca la lista di moderazione" #: src/view/screens/ProfileFeed.tsx:346 -msgid "Unsave" -msgstr "Rimuovi" +#~ msgid "Unsave" +#~ msgstr "Rimuovi" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:220 +msgid "Unsubscribe" +msgstr "" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:184 +msgid "Unsubscribe from this labeler" +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:70 +msgid "Unwanted Sexual Content" +msgstr "" #: src/view/com/modals/UserAddRemoveLists.tsx:70 msgid "Update {displayName} in Lists" msgstr "Aggiorna {displayName} negli elenchi" #: src/lib/hooks/useOTAUpdate.ts:15 -msgid "Update Available" -msgstr "Aggiornamento disponibile" +#~ msgid "Update Available" +#~ msgstr "Aggiornamento disponibile" + +#: src/view/com/modals/ChangeHandle.tsx:509 +msgid "Update to {handle}" +msgstr "" #: src/view/com/auth/login/SetNewPasswordForm.tsx:204 msgid "Updating..." @@ -4317,11 +5359,38 @@ msgstr "In aggiornamento..." msgid "Upload a text file to:" msgstr "Carica una file di testo a:" -#: src/view/screens/AppPasswords.tsx:195 +#: src/view/com/util/UserAvatar.tsx:326 +#: src/view/com/util/UserAvatar.tsx:329 +#: src/view/com/util/UserBanner.tsx:116 +#: src/view/com/util/UserBanner.tsx:119 +msgid "Upload from Camera" +msgstr "" + +#: src/view/com/util/UserAvatar.tsx:343 +#: src/view/com/util/UserBanner.tsx:133 +msgid "Upload from Files" +msgstr "" + +#: src/view/com/util/UserAvatar.tsx:337 +#: src/view/com/util/UserAvatar.tsx:341 +#: src/view/com/util/UserBanner.tsx:127 +#: src/view/com/util/UserBanner.tsx:131 +msgid "Upload from Library" +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:409 +msgid "Use a file on your server" +msgstr "" + +#: src/view/screens/AppPasswords.tsx:197 msgid "Use app passwords to login to other Bluesky clients without giving full access to your account or password." msgstr "Utilizza le password dell'app per accedere ad altri client Bluesky senza fornire l'accesso completo al tuo account o alla tua password." -#: src/view/com/modals/ChangeHandle.tsx:515 +#: src/view/com/modals/ChangeHandle.tsx:518 +msgid "Use bsky.social as hosting provider" +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:517 msgid "Use default provider" msgstr "Utilizza il tuo provider predefinito" @@ -4335,23 +5404,39 @@ msgstr "Utilizza il browser dell'app" msgid "Use my default browser" msgstr "Utilizza il mio browser predefinito" +#: src/view/com/modals/ChangeHandle.tsx:401 +msgid "Use the DNS panel" +msgstr "" + #: src/view/com/modals/AddAppPasswords.tsx:155 msgid "Use this to sign into the other app along with your handle." msgstr "Utilizza questo per accedere all'altra app insieme al tuo nome utente." +#~ msgid "Use your domain as your Bluesky client service provider" +#~ msgstr "Utilizza il tuo dominio come provider di servizi clienti Bluesky" + #: src/view/com/modals/InviteCodes.tsx:200 msgid "Used by:" msgstr "Usato da:" -#: src/view/com/modals/ModerationDetails.tsx:54 +#: src/components/moderation/ModerationDetailsDialog.tsx:65 +#: src/lib/moderation/useModerationCauseDescription.ts:56 msgid "User Blocked" msgstr "Utente bloccato" -#: src/view/com/modals/ModerationDetails.tsx:40 +#: src/lib/moderation/useModerationCauseDescription.ts:48 +msgid "User Blocked by \"{0}\"" +msgstr "" + +#: src/components/moderation/ModerationDetailsDialog.tsx:54 msgid "User Blocked by List" msgstr "Utente bloccato dalla lista" -#: src/view/com/modals/ModerationDetails.tsx:60 +#: src/lib/moderation/useModerationCauseDescription.ts:66 +msgid "User Blocking You" +msgstr "" + +#: src/components/moderation/ModerationDetailsDialog.tsx:71 msgid "User Blocks You" msgstr "Questo utente ti blocca" @@ -4364,13 +5449,13 @@ msgstr "Handle dell'utente" msgid "User list by {0}" msgstr "Lista di {0}" -#: src/view/screens/ProfileList.tsx:763 +#: src/view/screens/ProfileList.tsx:777 msgid "User list by <0/>" msgstr "Lista di<0/>" #: src/view/com/lists/ListCard.tsx:83 #: src/view/com/modals/UserAddRemoveLists.tsx:196 -#: src/view/screens/ProfileList.tsx:761 +#: src/view/screens/ProfileList.tsx:775 msgid "User list by you" msgstr "La tua lista" @@ -4391,7 +5476,7 @@ msgstr "Liste publiche" msgid "Username or email address" msgstr "Nome utente o indirizzo Email" -#: src/view/screens/ProfileList.tsx:797 +#: src/view/screens/ProfileList.tsx:811 msgid "Users" msgstr "Utenti" @@ -4403,19 +5488,31 @@ msgstr "utenti seguiti da <0/>" msgid "Users in \"{0}\"" msgstr "Utenti in «{0}»" +#: src/components/LikesDialog.tsx:85 +msgid "Users that have liked this content or profile" +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:437 +msgid "Value:" +msgstr "" + #: src/view/com/auth/create/Step2.tsx:243 #~ msgid "Verification code" #~ msgstr "Codice di verifica" -#: src/view/screens/Settings/index.tsx:910 +#: src/view/com/modals/ChangeHandle.tsx:510 +msgid "Verify {0}" +msgstr "" + +#: src/view/screens/Settings/index.tsx:940 msgid "Verify email" msgstr "Verifica Email" -#: src/view/screens/Settings/index.tsx:935 +#: src/view/screens/Settings/index.tsx:965 msgid "Verify my email" msgstr "Verifica la mia email" -#: src/view/screens/Settings/index.tsx:944 +#: src/view/screens/Settings/index.tsx:974 msgid "Verify My Email" msgstr "Verifica la Mia Email" @@ -4432,7 +5529,7 @@ msgstr "Verifica la tua email" msgid "Video Games" msgstr "Video Games" -#: src/view/com/profile/ProfileHeader.tsx:662 +#: src/screens/Profile/Header/Shell.tsx:110 msgid "View {0}'s avatar" msgstr "Vedi l'avatar di {0}" @@ -4440,11 +5537,23 @@ msgstr "Vedi l'avatar di {0}" msgid "View debug entry" msgstr "Vedi le informazioni del debug" -#: src/view/com/posts/FeedSlice.tsx:103 +#: src/components/ReportDialog/SelectReportOptionView.tsx:133 +msgid "View details" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:128 +msgid "View details for reporting a copyright violation" +msgstr "" + +#: src/view/com/posts/FeedSlice.tsx:99 msgid "View full thread" msgstr "Vedi la discussione completa" -#: src/view/com/posts/FeedErrorMessage.tsx:172 +#: src/components/moderation/LabelsOnMe.tsx:51 +msgid "View information about these labels" +msgstr "" + +#: src/view/com/posts/FeedErrorMessage.tsx:166 msgid "View profile" msgstr "Vedi il profilo" @@ -4452,15 +5561,34 @@ msgstr "Vedi il profilo" msgid "View the avatar" msgstr "Vedi l'avatar" +#: src/components/LabelingServiceCard/index.tsx:140 +msgid "View the labeling service provided by @{0}" +msgstr "" + +#: src/view/screens/ProfileFeed.tsx:584 +msgid "View users who like this feed" +msgstr "" + #: src/view/com/modals/LinkWarning.tsx:75 +#: src/view/com/modals/LinkWarning.tsx:77 msgid "Visit Site" msgstr "Visita il sito" -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:42 -#: src/view/com/modals/ContentFilteringSettings.tsx:259 +#: src/components/moderation/GlobalModerationLabelPref.tsx:44 +#: src/lib/moderation/useLabelBehaviorDescription.ts:17 +#: src/lib/moderation/useLabelBehaviorDescription.ts:22 +#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:53 msgid "Warn" msgstr "Avvisa" +#: src/lib/moderation/useLabelBehaviorDescription.ts:48 +msgid "Warn content" +msgstr "" + +#: src/lib/moderation/useLabelBehaviorDescription.ts:46 +msgid "Warn content and filter from feeds" +msgstr "" + #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:134 msgid "We also think you'll like \"For You\" by Skygaze:" msgstr "Pensiamo che ti piacerà anche \"Per Te\" di Skygaze:" @@ -4489,6 +5617,14 @@ msgstr "" msgid "We recommend our \"Discover\" feed:" msgstr "Consigliamo il nostro feed \"Scopri\":" +#: src/components/dialogs/BirthDateSettings.tsx:52 +msgid "We were unable to load your birth date preferences. Please try again." +msgstr "" + +#: src/screens/Moderation/index.tsx:387 +msgid "We were unable to load your configured labelers at this time." +msgstr "" + #: src/screens/Onboarding/StepInterests/index.tsx:133 msgid "We weren't able to connect. Please try again to continue setting up your account. If it continues to fail, you can skip this flow." msgstr "Non siamo riusciti a connetterci. Riprova per continuare a configurare il tuo account. Se il problema persiste, puoi ignorare questo flusso." @@ -4498,8 +5634,8 @@ msgid "We will let you know when your account is ready." msgstr "Ti faremo sapere quando il tuo account sarà pronto." #: src/view/com/modals/AppealLabel.tsx:48 -msgid "We'll look into your appeal promptly." -msgstr "Esamineremo il tuo ricorso al più presto." +#~ msgid "We'll look into your appeal promptly." +#~ msgstr "Esamineremo il tuo ricorso al più presto." #: src/screens/Onboarding/StepInterests/index.tsx:138 msgid "We'll use this to help customize your experience." @@ -4509,7 +5645,7 @@ msgstr "Lo useremo per personalizzare la tua esperienza." msgid "We're so excited to have you join us!" msgstr "Siamo felici che tu ti unisca a noi!" -#: src/view/screens/ProfileList.tsx:86 +#: src/view/screens/ProfileList.tsx:89 msgid "We're sorry, but we were unable to resolve this list. If this persists, please contact the list creator, @{handleOrDid}." msgstr "Siamo spiacenti, ma non siamo riusciti a risolvere questa lista. Se il problema persiste, contatta il creatore della lista, @{handleOrDid}." @@ -4517,16 +5653,20 @@ msgstr "Siamo spiacenti, ma non siamo riusciti a risolvere questa lista. Se il p msgid "We're sorry, but we weren't able to load your muted words at this time. Please try again." msgstr "" -#: src/view/screens/Search/Search.tsx:254 +#: src/view/screens/Search/Search.tsx:255 msgid "We're sorry, but your search could not be completed. Please try again in a few minutes." msgstr "Siamo spiacenti, ma non è stato possibile completare la ricerca. Riprova tra qualche minuto." -#: src/components/Lists.tsx:211 +#: src/components/Lists.tsx:194 #: src/view/screens/NotFound.tsx:48 msgid "We're sorry! We can't find the page you were looking for." msgstr "Ci dispiace! Non riusciamo a trovare la pagina che stavi cercando." -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:46 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:319 +msgid "We're sorry! You can only subscribe to ten labelers, and you've reached your limit of ten." +msgstr "" + +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:48 msgid "Welcome to <0>Bluesky" msgstr "Ti diamo il benvenuto a <0>Bluesky" @@ -4535,14 +5675,14 @@ msgid "What are your interests?" msgstr "Quali sono i tuoi interessi?" #: src/view/com/modals/report/Modal.tsx:169 -msgid "What is the issue with this {collectionName}?" -msgstr "Qual è il problema con questo {collectionName}?" +#~ msgid "What is the issue with this {collectionName}?" +#~ msgstr "Qual è il problema con questo {collectionName}?" #~ msgid "What's next?" -#~ msgstr "¿Qué sigue?" +#~ msgstr "Qual è il prossimo?" #: src/view/com/auth/SplashScreen.tsx:59 -#: src/view/com/composer/Composer.tsx:286 +#: src/view/com/composer/Composer.tsx:295 msgid "What's up?" msgstr "Come va?" @@ -4559,16 +5699,36 @@ msgstr "Quali lingue vorresti vedere negli algoritmi dei tuoi feeds?" msgid "Who can reply" msgstr "Chi può rispondere" +#: src/components/ReportDialog/SelectReportOptionView.tsx:44 +msgid "Why should this content be reviewed?" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:57 +msgid "Why should this feed be reviewed?" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:54 +msgid "Why should this list be reviewed?" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:51 +msgid "Why should this post be reviewed?" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:48 +msgid "Why should this user be reviewed?" +msgstr "" + #: src/view/com/modals/crop-image/CropImage.web.tsx:102 msgid "Wide" msgstr "Largo" -#: src/view/com/composer/Composer.tsx:422 +#: src/view/com/composer/Composer.tsx:435 msgid "Write post" msgstr "Scrivi un post" -#: src/view/com/composer/Composer.tsx:285 -#: src/view/com/composer/Prompt.tsx:33 +#: src/view/com/composer/Composer.tsx:294 +#: src/view/com/composer/Prompt.tsx:37 msgid "Write your reply" msgstr "Scrivi la tua risposta" @@ -4594,11 +5754,18 @@ msgstr "Si" msgid "You are in line." msgstr "Sei nella fila." +#: src/view/com/profile/ProfileFollows.tsx:93 +msgid "You are not following anyone." +msgstr "" + #: src/view/com/posts/FollowingEmptyState.tsx:67 #: src/view/com/posts/FollowingEndOfFeed.tsx:68 msgid "You can also discover new Custom Feeds to follow." msgstr "Puoi anche scoprire nuovi feed personalizzati da seguire." +#~ msgid "You can change hosting providers at any time." +#~ msgstr "Puoi cambiare provider di hosting in qualsiasi momento." + #: src/screens/Onboarding/StepFollowingFeed.tsx:142 msgid "You can change these settings later." msgstr "Potrai modificare queste impostazioni in seguito." @@ -4608,6 +5775,10 @@ msgstr "Potrai modificare queste impostazioni in seguito." msgid "You can now sign in with your new password." msgstr "Adesso puoi accedere con la tua nuova password." +#: src/view/com/profile/ProfileFollowers.tsx:94 +msgid "You do not have any followers." +msgstr "" + #: src/view/com/modals/InviteCodes.tsx:66 msgid "You don't have any invite codes yet! We'll send you some when you've been on Bluesky for a little longer." msgstr "Non hai ancora alcun codice di invito! Te ne invieremo alcuni quando utilizzerai Bluesky per un po' più a lungo." @@ -4624,11 +5795,13 @@ msgstr "Non hai salvato nessun feed!" msgid "You don't have any saved feeds." msgstr "Non hai salvato nessun feed." -#: src/view/com/post-thread/PostThread.tsx:465 +#: src/view/com/post-thread/PostThread.tsx:159 msgid "You have blocked the author or you have been blocked by the author." msgstr "Hai bloccato l'autore o sei stato bloccato dall'autore." -#: src/view/com/modals/ModerationDetails.tsx:56 +#: src/components/moderation/ModerationDetailsDialog.tsx:67 +#: src/lib/moderation/useModerationCauseDescription.ts:50 +#: src/lib/moderation/useModerationCauseDescription.ts:58 msgid "You have blocked this user. You cannot view their content." msgstr "Hai bloccato questo utente. Non è possibile visualizzare il contenuto." @@ -4639,47 +5812,81 @@ msgstr "Hai bloccato questo utente. Non è possibile visualizzare il contenuto." msgid "You have entered an invalid code. It should look like XXXXX-XXXXX." msgstr "Hai inserito un codice non valido. Dovrebbe apparire come XXXX-XXXXXX." +#: src/lib/moderation/useModerationCauseDescription.ts:109 +msgid "You have hidden this post" +msgstr "" + +#: src/components/moderation/ModerationDetailsDialog.tsx:102 +msgid "You have hidden this post." +msgstr "" + +#: src/components/moderation/ModerationDetailsDialog.tsx:95 +#: src/lib/moderation/useModerationCauseDescription.ts:92 +msgid "You have muted this account." +msgstr "" + +#: src/lib/moderation/useModerationCauseDescription.ts:86 +msgid "You have muted this user" +msgstr "" + #: src/view/com/modals/ModerationDetails.tsx:87 -msgid "You have muted this user." -msgstr "Hai disattivato questo utente." +#~ msgid "You have muted this user." +#~ msgstr "Hai disattivato questo utente." #: src/view/com/feeds/ProfileFeedgens.tsx:136 msgid "You have no feeds." msgstr "Non hai feeds." -#: src/view/com/lists/MyLists.tsx:89 src/view/com/lists/ProfileLists.tsx:140 +#: src/view/com/lists/MyLists.tsx:89 +#: src/view/com/lists/ProfileLists.tsx:140 msgid "You have no lists." msgstr "Non hai liste." #: src/view/screens/ModerationBlockedAccounts.tsx:132 -msgid "You have not blocked any accounts yet. To block an account, go to their profile and selected \"Block account\" from the menu on their account." -msgstr "Non hai ancora bloccato nessun conto. Per bloccare un conto, vai al profilo e seleziona \"Blocca conto\" dal menu del suo conto." +msgid "You have not blocked any accounts yet. To block an account, go to their profile and select \"Block account\" from the menu on their account." +msgstr "" -#: src/view/screens/AppPasswords.tsx:87 +#: src/view/screens/ModerationBlockedAccounts.tsx:132 +#~ msgid "You have not blocked any accounts yet. To block an account, go to their profile and selected \"Block account\" from the menu on their account." +#~ msgstr "Non hai ancora bloccato nessun conto. Per bloccare un conto, vai al profilo e seleziona \"Blocca conto\" dal menu del suo conto." + +#: src/view/screens/AppPasswords.tsx:89 msgid "You have not created any app passwords yet. You can create one by pressing the button below." msgstr "Non hai ancora creato alcuna password per l'app. Puoi crearne uno premendo il pulsante qui sotto." #: src/view/screens/ModerationMutedAccounts.tsx:131 -msgid "You have not muted any accounts yet. To mute an account, go to their profile and selected \"Mute account\" from the menu on their account." -msgstr "Non hai ancora disattivato alcun account. Per disattivare un account, vai al suo profilo e seleziona \"Disattiva account\" dal menu del account." +msgid "You have not muted any accounts yet. To mute an account, go to their profile and select \"Mute account\" from the menu on their account." +msgstr "" + +#: src/view/screens/ModerationMutedAccounts.tsx:131 +#~ msgid "You have not muted any accounts yet. To mute an account, go to their profile and selected \"Mute account\" from the menu on their account." +#~ msgstr "Non hai ancora disattivato alcun account. Per disattivare un account, vai al suo profilo e seleziona \"Disattiva account\" dal menu del account." #: src/components/dialogs/MutedWords.tsx:250 msgid "You haven't muted any words or tags yet" msgstr "" +#: src/components/moderation/LabelsOnMeDialog.tsx:69 +msgid "You may appeal these labels if you feel they were placed in error." +msgstr "" + #: src/view/com/modals/ContentFilteringSettings.tsx:175 -msgid "You must be 18 or older to enable adult content." -msgstr "Devi avere almeno 18 anni per abilitare i contenuti per adulti." +#~ msgid "You must be 18 or older to enable adult content." +#~ msgstr "Devi avere almeno 18 anni per abilitare i contenuti per adulti." -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:103 +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:110 msgid "You must be 18 years or older to enable adult content" msgstr "Devi avere almeno 18 anni per abilitare i contenuti per adulti" -#: src/view/com/util/forms/PostDropdownBtn.tsx:147 +#: src/components/ReportDialog/SubmitView.tsx:205 +msgid "You must select at least one labeler for a report" +msgstr "" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:144 msgid "You will no longer receive notifications for this thread" msgstr "Non riceverai più notifiche per questo filo di discussione" -#: src/view/com/util/forms/PostDropdownBtn.tsx:150 +#: src/view/com/util/forms/PostDropdownBtn.tsx:147 msgid "You will now receive notifications for this thread" msgstr "Adesso riceverai le notifiche per questa discussione" @@ -4687,11 +5894,12 @@ msgstr "Adesso riceverai le notifiche per questa discussione" msgid "You will receive an email with a \"reset code.\" Enter that code here, then enter your new password." msgstr "Riceverai un'email con un \"codice di reset\". Inserisci il codice qui, poi inserisci la nuova password." -#: src/screens/Onboarding/StepModeration/index.tsx:72 +#: src/screens/Onboarding/StepModeration/index.tsx:59 msgid "You're in control" msgstr "Sei in controllo" -#: src/screens/Deactivated.tsx:87 src/screens/Deactivated.tsx:88 +#: src/screens/Deactivated.tsx:87 +#: src/screens/Deactivated.tsx:88 #: src/screens/Deactivated.tsx:103 msgid "You're in line" msgstr "Sei in fila" @@ -4700,6 +5908,11 @@ msgstr "Sei in fila" msgid "You're ready to go!" msgstr "Sei pronto per iniziare!" +#: src/components/moderation/ModerationDetailsDialog.tsx:99 +#: src/lib/moderation/useModerationCauseDescription.ts:101 +msgid "You've chosen to hide a word or tag within this post." +msgstr "" + #: src/view/com/posts/FollowingEndOfFeed.tsx:48 msgid "You've reached the end of your feed! Find some more accounts to follow." msgstr "Hai raggiunto la fine del tuo feed! Trova altri account da seguire." @@ -4759,10 +5972,8 @@ msgid "Your full handle will be <0>@{0}" msgstr "Il tuo nome di utente completo sarà <0>@{0}" #~ msgid "Your hosting provider" -#~ msgstr "El teu proveïdor d'allotjament" +#~ msgstr "Il tuo fornitore di hosting" -#: src/view/screens/Settings.tsx:NaN -#: src/view/shell/Drawer.tsx:660 #~ msgid "Your invite codes are hidden when logged in using an App Password" #~ msgstr "I tuoi codici di invito vengono celati quando accedi utilizzando una password per l'app" @@ -4770,179 +5981,29 @@ msgstr "Il tuo nome di utente completo sarà <0>@{0}" msgid "Your muted words" msgstr "" -#: src/view/com/modals/ChangePassword.tsx:155 +#: src/view/com/modals/ChangePassword.tsx:157 msgid "Your password has been changed successfully!" msgstr "La tua password è stata modificata correttamente!" -#: src/view/com/composer/Composer.tsx:274 +#: src/view/com/composer/Composer.tsx:283 msgid "Your post has been published" msgstr "Il tuo post è stato pubblicato" #: src/screens/Onboarding/StepFinished.tsx:105 #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:59 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:59 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:61 msgid "Your posts, likes, and blocks are public. Mutes are private." msgstr "I tuoi post, i tuoi Mi piace e i tuoi blocchi sono pubblici. I conti silenziati sono privati." -#: src/view/com/modals/SwitchAccount.tsx:84 -#: src/view/screens/Settings/index.tsx:118 +#: src/view/com/modals/SwitchAccount.tsx:88 +#: src/view/screens/Settings/index.tsx:123 msgid "Your profile" msgstr "Il tuo profilo" -#: src/view/com/composer/Composer.tsx:273 +#: src/view/com/composer/Composer.tsx:282 msgid "Your reply has been published" msgstr "La tua risposta è stata pubblicata" #: src/view/com/auth/create/Step2.tsx:65 msgid "Your user handle" msgstr "Il tuo handle utente" - -#~ msgid "{0, plural, one {# invite code available} other {# invite codes available}}" -#~ msgstr "{0, plural, one {# codice d'invito disponibile} other {# codici d'inviti disponibili}}" - -#~ msgid "{0}" -#~ msgstr "{0}" - -#~ msgid "{0} {purposeLabel} List" -#~ msgstr "Lista {purposeLabel} {0}" - -#~ msgid "{invitesAvailable, plural, one {Invite codes: # available} other {Invite codes: # available}}" -#~ msgstr "{invitesAvailable, plural, one {Codici d'invito: # available} other {Codici d'invito: # available}}" - -#~ msgid "{invitesAvailable} invite code available" -#~ msgstr "{invitesAvailable} codice d'invito disponibile" - -#~ msgid "{invitesAvailable} invite codes available" -#~ msgstr "{invitesAvailable} codici d'invito disponibili" - -#~ msgid "{message}" -#~ msgstr "{message}" - -#~ msgid "App passwords" -#~ msgstr "Passwords dell'app" - -#~ msgid "Appeal Decision" -#~ msgstr "Decisión de apelación" - -#~ msgid "Bluesky.Social" -#~ msgstr "Bluesky.Social" - -#~ msgid "Button disabled. Input custom domain to proceed." -#~ msgstr "Pulsante disabilitato. Inserisci il dominio personalizzato per procedere." - -#~ msgid "Cancel add image alt text" -#~ msgstr "Cancel·la afegir text a la imatge" - -#~ msgid "Change" -#~ msgstr "Cambia" - -#~ msgid "Danger Zone" -#~ msgstr "Zona di Pericolo" - -#~ msgid "Delete my account…" -#~ msgstr "Cancella il mio account…" - -#~ msgid "Dev Server" -#~ msgstr "Server di sviluppo" - -#~ msgid "Developer Tools" -#~ msgstr "Strumenti per sviluppatori" - -#~ msgid "Discover new feeds" -#~ msgstr "Scopri nuovi feeds" - -#~ msgid "Enter the address of your provider:" -#~ msgstr "Inserisci l'indirizzo del tuo provider:" - -#~ msgid "following" -#~ msgstr "following" - -#~ msgid "Hosting provider address" -#~ msgstr "Indirizzo del fornitore di hosting" - -#~ msgid "Invite" -#~ msgstr "Invita" - -#~ msgid "Invite codes: {invitesAvailable} available" -#~ msgstr "Codici di invito: {invitesAvailable} disponibili" - -#~ msgid "liked your custom feed{0}" -#~ msgstr "piace il feed personalizzato{0}" - -#~ msgid "Local dev server" -#~ msgstr "Server di sviluppo locale" - -#~ msgid "Looks like this feed is only available to users with a Bluesky account. Please sign up or sign in to view this feed!" -#~ msgstr "Sembra che questo feed sia disponibile solo per gli utenti con un account Bluesky. Per favore registrati o accedi per visualizzare questo feed!" - -#~ msgid "Message from server" -#~ msgstr "Messaggio dal server" - -#~ msgid "New Post" -#~ msgstr "Nuovo Post" - -#~ msgid "Opens invite code list" -#~ msgstr "Apre la lista dei codici di invito" - -#~ msgid "Other service" -#~ msgstr "Altro servizio" - -#~ msgid "Please tell us why you think this decision was incorrect." -#~ msgstr "Per favore spiegaci perché ritieni che questa decisione sia stata sbagliata." - -#~ msgid "Post" -#~ msgstr "Post" - -#~ msgid "Quote Post" -#~ msgstr "Cita il post" - -#~ msgid "Reposted by" -#~ msgstr "Repost di" - -#~ msgid "Reposted by {0})" -#~ msgstr "Repost di {0})" - -#~ msgid "Select Bluesky Social" -#~ msgstr "Seleziona Bluesky Social" - -#~ msgid "Send Email" -#~ msgstr "Envia Email" - -#~ msgid "Something went wrong and we're not sure what." -#~ msgstr "Qualcosa è andato storto ma non siamo sicuri di cosa." - -#~ msgid "Staging" -#~ msgstr "Allestimento" - -#~ msgid "Swipe up to see more" -#~ msgstr "Scorri verso l'alto per vedere di più" - -#~ msgid "The support form has been moved. If you need help, please<0/> or visit {HELP_DESK_URL} to get in touch with us." -#~ msgstr "Il modulo di supporto è stato spostato. Se hai bisogno di aiuto, <0/> o visita {HELP_DESK_URL} per metterti in contatto con noi." - -#~ msgid "This {0} has been labeled." -#~ msgstr "Questo {0} è stato etichettato." - -#~ msgid "This is the service that keeps you online." -#~ msgstr "Questo è il servizio che ti mantiene online." - -#~ msgid "This user is included the <0/> list which you have muted." -#~ msgstr "Questo utente è incluso nella lista <0/> che hai silenziato." - -#~ msgid "Try again" -#~ msgstr "Provalo di nuovo" - -#~ msgid "Use your domain as your Bluesky client service provider" -#~ msgstr "Utilizza il tuo dominio come provider di servizi clienti Bluesky" - -#~ msgid "What's next?" -#~ msgstr "Qual è il prossimo?" - -#~ msgid "You can change hosting providers at any time." -#~ msgstr "Puoi cambiare provider di hosting in qualsiasi momento." - -#~ msgid "Your hosting provider" -#~ msgstr "Il tuo fornitore di hosting" - -#~ msgid "Your invite codes are hidden when logged in using an App Password" -#~ msgstr "I tuoi codici di invito vengono celati quando accedi utilizzando una password per l'app" diff --git a/src/locale/locales/ja/messages.po b/src/locale/locales/ja/messages.po index 6c50bc9f21..79562a02c2 100644 --- a/src/locale/locales/ja/messages.po +++ b/src/locale/locales/ja/messages.po @@ -30,7 +30,7 @@ msgstr "メールがありません" #~ msgid "{0} {purposeLabel} List" #~ msgstr "{0} {purposeLabel} リスト" -#: src/view/com/profile/ProfileHeader.tsx:593 +#: src/screens/Profile/Header/Metrics.tsx:45 msgid "{following} following" msgstr "{following}人をフォロー中" @@ -52,7 +52,7 @@ msgstr "{following}人をフォロー中" #~ msgid "{message}" #~ msgstr "{message}" -#: src/view/shell/Drawer.tsx:440 +#: src/view/shell/Drawer.tsx:443 msgid "{numUnreadNotifications} unread" msgstr "{numUnreadNotifications}件の未読" @@ -64,7 +64,11 @@ msgstr "{numUnreadNotifications}件の未読" msgid "<0/> members" msgstr "<0/>のメンバー" -#: src/view/com/profile/ProfileHeader.tsx:595 +#: src/view/shell/Drawer.tsx:97 +msgid "<0>{0} following" +msgstr "" + +#: src/screens/Profile/Header/Metrics.tsx:46 msgid "<0>{following} <1>following" msgstr "<0>{following}<1>人をフォロー中" @@ -80,20 +84,20 @@ msgstr "<1>おすすめの<2>ユーザー<0>をフォロー" msgid "<0>Welcome to<1>Bluesky" msgstr "<1>Bluesky<0>へようこそ" -#: src/view/com/profile/ProfileHeader.tsx:558 +#: src/screens/Profile/Header/Handle.tsx:42 msgid "⚠Invalid Handle" msgstr "⚠不正なハンドル" #: src/view/com/util/moderation/LabelInfo.tsx:45 -msgid "A content warning has been applied to this {0}." -msgstr "この{0}にコンテンツの警告が適用されています。" +#~ msgid "A content warning has been applied to this {0}." +#~ msgstr "この{0}にコンテンツの警告が適用されています。" #: src/lib/hooks/useOTAUpdate.ts:16 -msgid "A new version of the app is available. Please update to continue using the app." -msgstr "新しいバージョンのアプリが利用可能です。継続して使用するためにはアップデートしてください。" +#~ msgid "A new version of the app is available. Please update to continue using the app." +#~ msgstr "新しいバージョンのアプリが利用可能です。継続して使用するためにはアップデートしてください。" #: src/view/com/util/ViewHeader.tsx:89 -#: src/view/screens/Search/Search.tsx:647 +#: src/view/screens/Search/Search.tsx:648 msgid "Access navigation links and settings" msgstr "ナビゲーションリンクと設定にアクセス" @@ -102,29 +106,38 @@ msgid "Access profile and other navigation links" msgstr "プロフィールと他のナビゲーションリンクにアクセス" #: src/view/com/modals/EditImage.tsx:299 -#: src/view/screens/Settings/index.tsx:451 +#: src/view/screens/Settings/index.tsx:466 msgid "Accessibility" msgstr "アクセシビリティ" +#: src/components/moderation/LabelsOnMe.tsx:42 +msgid "account" +msgstr "" + #: src/view/com/auth/login/LoginForm.tsx:166 -#: src/view/screens/Settings/index.tsx:308 -#: src/view/screens/Settings/index.tsx:721 +#: src/view/screens/Settings/index.tsx:323 +#: src/view/screens/Settings/index.tsx:739 msgid "Account" msgstr "アカウント" -#: src/view/com/profile/ProfileHeader.tsx:246 +#: src/view/com/profile/ProfileMenu.tsx:139 msgid "Account blocked" msgstr "アカウントをブロックしました" -#: src/view/com/profile/ProfileHeader.tsx:213 +#: src/view/com/profile/ProfileMenu.tsx:153 +msgid "Account followed" +msgstr "" + +#: src/view/com/profile/ProfileMenu.tsx:113 msgid "Account muted" msgstr "アカウントをミュートしました" -#: src/view/com/modals/ModerationDetails.tsx:86 +#: src/components/moderation/ModerationDetailsDialog.tsx:94 +#: src/lib/moderation/useModerationCauseDescription.ts:91 msgid "Account Muted" msgstr "ミュート中のアカウント" -#: src/view/com/modals/ModerationDetails.tsx:72 +#: src/components/moderation/ModerationDetailsDialog.tsx:83 msgid "Account Muted by List" msgstr "リストによってミュート中のアカウント" @@ -136,19 +149,24 @@ msgstr "アカウントオプション" msgid "Account removed from quick access" msgstr "クイックアクセスからアカウントを解除" -#: src/view/com/profile/ProfileHeader.tsx:268 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:130 +#: src/view/com/profile/ProfileMenu.tsx:128 msgid "Account unblocked" msgstr "アカウントのブロックを解除しました" -#: src/view/com/profile/ProfileHeader.tsx:226 +#: src/view/com/profile/ProfileMenu.tsx:166 +msgid "Account unfollowed" +msgstr "" + +#: src/view/com/profile/ProfileMenu.tsx:102 msgid "Account unmuted" msgstr "アカウントのミュートを解除しました" #: src/components/dialogs/MutedWords.tsx:165 #: src/view/com/auth/onboarding/RecommendedFeedsItem.tsx:150 -#: src/view/com/modals/ListAddRemoveUsers.tsx:264 +#: src/view/com/modals/ListAddRemoveUsers.tsx:268 #: src/view/com/modals/UserAddRemoveLists.tsx:219 -#: src/view/screens/ProfileList.tsx:813 +#: src/view/screens/ProfileList.tsx:827 msgid "Add" msgstr "追加" @@ -156,12 +174,12 @@ msgstr "追加" msgid "Add a content warning" msgstr "コンテンツの警告を追加" -#: src/view/screens/ProfileList.tsx:803 +#: src/view/screens/ProfileList.tsx:817 msgid "Add a user to this list" msgstr "リストにユーザーを追加" -#: src/view/screens/Settings/index.tsx:383 -#: src/view/screens/Settings/index.tsx:392 +#: src/view/screens/Settings/index.tsx:398 +#: src/view/screens/Settings/index.tsx:407 msgid "Add account" msgstr "アカウントを追加" @@ -171,26 +189,26 @@ msgstr "アカウントを追加" msgid "Add alt text" msgstr "ALTテキストを追加" -#: src/view/screens/AppPasswords.tsx:102 -#: src/view/screens/AppPasswords.tsx:143 -#: src/view/screens/AppPasswords.tsx:156 +#: src/view/screens/AppPasswords.tsx:104 +#: src/view/screens/AppPasswords.tsx:145 +#: src/view/screens/AppPasswords.tsx:158 msgid "Add App Password" msgstr "アプリパスワードを追加" #: src/view/com/modals/report/InputIssueDetails.tsx:41 #: src/view/com/modals/report/Modal.tsx:191 -msgid "Add details" -msgstr "詳細を追加" +#~ msgid "Add details" +#~ msgstr "詳細を追加" #: src/view/com/modals/report/Modal.tsx:194 -msgid "Add details to report" -msgstr "レポートに詳細を追加" +#~ msgid "Add details to report" +#~ msgstr "レポートに詳細を追加" -#: src/view/com/composer/Composer.tsx:453 +#: src/view/com/composer/Composer.tsx:466 msgid "Add link card" msgstr "リンクカードを追加" -#: src/view/com/composer/Composer.tsx:458 +#: src/view/com/composer/Composer.tsx:471 msgid "Add link card:" msgstr "リンクカードを追加:" @@ -206,12 +224,12 @@ msgstr "" msgid "Add the following DNS record to your domain:" msgstr "次のDNSレコードをドメインに追加してください:" -#: src/view/com/profile/ProfileHeader.tsx:310 +#: src/view/com/profile/ProfileMenu.tsx:263 +#: src/view/com/profile/ProfileMenu.tsx:266 msgid "Add to Lists" msgstr "リストに追加" -#: src/view/com/feeds/FeedSourceCard.tsx:245 -#: src/view/screens/ProfileFeed.tsx:273 +#: src/view/com/feeds/FeedSourceCard.tsx:234 msgid "Add to my feeds" msgstr "マイフィードに追加" @@ -224,7 +242,7 @@ msgstr "追加済み" msgid "Added to list" msgstr "リストに追加" -#: src/view/com/feeds/FeedSourceCard.tsx:127 +#: src/view/com/feeds/FeedSourceCard.tsx:108 msgid "Added to my feeds" msgstr "マイフィードに追加" @@ -232,19 +250,25 @@ msgstr "マイフィードに追加" msgid "Adjust the number of likes a reply must have to be shown in your feed." msgstr "返信がフィードに表示されるために必要な「いいね」の数を調整します。" +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:117 #: src/view/com/modals/SelfLabel.tsx:75 msgid "Adult Content" msgstr "成人向けコンテンツ" #: src/view/com/modals/ContentFilteringSettings.tsx:141 -msgid "Adult content can only be enabled via the Web at <0/>." -msgstr "成人向けコンテンツはウェブ(<0/>)からのみ有効化できます。" +#~ msgid "Adult content can only be enabled via the Web at <0/>." +#~ msgstr "成人向けコンテンツはウェブ(<0/>)からのみ有効化できます。" #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:78 #~ msgid "Adult content can only be enabled via the Web at <0>bsky.app." #~ msgstr "成人向けコンテンツはウェブ(<0>bsky.app)からのみ有効化できます。" -#: src/view/screens/Settings/index.tsx:664 +#: src/components/moderation/ModerationLabelPref.tsx:114 +msgid "Adult content is disabled." +msgstr "" + +#: src/screens/Moderation/index.tsx:377 +#: src/view/screens/Settings/index.tsx:680 msgid "Advanced" msgstr "高度な設定" @@ -253,11 +277,11 @@ msgid "All the feeds you've saved, right in one place." msgstr "" #: src/view/com/auth/login/ForgotPasswordForm.tsx:221 -#: src/view/com/modals/ChangePassword.tsx:168 +#: src/view/com/modals/ChangePassword.tsx:170 msgid "Already have a code?" msgstr "コードをすでに持っていますか?" -#: src/view/com/auth/login/ChooseAccountForm.tsx:98 +#: src/view/com/auth/login/ChooseAccountForm.tsx:102 msgid "Already signed in as @{0}" msgstr "@{0}としてすでにサインイン済み" @@ -281,12 +305,18 @@ msgstr "メールが{0}に送信されました。以下に入力できる確認 msgid "An email has been sent to your previous address, {0}. It includes a confirmation code which you can enter below." msgstr "以前のメールアドレス{0}にメールが送信されました。以下に入力できる確認コードがそのメールに記載されています。" -#: src/view/com/profile/FollowButton.tsx:30 -#: src/view/com/profile/FollowButton.tsx:40 +#: src/lib/moderation/useReportOptions.ts:26 +msgid "An issue not included in these options" +msgstr "" + +#: src/view/com/profile/FollowButton.tsx:35 +#: src/view/com/profile/FollowButton.tsx:45 +#: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:188 +#: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:198 msgid "An issue occurred, please try again." msgstr "問題が発生しました。もう一度お試しください。" -#: src/view/com/notifications/FeedItem.tsx:237 +#: src/view/com/notifications/FeedItem.tsx:240 #: src/view/com/threadgate/WhoCanReply.tsx:178 msgid "and" msgstr "および" @@ -295,11 +325,15 @@ msgstr "および" msgid "Animals" msgstr "動物" +#: src/lib/moderation/useReportOptions.ts:31 +msgid "Anti-Social Behavior" +msgstr "" + #: src/view/screens/LanguageSettings.tsx:95 msgid "App Language" msgstr "アプリの言語" -#: src/view/screens/AppPasswords.tsx:228 +#: src/view/screens/AppPasswords.tsx:223 msgid "App password deleted" msgstr "アプリパスワードを削除しました" @@ -311,7 +345,7 @@ msgstr "アプリパスワードの名前には、英数字、スペース、ハ msgid "App Password names must be at least 4 characters long." msgstr "アプリパスワードの名前は長さが4文字以上である必要があります。" -#: src/view/screens/Settings/index.tsx:675 +#: src/view/screens/Settings/index.tsx:691 msgid "App password settings" msgstr "アプリパスワードの設定" @@ -319,53 +353,69 @@ msgstr "アプリパスワードの設定" #~ msgid "App passwords" #~ msgstr "アプリパスワード" -#: src/Navigation.tsx:239 -#: src/view/screens/AppPasswords.tsx:187 -#: src/view/screens/Settings/index.tsx:684 +#: src/Navigation.tsx:251 +#: src/view/screens/AppPasswords.tsx:189 +#: src/view/screens/Settings/index.tsx:700 msgid "App Passwords" msgstr "アプリパスワード" +#: src/components/moderation/LabelsOnMeDialog.tsx:134 +#: src/components/moderation/LabelsOnMeDialog.tsx:137 +msgid "Appeal" +msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:202 +msgid "Appeal \"{0}\" label" +msgstr "" + #: src/view/com/util/forms/PostDropdownBtn.tsx:337 #: src/view/com/util/forms/PostDropdownBtn.tsx:346 -msgid "Appeal content warning" -msgstr "コンテンツの警告に異議を申し立てる" +#~ msgid "Appeal content warning" +#~ msgstr "コンテンツの警告に異議を申し立てる" #: src/view/com/modals/AppealLabel.tsx:65 -msgid "Appeal Content Warning" -msgstr "コンテンツの警告に異議を申し立てる" +#~ msgid "Appeal Content Warning" +#~ msgstr "コンテンツの警告に異議を申し立てる" #: src/view/com/modals/AppealLabel.tsx:65 #~ msgid "Appeal Decision" #~ msgstr "判断に異議を申し立てる" +#: src/components/moderation/LabelsOnMeDialog.tsx:193 +msgid "Appeal submitted." +msgstr "" + #: src/view/com/util/moderation/LabelInfo.tsx:52 -msgid "Appeal this decision" -msgstr "この判断に異議を申し立てる" +#~ msgid "Appeal this decision" +#~ msgstr "この判断に異議を申し立てる" #: src/view/com/util/moderation/LabelInfo.tsx:56 -msgid "Appeal this decision." -msgstr "この判断に異議を申し立てる" +#~ msgid "Appeal this decision." +#~ msgstr "この判断に異議を申し立てる" -#: src/view/screens/Settings/index.tsx:466 +#: src/view/screens/Settings/index.tsx:481 msgid "Appearance" msgstr "背景" -#: src/view/screens/AppPasswords.tsx:224 +#: src/view/screens/AppPasswords.tsx:265 msgid "Are you sure you want to delete the app password \"{name}\"?" msgstr "アプリパスワード「{name}」を本当に削除しますか?" -#: src/view/com/composer/Composer.tsx:150 +#: src/view/com/feeds/FeedSourceCard.tsx:280 +msgid "Are you sure you want to remove {0} from your feeds?" +msgstr "" + +#: src/view/com/composer/Composer.tsx:508 msgid "Are you sure you'd like to discard this draft?" msgstr "本当にこの下書きを破棄しますか?" #: src/components/dialogs/MutedWords.tsx:282 -#: src/view/screens/ProfileList.tsx:365 msgid "Are you sure?" msgstr "本当によろしいですか?" #: src/view/com/util/forms/PostDropdownBtn.tsx:322 -msgid "Are you sure? This cannot be undone." -msgstr "本当によろしいですか?これは元に戻せません。" +#~ msgid "Are you sure? This cannot be undone." +#~ msgstr "本当によろしいですか?これは元に戻せません。" #: src/view/com/composer/select-language/SuggestedLanguage.tsx:60 msgid "Are you writing in <0>{0}?" @@ -379,78 +429,86 @@ msgstr "アート" msgid "Artistic or non-erotic nudity." msgstr "芸術的または性的ではないヌード。" +#: src/components/moderation/LabelsOnMeDialog.tsx:247 +#: src/components/moderation/LabelsOnMeDialog.tsx:248 +#: src/screens/Profile/Header/Shell.tsx:97 #: src/view/com/auth/create/CreateAccount.tsx:158 -#: src/view/com/auth/login/ChooseAccountForm.tsx:151 +#: src/view/com/auth/login/ChooseAccountForm.tsx:155 #: src/view/com/auth/login/ForgotPasswordForm.tsx:174 #: src/view/com/auth/login/LoginForm.tsx:259 #: src/view/com/auth/login/SetNewPasswordForm.tsx:179 -#: src/view/com/modals/report/InputIssueDetails.tsx:46 -#: src/view/com/post-thread/PostThread.tsx:472 -#: src/view/com/post-thread/PostThread.tsx:522 -#: src/view/com/post-thread/PostThread.tsx:530 -#: src/view/com/profile/ProfileHeader.tsx:649 #: src/view/com/util/ViewHeader.tsx:87 msgid "Back" msgstr "戻る" #: src/view/com/post-thread/PostThread.tsx:480 -msgctxt "action" -msgid "Back" -msgstr "戻る" +#~ msgctxt "action" +#~ msgid "Back" +#~ msgstr "戻る" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:136 msgid "Based on your interest in {interestsText}" msgstr "「{interestsText}」への興味に基づいたおすすめです。" -#: src/view/screens/Settings/index.tsx:523 +#: src/view/screens/Settings/index.tsx:538 msgid "Basics" msgstr "基本" +#: src/components/dialogs/BirthDateSettings.tsx:107 #: src/view/com/auth/create/Step1.tsx:227 -#: src/view/com/modals/BirthDateSettings.tsx:73 msgid "Birthday" msgstr "誕生日" -#: src/view/screens/Settings/index.tsx:340 +#: src/view/screens/Settings/index.tsx:355 msgid "Birthday:" msgstr "誕生日:" -#: src/view/com/profile/ProfileHeader.tsx:239 -#: src/view/com/profile/ProfileHeader.tsx:346 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:278 +#: src/view/com/profile/ProfileMenu.tsx:361 +msgid "Block" +msgstr "" + +#: src/view/com/profile/ProfileMenu.tsx:300 +#: src/view/com/profile/ProfileMenu.tsx:307 msgid "Block Account" msgstr "アカウントをブロック" -#: src/view/screens/ProfileList.tsx:556 +#: src/view/com/profile/ProfileMenu.tsx:344 +msgid "Block Account?" +msgstr "" + +#: src/view/screens/ProfileList.tsx:530 msgid "Block accounts" msgstr "アカウントをブロック" -#: src/view/screens/ProfileList.tsx:506 +#: src/view/screens/ProfileList.tsx:478 +#: src/view/screens/ProfileList.tsx:634 msgid "Block list" msgstr "リストをブロック" -#: src/view/screens/ProfileList.tsx:316 +#: src/view/screens/ProfileList.tsx:629 msgid "Block these accounts?" msgstr "これらのアカウントをブロックしますか?" #: src/view/screens/ProfileList.tsx:320 -msgid "Block this List" -msgstr "このリストをブロック" +#~ msgid "Block this List" +#~ msgstr "このリストをブロック" #: src/view/com/lists/ListCard.tsx:110 -#: src/view/com/util/post-embeds/QuoteEmbed.tsx:61 +#: src/view/com/util/post-embeds/QuoteEmbed.tsx:55 msgid "Blocked" msgstr "ブロックされています" -#: src/view/screens/Moderation.tsx:142 +#: src/screens/Moderation/index.tsx:269 msgid "Blocked accounts" msgstr "ブロック中のアカウント" -#: src/Navigation.tsx:132 +#: src/Navigation.tsx:134 #: src/view/screens/ModerationBlockedAccounts.tsx:107 msgid "Blocked Accounts" msgstr "ブロック中のアカウント" -#: src/view/com/profile/ProfileHeader.tsx:241 +#: src/view/com/profile/ProfileMenu.tsx:356 msgid "Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you." msgstr "ブロック中のアカウントは、あなたのスレッドでの返信、あなたへのメンション、その他の方法であなたとやり取りすることはできません。" @@ -458,15 +516,23 @@ msgstr "ブロック中のアカウントは、あなたのスレッドでの返 msgid "Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you. You will not see their content and they will be prevented from seeing yours." msgstr "ブロック中のアカウントは、あなたのスレッドでの返信、あなたへのメンション、その他の方法であなたとやり取りすることはできません。あなたは相手のコンテンツを見ることができず、相手はあなたのコンテンツを見ることができなくなります。" -#: src/view/com/post-thread/PostThread.tsx:324 +#: src/view/com/post-thread/PostThread.tsx:313 msgid "Blocked post." msgstr "投稿をブロックしました。" -#: src/view/screens/ProfileList.tsx:318 +#: src/screens/Profile/Sections/Labels.tsx:153 +msgid "Blocking does not prevent this labeler from placing labels on your account." +msgstr "" + +#: src/view/screens/ProfileList.tsx:631 msgid "Blocking is public. Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you." msgstr "ブロックしたことは公開されます。ブロック中のアカウントは、あなたのスレッドでの返信、あなたへのメンション、その他の方法であなたとやり取りすることはできません。" -#: src/view/com/auth/HomeLoggedOutCTA.tsx:93 +#: src/view/com/profile/ProfileMenu.tsx:353 +msgid "Blocking will not prevent labels from being applied on your account, but it will stop this account from replying in your threads or interacting with you." +msgstr "" + +#: src/view/com/auth/HomeLoggedOutCTA.tsx:97 #: src/view/com/auth/SplashScreen.web.tsx:133 msgid "Blog" msgstr "ブログ" @@ -482,17 +548,17 @@ msgid "Bluesky is an open network where you can choose your hosting provider. Cu msgstr "Bluesky は、ホスティング プロバイダーを選択できるオープン ネットワークです。 カスタム ホスティングは、開発者向けのベータ版で利用できるようになりました。" #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:80 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:80 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:82 msgid "Bluesky is flexible." msgstr "Blueskyは柔軟です。" #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:69 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:69 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:71 msgid "Bluesky is open." msgstr "Blueskyは開かれています。" #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:56 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:56 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:58 msgid "Bluesky is public." msgstr "Blueskyはパブリックです。" @@ -500,7 +566,7 @@ msgstr "Blueskyはパブリックです。" #~ msgid "Bluesky uses invites to build a healthier community. If you don't know anybody with an invite, you can sign up for the waitlist and we'll send one soon." #~ msgstr "Blueskyはより健全なコミュニティーを構築するために招待状を使用します。招待状をお持ちでない場合、Waitlistにお申し込みいただくと招待状をお送りします。" -#: src/view/screens/Moderation.tsx:245 +#: src/screens/Moderation/index.tsx:535 msgid "Bluesky will not show your profile and posts to logged-out users. Other apps may not honor this request. This does not make your account private." msgstr "Blueskyはログアウトしたユーザーにあなたのプロフィールや投稿を表示しません。他のアプリはこのリクエストに応じない場合があります。この設定はあなたのアカウントを非公開にするものではありません。" @@ -508,15 +574,23 @@ msgstr "Blueskyはログアウトしたユーザーにあなたのプロフィ #~ msgid "Bluesky.Social" #~ msgstr "Bluesky.Social" +#: src/lib/moderation/useLabelBehaviorDescription.ts:53 +msgid "Blur images" +msgstr "" + +#: src/lib/moderation/useLabelBehaviorDescription.ts:51 +msgid "Blur images and filter from feeds" +msgstr "" + #: src/screens/Onboarding/index.tsx:33 msgid "Books" msgstr "書籍" -#: src/view/screens/Settings/index.tsx:859 +#: src/view/screens/Settings/index.tsx:889 msgid "Build version {0} {1}" msgstr "ビルドバージョン {0} {1}" -#: src/view/com/auth/HomeLoggedOutCTA.tsx:87 +#: src/view/com/auth/HomeLoggedOutCTA.tsx:91 #: src/view/com/auth/SplashScreen.web.tsx:128 msgid "Business" msgstr "ビジネス" @@ -533,17 +607,23 @@ msgstr "作成者:-" msgid "by {0}" msgstr "作成者:{0}" +#: src/components/LabelingServiceCard/index.tsx:57 +msgid "By {0}" +msgstr "" + #: src/view/com/profile/ProfileSubpageHeader.tsx:161 msgid "by <0/>" msgstr "作成者:<0/>" +#: src/view/com/auth/create/Policies.tsx:87 +msgid "By creating an account you agree to the {els}." +msgstr "" + #: src/view/com/profile/ProfileSubpageHeader.tsx:159 msgid "by you" msgstr "作成者:あなた" -#: src/view/com/composer/photos/OpenCameraBtn.tsx:60 -#: src/view/com/util/UserAvatar.tsx:224 -#: src/view/com/util/UserBanner.tsx:40 +#: src/view/com/composer/photos/OpenCameraBtn.tsx:77 msgid "Camera" msgstr "カメラ" @@ -551,28 +631,33 @@ msgstr "カメラ" msgid "Can only contain letters, numbers, spaces, dashes, and underscores. Must be at least 4 characters long, but no more than 32 characters long." msgstr "英数字、スペース、ハイフン、アンダースコアのみが使用可能です。長さは4文字以上32文字以下である必要があります。" -#: src/components/Prompt.tsx:101 -#: src/view/com/composer/Composer.tsx:307 -#: src/view/com/composer/Composer.tsx:312 +#: src/components/Menu/index.tsx:213 +#: src/components/Prompt.tsx:116 +#: src/components/Prompt.tsx:118 +#: src/components/TagMenu/index.tsx:268 +#: src/view/com/composer/Composer.tsx:316 +#: src/view/com/composer/Composer.tsx:321 #: src/view/com/modals/ChangeEmail.tsx:218 #: src/view/com/modals/ChangeEmail.tsx:220 -#: src/view/com/modals/ChangePassword.tsx:265 -#: src/view/com/modals/ChangePassword.tsx:268 +#: src/view/com/modals/ChangeHandle.tsx:153 +#: src/view/com/modals/ChangePassword.tsx:267 +#: src/view/com/modals/ChangePassword.tsx:270 #: src/view/com/modals/CreateOrEditList.tsx:355 +#: src/view/com/modals/crop-image/CropImage.web.tsx:137 #: src/view/com/modals/EditImage.tsx:323 #: src/view/com/modals/EditProfile.tsx:249 #: src/view/com/modals/InAppBrowserConsent.tsx:78 +#: src/view/com/modals/InAppBrowserConsent.tsx:80 #: src/view/com/modals/LinkWarning.tsx:87 +#: src/view/com/modals/LinkWarning.tsx:89 #: src/view/com/modals/Repost.tsx:87 #: src/view/com/modals/VerifyEmail.tsx:247 #: src/view/com/modals/VerifyEmail.tsx:253 -#: src/view/screens/Search/Search.tsx:716 -#: src/view/shell/desktop/Search.tsx:238 +#: src/view/screens/Search/Search.tsx:717 +#: src/view/shell/desktop/Search.tsx:239 msgid "Cancel" msgstr "キャンセル" -#: src/view/com/modals/Confirm.tsx:88 -#: src/view/com/modals/Confirm.tsx:91 #: src/view/com/modals/CreateOrEditList.tsx:360 #: src/view/com/modals/DeleteAccount.tsx:156 #: src/view/com/modals/DeleteAccount.tsx:234 @@ -606,7 +691,7 @@ msgid "Cancel quote post" msgstr "引用をキャンセル" #: src/view/com/modals/ListAddRemoveUsers.tsx:87 -#: src/view/shell/desktop/Search.tsx:234 +#: src/view/shell/desktop/Search.tsx:235 msgid "Cancel search" msgstr "検索をキャンセル" @@ -614,21 +699,25 @@ msgstr "検索をキャンセル" #~ msgid "Cancel waitlist signup" #~ msgstr "Waitlistの登録をキャンセル" -#: src/view/screens/Settings/index.tsx:334 +#: src/view/com/modals/LinkWarning.tsx:88 +msgid "Cancels opening the linked website" +msgstr "" + +#: src/view/screens/Settings/index.tsx:349 msgctxt "action" msgid "Change" msgstr "変更" -#: src/view/screens/Settings.tsx:306 -#~ msgid "Change" -#~ msgstr "変更" +#: src/view/com/modals/VerifyEmail.tsx:152 +msgid "Change" +msgstr "変更" -#: src/view/screens/Settings/index.tsx:696 +#: src/view/screens/Settings/index.tsx:712 msgid "Change handle" msgstr "ハンドルを変更" #: src/view/com/modals/ChangeHandle.tsx:161 -#: src/view/screens/Settings/index.tsx:705 +#: src/view/screens/Settings/index.tsx:723 msgid "Change Handle" msgstr "ハンドルを変更" @@ -636,11 +725,12 @@ msgstr "ハンドルを変更" msgid "Change my email" msgstr "メールアドレスを変更" -#: src/view/screens/Settings/index.tsx:732 +#: src/view/screens/Settings/index.tsx:750 msgid "Change password" msgstr "パスワードを変更" -#: src/view/screens/Settings/index.tsx:741 +#: src/view/com/modals/ChangePassword.tsx:141 +#: src/view/screens/Settings/index.tsx:761 msgid "Change Password" msgstr "パスワードを変更" @@ -649,8 +739,8 @@ msgid "Change post language to {0}" msgstr "投稿の言語を{0}に変更します" #: src/view/screens/Settings/index.tsx:733 -msgid "Change your Bluesky password" -msgstr "Blueskyのパスワードを変更" +#~ msgid "Change your Bluesky password" +#~ msgstr "Blueskyのパスワードを変更" #: src/view/com/modals/ChangeEmail.tsx:109 msgid "Change Your Email" @@ -678,8 +768,8 @@ msgid "Choose \"Everybody\" or \"Nobody\"" msgstr "「全員」か「返信不可」のどちらかを選択" #: src/view/screens/Settings/index.tsx:697 -msgid "Choose a new Bluesky username or create" -msgstr "Blueskyの別のユーザー名を選択するか、新規に作成します" +#~ msgid "Choose a new Bluesky username or create" +#~ msgstr "Blueskyの別のユーザー名を選択するか、新規に作成します" #: src/view/com/auth/server-input/index.tsx:79 msgid "Choose Service" @@ -690,7 +780,7 @@ msgid "Choose the algorithms that power your custom feeds." msgstr "カスタムフィードのアルゴリズムを選択できます。" #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:83 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:83 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:85 msgid "Choose the algorithms that power your experience with custom feeds." msgstr "カスタムフィードを使用してあなたの体験を強化するアルゴリズムを選択します。" @@ -706,29 +796,35 @@ msgstr "メインのフィードを選択" msgid "Choose your password" msgstr "パスワードを入力" -#: src/view/screens/Settings/index.tsx:834 -#: src/view/screens/Settings/index.tsx:835 +#: src/view/screens/Settings/index.tsx:864 msgid "Clear all legacy storage data" msgstr "レガシーストレージデータをすべてクリア" -#: src/view/screens/Settings/index.tsx:837 +#: src/view/screens/Settings/index.tsx:867 msgid "Clear all legacy storage data (restart after this)" msgstr "すべてのレガシーストレージデータをクリア(この後再起動します)" -#: src/view/screens/Settings/index.tsx:846 -#: src/view/screens/Settings/index.tsx:847 +#: src/view/screens/Settings/index.tsx:876 msgid "Clear all storage data" msgstr "すべてのストレージデータをクリア" -#: src/view/screens/Settings/index.tsx:849 +#: src/view/screens/Settings/index.tsx:879 msgid "Clear all storage data (restart after this)" msgstr "すべてのストレージデータをクリア(この後再起動します)" #: src/view/com/util/forms/SearchInput.tsx:88 -#: src/view/screens/Search/Search.tsx:697 +#: src/view/screens/Search/Search.tsx:698 msgid "Clear search query" msgstr "検索クエリをクリア" +#: src/view/screens/Settings/index.tsx:865 +msgid "Clears all legacy storage data" +msgstr "" + +#: src/view/screens/Settings/index.tsx:877 +msgid "Clears all storage data" +msgstr "" + #: src/view/screens/Support.tsx:40 msgid "click here" msgstr "こちらをクリック" @@ -745,8 +841,8 @@ msgstr "" msgid "Climate" msgstr "気象" -#: src/view/com/modals/ChangePassword.tsx:265 -#: src/view/com/modals/ChangePassword.tsx:268 +#: src/view/com/modals/ChangePassword.tsx:267 +#: src/view/com/modals/ChangePassword.tsx:270 msgid "Close" msgstr "閉じる" @@ -759,27 +855,28 @@ msgstr "アクティブなダイアログを閉じる" msgid "Close alert" msgstr "アラートを閉じる" -#: src/view/com/util/BottomSheetCustomBackdrop.tsx:33 +#: src/view/com/util/BottomSheetCustomBackdrop.tsx:36 msgid "Close bottom drawer" msgstr "一番下の引き出しを閉じる" -#: src/view/com/lightbox/ImageViewing/components/ImageDefaultHeader.tsx:26 +#: src/view/com/lightbox/ImageViewing/components/ImageDefaultHeader.tsx:36 msgid "Close image" msgstr "画像を閉じる" -#: src/view/com/lightbox/Lightbox.web.tsx:119 +#: src/view/com/lightbox/Lightbox.web.tsx:129 msgid "Close image viewer" msgstr "画像ビューアを閉じる" -#: src/view/shell/index.web.tsx:51 +#: src/view/shell/index.web.tsx:55 msgid "Close navigation footer" msgstr "ナビゲーションフッターを閉じる" +#: src/components/Menu/index.tsx:207 #: src/components/TagMenu/index.tsx:262 msgid "Close this dialog" msgstr "" -#: src/view/shell/index.web.tsx:52 +#: src/view/shell/index.web.tsx:56 msgid "Closes bottom navigation bar" msgstr "下部のナビゲーションバーを閉じる" @@ -787,15 +884,15 @@ msgstr "下部のナビゲーションバーを閉じる" msgid "Closes password update alert" msgstr "パスワード更新アラートを閉じる" -#: src/view/com/composer/Composer.tsx:309 +#: src/view/com/composer/Composer.tsx:318 msgid "Closes post composer and discards post draft" msgstr "投稿の編集画面を閉じ、下書きを削除する" -#: src/view/com/lightbox/ImageViewing/components/ImageDefaultHeader.tsx:27 +#: src/view/com/lightbox/ImageViewing/components/ImageDefaultHeader.tsx:37 msgid "Closes viewer for header image" msgstr "ヘッダー画像のビューワーを閉じる" -#: src/view/com/notifications/FeedItem.tsx:318 +#: src/view/com/notifications/FeedItem.tsx:321 msgid "Collapses list of users for a given notification" msgstr "指定した通知のユーザーリストを折りたたむ" @@ -807,7 +904,7 @@ msgstr "コメディー" msgid "Comics" msgstr "漫画" -#: src/Navigation.tsx:229 +#: src/Navigation.tsx:241 #: src/view/screens/CommunityGuidelines.tsx:32 msgid "Community Guidelines" msgstr "コミュニティーガイドライン" @@ -820,7 +917,7 @@ msgstr "初期設定を完了してアカウントを使い始める" msgid "Complete the challenge" msgstr "" -#: src/view/com/composer/Composer.tsx:424 +#: src/view/com/composer/Composer.tsx:437 msgid "Compose posts up to {MAX_GRAPHEME_LENGTH} characters in length" msgstr "{MAX_GRAPHEME_LENGTH}文字までの投稿を作成" @@ -828,12 +925,18 @@ msgstr "{MAX_GRAPHEME_LENGTH}文字までの投稿を作成" msgid "Compose reply" msgstr "返信を作成" -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:67 +#: src/components/moderation/GlobalModerationLabelPref.tsx:69 +#: src/components/moderation/ModerationLabelPref.tsx:149 +#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:81 msgid "Configure content filtering setting for category: {0}" msgstr "このカテゴリのコンテンツフィルタリングを設定: {0}" -#: src/components/Prompt.tsx:124 -#: src/view/com/modals/AppealLabel.tsx:98 +#: src/components/moderation/ModerationLabelPref.tsx:116 +msgid "Configured in <0>moderation settings." +msgstr "" + +#: src/components/Prompt.tsx:152 +#: src/components/Prompt.tsx:155 #: src/view/com/modals/SelfLabel.tsx:154 #: src/view/com/modals/VerifyEmail.tsx:231 #: src/view/com/modals/VerifyEmail.tsx:233 @@ -844,9 +947,9 @@ msgstr "確認" #: src/view/com/modals/Confirm.tsx:75 #: src/view/com/modals/Confirm.tsx:78 -msgctxt "action" -msgid "Confirm" -msgstr "確認" +#~ msgctxt "action" +#~ msgid "Confirm" +#~ msgstr "確認" #: src/view/com/modals/ChangeEmail.tsx:193 #: src/view/com/modals/ChangeEmail.tsx:195 @@ -862,10 +965,19 @@ msgid "Confirm delete account" msgstr "アカウントの削除を確認" #: src/view/com/modals/ContentFilteringSettings.tsx:156 -msgid "Confirm your age to enable adult content." -msgstr "成人向けコンテンツを有効にするために年齢を確認してください。" +#~ msgid "Confirm your age to enable adult content." +#~ msgstr "成人向けコンテンツを有効にするために年齢を確認してください。" + +#: src/screens/Moderation/index.tsx:303 +msgid "Confirm your age:" +msgstr "" + +#: src/screens/Moderation/index.tsx:294 +msgid "Confirm your birthdate" +msgstr "" #: src/view/com/modals/ChangeEmail.tsx:157 +#: src/view/com/modals/DeleteAccount.tsx:176 #: src/view/com/modals/DeleteAccount.tsx:182 #: src/view/com/modals/VerifyEmail.tsx:165 msgid "Confirmation code" @@ -884,25 +996,40 @@ msgstr "接続中..." msgid "Contact support" msgstr "サポートに連絡" +#: src/components/moderation/LabelsOnMe.tsx:42 +msgid "content" +msgstr "" + +#: src/lib/moderation/useGlobalLabelStrings.ts:18 +msgid "Content Blocked" +msgstr "" + #: src/view/screens/Moderation.tsx:83 -msgid "Content filtering" -msgstr "コンテンツのフィルタリング" +#~ msgid "Content filtering" +#~ msgstr "コンテンツのフィルタリング" #: src/view/com/modals/ContentFilteringSettings.tsx:44 -msgid "Content Filtering" -msgstr "コンテンツのフィルタリング" +#~ msgid "Content Filtering" +#~ msgstr "コンテンツのフィルタリング" + +#: src/screens/Moderation/index.tsx:287 +msgid "Content filters" +msgstr "" #: src/view/com/modals/lang-settings/ContentLanguagesSettings.tsx:74 #: src/view/screens/LanguageSettings.tsx:278 msgid "Content Languages" msgstr "コンテンツの言語" -#: src/view/com/modals/ModerationDetails.tsx:65 +#: src/components/moderation/ModerationDetailsDialog.tsx:76 +#: src/lib/moderation/useModerationCauseDescription.ts:75 msgid "Content Not Available" msgstr "コンテンツはありません" -#: src/view/com/modals/ModerationDetails.tsx:33 -#: src/view/com/util/moderation/ScreenHider.tsx:78 +#: src/components/moderation/ModerationDetailsDialog.tsx:47 +#: src/components/moderation/ScreenHider.tsx:100 +#: src/lib/moderation/useGlobalLabelStrings.ts:22 +#: src/lib/moderation/useModerationCauseDescription.ts:38 msgid "Content Warning" msgstr "コンテンツの警告" @@ -910,19 +1037,24 @@ msgstr "コンテンツの警告" msgid "Content warnings" msgstr "コンテンツの警告" +#: src/components/Menu/index.web.tsx:84 +msgid "Context menu backdrop, click to close the menu." +msgstr "" + #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:170 #: src/screens/Onboarding/StepFollowingFeed.tsx:153 #: src/screens/Onboarding/StepInterests/index.tsx:248 -#: src/screens/Onboarding/StepModeration/index.tsx:118 +#: src/screens/Onboarding/StepModeration/index.tsx:102 #: src/screens/Onboarding/StepTopicalFeeds.tsx:114 #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:148 #: src/view/com/auth/onboarding/RecommendedFollows.tsx:209 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:96 msgid "Continue" msgstr "続行" #: src/screens/Onboarding/StepFollowingFeed.tsx:150 #: src/screens/Onboarding/StepInterests/index.tsx:245 -#: src/screens/Onboarding/StepModeration/index.tsx:115 +#: src/screens/Onboarding/StepModeration/index.tsx:99 #: src/screens/Onboarding/StepTopicalFeeds.tsx:111 msgid "Continue to next step" msgstr "次のステップへ進む" @@ -944,13 +1076,14 @@ msgstr "料理" msgid "Copied" msgstr "コピーしました" -#: src/view/screens/Settings/index.tsx:241 +#: src/view/screens/Settings/index.tsx:247 msgid "Copied build version to clipboard" msgstr "ビルドバージョンをクリップボードにコピーしました" #: src/view/com/modals/AddAppPasswords.tsx:76 +#: src/view/com/modals/ChangeHandle.tsx:327 #: src/view/com/modals/InviteCodes.tsx:152 -#: src/view/com/util/forms/PostDropdownBtn.tsx:161 +#: src/view/com/util/forms/PostDropdownBtn.tsx:158 msgid "Copied to clipboard" msgstr "クリップボードにコピーしました" @@ -962,34 +1095,38 @@ msgstr "アプリパスワードをコピーします" msgid "Copy" msgstr "コピー" -#: src/view/screens/ProfileList.tsx:418 +#: src/view/com/modals/ChangeHandle.tsx:481 +msgid "Copy {0}" +msgstr "" + +#: src/view/screens/ProfileList.tsx:388 msgid "Copy link to list" msgstr "リストへのリンクをコピー" -#: src/view/com/util/forms/PostDropdownBtn.tsx:231 +#: src/view/com/util/forms/PostDropdownBtn.tsx:228 #: src/view/com/util/forms/PostDropdownBtn.tsx:237 msgid "Copy link to post" msgstr "投稿へのリンクをコピー" #: src/view/com/profile/ProfileHeader.tsx:295 -msgid "Copy link to profile" -msgstr "プロフィールへのリンクをコピー" +#~ msgid "Copy link to profile" +#~ msgstr "プロフィールへのリンクをコピー" -#: src/view/com/util/forms/PostDropdownBtn.tsx:223 -#: src/view/com/util/forms/PostDropdownBtn.tsx:225 +#: src/view/com/util/forms/PostDropdownBtn.tsx:220 +#: src/view/com/util/forms/PostDropdownBtn.tsx:222 msgid "Copy post text" msgstr "投稿のテキストをコピー" -#: src/Navigation.tsx:234 +#: src/Navigation.tsx:246 #: src/view/screens/CopyrightPolicy.tsx:29 msgid "Copyright Policy" msgstr "著作権ポリシー" -#: src/view/screens/ProfileFeed.tsx:97 +#: src/view/screens/ProfileFeed.tsx:102 msgid "Could not load feed" msgstr "フィードのロードに失敗しました" -#: src/view/screens/ProfileList.tsx:893 +#: src/view/screens/ProfileList.tsx:907 msgid "Could not load list" msgstr "リストのロードに失敗しました" @@ -997,13 +1134,13 @@ msgstr "リストのロードに失敗しました" #~ msgid "Country" #~ msgstr "国" -#: src/view/com/auth/HomeLoggedOutCTA.tsx:62 -#: src/view/com/auth/SplashScreen.tsx:71 +#: src/view/com/auth/HomeLoggedOutCTA.tsx:64 +#: src/view/com/auth/SplashScreen.tsx:73 #: src/view/com/auth/SplashScreen.web.tsx:81 msgid "Create a new account" msgstr "新しいアカウントを作成" -#: src/view/screens/Settings/index.tsx:384 +#: src/view/screens/Settings/index.tsx:399 msgid "Create a new Bluesky account" msgstr "新しいBlueskyアカウントを作成" @@ -1020,19 +1157,23 @@ msgstr "アプリパスワードを作成" msgid "Create new account" msgstr "新しいアカウントを作成" -#: src/view/screens/AppPasswords.tsx:249 +#: src/components/ReportDialog/SelectReportOptionView.tsx:94 +msgid "Create report for {0}" +msgstr "" + +#: src/view/screens/AppPasswords.tsx:246 msgid "Created {0}" msgstr "{0}を作成済み" #: src/view/screens/ProfileFeed.tsx:616 -msgid "Created by <0/>" -msgstr "作成者:<0/>" +#~ msgid "Created by <0/>" +#~ msgstr "作成者:<0/>" #: src/view/screens/ProfileFeed.tsx:614 -msgid "Created by you" -msgstr "作成者:あなた" +#~ msgid "Created by you" +#~ msgstr "作成者:あなた" -#: src/view/com/composer/Composer.tsx:455 +#: src/view/com/composer/Composer.tsx:468 msgid "Creates a card with a thumbnail. The card links to {url}" msgstr "サムネイル付きのカードを作成します。そのカードは次のアドレスへリンクします:{url}" @@ -1062,8 +1203,8 @@ msgstr "外部サイトのメディアをカスタマイズします。" #~ msgid "Danger Zone" #~ msgstr "危険地帯" -#: src/view/screens/Settings/index.tsx:485 -#: src/view/screens/Settings/index.tsx:511 +#: src/view/screens/Settings/index.tsx:500 +#: src/view/screens/Settings/index.tsx:526 msgid "Dark" msgstr "ダーク" @@ -1071,7 +1212,7 @@ msgstr "ダーク" msgid "Dark mode" msgstr "ダークモード" -#: src/view/screens/Settings/index.tsx:498 +#: src/view/screens/Settings/index.tsx:513 msgid "Dark Theme" msgstr "ダークテーマ" @@ -1079,11 +1220,21 @@ msgstr "ダークテーマ" #~ msgid "Debug" #~ msgstr "デバッグ" +#: src/view/screens/Settings/index.tsx:837 +msgid "Debug Moderation" +msgstr "" + #: src/view/screens/Debug.tsx:83 msgid "Debug panel" msgstr "デバッグパネル" -#: src/view/screens/Settings/index.tsx:772 +#: src/view/com/util/forms/PostDropdownBtn.tsx:319 +#: src/view/screens/AppPasswords.tsx:268 +#: src/view/screens/ProfileList.tsx:613 +msgid "Delete" +msgstr "" + +#: src/view/screens/Settings/index.tsx:792 msgid "Delete account" msgstr "アカウントを削除" @@ -1091,13 +1242,15 @@ msgstr "アカウントを削除" msgid "Delete Account" msgstr "アカウントを削除" -#: src/view/screens/AppPasswords.tsx:222 -#: src/view/screens/AppPasswords.tsx:242 +#: src/view/screens/AppPasswords.tsx:239 msgid "Delete app password" msgstr "アプリパスワードを削除" -#: src/view/screens/ProfileList.tsx:364 -#: src/view/screens/ProfileList.tsx:445 +#: src/view/screens/AppPasswords.tsx:263 +msgid "Delete app password?" +msgstr "" + +#: src/view/screens/ProfileList.tsx:415 msgid "Delete List" msgstr "リストを削除" @@ -1109,24 +1262,28 @@ msgstr "マイアカウントを削除" #~ msgid "Delete my account…" #~ msgstr "マイアカウントを削除…" -#: src/view/screens/Settings/index.tsx:784 +#: src/view/screens/Settings/index.tsx:804 msgid "Delete My Account…" msgstr "マイアカウントを削除…" -#: src/view/com/util/forms/PostDropdownBtn.tsx:317 -#: src/view/com/util/forms/PostDropdownBtn.tsx:326 +#: src/view/com/util/forms/PostDropdownBtn.tsx:302 +#: src/view/com/util/forms/PostDropdownBtn.tsx:304 msgid "Delete post" msgstr "投稿を削除" -#: src/view/com/util/forms/PostDropdownBtn.tsx:321 +#: src/view/screens/ProfileList.tsx:608 +msgid "Delete this list?" +msgstr "" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:314 msgid "Delete this post?" msgstr "この投稿を削除しますか?" -#: src/view/com/util/post-embeds/QuoteEmbed.tsx:70 +#: src/view/com/util/post-embeds/QuoteEmbed.tsx:64 msgid "Deleted" msgstr "削除されています" -#: src/view/com/post-thread/PostThread.tsx:316 +#: src/view/com/post-thread/PostThread.tsx:305 msgid "Deleted post." msgstr "投稿を削除しました。" @@ -1145,23 +1302,35 @@ msgstr "説明" #~ msgid "Developer Tools" #~ msgstr "開発者ツール" -#: src/view/com/composer/Composer.tsx:218 +#: src/view/com/composer/Composer.tsx:217 msgid "Did you want to say anything?" msgstr "なにか言いたいことはあった?" -#: src/view/screens/Settings/index.tsx:504 +#: src/view/screens/Settings/index.tsx:519 msgid "Dim" msgstr "グレー" -#: src/view/com/composer/Composer.tsx:151 +#: src/lib/moderation/useLabelBehaviorDescription.ts:32 +#: src/lib/moderation/useLabelBehaviorDescription.ts:42 +#: src/lib/moderation/useLabelBehaviorDescription.ts:68 +#: src/screens/Moderation/index.tsx:343 +msgid "Disabled" +msgstr "" + +#: src/view/com/composer/Composer.tsx:510 msgid "Discard" msgstr "破棄" #: src/view/com/composer/Composer.tsx:145 -msgid "Discard draft" -msgstr "下書きを破棄" +#~ msgid "Discard draft" +#~ msgstr "下書きを破棄" + +#: src/view/com/composer/Composer.tsx:507 +msgid "Discard draft?" +msgstr "" -#: src/view/screens/Moderation.tsx:226 +#: src/screens/Moderation/index.tsx:520 +#: src/screens/Moderation/index.tsx:524 msgid "Discourage apps from showing my account to logged-out users" msgstr "アプリがログアウトしたユーザーに自分のアカウントを表示しないようにする" @@ -1186,7 +1355,19 @@ msgstr "表示名" msgid "Display Name" msgstr "表示名" -#: src/view/com/modals/ChangeHandle.tsx:487 +#: src/view/com/modals/ChangeHandle.tsx:398 +msgid "DNS Panel" +msgstr "" + +#: src/lib/moderation/useGlobalLabelStrings.ts:39 +msgid "Does not include nudity." +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:482 +msgid "Domain Value" +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:489 msgid "Domain verified!" msgstr "ドメインを確認しました!" @@ -1207,19 +1388,19 @@ msgctxt "action" msgid "Done" msgstr "完了" +#: src/components/dialogs/BirthDateSettings.tsx:119 +#: src/components/dialogs/BirthDateSettings.tsx:125 #: src/view/com/auth/server-input/index.tsx:165 #: src/view/com/auth/server-input/index.tsx:166 #: src/view/com/modals/AddAppPasswords.tsx:226 #: src/view/com/modals/AltImage.tsx:139 -#: src/view/com/modals/ContentFilteringSettings.tsx:88 -#: src/view/com/modals/ContentFilteringSettings.tsx:96 #: src/view/com/modals/crop-image/CropImage.web.tsx:152 #: src/view/com/modals/InviteCodes.tsx:80 #: src/view/com/modals/InviteCodes.tsx:123 #: src/view/com/modals/ListAddRemoveUsers.tsx:142 #: src/view/screens/PreferencesFollowingFeed.tsx:311 -#: src/view/screens/Settings/ExportCarDialog.tsx:93 #: src/view/screens/Settings/ExportCarDialog.tsx:94 +#: src/view/screens/Settings/ExportCarDialog.tsx:95 msgid "Done" msgstr "完了" @@ -1232,8 +1413,8 @@ msgid "Double tap to sign in" msgstr "ダブルタップでサインイン" #: src/view/screens/Settings/index.tsx:755 -msgid "Download Bluesky account data (repository)" -msgstr "" +#~ msgid "Download Bluesky account data (repository)" +#~ msgstr "" #: src/view/screens/Settings/ExportCarDialog.tsx:59 #: src/view/screens/Settings/ExportCarDialog.tsx:63 @@ -1244,18 +1425,30 @@ msgstr "" msgid "Drop to add images" msgstr "ドロップして画像を追加する" -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:111 +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:120 msgid "Due to Apple policies, adult content can only be enabled on the web after completing sign up." msgstr "Appleのポリシーにより、成人向けコンテンツはサインアップ完了後にウェブ上でのみ有効にすることができます。" +#: src/view/com/modals/ChangeHandle.tsx:257 +msgid "e.g. alice" +msgstr "" + #: src/view/com/modals/EditProfile.tsx:185 msgid "e.g. Alice Roberts" msgstr "例:山田 太郎" +#: src/view/com/modals/ChangeHandle.tsx:381 +msgid "e.g. alice.com" +msgstr "" + #: src/view/com/modals/EditProfile.tsx:203 msgid "e.g. Artist, dog-lover, and avid reader." msgstr "例:アーティスト、犬好き、熱烈な読書愛好家。" +#: src/lib/moderation/useGlobalLabelStrings.ts:43 +msgid "E.g. artistic nudes." +msgstr "" + #: src/view/com/modals/CreateOrEditList.tsx:283 msgid "e.g. Great Posters" msgstr "例:重要な投稿をするユーザー" @@ -1281,12 +1474,17 @@ msgctxt "action" msgid "Edit" msgstr "編集" +#: src/view/com/util/UserAvatar.tsx:299 +#: src/view/com/util/UserBanner.tsx:85 +msgid "Edit avatar" +msgstr "" + #: src/view/com/composer/photos/Gallery.tsx:144 #: src/view/com/modals/EditImage.tsx:207 msgid "Edit image" msgstr "画像を編集" -#: src/view/screens/ProfileList.tsx:433 +#: src/view/screens/ProfileList.tsx:403 msgid "Edit list details" msgstr "リストの詳細を編集" @@ -1294,7 +1492,7 @@ msgstr "リストの詳細を編集" msgid "Edit Moderation List" msgstr "モデレーションリストを編集" -#: src/Navigation.tsx:244 +#: src/Navigation.tsx:256 #: src/view/screens/Feeds.tsx:434 #: src/view/screens/SavedFeeds.tsx:84 msgid "Edit My Feeds" @@ -1304,11 +1502,13 @@ msgstr "マイフィードを編集" msgid "Edit my profile" msgstr "マイプロフィールを編集" -#: src/view/com/profile/ProfileHeader.tsx:418 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:172 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:161 msgid "Edit profile" msgstr "プロフィールを編集" -#: src/view/com/profile/ProfileHeader.tsx:423 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:175 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:164 msgid "Edit Profile" msgstr "プロフィールを編集" @@ -1357,7 +1557,7 @@ msgstr "メールアドレスは更新されました" msgid "Email verified" msgstr "メールアドレスは認証されました" -#: src/view/screens/Settings/index.tsx:312 +#: src/view/screens/Settings/index.tsx:327 msgid "Email:" msgstr "メールアドレス:" @@ -1365,12 +1565,16 @@ msgstr "メールアドレス:" msgid "Enable {0} only" msgstr "{0}のみ有効にする" -#: src/view/com/modals/ContentFilteringSettings.tsx:167 +#: src/screens/Moderation/index.tsx:331 +msgid "Enable adult content" +msgstr "" + +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:94 msgid "Enable Adult Content" msgstr "成人向けコンテンツを有効にする" -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:76 -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:77 +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:78 +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:79 msgid "Enable adult content in your feeds" msgstr "フィードで成人向けコンテンツを有効にする" @@ -1386,7 +1590,11 @@ msgstr "有効にするメディアプレイヤー" msgid "Enable this setting to only see replies between people you follow." msgstr "この設定を有効にすると、自分がフォローしているユーザーからの返信だけが表示されます。" -#: src/view/screens/Profile.tsx:455 +#: src/screens/Moderation/index.tsx:341 +msgid "Enabled" +msgstr "" + +#: src/screens/Profile/Sections/Feed.tsx:84 msgid "End of feed" msgstr "フィードの終わり" @@ -1407,7 +1615,7 @@ msgstr "確認コードを入力してください" #~ msgid "Enter the address of your provider:" #~ msgstr "プロバイダーのアドレスを入力してください:" -#: src/view/com/modals/ChangePassword.tsx:151 +#: src/view/com/modals/ChangePassword.tsx:153 msgid "Enter the code you received to change your password." msgstr "パスワードを変更するために受け取ったコードを入力してください。" @@ -1419,8 +1627,8 @@ msgstr "使用するドメインを入力してください" msgid "Enter the email you used to create your account. We'll send you a \"reset code\" so you can set a new password." msgstr "アカウントの作成に使用したメールアドレスを入力します。新しいパスワードを設定できるように、「リセットコード」をお送りします。" +#: src/components/dialogs/BirthDateSettings.tsx:108 #: src/view/com/auth/create/Step1.tsx:228 -#: src/view/com/modals/BirthDateSettings.tsx:74 msgid "Enter your birth date" msgstr "誕生日を入力してください" @@ -1460,16 +1668,28 @@ msgstr "エラー:" msgid "Everybody" msgstr "全員" +#: src/lib/moderation/useReportOptions.ts:66 +msgid "Excessive mentions or replies" +msgstr "" + +#: src/view/com/modals/DeleteAccount.tsx:231 +msgid "Exits account deletion process" +msgstr "" + #: src/view/com/modals/ChangeHandle.tsx:150 msgid "Exits handle change process" msgstr "ハンドルの変更を終了" -#: src/view/com/lightbox/Lightbox.web.tsx:120 +#: src/view/com/modals/crop-image/CropImage.web.tsx:135 +msgid "Exits image cropping process" +msgstr "" + +#: src/view/com/lightbox/Lightbox.web.tsx:130 msgid "Exits image view" msgstr "画像表示を終了" #: src/view/com/modals/ListAddRemoveUsers.tsx:88 -#: src/view/shell/desktop/Search.tsx:235 +#: src/view/shell/desktop/Search.tsx:236 msgid "Exits inputting search query" msgstr "検索クエリの入力を終了" @@ -1477,7 +1697,7 @@ msgstr "検索クエリの入力を終了" #~ msgid "Exits signing up for waitlist with {email}" #~ msgstr "{email}でWaitlistへの登録を終了" -#: src/view/com/lightbox/Lightbox.web.tsx:163 +#: src/view/com/lightbox/Lightbox.web.tsx:183 msgid "Expand alt text" msgstr "ALTテキストを展開" @@ -1486,12 +1706,20 @@ msgstr "ALTテキストを展開" msgid "Expand or collapse the full post you are replying to" msgstr "返信する投稿全体を展開または折りたたむ" -#: src/view/screens/Settings/index.tsx:753 +#: src/lib/moderation/useGlobalLabelStrings.ts:47 +msgid "Explicit or potentially disturbing media." +msgstr "" + +#: src/lib/moderation/useGlobalLabelStrings.ts:35 +msgid "Explicit sexual images." +msgstr "" + +#: src/view/screens/Settings/index.tsx:773 msgid "Export my data" msgstr "私のデータをエクスポートする" #: src/view/screens/Settings/ExportCarDialog.tsx:44 -#: src/view/screens/Settings/index.tsx:764 +#: src/view/screens/Settings/index.tsx:784 msgid "Export My Data" msgstr "私のデータをエクスポートする" @@ -1504,13 +1732,13 @@ msgstr "外部メディア" msgid "External media may allow websites to collect information about you and your device. No information is sent or requested until you press the \"play\" button." msgstr "外部メディアを有効にすると、それらのメディアのウェブサイトがあなたやお使いのデバイスに関する情報を収集する場合があります。その場合でも、あなたが「再生」ボタンを押すまで情報は送信されず、要求もされません。" -#: src/Navigation.tsx:263 +#: src/Navigation.tsx:275 #: src/view/screens/PreferencesExternalEmbeds.tsx:52 -#: src/view/screens/Settings/index.tsx:657 +#: src/view/screens/Settings/index.tsx:673 msgid "External Media Preferences" msgstr "外部メディアの設定" -#: src/view/screens/Settings/index.tsx:648 +#: src/view/screens/Settings/index.tsx:664 msgid "External media settings" msgstr "外部メディアの設定" @@ -1523,7 +1751,7 @@ msgstr "アプリパスワードの作成に失敗しました。" msgid "Failed to create the list. Check your internet connection and try again." msgstr "リストの作成に失敗しました。インターネットへの接続を確認の上、もう一度お試しください。" -#: src/view/com/util/forms/PostDropdownBtn.tsx:128 +#: src/view/com/util/forms/PostDropdownBtn.tsx:125 msgid "Failed to delete post, please try again" msgstr "投稿の削除に失敗しました。もう一度お試しください。" @@ -1532,11 +1760,15 @@ msgstr "投稿の削除に失敗しました。もう一度お試しください msgid "Failed to load recommended feeds" msgstr "おすすめのフィードのロードに失敗しました" -#: src/Navigation.tsx:194 +#: src/view/com/lightbox/Lightbox.tsx:83 +msgid "Failed to save image: {0}" +msgstr "" + +#: src/Navigation.tsx:196 msgid "Feed" msgstr "フィード" -#: src/view/com/feeds/FeedSourceCard.tsx:231 +#: src/view/com/feeds/FeedSourceCard.tsx:218 msgid "Feed by {0}" msgstr "{0}によるフィード" @@ -1549,18 +1781,18 @@ msgstr "フィードはオフラインです" #~ msgstr "フィードの設定" #: src/view/shell/desktop/RightNav.tsx:61 -#: src/view/shell/Drawer.tsx:311 +#: src/view/shell/Drawer.tsx:314 msgid "Feedback" msgstr "フィードバック" -#: src/Navigation.tsx:452 +#: src/Navigation.tsx:464 #: src/view/screens/Feeds.tsx:419 #: src/view/screens/Feeds.tsx:524 -#: src/view/screens/Profile.tsx:184 -#: src/view/shell/bottom-bar/BottomBar.tsx:181 -#: src/view/shell/desktop/LeftNav.tsx:342 -#: src/view/shell/Drawer.tsx:476 -#: src/view/shell/Drawer.tsx:477 +#: src/view/screens/Profile.tsx:192 +#: src/view/shell/bottom-bar/BottomBar.tsx:183 +#: src/view/shell/desktop/LeftNav.tsx:346 +#: src/view/shell/Drawer.tsx:479 +#: src/view/shell/Drawer.tsx:480 msgid "Feeds" msgstr "フィード" @@ -1584,6 +1816,14 @@ msgstr "フィードはユーザーがプログラミングの専門知識を持 msgid "Feeds can be topical as well!" msgstr "フィードには特定の話題に焦点を当てたものもあります!" +#: src/view/com/modals/ChangeHandle.tsx:482 +msgid "File Contents" +msgstr "" + +#: src/lib/moderation/useLabelBehaviorDescription.ts:66 +msgid "Filter from feeds" +msgstr "" + #: src/screens/Onboarding/StepFinished.tsx:151 msgid "Finalizing" msgstr "最後に" @@ -1594,15 +1834,15 @@ msgstr "最後に" msgid "Find accounts to follow" msgstr "フォローするアカウントを探す" -#: src/view/screens/Search/Search.tsx:440 +#: src/view/screens/Search/Search.tsx:441 msgid "Find users on Bluesky" msgstr "Blueskyでユーザーを検索" -#: src/view/screens/Search/Search.tsx:438 +#: src/view/screens/Search/Search.tsx:439 msgid "Find users with the search tool on the right" msgstr "右側の検索ツールでユーザーを検索" -#: src/view/com/auth/onboarding/RecommendedFollowsItem.tsx:150 +#: src/view/com/auth/onboarding/RecommendedFollowsItem.tsx:155 msgid "Finding similar accounts..." msgstr "似ているアカウントを検索中..." @@ -1636,22 +1876,29 @@ msgid "Flip vertically" msgstr "垂直方向に反転" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:181 -#: src/view/com/post-thread/PostThreadFollowBtn.tsx:136 -#: src/view/com/profile/ProfileHeader.tsx:513 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:229 +#: src/view/com/auth/onboarding/RecommendedFollowsItem.tsx:141 +#: src/view/com/post-thread/PostThreadFollowBtn.tsx:139 +#: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:246 msgid "Follow" msgstr "フォロー" -#: src/view/com/profile/FollowButton.tsx:64 +#: src/view/com/profile/FollowButton.tsx:69 msgctxt "action" msgid "Follow" msgstr "フォロー" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:58 -#: src/view/com/post-thread/PostThreadFollowBtn.tsx:122 -#: src/view/com/profile/ProfileHeader.tsx:504 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:214 +#: src/view/com/post-thread/PostThreadFollowBtn.tsx:125 msgid "Follow {0}" msgstr "{0}をフォロー" +#: src/view/com/profile/ProfileMenu.tsx:242 +#: src/view/com/profile/ProfileMenu.tsx:253 +msgid "Follow Account" +msgstr "" + #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:179 msgid "Follow All" msgstr "すべてのアカウントをフォロー" @@ -1668,7 +1915,7 @@ msgstr "選択したアカウントをフォローして次のステップへ進 msgid "Follow some users to get started. We can recommend you more users based on who you find interesting." msgstr "何人かのユーザーをフォローして開始します。興味を持っている人に基づいて、より多くのユーザーをおすすめします。" -#: src/view/com/profile/ProfileCard.tsx:194 +#: src/view/com/profile/ProfileCard.tsx:216 msgid "Followed by {0}" msgstr "{0}がフォロー中" @@ -1680,10 +1927,11 @@ msgstr "自分がフォローしているユーザー" msgid "Followed users only" msgstr "自分がフォローしているユーザーのみ" -#: src/view/com/notifications/FeedItem.tsx:166 +#: src/view/com/notifications/FeedItem.tsx:170 msgid "followed you" msgstr "あなたをフォローしました" +#: src/view/com/profile/ProfileFollowers.tsx:109 #: src/view/screens/ProfileFollowers.tsx:25 msgid "Followers" msgstr "フォロワー" @@ -1692,25 +1940,30 @@ msgstr "フォロワー" #~ msgid "following" #~ msgstr "フォロー中" -#: src/view/com/post-thread/PostThreadFollowBtn.tsx:136 -#: src/view/com/profile/ProfileHeader.tsx:495 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:227 +#: src/view/com/post-thread/PostThreadFollowBtn.tsx:139 +#: src/view/com/profile/ProfileFollows.tsx:108 #: src/view/screens/ProfileFollows.tsx:25 msgid "Following" msgstr "フォロー中" -#: src/view/com/profile/ProfileHeader.tsx:149 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:89 msgid "Following {0}" msgstr "{0}をフォローしています" -#: src/Navigation.tsx:250 +#: src/view/screens/Settings/index.tsx:549 +msgid "Following feed preferences" +msgstr "" + +#: src/Navigation.tsx:262 #: src/view/com/home/HomeHeaderLayout.web.tsx:50 #: src/view/com/home/HomeHeaderLayoutMobile.tsx:84 #: src/view/screens/PreferencesFollowingFeed.tsx:104 -#: src/view/screens/Settings/index.tsx:543 +#: src/view/screens/Settings/index.tsx:558 msgid "Following Feed Preferences" msgstr "" -#: src/view/com/profile/ProfileHeader.tsx:546 +#: src/screens/Profile/Header/Handle.tsx:24 msgid "Follows you" msgstr "あなたをフォロー" @@ -1743,12 +1996,16 @@ msgstr "パスワードを忘れた" msgid "Forgot Password" msgstr "パスワードを忘れた" +#: src/lib/moderation/useReportOptions.ts:52 +msgid "Frequently Posts Unwanted Content" +msgstr "" + #: src/screens/Hashtag.tsx:108 #: src/screens/Hashtag.tsx:148 msgid "From @{sanitizedAuthor}" msgstr "" -#: src/view/com/posts/FeedItem.tsx:189 +#: src/view/com/posts/FeedItem.tsx:179 msgctxt "from-feed" msgid "From <0/>" msgstr "<0/>から" @@ -1762,27 +2019,46 @@ msgstr "ギャラリー" msgid "Get Started" msgstr "開始" +#: src/lib/moderation/useReportOptions.ts:37 +msgid "Glaring violations of law or terms of service" +msgstr "" + +#: src/components/moderation/ScreenHider.tsx:144 +#: src/components/moderation/ScreenHider.tsx:153 #: src/view/com/auth/LoggedOut.tsx:81 #: src/view/com/auth/LoggedOut.tsx:82 -#: src/view/com/util/moderation/ScreenHider.tsx:123 -#: src/view/shell/desktop/LeftNav.tsx:104 +#: src/view/screens/NotFound.tsx:55 +#: src/view/screens/ProfileFeed.tsx:111 +#: src/view/screens/ProfileList.tsx:916 +#: src/view/shell/desktop/LeftNav.tsx:108 msgid "Go back" msgstr "戻る" -#: src/view/screens/ProfileFeed.tsx:106 -#: src/view/screens/ProfileFeed.tsx:111 -#: src/view/screens/ProfileList.tsx:902 -#: src/view/screens/ProfileList.tsx:907 +#: src/screens/Profile/ErrorState.tsx:62 +#: src/screens/Profile/ErrorState.tsx:66 +#: src/view/screens/NotFound.tsx:54 +#: src/view/screens/ProfileFeed.tsx:116 +#: src/view/screens/ProfileList.tsx:921 msgid "Go Back" msgstr "戻る" +#: src/components/ReportDialog/SelectReportOptionView.tsx:74 +#: src/components/ReportDialog/SubmitView.tsx:104 #: src/screens/Onboarding/Layout.tsx:104 #: src/screens/Onboarding/Layout.tsx:193 msgid "Go back to previous step" msgstr "前のステップに戻る" -#: src/view/screens/Search/Search.tsx:747 -#: src/view/shell/desktop/Search.tsx:262 +#: src/view/screens/NotFound.tsx:55 +msgid "Go home" +msgstr "" + +#: src/view/screens/NotFound.tsx:54 +msgid "Go Home" +msgstr "" + +#: src/view/screens/Search/Search.tsx:748 +#: src/view/shell/desktop/Search.tsx:263 msgid "Go to @{queryMaybeHandle}" msgstr "@{queryMaybeHandle}へ" @@ -1790,15 +2066,23 @@ msgstr "@{queryMaybeHandle}へ" #: src/view/com/auth/login/ForgotPasswordForm.tsx:218 #: src/view/com/auth/login/LoginForm.tsx:288 #: src/view/com/auth/login/SetNewPasswordForm.tsx:195 -#: src/view/com/modals/ChangePassword.tsx:165 +#: src/view/com/modals/ChangePassword.tsx:167 msgid "Go to next" msgstr "次へ" +#: src/lib/moderation/useGlobalLabelStrings.ts:46 +msgid "Graphic Media" +msgstr "" + #: src/view/com/modals/ChangeHandle.tsx:265 msgid "Handle" msgstr "ハンドル" -#: src/Navigation.tsx:270 +#: src/lib/moderation/useReportOptions.ts:32 +msgid "Harassment, trolling, or intolerance" +msgstr "" + +#: src/Navigation.tsx:282 msgid "Hashtag" msgstr "" @@ -1815,7 +2099,7 @@ msgid "Having trouble?" msgstr "何か問題が発生しましたか?" #: src/view/shell/desktop/RightNav.tsx:90 -#: src/view/shell/Drawer.tsx:321 +#: src/view/shell/Drawer.tsx:324 msgid "Help" msgstr "ヘルプ" @@ -1839,40 +2123,45 @@ msgstr "「{interestsText}」への興味に基づいたおすすめです。好 msgid "Here is your app password." msgstr "アプリパスワードをお知らせします。" -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:41 -#: src/view/com/modals/ContentFilteringSettings.tsx:251 -#: src/view/com/util/moderation/ContentHider.tsx:105 -#: src/view/com/util/moderation/PostHider.tsx:108 +#: src/components/moderation/ContentHider.tsx:115 +#: src/components/moderation/GlobalModerationLabelPref.tsx:43 +#: src/components/moderation/PostHider.tsx:107 +#: src/lib/moderation/useLabelBehaviorDescription.ts:15 +#: src/lib/moderation/useLabelBehaviorDescription.ts:20 +#: src/lib/moderation/useLabelBehaviorDescription.ts:25 +#: src/lib/moderation/useLabelBehaviorDescription.ts:30 +#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:52 +#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:76 +#: src/view/com/util/forms/PostDropdownBtn.tsx:328 msgid "Hide" msgstr "非表示" -#: src/view/com/modals/ContentFilteringSettings.tsx:224 -#: src/view/com/notifications/FeedItem.tsx:326 +#: src/view/com/notifications/FeedItem.tsx:329 msgctxt "action" msgid "Hide" msgstr "非表示" #: src/view/com/util/forms/PostDropdownBtn.tsx:276 -#: src/view/com/util/forms/PostDropdownBtn.tsx:287 +#: src/view/com/util/forms/PostDropdownBtn.tsx:278 msgid "Hide post" msgstr "投稿を非表示" -#: src/view/com/util/moderation/ContentHider.tsx:67 -#: src/view/com/util/moderation/PostHider.tsx:61 +#: src/components/moderation/ContentHider.tsx:67 +#: src/components/moderation/PostHider.tsx:64 msgid "Hide the content" msgstr "コンテンツを非表示" -#: src/view/com/util/forms/PostDropdownBtn.tsx:280 +#: src/view/com/util/forms/PostDropdownBtn.tsx:325 msgid "Hide this post?" msgstr "この投稿を非表示にしますか?" -#: src/view/com/notifications/FeedItem.tsx:316 +#: src/view/com/notifications/FeedItem.tsx:319 msgid "Hide user list" msgstr "ユーザーリストを非表示" #: src/view/com/profile/ProfileHeader.tsx:487 -msgid "Hides posts from {0} in your feed" -msgstr "{0}の投稿をあなたのフィードで非表示にします" +#~ msgid "Hides posts from {0} in your feed" +#~ msgstr "{0}の投稿をあなたのフィードで非表示にします" #: src/view/com/posts/FeedErrorMessage.tsx:111 msgid "Hmm, some kind of issue occurred when contacting the feed server. Please let the feed owner know about this issue." @@ -1894,11 +2183,19 @@ msgstr "フィードサーバーの反応が悪いようです。この問題を msgid "Hmm, we're having trouble finding this feed. It may have been deleted." msgstr "このフィードが見つからないようです。もしかしたら削除されたのかもしれません。" -#: src/Navigation.tsx:442 -#: src/view/shell/bottom-bar/BottomBar.tsx:137 -#: src/view/shell/desktop/LeftNav.tsx:306 -#: src/view/shell/Drawer.tsx:398 -#: src/view/shell/Drawer.tsx:399 +#: src/screens/Moderation/index.tsx:61 +msgid "Hmmmm, it seems we're having trouble loading this data. See below for more details. If this issue persists, please contact us." +msgstr "" + +#: src/screens/Profile/ErrorState.tsx:31 +msgid "Hmmmm, we couldn't load that moderation service." +msgstr "" + +#: src/Navigation.tsx:454 +#: src/view/shell/bottom-bar/BottomBar.tsx:139 +#: src/view/shell/desktop/LeftNav.tsx:310 +#: src/view/shell/Drawer.tsx:401 +#: src/view/shell/Drawer.tsx:402 msgid "Home" msgstr "ホーム" @@ -1909,8 +2206,13 @@ msgstr "ホーム" #~ msgid "Home Feed Preferences" #~ msgstr "ホームフィードの設定" +#: src/view/com/modals/ChangeHandle.tsx:421 +msgid "Host:" +msgstr "" + #: src/view/com/auth/create/Step1.tsx:75 #: src/view/com/auth/login/ForgotPasswordForm.tsx:120 +#: src/view/com/modals/ChangeHandle.tsx:280 msgid "Hosting provider" msgstr "ホスティングプロバイダー" @@ -1935,7 +2237,7 @@ msgstr "確認コードを持っています" msgid "I have my own domain" msgstr "自分のドメインを持っています" -#: src/view/com/lightbox/Lightbox.web.tsx:165 +#: src/view/com/lightbox/Lightbox.web.tsx:185 msgid "If alt text is long, toggles alt text expanded state" msgstr "ALTテキストが長い場合、ALTテキストの展開状態を切り替える" @@ -1943,10 +2245,26 @@ msgstr "ALTテキストが長い場合、ALTテキストの展開状態を切り msgid "If none are selected, suitable for all ages." msgstr "何も選択しない場合は、全年齢対象です。" -#: src/view/com/modals/ChangePassword.tsx:146 +#: src/view/com/auth/create/Policies.tsx:91 +msgid "If you are not yet an adult according to the laws of your country, your parent or legal guardian must read these Terms on your behalf." +msgstr "" + +#: src/view/screens/ProfileList.tsx:610 +msgid "If you delete this list, you won't be able to recover it." +msgstr "" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:316 +msgid "If you remove this post, you won't be able to recover it." +msgstr "" + +#: src/view/com/modals/ChangePassword.tsx:148 msgid "If you want to change your password, we will send you a code to verify that this is your account." msgstr "パスワードを変更する場合は、あなたのアカウントであることを確認するためのコードをお送りします。" +#: src/lib/moderation/useReportOptions.ts:36 +msgid "Illegal and Urgent" +msgstr "" + #: src/view/com/util/images/Gallery.tsx:38 msgid "Image" msgstr "画像" @@ -1957,8 +2275,12 @@ msgstr "画像のALTテキスト" #: src/view/com/util/UserAvatar.tsx:311 #: src/view/com/util/UserBanner.tsx:118 -msgid "Image options" -msgstr "画像のオプション" +#~ msgid "Image options" +#~ msgstr "画像のオプション" + +#: src/lib/moderation/useReportOptions.ts:47 +msgid "Impersonation or false claims about identity or affiliation" +msgstr "" #: src/view/com/auth/login/SetNewPasswordForm.tsx:138 msgid "Input code sent to your email for password reset" @@ -2020,11 +2342,15 @@ msgstr "サインアップ時に使用したユーザー名またはメールア msgid "Input your password" msgstr "あなたのパスワードを入力" +#: src/view/com/modals/ChangeHandle.tsx:390 +msgid "Input your preferred hosting provider" +msgstr "" + #: src/view/com/auth/create/Step2.tsx:80 msgid "Input your user handle" msgstr "あなたのユーザーハンドルを入力" -#: src/view/com/post-thread/PostThreadItem.tsx:226 +#: src/view/com/post-thread/PostThreadItem.tsx:221 msgid "Invalid or unsupported post record" msgstr "無効またはサポートされていない投稿のレコード" @@ -2065,7 +2391,7 @@ msgstr "招待コード:1個使用可能" msgid "It shows posts from the people you follow as they happen." msgstr "あなたがフォローした人の投稿が随時表示されます。" -#: src/view/com/auth/HomeLoggedOutCTA.tsx:99 +#: src/view/com/auth/HomeLoggedOutCTA.tsx:103 #: src/view/com/auth/SplashScreen.web.tsx:138 msgid "Jobs" msgstr "仕事" @@ -2087,20 +2413,52 @@ msgstr "仕事" msgid "Journalism" msgstr "報道" +#: src/components/moderation/LabelsOnMe.tsx:59 +msgid "label has been placed on this {labelTarget}" +msgstr "" + +#: src/components/moderation/ContentHider.tsx:144 +msgid "Labeled by {0}." +msgstr "" + +#: src/components/moderation/ContentHider.tsx:142 +msgid "Labeled by the author." +msgstr "" + +#: src/view/screens/Profile.tsx:186 +msgid "Labels" +msgstr "" + +#: src/screens/Profile/Sections/Labels.tsx:143 +msgid "Labels are annotations on users and content. They can be used to hide, warn, and categorize the network." +msgstr "" + +#: src/components/moderation/LabelsOnMe.tsx:61 +msgid "labels have been placed on this {labelTarget}" +msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:63 +msgid "Labels on your account" +msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:65 +msgid "Labels on your content" +msgstr "" + #: src/view/com/composer/select-language/SelectLangBtn.tsx:104 msgid "Language selection" msgstr "言語の選択" -#: src/view/screens/Settings/index.tsx:594 +#: src/view/screens/Settings/index.tsx:610 msgid "Language settings" msgstr "言語の設定" -#: src/Navigation.tsx:142 +#: src/Navigation.tsx:144 #: src/view/screens/LanguageSettings.tsx:89 msgid "Language Settings" msgstr "言語の設定" -#: src/view/screens/Settings/index.tsx:603 +#: src/view/screens/Settings/index.tsx:619 msgid "Languages" msgstr "言語" @@ -2109,27 +2467,31 @@ msgid "Last step!" msgstr "最後のステップ!" #: src/view/com/util/moderation/ContentHider.tsx:103 -msgid "Learn more" -msgstr "詳細" +#~ msgid "Learn more" +#~ msgstr "詳細" -#: src/view/com/util/moderation/PostAlerts.tsx:47 -#: src/view/com/util/moderation/ProfileHeaderAlerts.tsx:65 -#: src/view/com/util/moderation/ScreenHider.tsx:104 +#: src/components/moderation/ScreenHider.tsx:129 msgid "Learn More" msgstr "詳細" -#: src/view/com/util/moderation/ContentHider.tsx:85 -#: src/view/com/util/moderation/PostAlerts.tsx:40 -#: src/view/com/util/moderation/PostHider.tsx:78 -#: src/view/com/util/moderation/ProfileHeaderAlerts.tsx:49 -#: src/view/com/util/moderation/ScreenHider.tsx:101 +#: src/components/moderation/ContentHider.tsx:65 +#: src/components/moderation/ContentHider.tsx:128 +msgid "Learn more about the moderation applied to this content." +msgstr "" + +#: src/components/moderation/PostHider.tsx:85 +#: src/components/moderation/ScreenHider.tsx:126 msgid "Learn more about this warning" msgstr "この警告の詳細" -#: src/view/screens/Moderation.tsx:262 +#: src/screens/Moderation/index.tsx:551 msgid "Learn more about what is public on Bluesky." msgstr "Blueskyで公開されている内容はこちらを参照してください。" +#: src/components/moderation/ContentHider.tsx:152 +msgid "Learn more." +msgstr "" + #: src/view/com/modals/lang-settings/ContentLanguagesSettings.tsx:82 msgid "Leave them all unchecked to see any language." msgstr "どの言語も表示するには、すべてのチェックを外したままにします。" @@ -2142,7 +2504,7 @@ msgstr "Blueskyから離れる" msgid "left to go." msgstr "あと少しです。" -#: src/view/screens/Settings/index.tsx:278 +#: src/view/screens/Settings/index.tsx:292 msgid "Legacy storage cleared, you need to restart the app now." msgstr "レガシーストレージがクリアされたため、今すぐアプリを再起動する必要があります。" @@ -2157,39 +2519,49 @@ msgstr "さあ始めましょう!" #: src/view/com/util/UserAvatar.tsx:248 #: src/view/com/util/UserBanner.tsx:62 -msgid "Library" -msgstr "ライブラリー" +#~ msgid "Library" +#~ msgstr "ライブラリー" -#: src/view/screens/Settings/index.tsx:479 +#: src/view/screens/Settings/index.tsx:494 msgid "Light" msgstr "ライト" -#: src/view/com/util/post-ctrls/PostCtrls.tsx:182 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:185 msgid "Like" msgstr "いいね" -#: src/view/screens/ProfileFeed.tsx:591 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:257 +#: src/view/screens/ProfileFeed.tsx:572 msgid "Like this feed" msgstr "このフィードをいいね" -#: src/Navigation.tsx:199 +#: src/components/LikesDialog.tsx:87 +#: src/Navigation.tsx:201 +#: src/Navigation.tsx:206 msgid "Liked by" msgstr "いいねしたユーザー" +#: src/screens/Profile/ProfileLabelerLikedBy.tsx:42 #: src/view/screens/PostLikedBy.tsx:27 #: src/view/screens/ProfileFeedLikedBy.tsx:27 msgid "Liked By" msgstr "いいねしたユーザー" -#: src/view/com/feeds/FeedSourceCard.tsx:279 +#: src/view/com/feeds/FeedSourceCard.tsx:268 msgid "Liked by {0} {1}" msgstr "{0} {1}にいいねされました" -#: src/view/screens/ProfileFeed.tsx:606 +#: src/components/LabelingServiceCard/index.tsx:72 +msgid "Liked by {count} {0}" +msgstr "" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:277 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:291 +#: src/view/screens/ProfileFeed.tsx:587 msgid "Liked by {likeCount} {0}" msgstr "いいねしたユーザー:{likeCount}人" -#: src/view/com/notifications/FeedItem.tsx:170 +#: src/view/com/notifications/FeedItem.tsx:174 msgid "liked your custom feed" msgstr "あなたのカスタムフィードがいいねされました" @@ -2201,15 +2573,15 @@ msgstr "あなたのカスタムフィードがいいねされました" #~ msgid "liked your custom feed{0}" #~ msgstr "{0}にあなたのカスタムフィードがいいねされました" -#: src/view/com/notifications/FeedItem.tsx:155 +#: src/view/com/notifications/FeedItem.tsx:159 msgid "liked your post" msgstr "あなたの投稿がいいねされました" -#: src/view/screens/Profile.tsx:183 +#: src/view/screens/Profile.tsx:191 msgid "Likes" msgstr "いいね" -#: src/view/com/post-thread/PostThreadItem.tsx:183 +#: src/view/com/post-thread/PostThreadItem.tsx:182 msgid "Likes on this post" msgstr "この投稿をいいねする" @@ -2217,7 +2589,7 @@ msgstr "この投稿をいいねする" #~ msgid "Limit the visibility of my account to logged-out users" #~ msgstr "ログアウトしたユーザーに対して私のアカウントの閲覧を制限" -#: src/Navigation.tsx:168 +#: src/Navigation.tsx:170 msgid "List" msgstr "リスト" @@ -2225,15 +2597,15 @@ msgstr "リスト" msgid "List Avatar" msgstr "リストのアバター" -#: src/view/screens/ProfileList.tsx:324 +#: src/view/screens/ProfileList.tsx:311 msgid "List blocked" msgstr "リストをブロックしました" -#: src/view/com/feeds/FeedSourceCard.tsx:233 +#: src/view/com/feeds/FeedSourceCard.tsx:220 msgid "List by {0}" msgstr "{0}によるリスト" -#: src/view/screens/ProfileList.tsx:378 +#: src/view/screens/ProfileList.tsx:355 msgid "List deleted" msgstr "リストを削除しました" @@ -2245,39 +2617,40 @@ msgstr "リストをミュートしました" msgid "List Name" msgstr "リストの名前" -#: src/view/screens/ProfileList.tsx:343 +#: src/view/screens/ProfileList.tsx:325 msgid "List unblocked" msgstr "リストのブロックを解除しました" -#: src/view/screens/ProfileList.tsx:302 +#: src/view/screens/ProfileList.tsx:297 msgid "List unmuted" msgstr "リストのミュートを解除しました" -#: src/Navigation.tsx:112 -#: src/view/screens/Profile.tsx:185 -#: src/view/shell/desktop/LeftNav.tsx:379 -#: src/view/shell/Drawer.tsx:492 -#: src/view/shell/Drawer.tsx:493 +#: src/Navigation.tsx:114 +#: src/view/screens/Profile.tsx:187 +#: src/view/screens/Profile.tsx:193 +#: src/view/shell/desktop/LeftNav.tsx:383 +#: src/view/shell/Drawer.tsx:495 +#: src/view/shell/Drawer.tsx:496 msgid "Lists" msgstr "リスト" #: src/view/com/post-thread/PostThread.tsx:333 #: src/view/com/post-thread/PostThread.tsx:341 -msgid "Load more posts" -msgstr "投稿をさらにロード" +#~ msgid "Load more posts" +#~ msgstr "投稿をさらにロード" #: src/view/screens/Notifications.tsx:159 msgid "Load new notifications" msgstr "最新の通知をロード" -#: src/view/com/feeds/FeedPage.tsx:115 -#: src/view/screens/Profile.tsx:440 +#: src/screens/Profile/Sections/Feed.tsx:70 +#: src/view/com/feeds/FeedPage.tsx:124 #: src/view/screens/ProfileFeed.tsx:495 -#: src/view/screens/ProfileList.tsx:681 +#: src/view/screens/ProfileList.tsx:695 msgid "Load new posts" msgstr "最新の投稿をロード" -#: src/view/com/composer/text-input/mobile/Autocomplete.tsx:95 +#: src/view/com/composer/text-input/mobile/Autocomplete.tsx:99 msgid "Loading..." msgstr "ロード中..." @@ -2285,7 +2658,7 @@ msgstr "ロード中..." #~ msgid "Local dev server" #~ msgstr "ローカル開発者サーバー" -#: src/Navigation.tsx:209 +#: src/Navigation.tsx:221 msgid "Log" msgstr "ログ" @@ -2300,11 +2673,11 @@ msgstr "ログアウト" #~ msgid "Logged-out users" #~ msgstr "ログアウトしたユーザー" -#: src/view/screens/Moderation.tsx:155 +#: src/screens/Moderation/index.tsx:444 msgid "Logged-out visibility" msgstr "ログアウトしたユーザーからの可視性" -#: src/view/com/auth/login/ChooseAccountForm.tsx:133 +#: src/view/com/auth/login/ChooseAccountForm.tsx:137 msgid "Login to account that is not listed" msgstr "リストにないアカウントにログイン" @@ -2328,7 +2701,7 @@ msgstr "" msgid "May only contain letters and numbers" msgstr "" -#: src/view/screens/Profile.tsx:182 +#: src/view/screens/Profile.tsx:190 msgid "Media" msgstr "メディア" @@ -2341,7 +2714,7 @@ msgid "Mentioned users" msgstr "メンションされたユーザー" #: src/view/com/util/ViewHeader.tsx:87 -#: src/view/screens/Search/Search.tsx:646 +#: src/view/screens/Search/Search.tsx:647 msgid "Menu" msgstr "メニュー" @@ -2349,31 +2722,39 @@ msgstr "メニュー" #~ msgid "Message from server" #~ msgstr "サーバーからのメッセージ" -#: src/view/com/posts/FeedErrorMessage.tsx:197 +#: src/view/com/posts/FeedErrorMessage.tsx:192 msgid "Message from server: {0}" msgstr "サーバーからのメッセージ:{0}" -#: src/Navigation.tsx:117 -#: src/view/screens/Moderation.tsx:66 -#: src/view/screens/Settings/index.tsx:625 -#: src/view/shell/desktop/LeftNav.tsx:397 -#: src/view/shell/Drawer.tsx:511 -#: src/view/shell/Drawer.tsx:512 +#: src/lib/moderation/useReportOptions.ts:45 +msgid "Misleading Account" +msgstr "" + +#: src/Navigation.tsx:119 +#: src/screens/Moderation/index.tsx:106 +#: src/view/screens/Settings/index.tsx:641 +#: src/view/shell/desktop/LeftNav.tsx:401 +#: src/view/shell/Drawer.tsx:514 +#: src/view/shell/Drawer.tsx:515 msgid "Moderation" msgstr "モデレーション" +#: src/components/moderation/ModerationDetailsDialog.tsx:113 +msgid "Moderation details" +msgstr "" + #: src/view/com/lists/ListCard.tsx:93 #: src/view/com/modals/UserAddRemoveLists.tsx:206 msgid "Moderation list by {0}" msgstr "{0}の作成したモデレーションリスト" -#: src/view/screens/ProfileList.tsx:775 +#: src/view/screens/ProfileList.tsx:789 msgid "Moderation list by <0/>" msgstr "<0/>の作成したモデレーションリスト" #: src/view/com/lists/ListCard.tsx:91 #: src/view/com/modals/UserAddRemoveLists.tsx:204 -#: src/view/screens/ProfileList.tsx:773 +#: src/view/screens/ProfileList.tsx:787 msgid "Moderation list by you" msgstr "あなたの作成したモデレーションリスト" @@ -2385,30 +2766,41 @@ msgstr "モデレーションリストを作成しました" msgid "Moderation list updated" msgstr "モデレーションリストを更新しました" -#: src/view/screens/Moderation.tsx:114 +#: src/screens/Moderation/index.tsx:245 msgid "Moderation lists" msgstr "モデレーションリスト" -#: src/Navigation.tsx:122 +#: src/Navigation.tsx:124 #: src/view/screens/ModerationModlists.tsx:58 msgid "Moderation Lists" msgstr "モデレーションリスト" -#: src/view/screens/Settings/index.tsx:619 +#: src/view/screens/Settings/index.tsx:635 msgid "Moderation settings" msgstr "モデレーションの設定" -#: src/view/com/modals/ModerationDetails.tsx:35 +#: src/Navigation.tsx:216 +msgid "Moderation states" +msgstr "" + +#: src/screens/Moderation/index.tsx:217 +msgid "Moderation tools" +msgstr "" + +#: src/components/moderation/ModerationDetailsDialog.tsx:49 +#: src/lib/moderation/useModerationCauseDescription.ts:40 msgid "Moderator has chosen to set a general warning on the content." msgstr "モデレーターによりコンテンツに一般的な警告が設定されました。" +#: src/view/com/post-thread/PostThreadItem.tsx:541 +msgid "More" +msgstr "" + #: src/view/shell/desktop/Feeds.tsx:65 msgid "More feeds" msgstr "その他のフィード" -#: src/view/com/profile/ProfileHeader.tsx:523 -#: src/view/screens/ProfileFeed.tsx:363 -#: src/view/screens/ProfileList.tsx:617 +#: src/view/screens/ProfileList.tsx:599 msgid "More options" msgstr "その他のオプション" @@ -2432,11 +2824,12 @@ msgstr "" msgid "Mute {truncatedTag}" msgstr "" -#: src/view/com/profile/ProfileHeader.tsx:327 +#: src/view/com/profile/ProfileMenu.tsx:279 +#: src/view/com/profile/ProfileMenu.tsx:286 msgid "Mute Account" msgstr "アカウントをミュート" -#: src/view/screens/ProfileList.tsx:544 +#: src/view/screens/ProfileList.tsx:518 msgid "Mute accounts" msgstr "アカウントをミュート" @@ -2456,17 +2849,18 @@ msgstr "" msgid "Mute in text & tags" msgstr "" -#: src/view/screens/ProfileList.tsx:491 +#: src/view/screens/ProfileList.tsx:461 +#: src/view/screens/ProfileList.tsx:624 msgid "Mute list" msgstr "リストをミュート" -#: src/view/screens/ProfileList.tsx:275 +#: src/view/screens/ProfileList.tsx:619 msgid "Mute these accounts?" msgstr "これらのアカウントをミュートしますか?" #: src/view/screens/ProfileList.tsx:279 -msgid "Mute this List" -msgstr "このリストをミュート" +#~ msgid "Mute this List" +#~ msgstr "このリストをミュート" #: src/components/dialogs/MutedWords.tsx:127 msgid "Mute this word in post text and tags" @@ -2490,11 +2884,11 @@ msgstr "" msgid "Muted" msgstr "ミュートされています" -#: src/view/screens/Moderation.tsx:128 +#: src/screens/Moderation/index.tsx:257 msgid "Muted accounts" msgstr "ミュート中のアカウント" -#: src/Navigation.tsx:127 +#: src/Navigation.tsx:129 #: src/view/screens/ModerationMutedAccounts.tsx:107 msgid "Muted Accounts" msgstr "ミュート中のアカウント" @@ -2503,15 +2897,20 @@ msgstr "ミュート中のアカウント" msgid "Muted accounts have their posts removed from your feed and from your notifications. Mutes are completely private." msgstr "ミュート中のアカウントの投稿は、フィードや通知から取り除かれます。ミュートの設定は完全に非公開です。" -#: src/view/screens/Moderation.tsx:100 +#: src/lib/moderation/useModerationCauseDescription.ts:85 +msgid "Muted by \"{0}\"" +msgstr "" + +#: src/screens/Moderation/index.tsx:233 msgid "Muted words & tags" msgstr "" -#: src/view/screens/ProfileList.tsx:277 +#: src/view/screens/ProfileList.tsx:621 msgid "Muting is private. Muted accounts can interact with you, but you will not see their posts or receive notifications from them." msgstr "ミュートの設定は非公開です。ミュート中のアカウントはあなたと引き続き関わることができますが、そのアカウントの投稿や通知を受信することはできません。" -#: src/view/com/modals/BirthDateSettings.tsx:56 +#: src/components/dialogs/BirthDateSettings.tsx:35 +#: src/components/dialogs/BirthDateSettings.tsx:38 msgid "My Birthday" msgstr "誕生日" @@ -2523,13 +2922,17 @@ msgstr "マイフィード" msgid "My Profile" msgstr "マイプロフィール" -#: src/view/screens/Settings/index.tsx:582 +#: src/view/screens/Settings/index.tsx:592 +msgid "My saved feeds" +msgstr "" + +#: src/view/screens/Settings/index.tsx:598 msgid "My Saved Feeds" msgstr "保存されたフィード" #: src/view/com/auth/server-input/index.tsx:118 -msgid "my-server.com" -msgstr "" +#~ msgid "my-server.com" +#~ msgstr "" #: src/view/com/modals/AddAppPasswords.tsx:179 #: src/view/com/modals/CreateOrEditList.tsx:290 @@ -2540,6 +2943,12 @@ msgstr "名前" msgid "Name is required" msgstr "名前は必須です" +#: src/lib/moderation/useReportOptions.ts:57 +#: src/lib/moderation/useReportOptions.ts:78 +#: src/lib/moderation/useReportOptions.ts:86 +msgid "Name or Description Violates Community Standards" +msgstr "" + #: src/screens/Onboarding/index.tsx:25 msgid "Nature" msgstr "自然" @@ -2548,7 +2957,7 @@ msgstr "自然" #: src/view/com/auth/login/ForgotPasswordForm.tsx:219 #: src/view/com/auth/login/LoginForm.tsx:289 #: src/view/com/auth/login/SetNewPasswordForm.tsx:196 -#: src/view/com/modals/ChangePassword.tsx:166 +#: src/view/com/modals/ChangePassword.tsx:168 msgid "Navigates to the next screen" msgstr "次の画面に移動します" @@ -2556,13 +2965,17 @@ msgstr "次の画面に移動します" msgid "Navigates to your profile" msgstr "あなたのプロフィールに移動します" +#: src/components/ReportDialog/SelectReportOptionView.tsx:124 +msgid "Need to report a copyright violation?" +msgstr "" + #: src/view/com/modals/EmbedConsent.tsx:107 #: src/view/com/modals/EmbedConsent.tsx:123 msgid "Never load embeds from {0}" msgstr "{0}からの埋め込みを表示しない" #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:72 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:72 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:74 msgid "Never lose access to your followers and data." msgstr "フォロワーやデータへのアクセスを失うことはありません。" @@ -2571,7 +2984,11 @@ msgid "Never lose access to your followers or data." msgstr "フォロワーやデータへのアクセスを失うことはありません。" #: src/components/dialogs/MutedWords.tsx:293 -msgid "Nevermind" +#~ msgid "Nevermind" +#~ msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:520 +msgid "Nevermind, create a handle for me" msgstr "" #: src/view/screens/Lists.tsx:76 @@ -2588,29 +3005,30 @@ msgid "New Moderation List" msgstr "新しいモデレーションリスト" #: src/view/com/auth/login/SetNewPasswordForm.tsx:150 +#: src/view/com/modals/ChangePassword.tsx:212 msgid "New password" msgstr "新しいパスワード" -#: src/view/com/modals/ChangePassword.tsx:215 +#: src/view/com/modals/ChangePassword.tsx:217 msgid "New Password" msgstr "新しいパスワード" -#: src/view/com/feeds/FeedPage.tsx:126 +#: src/view/com/feeds/FeedPage.tsx:135 msgctxt "action" msgid "New post" msgstr "新しい投稿" #: src/view/screens/Feeds.tsx:555 #: src/view/screens/Notifications.tsx:168 -#: src/view/screens/Profile.tsx:382 +#: src/view/screens/Profile.tsx:450 #: src/view/screens/ProfileFeed.tsx:433 -#: src/view/screens/ProfileList.tsx:196 -#: src/view/screens/ProfileList.tsx:224 -#: src/view/shell/desktop/LeftNav.tsx:248 +#: src/view/screens/ProfileList.tsx:199 +#: src/view/screens/ProfileList.tsx:227 +#: src/view/shell/desktop/LeftNav.tsx:252 msgid "New post" msgstr "新しい投稿" -#: src/view/shell/desktop/LeftNav.tsx:258 +#: src/view/shell/desktop/LeftNav.tsx:262 msgctxt "action" msgid "New Post" msgstr "新しい投稿" @@ -2638,8 +3056,8 @@ msgstr "ニュース" #: src/view/com/auth/login/SetNewPasswordForm.tsx:187 #: src/view/com/auth/login/SetNewPasswordForm.tsx:198 #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:79 -#: src/view/com/modals/ChangePassword.tsx:251 #: src/view/com/modals/ChangePassword.tsx:253 +#: src/view/com/modals/ChangePassword.tsx:255 msgid "Next" msgstr "次へ" @@ -2648,7 +3066,7 @@ msgctxt "action" msgid "Next" msgstr "次へ" -#: src/view/com/lightbox/Lightbox.web.tsx:149 +#: src/view/com/lightbox/Lightbox.web.tsx:169 msgid "Next image" msgstr "次の画像" @@ -2661,12 +3079,16 @@ msgstr "次の画像" msgid "No" msgstr "いいえ" -#: src/view/screens/ProfileFeed.tsx:584 -#: src/view/screens/ProfileList.tsx:755 +#: src/view/screens/ProfileFeed.tsx:561 +#: src/view/screens/ProfileList.tsx:769 msgid "No description" msgstr "説明はありません" -#: src/view/com/profile/ProfileHeader.tsx:170 +#: src/view/com/modals/ChangeHandle.tsx:406 +msgid "No DNS Panel" +msgstr "" + +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:111 msgid "No longer following {0}" msgstr "{0}のフォローを解除しました" @@ -2674,12 +3096,12 @@ msgstr "{0}のフォローを解除しました" msgid "No notifications yet!" msgstr "お知らせはありません!" -#: src/view/com/composer/text-input/mobile/Autocomplete.tsx:97 -#: src/view/com/composer/text-input/web/Autocomplete.tsx:191 +#: src/view/com/composer/text-input/mobile/Autocomplete.tsx:101 +#: src/view/com/composer/text-input/web/Autocomplete.tsx:195 msgid "No result" msgstr "結果はありません" -#: src/components/Lists.tsx:192 +#: src/components/Lists.tsx:189 msgid "No results found" msgstr "" @@ -2688,8 +3110,8 @@ msgid "No results found for \"{query}\"" msgstr "「{query}」の検索結果はありません" #: src/view/com/modals/ListAddRemoveUsers.tsx:127 -#: src/view/screens/Search/Search.tsx:281 -#: src/view/screens/Search/Search.tsx:309 +#: src/view/screens/Search/Search.tsx:282 +#: src/view/screens/Search/Search.tsx:310 msgid "No results found for {query}" msgstr "「{query}」の検索結果はありません" @@ -2701,12 +3123,21 @@ msgstr "結構です" msgid "Nobody" msgstr "返信不可" +#: src/components/LikedByList.tsx:102 +#: src/components/LikesDialog.tsx:99 +msgid "Nobody has liked this yet. Maybe you should be the first!" +msgstr "" + +#: src/lib/moderation/useGlobalLabelStrings.ts:42 +msgid "Non-sexual Nudity" +msgstr "" + #: src/view/com/modals/SelfLabel.tsx:135 msgid "Not Applicable." msgstr "該当なし。" -#: src/Navigation.tsx:107 -#: src/view/screens/Profile.tsx:106 +#: src/Navigation.tsx:109 +#: src/view/screens/Profile.tsx:97 msgid "Not Found" msgstr "見つかりません" @@ -2715,21 +3146,26 @@ msgstr "見つかりません" msgid "Not right now" msgstr "今はしない" +#: src/view/com/profile/ProfileMenu.tsx:368 +#: src/view/com/util/forms/PostDropdownBtn.tsx:342 +msgid "Note about sharing" +msgstr "" + #: src/view/screens/Moderation.tsx:227 #~ msgid "Note: Bluesky is an open and public network, and enabling this will not make your profile private or limit the ability of logged in users to see your posts. This setting only limits the visibility of posts on the Bluesky app and website; third-party apps that display Bluesky content may not respect this setting, and could show your content to logged-out users." #~ msgstr "注記:Blueskyはオープンでパブリックなネットワークであり、この設定を有効にしてもログインしているユーザーはあなたのプロフィールや投稿を制限なく閲覧できます。この設定はBlueskyのアプリおよびウェブサイト上のみでのあなたのコンテンツの可視性を制限するものです。Blueskyのコンテンツを表示するサードパーティーのアプリやウェブサイトなどはこの設定を尊重しない場合があり、ログアウトしたユーザーに対しあなたのコンテンツが表示される可能性があります。" -#: src/view/screens/Moderation.tsx:252 +#: src/screens/Moderation/index.tsx:542 msgid "Note: Bluesky is an open and public network. This setting only limits the visibility of your content on the Bluesky app and website, and other apps may not respect this setting. Your content may still be shown to logged-out users by other apps and websites." msgstr "注記:Blueskyはオープンでパブリックなネットワークです。この設定はBlueskyのアプリおよびウェブサイト上のみでのあなたのコンテンツの可視性を制限するものであり、他のアプリではこの設定を尊重しない場合があります。他のアプリやウェブサイトでは、ログアウトしたユーザーにあなたのコンテンツが表示される場合があります。" -#: src/Navigation.tsx:457 +#: src/Navigation.tsx:469 #: src/view/screens/Notifications.tsx:124 #: src/view/screens/Notifications.tsx:148 -#: src/view/shell/bottom-bar/BottomBar.tsx:205 -#: src/view/shell/desktop/LeftNav.tsx:361 -#: src/view/shell/Drawer.tsx:435 -#: src/view/shell/Drawer.tsx:436 +#: src/view/shell/bottom-bar/BottomBar.tsx:207 +#: src/view/shell/desktop/LeftNav.tsx:365 +#: src/view/shell/Drawer.tsx:438 +#: src/view/shell/Drawer.tsx:439 msgid "Notifications" msgstr "通知" @@ -2737,7 +3173,15 @@ msgstr "通知" msgid "Nudity" msgstr "ヌード" -#: src/view/com/util/ErrorBoundary.tsx:35 +#: src/lib/moderation/useReportOptions.ts:71 +msgid "Nudity or pornography not labeled as such" +msgstr "" + +#: src/lib/moderation/useLabelBehaviorDescription.ts:11 +msgid "Off" +msgstr "" + +#: src/view/com/util/ErrorBoundary.tsx:49 msgid "Oh no!" msgstr "ちょっと!" @@ -2745,7 +3189,11 @@ msgstr "ちょっと!" msgid "Oh no! Something went wrong." msgstr "ちょっと!何かがおかしいです。" -#: src/view/com/auth/login/PasswordUpdatedForm.tsx:41 +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:127 +msgid "OK" +msgstr "" + +#: src/view/com/auth/login/PasswordUpdatedForm.tsx:41 msgid "Okay" msgstr "OK" @@ -2753,11 +3201,11 @@ msgstr "OK" msgid "Oldest replies first" msgstr "古い順に返信を表示" -#: src/view/screens/Settings/index.tsx:234 +#: src/view/screens/Settings/index.tsx:240 msgid "Onboarding reset" msgstr "オンボーディングのリセット" -#: src/view/com/composer/Composer.tsx:382 +#: src/view/com/composer/Composer.tsx:391 msgid "One or more images is missing alt text." msgstr "1つもしくは複数の画像にALTテキストがありません。" @@ -2765,13 +3213,13 @@ msgstr "1つもしくは複数の画像にALTテキストがありません。" msgid "Only {0} can reply." msgstr "{0}のみ返信可能" -#: src/components/Lists.tsx:82 +#: src/components/Lists.tsx:83 msgid "Oops, something went wrong!" msgstr "" -#: src/components/Lists.tsx:188 -#: src/view/screens/AppPasswords.tsx:65 -#: src/view/screens/Profile.tsx:106 +#: src/components/Lists.tsx:157 +#: src/view/screens/AppPasswords.tsx:67 +#: src/view/screens/Profile.tsx:97 msgid "Oops!" msgstr "おっと!" @@ -2780,34 +3228,47 @@ msgid "Open" msgstr "開かれています" #: src/view/screens/Moderation.tsx:75 -msgid "Open content filtering settings" -msgstr "" +#~ msgid "Open content filtering settings" +#~ msgstr "" -#: src/view/com/composer/Composer.tsx:477 -#: src/view/com/composer/Composer.tsx:478 +#: src/view/com/composer/Composer.tsx:490 +#: src/view/com/composer/Composer.tsx:491 msgid "Open emoji picker" msgstr "絵文字を入力" -#: src/view/screens/Settings/index.tsx:712 +#: src/view/screens/ProfileFeed.tsx:299 +msgid "Open feed options menu" +msgstr "" + +#: src/view/screens/Settings/index.tsx:730 msgid "Open links with in-app browser" msgstr "アプリ内ブラウザーでリンクを開く" -#: src/view/screens/Moderation.tsx:92 -msgid "Open muted words settings" +#: src/screens/Moderation/index.tsx:229 +msgid "Open muted words and tags settings" msgstr "" +#: src/view/screens/Moderation.tsx:92 +#~ msgid "Open muted words settings" +#~ msgstr "" + #: src/view/com/home/HomeHeaderLayoutMobile.tsx:50 msgid "Open navigation" msgstr "ナビゲーションを開く" -#: src/view/com/util/forms/PostDropdownBtn.tsx:175 +#: src/view/com/util/forms/PostDropdownBtn.tsx:183 msgid "Open post options menu" msgstr "" -#: src/view/screens/Settings/index.tsx:804 +#: src/view/screens/Settings/index.tsx:824 +#: src/view/screens/Settings/index.tsx:834 msgid "Open storybook page" msgstr "絵本のページを開く" +#: src/view/screens/Settings/index.tsx:812 +msgid "Open system log" +msgstr "" + #: src/view/com/util/forms/DropdownButton.tsx:154 msgid "Opens {numItems} options" msgstr "{numItems}個のオプションを開く" @@ -2816,11 +3277,11 @@ msgstr "{numItems}個のオプションを開く" msgid "Opens additional details for a debug entry" msgstr "デバッグエントリーの追加詳細を開く" -#: src/view/com/notifications/FeedItem.tsx:349 +#: src/view/com/notifications/FeedItem.tsx:353 msgid "Opens an expanded list of users in this notification" msgstr "この通知内のユーザーの拡張リストを開く" -#: src/view/com/composer/photos/OpenCameraBtn.tsx:61 +#: src/view/com/composer/photos/OpenCameraBtn.tsx:78 msgid "Opens camera on device" msgstr "デバイスのカメラを開く" @@ -2828,7 +3289,7 @@ msgstr "デバイスのカメラを開く" msgid "Opens composer" msgstr "編集画面を開く" -#: src/view/screens/Settings/index.tsx:595 +#: src/view/screens/Settings/index.tsx:611 msgid "Opens configurable language settings" msgstr "構成可能な言語設定を開く" @@ -2837,20 +3298,30 @@ msgid "Opens device photo gallery" msgstr "デバイスのフォトギャラリーを開く" #: src/view/com/profile/ProfileHeader.tsx:420 -msgid "Opens editor for profile display name, avatar, background image, and description" -msgstr "プロフィールの表示名、アバター、背景画像、説明文のエディタを開く" +#~ msgid "Opens editor for profile display name, avatar, background image, and description" +#~ msgstr "プロフィールの表示名、アバター、背景画像、説明文のエディタを開く" -#: src/view/screens/Settings/index.tsx:649 +#: src/view/screens/Settings/index.tsx:665 msgid "Opens external embeds settings" msgstr "外部コンテンツの埋め込みの設定を開く" +#: src/view/com/auth/HomeLoggedOutCTA.tsx:56 +#: src/view/com/auth/SplashScreen.tsx:70 +msgid "Opens flow to create a new Bluesky account" +msgstr "" + +#: src/view/com/auth/HomeLoggedOutCTA.tsx:74 +#: src/view/com/auth/SplashScreen.tsx:83 +msgid "Opens flow to sign into your existing Bluesky account" +msgstr "" + #: src/view/com/profile/ProfileHeader.tsx:575 -msgid "Opens followers list" -msgstr "フォロワーのリストを開きます" +#~ msgid "Opens followers list" +#~ msgstr "フォロワーのリストを開きます" #: src/view/com/profile/ProfileHeader.tsx:594 -msgid "Opens following list" -msgstr "フォロー中のリストを開きます" +#~ msgid "Opens following list" +#~ msgstr "フォロー中のリストを開きます" #: src/view/screens/Settings.tsx:412 #~ msgid "Opens invite code list" @@ -2860,15 +3331,35 @@ msgstr "フォロー中のリストを開きます" msgid "Opens list of invite codes" msgstr "招待コードのリストを開く" +#: src/view/screens/Settings/index.tsx:794 +msgid "Opens modal for account deletion confirmation. Requires email code" +msgstr "" + #: src/view/screens/Settings/index.tsx:774 -msgid "Opens modal for account deletion confirmation. Requires email code." -msgstr "アカウントの削除確認用の表示を開きます。メールアドレスのコードが必要です。" +#~ msgid "Opens modal for account deletion confirmation. Requires email code." +#~ msgstr "アカウントの削除確認用の表示を開きます。メールアドレスのコードが必要です。" + +#: src/view/screens/Settings/index.tsx:752 +msgid "Opens modal for changing your Bluesky password" +msgstr "" + +#: src/view/screens/Settings/index.tsx:714 +msgid "Opens modal for choosing a new Bluesky handle" +msgstr "" + +#: src/view/screens/Settings/index.tsx:775 +msgid "Opens modal for downloading your Bluesky account data (repository)" +msgstr "" + +#: src/view/screens/Settings/index.tsx:966 +msgid "Opens modal for email verification" +msgstr "" #: src/view/com/modals/ChangeHandle.tsx:281 msgid "Opens modal for using custom domain" msgstr "カスタムドメインを使用するためのモーダルを開く" -#: src/view/screens/Settings/index.tsx:620 +#: src/view/screens/Settings/index.tsx:636 msgid "Opens moderation settings" msgstr "モデレーションの設定を開く" @@ -2881,27 +3372,40 @@ msgstr "パスワードリセットのフォームを開く" msgid "Opens screen to edit Saved Feeds" msgstr "保存されたフィードの編集画面を開く" -#: src/view/screens/Settings/index.tsx:576 +#: src/view/screens/Settings/index.tsx:593 msgid "Opens screen with all saved feeds" msgstr "保存されたすべてのフィードで画面を開く" +#: src/view/screens/Settings/index.tsx:692 +msgid "Opens the app password settings" +msgstr "" + #: src/view/screens/Settings/index.tsx:676 -msgid "Opens the app password settings page" -msgstr "アプリパスワードの設定ページを開く" +#~ msgid "Opens the app password settings page" +#~ msgstr "アプリパスワードの設定ページを開く" + +#: src/view/screens/Settings/index.tsx:550 +msgid "Opens the Following feed preferences" +msgstr "" #: src/view/screens/Settings/index.tsx:535 -msgid "Opens the home feed preferences" -msgstr "ホームフィードの設定を開く" +#~ msgid "Opens the home feed preferences" +#~ msgstr "ホームフィードの設定を開く" -#: src/view/screens/Settings/index.tsx:805 +#: src/view/com/modals/LinkWarning.tsx:76 +msgid "Opens the linked website" +msgstr "" + +#: src/view/screens/Settings/index.tsx:825 +#: src/view/screens/Settings/index.tsx:835 msgid "Opens the storybook page" msgstr "ストーリーブックのページを開く" -#: src/view/screens/Settings/index.tsx:793 +#: src/view/screens/Settings/index.tsx:813 msgid "Opens the system log page" msgstr "システムログのページを開く" -#: src/view/screens/Settings/index.tsx:556 +#: src/view/screens/Settings/index.tsx:571 msgid "Opens the threads preferences" msgstr "スレッドの設定を開く" @@ -2909,6 +3413,10 @@ msgstr "スレッドの設定を開く" msgid "Option {0} of {numItems}" msgstr "{numItems}個中{0}目のオプション" +#: src/components/ReportDialog/SubmitView.tsx:162 +msgid "Optionally provide additional information below:" +msgstr "" + #: src/view/com/modals/Threadgate.tsx:89 msgid "Or combine these options:" msgstr "または以下のオプションを組み合わせてください:" @@ -2917,7 +3425,11 @@ msgstr "または以下のオプションを組み合わせてください:" #~ msgid "Or you can try our \"Discover\" algorithm:" #~ msgstr "または我々の「Discover」アルゴリズムを試すことができます:" -#: src/view/com/auth/login/ChooseAccountForm.tsx:138 +#: src/lib/moderation/useReportOptions.ts:25 +msgid "Other" +msgstr "" + +#: src/view/com/auth/login/ChooseAccountForm.tsx:142 msgid "Other account" msgstr "その他のアカウント" @@ -2929,7 +3441,7 @@ msgstr "その他のアカウント" msgid "Other..." msgstr "その他..." -#: src/components/Lists.tsx:194 +#: src/components/Lists.tsx:190 #: src/view/screens/NotFound.tsx:45 msgid "Page not found" msgstr "ページが見つかりません" @@ -2940,12 +3452,18 @@ msgstr "ページが見つかりません" #: src/view/com/auth/create/Step1.tsx:191 #: src/view/com/auth/create/Step1.tsx:201 +#: src/view/com/auth/login/LoginForm.tsx:210 #: src/view/com/auth/login/LoginForm.tsx:226 #: src/view/com/auth/login/SetNewPasswordForm.tsx:161 +#: src/view/com/modals/DeleteAccount.tsx:195 #: src/view/com/modals/DeleteAccount.tsx:202 msgid "Password" msgstr "パスワード" +#: src/view/com/modals/ChangePassword.tsx:142 +msgid "Password Changed" +msgstr "" + #: src/view/com/auth/login/Login.tsx:157 msgid "Password updated" msgstr "パスワードが更新されました" @@ -2954,11 +3472,11 @@ msgstr "パスワードが更新されました" msgid "Password updated!" msgstr "パスワードが更新されました!" -#: src/Navigation.tsx:162 +#: src/Navigation.tsx:164 msgid "People followed by @{0}" msgstr "@{0}がフォロー中のユーザー" -#: src/Navigation.tsx:155 +#: src/Navigation.tsx:157 msgid "People following @{0}" msgstr "@{0}をフォロー中のユーザー" @@ -2982,11 +3500,15 @@ msgstr "ペット" msgid "Pictures meant for adults." msgstr "成人向けの画像です。" -#: src/view/screens/ProfileFeed.tsx:354 -#: src/view/screens/ProfileList.tsx:581 +#: src/view/screens/ProfileFeed.tsx:291 +#: src/view/screens/ProfileList.tsx:563 msgid "Pin to home" msgstr "ホームにピン留め" +#: src/view/screens/ProfileFeed.tsx:294 +msgid "Pin to Home" +msgstr "" + #: src/view/screens/SavedFeeds.tsx:88 msgid "Pinned Feeds" msgstr "ピン留めされたフィード" @@ -3052,10 +3574,14 @@ msgstr "メールアドレスを入力してください。" msgid "Please enter your password as well:" msgstr "パスワードも入力してください:" +#: src/components/moderation/LabelsOnMeDialog.tsx:222 +msgid "Please explain why you think this label was incorrectly applied by {0}" +msgstr "" + #: src/view/com/modals/AppealLabel.tsx:72 #: src/view/com/modals/AppealLabel.tsx:75 -msgid "Please tell us why you think this content warning was incorrectly applied!" -msgstr "このコンテンツに対する警告が誤って適用されたと思われる理由を教えてください!" +#~ msgid "Please tell us why you think this content warning was incorrectly applied!" +#~ msgstr "このコンテンツに対する警告が誤って適用されたと思われる理由を教えてください!" #: src/view/com/modals/AppealLabel.tsx:72 #: src/view/com/modals/AppealLabel.tsx:75 @@ -3066,7 +3592,7 @@ msgstr "このコンテンツに対する警告が誤って適用されたと思 msgid "Please Verify Your Email" msgstr "メールアドレスを確認してください" -#: src/view/com/composer/Composer.tsx:222 +#: src/view/com/composer/Composer.tsx:221 msgid "Please wait for your link card to finish loading" msgstr "リンクカードがロードされるまでお待ちください" @@ -3078,13 +3604,17 @@ msgstr "政治" msgid "Porn" msgstr "ポルノ" -#: src/view/com/composer/Composer.tsx:357 -#: src/view/com/composer/Composer.tsx:365 +#: src/lib/moderation/useGlobalLabelStrings.ts:34 +msgid "Pornography" +msgstr "" + +#: src/view/com/composer/Composer.tsx:366 +#: src/view/com/composer/Composer.tsx:374 msgctxt "action" msgid "Post" msgstr "投稿" -#: src/view/com/post-thread/PostThread.tsx:303 +#: src/view/com/post-thread/PostThread.tsx:292 msgctxt "description" msgid "Post" msgstr "投稿" @@ -3099,20 +3629,30 @@ msgstr "投稿" msgid "Post by {0}" msgstr "{0}による投稿" -#: src/Navigation.tsx:174 -#: src/Navigation.tsx:181 -#: src/Navigation.tsx:188 +#: src/Navigation.tsx:176 +#: src/Navigation.tsx:183 +#: src/Navigation.tsx:190 msgid "Post by @{0}" msgstr "@{0}による投稿" -#: src/view/com/util/forms/PostDropdownBtn.tsx:108 +#: src/view/com/util/forms/PostDropdownBtn.tsx:105 msgid "Post deleted" msgstr "投稿を削除" -#: src/view/com/post-thread/PostThread.tsx:462 +#: src/view/com/post-thread/PostThread.tsx:157 msgid "Post hidden" msgstr "投稿を非表示" +#: src/components/moderation/ModerationDetailsDialog.tsx:98 +#: src/lib/moderation/useModerationCauseDescription.ts:99 +msgid "Post Hidden by Muted Word" +msgstr "" + +#: src/components/moderation/ModerationDetailsDialog.tsx:101 +#: src/lib/moderation/useModerationCauseDescription.ts:108 +msgid "Post Hidden by You" +msgstr "" + #: src/view/com/composer/select-language/SelectLangBtn.tsx:87 msgid "Post language" msgstr "投稿の言語" @@ -3121,7 +3661,8 @@ msgstr "投稿の言語" msgid "Post Languages" msgstr "投稿の言語" -#: src/view/com/post-thread/PostThread.tsx:514 +#: src/view/com/post-thread/PostThread.tsx:152 +#: src/view/com/post-thread/PostThread.tsx:164 msgid "Post not found" msgstr "投稿が見つかりません" @@ -3129,7 +3670,7 @@ msgstr "投稿が見つかりません" msgid "posts" msgstr "" -#: src/view/screens/Profile.tsx:180 +#: src/view/screens/Profile.tsx:188 msgid "Posts" msgstr "投稿" @@ -3145,7 +3686,11 @@ msgstr "非表示の投稿" msgid "Potentially Misleading Link" msgstr "誤解を招く可能性のあるリンク" -#: src/view/com/lightbox/Lightbox.web.tsx:135 +#: src/components/Lists.tsx:88 +msgid "Press to retry" +msgstr "" + +#: src/view/com/lightbox/Lightbox.web.tsx:150 msgid "Previous image" msgstr "前の画像" @@ -3157,15 +3702,16 @@ msgstr "第一言語" msgid "Prioritize Your Follows" msgstr "あなたのフォローを優先" -#: src/view/screens/Settings/index.tsx:632 +#: src/view/screens/Settings/index.tsx:648 #: src/view/shell/desktop/RightNav.tsx:72 msgid "Privacy" msgstr "プライバシー" -#: src/Navigation.tsx:219 +#: src/Navigation.tsx:231 +#: src/view/com/auth/create/Policies.tsx:69 #: src/view/screens/PrivacyPolicy.tsx:29 -#: src/view/screens/Settings/index.tsx:891 -#: src/view/shell/Drawer.tsx:262 +#: src/view/screens/Settings/index.tsx:921 +#: src/view/shell/Drawer.tsx:265 msgid "Privacy Policy" msgstr "プライバシーポリシー" @@ -3173,11 +3719,16 @@ msgstr "プライバシーポリシー" msgid "Processing..." msgstr "処理中..." -#: src/view/shell/bottom-bar/BottomBar.tsx:247 -#: src/view/shell/desktop/LeftNav.tsx:415 +#: src/view/screens/DebugMod.tsx:888 +#: src/view/screens/Profile.tsx:340 +msgid "profile" +msgstr "" + +#: src/view/shell/bottom-bar/BottomBar.tsx:251 +#: src/view/shell/desktop/LeftNav.tsx:419 #: src/view/shell/Drawer.tsx:70 -#: src/view/shell/Drawer.tsx:546 -#: src/view/shell/Drawer.tsx:547 +#: src/view/shell/Drawer.tsx:549 +#: src/view/shell/Drawer.tsx:550 msgid "Profile" msgstr "プロフィール" @@ -3185,7 +3736,7 @@ msgstr "プロフィール" msgid "Profile updated" msgstr "プロフィールを更新しました" -#: src/view/screens/Settings/index.tsx:949 +#: src/view/screens/Settings/index.tsx:979 msgid "Protect your account by verifying your email." msgstr "メールアドレスを確認してアカウントを保護します。" @@ -3201,11 +3752,11 @@ msgstr "ユーザーを一括でミュートまたはブロックする、公開 msgid "Public, shareable lists which can drive feeds." msgstr "フィードとして利用できる、公開された共有可能なリスト。" -#: src/view/com/composer/Composer.tsx:342 +#: src/view/com/composer/Composer.tsx:351 msgid "Publish post" msgstr "投稿を公開" -#: src/view/com/composer/Composer.tsx:342 +#: src/view/com/composer/Composer.tsx:351 msgid "Publish reply" msgstr "返信を公開" @@ -3235,6 +3786,10 @@ msgstr "ランダムな順番で表示(別名「投稿者のルーレット」 msgid "Ratios" msgstr "比率" +#: src/view/screens/Search/Search.tsx:776 +msgid "Recent Searches" +msgstr "" + #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:116 msgid "Recommended Feeds" msgstr "おすすめのフィード" @@ -3243,36 +3798,50 @@ msgstr "おすすめのフィード" msgid "Recommended Users" msgstr "おすすめのユーザー" -#: src/components/dialogs/MutedWords.tsx:298 -#: src/view/com/modals/ListAddRemoveUsers.tsx:264 +#: src/components/dialogs/MutedWords.tsx:287 +#: src/view/com/feeds/FeedSourceCard.tsx:283 +#: src/view/com/modals/ListAddRemoveUsers.tsx:268 #: src/view/com/modals/SelfLabel.tsx:83 #: src/view/com/modals/UserAddRemoveLists.tsx:219 -#: src/view/com/util/UserAvatar.tsx:285 -#: src/view/com/util/UserBanner.tsx:91 +#: src/view/com/posts/FeedErrorMessage.tsx:204 msgid "Remove" msgstr "削除" #: src/view/com/feeds/FeedSourceCard.tsx:108 -msgid "Remove {0} from my feeds?" -msgstr "マイフィードから{0}を削除しますか?" +#~ msgid "Remove {0} from my feeds?" +#~ msgstr "マイフィードから{0}を削除しますか?" #: src/view/com/util/AccountDropdownBtn.tsx:22 msgid "Remove account" msgstr "アカウントを削除" -#: src/view/com/posts/FeedErrorMessage.tsx:131 -#: src/view/com/posts/FeedErrorMessage.tsx:166 +#: src/view/com/util/UserAvatar.tsx:358 +msgid "Remove Avatar" +msgstr "" + +#: src/view/com/util/UserBanner.tsx:148 +msgid "Remove Banner" +msgstr "" + +#: src/view/com/posts/FeedErrorMessage.tsx:160 msgid "Remove feed" msgstr "フィードを削除" -#: src/view/com/feeds/FeedSourceCard.tsx:107 -#: src/view/com/feeds/FeedSourceCard.tsx:169 -#: src/view/com/feeds/FeedSourceCard.tsx:174 -#: src/view/com/feeds/FeedSourceCard.tsx:245 -#: src/view/screens/ProfileFeed.tsx:273 +#: src/view/com/posts/FeedErrorMessage.tsx:201 +msgid "Remove feed?" +msgstr "" + +#: src/view/com/feeds/FeedSourceCard.tsx:173 +#: src/view/com/feeds/FeedSourceCard.tsx:233 +#: src/view/screens/ProfileFeed.tsx:334 +#: src/view/screens/ProfileFeed.tsx:340 msgid "Remove from my feeds" msgstr "マイフィードから削除" +#: src/view/com/feeds/FeedSourceCard.tsx:278 +msgid "Remove from my feeds?" +msgstr "" + #: src/view/com/composer/photos/Gallery.tsx:167 msgid "Remove image" msgstr "イメージを削除" @@ -3281,7 +3850,7 @@ msgstr "イメージを削除" msgid "Remove image preview" msgstr "イメージプレビューを削除" -#: src/components/dialogs/MutedWords.tsx:343 +#: src/components/dialogs/MutedWords.tsx:330 msgid "Remove mute word from your list" msgstr "" @@ -3290,28 +3859,35 @@ msgid "Remove repost" msgstr "リポストを削除" #: src/view/com/feeds/FeedSourceCard.tsx:175 -msgid "Remove this feed from my feeds?" -msgstr "このフィードをマイフィードから削除しますか?" +#~ msgid "Remove this feed from my feeds?" +#~ msgstr "このフィードをマイフィードから削除しますか?" + +#: src/view/com/posts/FeedErrorMessage.tsx:202 +msgid "Remove this feed from your saved feeds" +msgstr "" #: src/view/com/posts/FeedErrorMessage.tsx:132 -msgid "Remove this feed from your saved feeds?" -msgstr "保存したフィードからこのフィードを削除しますか?" +#~ msgid "Remove this feed from your saved feeds?" +#~ msgstr "保存したフィードからこのフィードを削除しますか?" #: src/view/com/modals/ListAddRemoveUsers.tsx:199 #: src/view/com/modals/UserAddRemoveLists.tsx:152 msgid "Removed from list" msgstr "リストから削除されました" -#: src/view/com/feeds/FeedSourceCard.tsx:113 -#: src/view/com/feeds/FeedSourceCard.tsx:180 +#: src/view/com/feeds/FeedSourceCard.tsx:121 msgid "Removed from my feeds" msgstr "フィードから削除しました" +#: src/view/screens/ProfileFeed.tsx:208 +msgid "Removed from your feeds" +msgstr "" + #: src/view/com/composer/ExternalEmbed.tsx:71 msgid "Removes default thumbnail from {0}" msgstr "{0}からデフォルトのサムネイルを削除" -#: src/view/screens/Profile.tsx:181 +#: src/view/screens/Profile.tsx:189 msgid "Replies" msgstr "返信" @@ -3319,7 +3895,7 @@ msgstr "返信" msgid "Replies to this thread are disabled" msgstr "このスレッドへの返信はできません" -#: src/view/com/composer/Composer.tsx:355 +#: src/view/com/composer/Composer.tsx:364 msgctxt "action" msgid "Reply" msgstr "返信" @@ -3328,34 +3904,55 @@ msgstr "返信" msgid "Reply Filters" msgstr "返信のフィルター" -#: src/view/com/post/Post.tsx:167 -#: src/view/com/posts/FeedItem.tsx:287 +#: src/view/com/post/Post.tsx:166 +#: src/view/com/posts/FeedItem.tsx:280 msgctxt "description" msgid "Reply to <0/>" msgstr "<0/>に返信" #: src/view/com/modals/report/Modal.tsx:166 -msgid "Report {collectionName}" -msgstr "{collectionName}を報告" +#~ msgid "Report {collectionName}" +#~ msgstr "{collectionName}を報告" -#: src/view/com/profile/ProfileHeader.tsx:361 +#: src/view/com/profile/ProfileMenu.tsx:319 +#: src/view/com/profile/ProfileMenu.tsx:322 msgid "Report Account" msgstr "アカウントを報告" -#: src/view/screens/ProfileFeed.tsx:293 +#: src/view/screens/ProfileFeed.tsx:351 +#: src/view/screens/ProfileFeed.tsx:353 msgid "Report feed" msgstr "フィードを報告" -#: src/view/screens/ProfileList.tsx:459 +#: src/view/screens/ProfileList.tsx:429 msgid "Report List" msgstr "リストを報告" -#: src/view/com/modals/report/SendReportButton.tsx:37 -#: src/view/com/util/forms/PostDropdownBtn.tsx:301 -#: src/view/com/util/forms/PostDropdownBtn.tsx:309 +#: src/view/com/util/forms/PostDropdownBtn.tsx:292 +#: src/view/com/util/forms/PostDropdownBtn.tsx:294 msgid "Report post" msgstr "投稿を報告" +#: src/components/ReportDialog/SelectReportOptionView.tsx:43 +msgid "Report this content" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:56 +msgid "Report this feed" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:53 +msgid "Report this list" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:50 +msgid "Report this post" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:47 +msgid "Report this user" +msgstr "" + #: src/view/com/modals/Repost.tsx:43 #: src/view/com/modals/Repost.tsx:48 #: src/view/com/modals/Repost.tsx:53 @@ -3381,7 +3978,7 @@ msgstr "リポストまたは引用" msgid "Reposted By" msgstr "リポストしたユーザー" -#: src/view/com/posts/FeedItem.tsx:207 +#: src/view/com/posts/FeedItem.tsx:197 msgid "Reposted by {0}" msgstr "{0}にリポストされた" @@ -3389,15 +3986,15 @@ msgstr "{0}にリポストされた" #~ msgid "Reposted by {0})" #~ msgstr "{0}によるリポスト" -#: src/view/com/posts/FeedItem.tsx:224 +#: src/view/com/posts/FeedItem.tsx:214 msgid "Reposted by <0/>" msgstr "<0/>によるリポスト" -#: src/view/com/notifications/FeedItem.tsx:162 +#: src/view/com/notifications/FeedItem.tsx:166 msgid "reposted your post" msgstr "あなたの投稿はリポストされました" -#: src/view/com/post-thread/PostThreadItem.tsx:188 +#: src/view/com/post-thread/PostThreadItem.tsx:187 msgid "Reposts of this post" msgstr "この投稿をリポスト" @@ -3410,12 +4007,12 @@ msgstr "変更を要求" #~ msgid "Request code" #~ msgstr "コードをリクエスト" -#: src/view/com/modals/ChangePassword.tsx:239 #: src/view/com/modals/ChangePassword.tsx:241 +#: src/view/com/modals/ChangePassword.tsx:243 msgid "Request Code" msgstr "コードをリクエスト" -#: src/view/screens/Settings/index.tsx:456 +#: src/view/screens/Settings/index.tsx:471 msgid "Require alt text before posting" msgstr "画像投稿時にALTテキストを必須とする" @@ -3425,18 +4022,20 @@ msgstr "このプロバイダーに必要" #: src/view/com/auth/login/SetNewPasswordForm.tsx:124 #: src/view/com/auth/login/SetNewPasswordForm.tsx:136 +#: src/view/com/modals/ChangePassword.tsx:185 msgid "Reset code" msgstr "コードをリセット" -#: src/view/com/modals/ChangePassword.tsx:190 +#: src/view/com/modals/ChangePassword.tsx:192 msgid "Reset Code" msgstr "コードをリセット" #: src/view/screens/Settings/index.tsx:824 -msgid "Reset onboarding" -msgstr "オンボーディングの状態をリセット" +#~ msgid "Reset onboarding" +#~ msgstr "オンボーディングの状態をリセット" -#: src/view/screens/Settings/index.tsx:827 +#: src/view/screens/Settings/index.tsx:854 +#: src/view/screens/Settings/index.tsx:857 msgid "Reset onboarding state" msgstr "オンボーディングの状態をリセット" @@ -3445,18 +4044,19 @@ msgid "Reset password" msgstr "パスワードをリセット" #: src/view/screens/Settings/index.tsx:814 -msgid "Reset preferences" -msgstr "設定をリセット" +#~ msgid "Reset preferences" +#~ msgstr "設定をリセット" -#: src/view/screens/Settings/index.tsx:817 +#: src/view/screens/Settings/index.tsx:844 +#: src/view/screens/Settings/index.tsx:847 msgid "Reset preferences state" msgstr "設定をリセット" -#: src/view/screens/Settings/index.tsx:825 +#: src/view/screens/Settings/index.tsx:855 msgid "Resets the onboarding state" msgstr "オンボーディングの状態をリセットします" -#: src/view/screens/Settings/index.tsx:815 +#: src/view/screens/Settings/index.tsx:845 msgid "Resets the preferences state" msgstr "設定の状態をリセットします" @@ -3469,6 +4069,7 @@ msgstr "ログインをやり直す" msgid "Retries the last action, which errored out" msgstr "エラーになった最後のアクションをやり直す" +#: src/components/Lists.tsx:98 #: src/screens/Onboarding/StepInterests/index.tsx:221 #: src/screens/Onboarding/StepInterests/index.tsx:224 #: src/view/com/auth/create/CreateAccount.tsx:181 @@ -3484,10 +4085,19 @@ msgstr "再試行" #~ msgid "Retry." #~ msgstr "再試行" -#: src/view/screens/ProfileList.tsx:903 +#: src/view/screens/ProfileList.tsx:917 msgid "Return to previous page" msgstr "前のページに戻る" +#: src/view/screens/NotFound.tsx:59 +msgid "Returns to home page" +msgstr "" + +#: src/view/screens/NotFound.tsx:58 +#: src/view/screens/ProfileFeed.tsx:112 +msgid "Returns to previous page" +msgstr "" + #: src/view/shell/desktop/RightNav.tsx:55 #~ msgid "SANDBOX. Posts and accounts are not permanent." #~ msgstr "サンドボックス。投稿とアカウントは永久的なものではありません。" @@ -3498,12 +4108,10 @@ msgctxt "action" msgid "Save" msgstr "保存" -#: src/view/com/modals/BirthDateSettings.tsx:94 -#: src/view/com/modals/BirthDateSettings.tsx:97 +#: src/components/dialogs/BirthDateSettings.tsx:125 #: src/view/com/modals/ChangeHandle.tsx:173 #: src/view/com/modals/CreateOrEditList.tsx:337 #: src/view/com/modals/EditProfile.tsx:224 -#: src/view/screens/ProfileFeed.tsx:346 msgid "Save" msgstr "保存" @@ -3511,6 +4119,10 @@ msgstr "保存" msgid "Save alt text" msgstr "ALTテキストを保存" +#: src/components/dialogs/BirthDateSettings.tsx:119 +msgid "Save birthday" +msgstr "" + #: src/view/com/modals/EditProfile.tsx:232 msgid "Save Changes" msgstr "変更を保存" @@ -3523,10 +4135,23 @@ msgstr "ハンドルの変更を保存" msgid "Save image crop" msgstr "画像の切り抜きを保存" +#: src/view/screens/ProfileFeed.tsx:335 +#: src/view/screens/ProfileFeed.tsx:341 +msgid "Save to my feeds" +msgstr "" + #: src/view/screens/SavedFeeds.tsx:122 msgid "Saved Feeds" msgstr "保存されたフィード" +#: src/view/com/lightbox/Lightbox.tsx:81 +msgid "Saved to your camera roll." +msgstr "" + +#: src/view/screens/ProfileFeed.tsx:212 +msgid "Saved to your feeds" +msgstr "" + #: src/view/com/modals/EditProfile.tsx:225 msgid "Saves any changes to your profile" msgstr "プロフィールに加えた変更を保存します" @@ -3535,33 +4160,37 @@ msgstr "プロフィールに加えた変更を保存します" msgid "Saves handle change to {handle}" msgstr "{handle}へのハンドルの変更を保存" +#: src/view/com/modals/crop-image/CropImage.web.tsx:145 +msgid "Saves image crop settings" +msgstr "" + #: src/screens/Onboarding/index.tsx:36 msgid "Science" msgstr "科学" -#: src/view/screens/ProfileList.tsx:859 +#: src/view/screens/ProfileList.tsx:873 msgid "Scroll to top" msgstr "一番上までスクロール" -#: src/Navigation.tsx:447 +#: src/Navigation.tsx:459 #: src/view/com/auth/LoggedOut.tsx:122 #: src/view/com/modals/ListAddRemoveUsers.tsx:75 #: src/view/com/util/forms/SearchInput.tsx:67 #: src/view/com/util/forms/SearchInput.tsx:79 -#: src/view/screens/Search/Search.tsx:419 -#: src/view/screens/Search/Search.tsx:668 -#: src/view/screens/Search/Search.tsx:686 -#: src/view/shell/bottom-bar/BottomBar.tsx:159 -#: src/view/shell/desktop/LeftNav.tsx:324 -#: src/view/shell/desktop/Search.tsx:214 -#: src/view/shell/desktop/Search.tsx:223 -#: src/view/shell/Drawer.tsx:362 -#: src/view/shell/Drawer.tsx:363 +#: src/view/screens/Search/Search.tsx:420 +#: src/view/screens/Search/Search.tsx:669 +#: src/view/screens/Search/Search.tsx:687 +#: src/view/shell/bottom-bar/BottomBar.tsx:161 +#: src/view/shell/desktop/LeftNav.tsx:328 +#: src/view/shell/desktop/Search.tsx:215 +#: src/view/shell/desktop/Search.tsx:224 +#: src/view/shell/Drawer.tsx:365 +#: src/view/shell/Drawer.tsx:366 msgid "Search" msgstr "検索" -#: src/view/screens/Search/Search.tsx:735 -#: src/view/shell/desktop/Search.tsx:255 +#: src/view/screens/Search/Search.tsx:736 +#: src/view/shell/desktop/Search.tsx:256 msgid "Search for \"{query}\"" msgstr "「{query}」を検索" @@ -3639,6 +4268,14 @@ msgstr "{item}を選択" msgid "Select from an existing account" msgstr "既存のアカウントから選択" +#: src/view/screens/LanguageSettings.tsx:299 +msgid "Select languages" +msgstr "" + +#: src/components/ReportDialog/SelectLabelerView.tsx:32 +msgid "Select moderator" +msgstr "" + #: src/view/com/util/Selector.tsx:107 msgid "Select option {i} of {numItems}" msgstr "{numItems}個中{i}個目のオプションを選択" @@ -3652,6 +4289,10 @@ msgstr "サービスを選択" msgid "Select some accounts below to follow" msgstr "次のアカウントを選択してフォローしてください" +#: src/components/ReportDialog/SubmitView.tsx:135 +msgid "Select the moderation service(s) to report to" +msgstr "" + #: src/view/com/auth/server-input/index.tsx:82 msgid "Select the service that hosts your data." msgstr "データをホストするサービスを選択します。" @@ -3664,7 +4305,7 @@ msgstr "データをホストするサービスを選択します。" msgid "Select topical feeds to follow from the list below" msgstr "次のリストから話題のフィードを選択してフォローしてください" -#: src/screens/Onboarding/StepModeration/index.tsx:75 +#: src/screens/Onboarding/StepModeration/index.tsx:62 msgid "Select what you want to see (or not see), and we’ll handle the rest." msgstr "見たい(または見たくない)ものを選択してください。あとは私たちにお任せください。" @@ -3673,8 +4314,12 @@ msgid "Select which languages you want your subscribed feeds to include. If none msgstr "登録されたフィードに含める言語を選択します。選択されていない場合は、すべての言語が表示されます。" #: src/view/screens/LanguageSettings.tsx:98 -msgid "Select your app language for the default text to display in the app" -msgstr "アプリに表示されるデフォルトのテキストの言語を選択" +#~ msgid "Select your app language for the default text to display in the app" +#~ msgstr "アプリに表示されるデフォルトのテキストの言語を選択" + +#: src/view/screens/LanguageSettings.tsx:98 +msgid "Select your app language for the default text to display in the app." +msgstr "" #: src/screens/Onboarding/StepInterests/index.tsx:196 msgid "Select your interests from the options below" @@ -3714,14 +4359,23 @@ msgstr "メールを送信" #~ msgid "Send Email" #~ msgstr "メールを送信" -#: src/view/shell/Drawer.tsx:295 -#: src/view/shell/Drawer.tsx:316 +#: src/view/shell/Drawer.tsx:298 +#: src/view/shell/Drawer.tsx:319 msgid "Send feedback" msgstr "フィードバックを送信" +#: src/components/ReportDialog/SubmitView.tsx:214 +#: src/components/ReportDialog/SubmitView.tsx:218 +msgid "Send report" +msgstr "" + #: src/view/com/modals/report/SendReportButton.tsx:45 -msgid "Send Report" -msgstr "報告を送信" +#~ msgid "Send Report" +#~ msgstr "報告を送信" + +#: src/components/ReportDialog/SelectLabelerView.tsx:46 +msgid "Send report to {0}" +msgstr "" #: src/view/com/modals/DeleteAccount.tsx:133 msgid "Sends email with confirmation code for account deletion" @@ -3732,34 +4386,38 @@ msgid "Server address" msgstr "" #: src/view/com/modals/ContentFilteringSettings.tsx:311 -msgid "Set {value} for {labelGroup} content moderation policy" -msgstr "{labelGroup}コンテンツのモデレーションポリシーを{value}に設定します" +#~ msgid "Set {value} for {labelGroup} content moderation policy" +#~ msgstr "{labelGroup}コンテンツのモデレーションポリシーを{value}に設定します" #: src/view/com/modals/ContentFilteringSettings.tsx:160 #: src/view/com/modals/ContentFilteringSettings.tsx:179 -msgctxt "action" -msgid "Set Age" -msgstr "年齢を設定" +#~ msgctxt "action" +#~ msgid "Set Age" +#~ msgstr "年齢を設定" + +#: src/screens/Moderation/index.tsx:306 +msgid "Set birthdate" +msgstr "" #: src/view/screens/Settings/index.tsx:488 -msgid "Set color theme to dark" -msgstr "カラーテーマを暗いものに設定します" +#~ msgid "Set color theme to dark" +#~ msgstr "カラーテーマを暗いものに設定します" #: src/view/screens/Settings/index.tsx:481 -msgid "Set color theme to light" -msgstr "カラーテーマをライトに設定します" +#~ msgid "Set color theme to light" +#~ msgstr "カラーテーマをライトに設定します" #: src/view/screens/Settings/index.tsx:475 -msgid "Set color theme to system setting" -msgstr "デバイスで設定したカラーテーマを使用するように設定します" +#~ msgid "Set color theme to system setting" +#~ msgstr "デバイスで設定したカラーテーマを使用するように設定します" #: src/view/screens/Settings/index.tsx:514 -msgid "Set dark theme to the dark theme" -msgstr "ダークテーマをダークに設定します" +#~ msgid "Set dark theme to the dark theme" +#~ msgstr "ダークテーマをダークに設定します" #: src/view/screens/Settings/index.tsx:507 -msgid "Set dark theme to the dim theme" -msgstr "ダークテーマを薄暗いものに設定します" +#~ msgid "Set dark theme to the dim theme" +#~ msgstr "ダークテーマを薄暗いものに設定します" #: src/view/com/auth/login/SetNewPasswordForm.tsx:104 msgid "Set new password" @@ -3801,6 +4459,26 @@ msgstr "アカウントを設定する" msgid "Sets Bluesky username" msgstr "Blueskyのユーザーネームを設定" +#: src/view/screens/Settings/index.tsx:503 +msgid "Sets color theme to dark" +msgstr "" + +#: src/view/screens/Settings/index.tsx:496 +msgid "Sets color theme to light" +msgstr "" + +#: src/view/screens/Settings/index.tsx:490 +msgid "Sets color theme to system setting" +msgstr "" + +#: src/view/screens/Settings/index.tsx:529 +msgid "Sets dark theme to the dark theme" +msgstr "" + +#: src/view/screens/Settings/index.tsx:522 +msgid "Sets dark theme to the dim theme" +msgstr "" + #: src/view/com/auth/login/ForgotPasswordForm.tsx:157 msgid "Sets email for password reset" msgstr "パスワードをリセットするためのメールアドレスを入力" @@ -3813,16 +4491,28 @@ msgstr "パスワードをリセットするためのホスティングプロバ #~ msgid "Sets hosting provider to {label}" #~ msgstr "ホスティングプロバイダーを{label}に設定" +#: src/view/com/modals/crop-image/CropImage.web.tsx:123 +msgid "Sets image aspect ratio to square" +msgstr "" + +#: src/view/com/modals/crop-image/CropImage.web.tsx:113 +msgid "Sets image aspect ratio to tall" +msgstr "" + +#: src/view/com/modals/crop-image/CropImage.web.tsx:103 +msgid "Sets image aspect ratio to wide" +msgstr "" + #: src/view/com/auth/create/Step1.tsx:97 #: src/view/com/auth/login/LoginForm.tsx:151 msgid "Sets server for the Bluesky client" msgstr "Blueskyのクライアントのサーバーを設定" -#: src/Navigation.tsx:137 -#: src/view/screens/Settings/index.tsx:294 -#: src/view/shell/desktop/LeftNav.tsx:433 -#: src/view/shell/Drawer.tsx:567 -#: src/view/shell/Drawer.tsx:568 +#: src/Navigation.tsx:139 +#: src/view/screens/Settings/index.tsx:309 +#: src/view/shell/desktop/LeftNav.tsx:437 +#: src/view/shell/Drawer.tsx:570 +#: src/view/shell/Drawer.tsx:571 msgid "Settings" msgstr "設定" @@ -3830,28 +4520,39 @@ msgstr "設定" msgid "Sexual activity or erotic nudity." msgstr "性的行為または性的なヌード。" +#: src/lib/moderation/useGlobalLabelStrings.ts:38 +msgid "Sexually Suggestive" +msgstr "" + #: src/view/com/lightbox/Lightbox.tsx:141 msgctxt "action" msgid "Share" msgstr "共有" -#: src/view/com/profile/ProfileHeader.tsx:295 -#: src/view/com/util/forms/PostDropdownBtn.tsx:231 +#: src/view/com/profile/ProfileMenu.tsx:215 +#: src/view/com/profile/ProfileMenu.tsx:224 +#: src/view/com/util/forms/PostDropdownBtn.tsx:228 #: src/view/com/util/forms/PostDropdownBtn.tsx:237 -#: src/view/com/util/post-ctrls/PostCtrls.tsx:215 -#: src/view/screens/ProfileList.tsx:418 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:218 +#: src/view/screens/ProfileList.tsx:388 msgid "Share" msgstr "共有" -#: src/view/screens/ProfileFeed.tsx:305 +#: src/view/com/profile/ProfileMenu.tsx:373 +#: src/view/com/util/forms/PostDropdownBtn.tsx:347 +msgid "Share anyway" +msgstr "" + +#: src/view/screens/ProfileFeed.tsx:361 +#: src/view/screens/ProfileFeed.tsx:363 msgid "Share feed" msgstr "フィードを共有" -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:43 -#: src/view/com/modals/ContentFilteringSettings.tsx:266 -#: src/view/com/util/moderation/ContentHider.tsx:107 -#: src/view/com/util/moderation/PostHider.tsx:108 -#: src/view/screens/Settings/index.tsx:344 +#: src/components/moderation/ContentHider.tsx:115 +#: src/components/moderation/GlobalModerationLabelPref.tsx:45 +#: src/components/moderation/PostHider.tsx:107 +#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:54 +#: src/view/screens/Settings/index.tsx:359 msgid "Show" msgstr "表示" @@ -3859,21 +4560,31 @@ msgstr "表示" msgid "Show all replies" msgstr "すべての返信を表示" -#: src/view/com/util/moderation/ScreenHider.tsx:132 +#: src/components/moderation/ScreenHider.tsx:162 +#: src/components/moderation/ScreenHider.tsx:165 msgid "Show anyway" msgstr "とにかく表示" +#: src/lib/moderation/useLabelBehaviorDescription.ts:27 +#: src/lib/moderation/useLabelBehaviorDescription.ts:63 +msgid "Show badge" +msgstr "" + +#: src/lib/moderation/useLabelBehaviorDescription.ts:61 +msgid "Show badge and filter from feeds" +msgstr "" + #: src/view/com/modals/EmbedConsent.tsx:87 msgid "Show embeds from {0}" msgstr "{0}による埋め込みを表示" -#: src/view/com/profile/ProfileHeader.tsx:459 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:193 msgid "Show follows similar to {0}" msgstr "{0}に似たおすすめのフォロー候補を表示" -#: src/view/com/post-thread/PostThreadItem.tsx:538 -#: src/view/com/post/Post.tsx:198 -#: src/view/com/posts/FeedItem.tsx:363 +#: src/view/com/post-thread/PostThreadItem.tsx:507 +#: src/view/com/post/Post.tsx:201 +#: src/view/com/posts/FeedItem.tsx:355 msgid "Show More" msgstr "さらに表示" @@ -3925,40 +4636,48 @@ msgstr "リポストを表示" msgid "Show reposts in Following" msgstr "Followingフィードでリポストを表示" -#: src/view/com/util/moderation/ContentHider.tsx:67 -#: src/view/com/util/moderation/PostHider.tsx:61 +#: src/components/moderation/ContentHider.tsx:68 +#: src/components/moderation/PostHider.tsx:64 msgid "Show the content" msgstr "コンテンツを表示" -#: src/view/com/notifications/FeedItem.tsx:347 +#: src/view/com/notifications/FeedItem.tsx:351 msgid "Show users" msgstr "ユーザーを表示" +#: src/lib/moderation/useLabelBehaviorDescription.ts:58 +msgid "Show warning" +msgstr "" + +#: src/lib/moderation/useLabelBehaviorDescription.ts:56 +msgid "Show warning and filter from feeds" +msgstr "" + #: src/view/com/profile/ProfileHeader.tsx:462 -msgid "Shows a list of users similar to this user." -msgstr "このユーザーに似たユーザーのリストを表示します。" +#~ msgid "Shows a list of users similar to this user." +#~ msgstr "このユーザーに似たユーザーのリストを表示します。" -#: src/view/com/post-thread/PostThreadFollowBtn.tsx:124 -#: src/view/com/profile/ProfileHeader.tsx:506 +#: src/view/com/post-thread/PostThreadFollowBtn.tsx:127 msgid "Shows posts from {0} in your feed" msgstr "マイフィード内の{0}からの投稿を表示します" -#: src/view/com/auth/HomeLoggedOutCTA.tsx:70 +#: src/view/com/auth/HomeLoggedOutCTA.tsx:72 #: src/view/com/auth/login/Login.tsx:98 -#: src/view/com/auth/SplashScreen.tsx:79 -#: src/view/shell/bottom-bar/BottomBar.tsx:285 -#: src/view/shell/bottom-bar/BottomBar.tsx:286 -#: src/view/shell/bottom-bar/BottomBar.tsx:288 +#: src/view/com/auth/SplashScreen.tsx:81 +#: src/view/shell/bottom-bar/BottomBar.tsx:289 +#: src/view/shell/bottom-bar/BottomBar.tsx:290 +#: src/view/shell/bottom-bar/BottomBar.tsx:292 #: src/view/shell/bottom-bar/BottomBarWeb.tsx:178 #: src/view/shell/bottom-bar/BottomBarWeb.tsx:179 #: src/view/shell/bottom-bar/BottomBarWeb.tsx:181 #: src/view/shell/NavSignupCard.tsx:58 #: src/view/shell/NavSignupCard.tsx:59 +#: src/view/shell/NavSignupCard.tsx:61 msgid "Sign in" msgstr "サインイン" -#: src/view/com/auth/HomeLoggedOutCTA.tsx:78 -#: src/view/com/auth/SplashScreen.tsx:82 +#: src/view/com/auth/HomeLoggedOutCTA.tsx:82 +#: src/view/com/auth/SplashScreen.tsx:86 #: src/view/com/auth/SplashScreen.web.tsx:91 msgid "Sign In" msgstr "サインイン" @@ -3967,7 +4686,7 @@ msgstr "サインイン" msgid "Sign in as {0}" msgstr "{0}としてサインイン" -#: src/view/com/auth/login/ChooseAccountForm.tsx:118 +#: src/view/com/auth/login/ChooseAccountForm.tsx:122 #: src/view/com/auth/login/Login.tsx:116 msgid "Sign in as..." msgstr "アカウントの選択" @@ -3976,16 +4695,16 @@ msgstr "アカウントの選択" msgid "Sign into" msgstr "サインイン" -#: src/view/com/modals/SwitchAccount.tsx:64 -#: src/view/com/modals/SwitchAccount.tsx:69 -#: src/view/screens/Settings/index.tsx:100 -#: src/view/screens/Settings/index.tsx:103 +#: src/view/com/modals/SwitchAccount.tsx:68 +#: src/view/com/modals/SwitchAccount.tsx:73 +#: src/view/screens/Settings/index.tsx:105 +#: src/view/screens/Settings/index.tsx:108 msgid "Sign out" msgstr "サインアウト" -#: src/view/shell/bottom-bar/BottomBar.tsx:275 -#: src/view/shell/bottom-bar/BottomBar.tsx:276 -#: src/view/shell/bottom-bar/BottomBar.tsx:278 +#: src/view/shell/bottom-bar/BottomBar.tsx:279 +#: src/view/shell/bottom-bar/BottomBar.tsx:280 +#: src/view/shell/bottom-bar/BottomBar.tsx:282 #: src/view/shell/bottom-bar/BottomBarWeb.tsx:168 #: src/view/shell/bottom-bar/BottomBarWeb.tsx:169 #: src/view/shell/bottom-bar/BottomBarWeb.tsx:171 @@ -3999,25 +4718,26 @@ msgstr "サインアップ" msgid "Sign up or sign in to join the conversation" msgstr "サインアップまたはサインインして会話に参加" -#: src/view/com/util/moderation/ScreenHider.tsx:76 +#: src/components/moderation/ScreenHider.tsx:98 +#: src/lib/moderation/useGlobalLabelStrings.ts:28 msgid "Sign-in Required" msgstr "サインインが必要" -#: src/view/screens/Settings/index.tsx:355 +#: src/view/screens/Settings/index.tsx:370 msgid "Signed in as" msgstr "サインイン済み" -#: src/view/com/auth/login/ChooseAccountForm.tsx:103 +#: src/view/com/auth/login/ChooseAccountForm.tsx:107 msgid "Signed in as @{0}" msgstr "@{0}でサインイン" -#: src/view/com/modals/SwitchAccount.tsx:66 +#: src/view/com/modals/SwitchAccount.tsx:70 msgid "Signs {0} out of Bluesky" msgstr "Blueskyから{0}をサインアウト" #: src/screens/Onboarding/StepInterests/index.tsx:235 #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:195 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:33 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:35 msgid "Skip" msgstr "スキップ" @@ -4037,15 +4757,21 @@ msgstr "ソフトウェア開発" #~ msgid "Something went wrong and we're not sure what." #~ msgstr "何かの問題が起きましたが、それが何なのかわかりません。" -#: src/components/Lists.tsx:203 -msgid "Something went wrong!" +#: src/components/ReportDialog/index.tsx:52 +#: src/screens/Moderation/index.tsx:116 +#: src/screens/Profile/Sections/Labels.tsx:77 +msgid "Something went wrong, please try again." msgstr "" +#: src/components/Lists.tsx:203 +#~ msgid "Something went wrong!" +#~ msgstr "" + #: src/view/com/modals/Waitlist.tsx:51 #~ msgid "Something went wrong. Check your email and try again." #~ msgstr "なんらかの問題が発生しました。メールアドレスを確認し、もう一度お試しください。" -#: src/App.native.tsx:66 +#: src/App.native.tsx:71 msgid "Sorry! Your session expired. Please log in again." msgstr "申し訳ありません!セッションの有効期限が切れました。もう一度ログインしてください。" @@ -4057,6 +4783,18 @@ msgstr "返信を並び替える" msgid "Sort replies to the same post by:" msgstr "次の方法で同じ投稿への返信を並び替えます。" +#: src/components/moderation/LabelsOnMeDialog.tsx:147 +msgid "Source:" +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:65 +msgid "Spam" +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:53 +msgid "Spam; excessive mentions or replies" +msgstr "" + #: src/screens/Onboarding/index.tsx:30 msgid "Sports" msgstr "スポーツ" @@ -4069,7 +4807,7 @@ msgstr "正方形" #~ msgid "Staging" #~ msgstr "ステージング" -#: src/view/screens/Settings/index.tsx:871 +#: src/view/screens/Settings/index.tsx:901 msgid "Status page" msgstr "ステータスページ" @@ -4081,29 +4819,42 @@ msgstr "{numSteps}個中{0}個目のステップ" #~ msgid "Step {step} of 3" #~ msgstr "3個中{step}個目のステップ" -#: src/view/screens/Settings/index.tsx:274 +#: src/view/screens/Settings/index.tsx:288 msgid "Storage cleared, you need to restart the app now." msgstr "ストレージがクリアされたため、今すぐアプリを再起動する必要があります。" -#: src/Navigation.tsx:204 -#: src/view/screens/Settings/index.tsx:807 +#: src/Navigation.tsx:211 +#: src/view/screens/Settings/index.tsx:827 msgid "Storybook" msgstr "ストーリーブック" -#: src/view/com/modals/AppealLabel.tsx:101 +#: src/components/moderation/LabelsOnMeDialog.tsx:256 +#: src/components/moderation/LabelsOnMeDialog.tsx:257 msgid "Submit" msgstr "送信" -#: src/view/screens/ProfileList.tsx:608 +#: src/view/screens/ProfileList.tsx:590 msgid "Subscribe" msgstr "登録" +#: src/screens/Profile/Sections/Labels.tsx:181 +msgid "Subscribe to @{0} to use these labels:" +msgstr "" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:222 +msgid "Subscribe to Labeler" +msgstr "" + #: src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx:173 #: src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx:308 msgid "Subscribe to the {0} feed" msgstr "「{0}」フィードを登録" -#: src/view/screens/ProfileList.tsx:604 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:185 +msgid "Subscribe to this labeler" +msgstr "" + +#: src/view/screens/ProfileList.tsx:586 msgid "Subscribe to this list" msgstr "このリストに登録" @@ -4111,11 +4862,11 @@ msgstr "このリストに登録" #~ msgid "Subscribed" #~ msgstr "登録済み" -#: src/view/screens/Search/Search.tsx:374 +#: src/view/screens/Search/Search.tsx:375 msgid "Suggested Follows" msgstr "おすすめのフォロー" -#: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:64 +#: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:65 msgid "Suggested for you" msgstr "あなたへのおすすめ" @@ -4123,7 +4874,7 @@ msgstr "あなたへのおすすめ" msgid "Suggestive" msgstr "きわどい" -#: src/Navigation.tsx:214 +#: src/Navigation.tsx:226 #: src/view/screens/Support.tsx:30 #: src/view/screens/Support.tsx:33 msgid "Support" @@ -4133,29 +4884,29 @@ msgstr "サポート" #~ msgid "Swipe up to see more" #~ msgstr "上にスワイプしてさらに表示" -#: src/view/com/modals/SwitchAccount.tsx:117 +#: src/view/com/modals/SwitchAccount.tsx:121 msgid "Switch Account" msgstr "アカウントを切り替える" -#: src/view/com/modals/SwitchAccount.tsx:97 -#: src/view/screens/Settings/index.tsx:130 +#: src/view/com/modals/SwitchAccount.tsx:101 +#: src/view/screens/Settings/index.tsx:135 msgid "Switch to {0}" msgstr "{0}に切り替え" -#: src/view/com/modals/SwitchAccount.tsx:98 -#: src/view/screens/Settings/index.tsx:131 +#: src/view/com/modals/SwitchAccount.tsx:102 +#: src/view/screens/Settings/index.tsx:136 msgid "Switches the account you are logged in to" msgstr "ログインしているアカウントを切り替えます" -#: src/view/screens/Settings/index.tsx:472 +#: src/view/screens/Settings/index.tsx:487 msgid "System" msgstr "システム" -#: src/view/screens/Settings/index.tsx:795 +#: src/view/screens/Settings/index.tsx:815 msgid "System log" msgstr "システムログ" -#: src/components/dialogs/MutedWords.tsx:337 +#: src/components/dialogs/MutedWords.tsx:324 msgid "tag" msgstr "" @@ -4183,30 +4934,49 @@ msgstr "テクノロジー" msgid "Terms" msgstr "条件" -#: src/Navigation.tsx:224 -#: src/view/screens/Settings/index.tsx:885 +#: src/Navigation.tsx:236 +#: src/view/com/auth/create/Policies.tsx:59 +#: src/view/screens/Settings/index.tsx:915 #: src/view/screens/TermsOfService.tsx:29 -#: src/view/shell/Drawer.tsx:256 +#: src/view/shell/Drawer.tsx:259 msgid "Terms of Service" msgstr "利用規約" -#: src/components/dialogs/MutedWords.tsx:337 +#: src/lib/moderation/useReportOptions.ts:58 +#: src/lib/moderation/useReportOptions.ts:79 +#: src/lib/moderation/useReportOptions.ts:87 +msgid "Terms used violate community standards" +msgstr "" + +#: src/components/dialogs/MutedWords.tsx:324 msgid "text" msgstr "" -#: src/view/com/modals/AppealLabel.tsx:70 -#: src/view/com/modals/report/InputIssueDetails.tsx:51 +#: src/components/moderation/LabelsOnMeDialog.tsx:220 msgid "Text input field" msgstr "テキストの入力フィールド" +#: src/components/ReportDialog/SubmitView.tsx:78 +msgid "Thank you. Your report has been sent." +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:466 +msgid "That contains the following:" +msgstr "" + #: src/view/com/auth/create/CreateAccount.tsx:94 msgid "That handle is already taken." msgstr "" -#: src/view/com/profile/ProfileHeader.tsx:263 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:274 +#: src/view/com/profile/ProfileMenu.tsx:349 msgid "The account will be able to interact with you after unblocking." msgstr "このアカウントは、ブロック解除後にあなたとやり取りすることができます。" +#: src/components/moderation/ModerationDetailsDialog.tsx:128 +msgid "the author" +msgstr "" + #: src/view/screens/CommunityGuidelines.tsx:36 msgid "The Community Guidelines have been moved to <0/>" msgstr "コミュニティーガイドラインは<0/>に移動しました" @@ -4215,11 +4985,20 @@ msgstr "コミュニティーガイドラインは<0/>に移動しました" msgid "The Copyright Policy has been moved to <0/>" msgstr "著作権ポリシーは<0/>に移動しました" +#: src/components/moderation/LabelsOnMeDialog.tsx:49 +msgid "The following labels were applied to your account." +msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:50 +msgid "The following labels were applied to your content." +msgstr "" + #: src/screens/Onboarding/Layout.tsx:60 msgid "The following steps will help customize your Bluesky experience." msgstr "次の手順であなたのBlueskyでの体験をカスタマイズできます。" -#: src/view/com/post-thread/PostThread.tsx:517 +#: src/view/com/post-thread/PostThread.tsx:153 +#: src/view/com/post-thread/PostThread.tsx:165 msgid "The post may have been deleted." msgstr "投稿が削除された可能性があります。" @@ -4243,20 +5022,21 @@ msgstr "サービス規約は移動しました" msgid "There are many feeds to try:" msgstr "試せるフィードはたくさんあります:" -#: src/view/screens/ProfileFeed.tsx:550 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:113 +#: src/view/screens/ProfileFeed.tsx:543 msgid "There was an an issue contacting the server, please check your internet connection and try again." msgstr "サーバーへの問い合わせ中に問題が発生しました。インターネットへの接続を確認の上、もう一度お試しください。" -#: src/view/com/posts/FeedErrorMessage.tsx:139 +#: src/view/com/posts/FeedErrorMessage.tsx:138 msgid "There was an an issue removing this feed. Please check your internet connection and try again." msgstr "フィードの削除中に問題が発生しました。インターネットへの接続を確認の上、もう一度お試しください。" -#: src/view/screens/ProfileFeed.tsx:210 +#: src/view/screens/ProfileFeed.tsx:217 msgid "There was an an issue updating your feeds, please check your internet connection and try again." msgstr "フィードの更新中に問題が発生しました。インターネットへの接続を確認の上、もう一度お試しください。" -#: src/view/screens/ProfileFeed.tsx:237 -#: src/view/screens/ProfileList.tsx:267 +#: src/view/screens/ProfileFeed.tsx:244 +#: src/view/screens/ProfileList.tsx:275 #: src/view/screens/SavedFeeds.tsx:209 #: src/view/screens/SavedFeeds.tsx:231 #: src/view/screens/SavedFeeds.tsx:252 @@ -4265,9 +5045,8 @@ msgstr "サーバーへの問い合わせ中に問題が発生しました" #: src/view/com/auth/onboarding/RecommendedFeedsItem.tsx:57 #: src/view/com/auth/onboarding/RecommendedFeedsItem.tsx:66 -#: src/view/com/feeds/FeedSourceCard.tsx:115 -#: src/view/com/feeds/FeedSourceCard.tsx:129 -#: src/view/com/feeds/FeedSourceCard.tsx:183 +#: src/view/com/feeds/FeedSourceCard.tsx:110 +#: src/view/com/feeds/FeedSourceCard.tsx:123 msgid "There was an issue contacting your server" msgstr "サーバーへの問い合わせ中に問題が発生しました" @@ -4275,7 +5054,7 @@ msgstr "サーバーへの問い合わせ中に問題が発生しました" msgid "There was an issue fetching notifications. Tap here to try again." msgstr "通知の取得中に問題が発生しました。もう一度試すにはこちらをタップしてください。" -#: src/view/com/posts/Feed.tsx:265 +#: src/view/com/posts/Feed.tsx:283 msgid "There was an issue fetching posts. Tap here to try again." msgstr "投稿の取得中に問題が発生しました。もう一度試すにはこちらをタップしてください。" @@ -4288,34 +5067,40 @@ msgstr "リストの取得中に問題が発生しました。もう一度試す msgid "There was an issue fetching your lists. Tap here to try again." msgstr "リストの取得中に問題が発生しました。もう一度試すにはこちらをタップしてください。" -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:63 -#: src/view/com/modals/ContentFilteringSettings.tsx:126 +#: src/components/ReportDialog/SubmitView.tsx:83 +msgid "There was an issue sending your report. Please check your internet connection." +msgstr "" + +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:65 msgid "There was an issue syncing your preferences with the server" msgstr "設定をサーバーと同期中に問題が発生しました" -#: src/view/screens/AppPasswords.tsx:66 +#: src/view/screens/AppPasswords.tsx:68 msgid "There was an issue with fetching your app passwords" msgstr "アプリパスワードの取得中に問題が発生しました" -#: src/view/com/post-thread/PostThreadFollowBtn.tsx:93 -#: src/view/com/post-thread/PostThreadFollowBtn.tsx:105 -#: src/view/com/profile/ProfileHeader.tsx:157 -#: src/view/com/profile/ProfileHeader.tsx:178 -#: src/view/com/profile/ProfileHeader.tsx:217 -#: src/view/com/profile/ProfileHeader.tsx:230 -#: src/view/com/profile/ProfileHeader.tsx:250 -#: src/view/com/profile/ProfileHeader.tsx:272 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:98 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:120 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:134 +#: src/view/com/post-thread/PostThreadFollowBtn.tsx:96 +#: src/view/com/post-thread/PostThreadFollowBtn.tsx:108 +#: src/view/com/profile/ProfileMenu.tsx:106 +#: src/view/com/profile/ProfileMenu.tsx:117 +#: src/view/com/profile/ProfileMenu.tsx:132 +#: src/view/com/profile/ProfileMenu.tsx:143 +#: src/view/com/profile/ProfileMenu.tsx:157 +#: src/view/com/profile/ProfileMenu.tsx:170 msgid "There was an issue! {0}" msgstr "問題が発生しました!{0}" #: src/view/screens/ProfileList.tsx:288 -#: src/view/screens/ProfileList.tsx:307 -#: src/view/screens/ProfileList.tsx:329 -#: src/view/screens/ProfileList.tsx:348 +#: src/view/screens/ProfileList.tsx:302 +#: src/view/screens/ProfileList.tsx:316 +#: src/view/screens/ProfileList.tsx:330 msgid "There was an issue. Please check your internet connection and try again." msgstr "問題が発生しました。インターネットへの接続を確認の上、もう一度お試しください。" -#: src/view/com/util/ErrorBoundary.tsx:36 +#: src/view/com/util/ErrorBoundary.tsx:51 msgid "There was an unexpected issue in the application. Please let us know if this happened to you!" msgstr "アプリケーションに予期しない問題が発生しました。このようなことが繰り返した場合はサポートへお知らせください!" @@ -4339,19 +5124,32 @@ msgstr "これらは、あなたが好きかもしれない人気のあるアカ #~ msgid "This {0} has been labeled." #~ msgstr "この{0}にはラベルが貼られています" -#: src/view/com/util/moderation/ScreenHider.tsx:88 +#: src/components/moderation/ScreenHider.tsx:117 msgid "This {screenDescription} has been flagged:" msgstr "この{screenDescription}にはフラグが設定されています:" -#: src/view/com/util/moderation/ScreenHider.tsx:83 +#: src/components/moderation/ScreenHider.tsx:112 msgid "This account has requested that users sign in to view their profile." msgstr "このアカウントを閲覧するためにはサインインが必要です。" +#: src/components/moderation/LabelsOnMeDialog.tsx:205 +msgid "This appeal will be sent to <0>{0}." +msgstr "" + +#: src/lib/moderation/useGlobalLabelStrings.ts:19 +msgid "This content has been hidden by the moderators." +msgstr "" + +#: src/lib/moderation/useGlobalLabelStrings.ts:24 +msgid "This content has received a general warning from moderators." +msgstr "" + #: src/view/com/modals/EmbedConsent.tsx:68 msgid "This content is hosted by {0}. Do you want to enable external media?" msgstr "このコンテンツは{0}によってホストされています。外部メディアを有効にしますか?" -#: src/view/com/modals/ModerationDetails.tsx:67 +#: src/components/moderation/ModerationDetailsDialog.tsx:78 +#: src/lib/moderation/useModerationCauseDescription.ts:77 msgid "This content is not available because one of the users involved has blocked the other." msgstr "このコンテンツは関係するユーザーの一方が他方をブロックしているため、利用できません。" @@ -4360,16 +5158,20 @@ msgid "This content is not viewable without a Bluesky account." msgstr "このコンテンツはBlueskyのアカウントがないと閲覧できません。" #: src/view/screens/Settings/ExportCarDialog.tsx:75 -msgid "This feature is in beta. You can read more about repository exports in <0>this blogpost." -msgstr "この機能はベータ版です。 リポジトリのエクスポートの詳細については、以下を参照してください。<0>このブログ投稿" +#~ msgid "This feature is in beta. You can read more about repository exports in <0>this blogpost." +#~ msgstr "この機能はベータ版です。 リポジトリのエクスポートの詳細については、以下を参照してください。<0>このブログ投稿" + +#: src/view/screens/Settings/ExportCarDialog.tsx:75 +msgid "This feature is in beta. You can read more about repository exports in <0>this blogpost." +msgstr "" #: src/view/com/posts/FeedErrorMessage.tsx:114 msgid "This feed is currently receiving high traffic and is temporarily unavailable. Please try again later." msgstr "現在このフィードにはアクセスが集中しており、一時的にご利用いただけません。時間をおいてもう一度お試しください。" -#: src/view/screens/Profile.tsx:420 +#: src/screens/Profile/Sections/Feed.tsx:50 #: src/view/screens/ProfileFeed.tsx:476 -#: src/view/screens/ProfileList.tsx:661 +#: src/view/screens/ProfileList.tsx:675 msgid "This feed is empty!" msgstr "このフィードは空です!" @@ -4377,7 +5179,7 @@ msgstr "このフィードは空です!" msgid "This feed is empty! You may need to follow more users or tune your language settings." msgstr "このフィードは空です!もっと多くのユーザーをフォローするか、言語の設定を調整する必要があるかもしれません。" -#: src/view/com/modals/BirthDateSettings.tsx:61 +#: src/components/dialogs/BirthDateSettings.tsx:41 msgid "This information is not shared with other users." msgstr "この情報は他のユーザーと共有されません。" @@ -4389,14 +5191,26 @@ msgstr "これは、メールアドレスの変更やパスワードのリセッ #~ msgid "This is the service that keeps you online." #~ msgstr "これはオンラインを維持するためのサービスです。" +#: src/components/moderation/ModerationDetailsDialog.tsx:125 +msgid "This label was applied by {0}." +msgstr "" + +#: src/screens/Profile/Sections/Labels.tsx:168 +msgid "This labeler hasn't declared what labels it publishes, and may not be active." +msgstr "" + #: src/view/com/modals/LinkWarning.tsx:58 msgid "This link is taking you to the following website:" msgstr "このリンクは次のウェブサイトへリンクしています:" -#: src/view/screens/ProfileList.tsx:839 +#: src/view/screens/ProfileList.tsx:853 msgid "This list is empty!" msgstr "このリストは空です!" +#: src/screens/Profile/ErrorState.tsx:40 +msgid "This moderation service is unavailable. See below for more details. If this issue persists, contact us." +msgstr "" + #: src/view/com/modals/AddAppPasswords.tsx:106 msgid "This name is already in use" msgstr "この名前はすでに使用中です" @@ -4405,36 +5219,81 @@ msgstr "この名前はすでに使用中です" msgid "This post has been deleted." msgstr "この投稿は削除されました。" -#: src/view/com/modals/ModerationDetails.tsx:62 +#: src/view/com/util/forms/PostDropdownBtn.tsx:344 +msgid "This post is only visible to logged-in users. It won't be visible to people who aren't logged in." +msgstr "" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:326 +msgid "This post will be hidden from feeds." +msgstr "" + +#: src/view/com/profile/ProfileMenu.tsx:370 +msgid "This profile is only visible to logged-in users. It won't be visible to people who aren't logged in." +msgstr "" + +#: src/view/com/auth/create/Policies.tsx:46 +msgid "This service has not provided terms of service or a privacy policy." +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:446 +msgid "This should create a domain record at:" +msgstr "" + +#: src/view/com/profile/ProfileFollowers.tsx:95 +msgid "This user doesn't have any followers." +msgstr "" + +#: src/components/moderation/ModerationDetailsDialog.tsx:73 +#: src/lib/moderation/useModerationCauseDescription.ts:68 msgid "This user has blocked you. You cannot view their content." msgstr "このユーザーはあなたをブロックしているため、あなたはこのユーザーのコンテンツを閲覧できません。" +#: src/lib/moderation/useGlobalLabelStrings.ts:30 +msgid "This user has requested that their content only be shown to signed-in users." +msgstr "" + #: src/view/com/modals/ModerationDetails.tsx:42 -msgid "This user is included in the <0/> list which you have blocked." -msgstr "このユーザーは、あなたがブロックした<0/>リストに含まれています。" +#~ msgid "This user is included in the <0/> list which you have blocked." +#~ msgstr "このユーザーは、あなたがブロックした<0/>リストに含まれています。" #: src/view/com/modals/ModerationDetails.tsx:74 -msgid "This user is included in the <0/> list which you have muted." -msgstr "このユーザーは、あなたがミュートした<0/>リストに含まれています。" +#~ msgid "This user is included in the <0/> list which you have muted." +#~ msgstr "このユーザーは、あなたがミュートした<0/>リストに含まれています。" + +#: src/components/moderation/ModerationDetailsDialog.tsx:56 +msgid "This user is included in the <0>{0} list which you have blocked." +msgstr "" + +#: src/components/moderation/ModerationDetailsDialog.tsx:85 +msgid "This user is included in the <0>{0} list which you have muted." +msgstr "" #: src/view/com/modals/ModerationDetails.tsx:74 #~ msgid "This user is included the <0/> list which you have muted." #~ msgstr "このユーザーは、あなたがミュートした<0/>リストに含まれています。" +#: src/view/com/profile/ProfileFollows.tsx:94 +msgid "This user isn't following anyone." +msgstr "" + #: src/view/com/modals/SelfLabel.tsx:137 msgid "This warning is only available for posts with media attached." msgstr "この警告は、メディアが添付されている投稿にのみ使用できます。" -#: src/components/dialogs/MutedWords.tsx:285 +#: src/components/dialogs/MutedWords.tsx:284 msgid "This will delete {0} from your muted words. You can always add it back later." msgstr "" #: src/view/com/util/forms/PostDropdownBtn.tsx:282 -msgid "This will hide this post from your feeds." -msgstr "この投稿をあなたのフィードにおいて非表示にします。" +#~ msgid "This will hide this post from your feeds." +#~ msgstr "この投稿をあなたのフィードにおいて非表示にします。" + +#: src/view/screens/Settings/index.tsx:570 +msgid "Thread preferences" +msgstr "" #: src/view/screens/PreferencesThreads.tsx:53 -#: src/view/screens/Settings/index.tsx:565 +#: src/view/screens/Settings/index.tsx:580 msgid "Thread Preferences" msgstr "スレッドの設定" @@ -4442,10 +5301,14 @@ msgstr "スレッドの設定" msgid "Threaded Mode" msgstr "スレッドモード" -#: src/Navigation.tsx:257 +#: src/Navigation.tsx:269 msgid "Threads Preferences" msgstr "スレッドの設定" +#: src/components/ReportDialog/SelectLabelerView.tsx:35 +msgid "To whom would you like to send this report?" +msgstr "" + #: src/components/dialogs/MutedWords.tsx:113 msgid "Toggle between muted word options." msgstr "" @@ -4454,14 +5317,18 @@ msgstr "" msgid "Toggle dropdown" msgstr "ドロップダウンをトグル" +#: src/screens/Moderation/index.tsx:334 +msgid "Toggle to enable or disable adult content" +msgstr "" + #: src/view/com/modals/EditImage.tsx:271 msgid "Transformations" msgstr "変換" -#: src/view/com/post-thread/PostThreadItem.tsx:685 -#: src/view/com/post-thread/PostThreadItem.tsx:687 -#: src/view/com/util/forms/PostDropdownBtn.tsx:215 -#: src/view/com/util/forms/PostDropdownBtn.tsx:217 +#: src/view/com/post-thread/PostThreadItem.tsx:644 +#: src/view/com/post-thread/PostThreadItem.tsx:646 +#: src/view/com/util/forms/PostDropdownBtn.tsx:212 +#: src/view/com/util/forms/PostDropdownBtn.tsx:214 msgid "Translate" msgstr "翻訳" @@ -4474,11 +5341,15 @@ msgstr "再試行" #~ msgid "Try again" #~ msgstr "再試行" -#: src/view/screens/ProfileList.tsx:506 +#: src/view/com/modals/ChangeHandle.tsx:429 +msgid "Type:" +msgstr "" + +#: src/view/screens/ProfileList.tsx:478 msgid "Un-block list" msgstr "リストでのブロックを解除" -#: src/view/screens/ProfileList.tsx:491 +#: src/view/screens/ProfileList.tsx:461 msgid "Un-mute list" msgstr "リストでのミュートを解除" @@ -4490,21 +5361,28 @@ msgstr "リストでのミュートを解除" msgid "Unable to contact your service. Please check your Internet connection." msgstr "あなたのサービスに接続できません。インターネットの接続を確認してください。" -#: src/view/com/profile/ProfileHeader.tsx:433 -#: src/view/screens/ProfileList.tsx:590 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:174 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:278 +#: src/view/com/profile/ProfileMenu.tsx:361 +#: src/view/screens/ProfileList.tsx:572 msgid "Unblock" msgstr "ブロックを解除" -#: src/view/com/profile/ProfileHeader.tsx:436 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:179 msgctxt "action" msgid "Unblock" msgstr "ブロックを解除" -#: src/view/com/profile/ProfileHeader.tsx:261 -#: src/view/com/profile/ProfileHeader.tsx:345 +#: src/view/com/profile/ProfileMenu.tsx:299 +#: src/view/com/profile/ProfileMenu.tsx:305 msgid "Unblock Account" msgstr "アカウントのブロックを解除" +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:272 +#: src/view/com/profile/ProfileMenu.tsx:343 +msgid "Unblock Account?" +msgstr "" + #: src/view/com/modals/Repost.tsx:42 #: src/view/com/modals/Repost.tsx:55 #: src/view/com/util/post-ctrls/RepostButton.tsx:60 @@ -4512,25 +5390,39 @@ msgstr "アカウントのブロックを解除" msgid "Undo repost" msgstr "リポストを元に戻す" -#: src/view/com/profile/FollowButton.tsx:55 +#: src/view/com/auth/onboarding/RecommendedFollowsItem.tsx:141 +#: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:246 +msgid "Unfollow" +msgstr "" + +#: src/view/com/profile/FollowButton.tsx:60 msgctxt "action" msgid "Unfollow" msgstr "フォローをやめる" -#: src/view/com/profile/ProfileHeader.tsx:485 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:213 msgid "Unfollow {0}" msgstr "{0}のフォローを解除" +#: src/view/com/profile/ProfileMenu.tsx:241 +#: src/view/com/profile/ProfileMenu.tsx:251 +msgid "Unfollow Account" +msgstr "" + #: src/view/com/auth/create/state.ts:262 msgid "Unfortunately, you do not meet the requirements to create an account." msgstr "残念ながら、アカウントを作成するための要件を満たしていません。" -#: src/view/com/util/post-ctrls/PostCtrls.tsx:182 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:185 msgid "Unlike" msgstr "いいねを外す" +#: src/view/screens/ProfileFeed.tsx:572 +msgid "Unlike this feed" +msgstr "" + #: src/components/TagMenu/index.tsx:249 -#: src/view/screens/ProfileList.tsx:597 +#: src/view/screens/ProfileList.tsx:579 msgid "Unmute" msgstr "ミュートを解除" @@ -4538,7 +5430,8 @@ msgstr "ミュートを解除" msgid "Unmute {truncatedTag}" msgstr "" -#: src/view/com/profile/ProfileHeader.tsx:326 +#: src/view/com/profile/ProfileMenu.tsx:278 +#: src/view/com/profile/ProfileMenu.tsx:284 msgid "Unmute Account" msgstr "アカウントのミュートを解除" @@ -4555,26 +5448,46 @@ msgstr "" msgid "Unmute thread" msgstr "スレッドのミュートを解除" -#: src/view/screens/ProfileFeed.tsx:354 -#: src/view/screens/ProfileList.tsx:581 +#: src/view/screens/ProfileFeed.tsx:294 +#: src/view/screens/ProfileList.tsx:563 msgid "Unpin" msgstr "ピン留めを解除" -#: src/view/screens/ProfileList.tsx:474 +#: src/view/screens/ProfileFeed.tsx:291 +msgid "Unpin from home" +msgstr "" + +#: src/view/screens/ProfileList.tsx:444 msgid "Unpin moderation list" msgstr "モデレーションリストのピン留めを解除" #: src/view/screens/ProfileFeed.tsx:346 -msgid "Unsave" -msgstr "保存を解除" +#~ msgid "Unsave" +#~ msgstr "保存を解除" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:220 +msgid "Unsubscribe" +msgstr "" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:184 +msgid "Unsubscribe from this labeler" +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:70 +msgid "Unwanted Sexual Content" +msgstr "" #: src/view/com/modals/UserAddRemoveLists.tsx:70 msgid "Update {displayName} in Lists" msgstr "リストの{displayName}を更新" #: src/lib/hooks/useOTAUpdate.ts:15 -msgid "Update Available" -msgstr "更新可能" +#~ msgid "Update Available" +#~ msgstr "更新可能" + +#: src/view/com/modals/ChangeHandle.tsx:509 +msgid "Update to {handle}" +msgstr "" #: src/view/com/auth/login/SetNewPasswordForm.tsx:204 msgid "Updating..." @@ -4584,11 +5497,38 @@ msgstr "更新中…" msgid "Upload a text file to:" msgstr "テキストファイルのアップロード先:" -#: src/view/screens/AppPasswords.tsx:195 +#: src/view/com/util/UserAvatar.tsx:326 +#: src/view/com/util/UserAvatar.tsx:329 +#: src/view/com/util/UserBanner.tsx:116 +#: src/view/com/util/UserBanner.tsx:119 +msgid "Upload from Camera" +msgstr "" + +#: src/view/com/util/UserAvatar.tsx:343 +#: src/view/com/util/UserBanner.tsx:133 +msgid "Upload from Files" +msgstr "" + +#: src/view/com/util/UserAvatar.tsx:337 +#: src/view/com/util/UserAvatar.tsx:341 +#: src/view/com/util/UserBanner.tsx:127 +#: src/view/com/util/UserBanner.tsx:131 +msgid "Upload from Library" +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:409 +msgid "Use a file on your server" +msgstr "" + +#: src/view/screens/AppPasswords.tsx:197 msgid "Use app passwords to login to other Bluesky clients without giving full access to your account or password." msgstr "他のBlueskyクライアントにアカウントやパスワードに完全にアクセスする権限を与えずに、アプリパスワードを使ってログインします。" -#: src/view/com/modals/ChangeHandle.tsx:515 +#: src/view/com/modals/ChangeHandle.tsx:518 +msgid "Use bsky.social as hosting provider" +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:517 msgid "Use default provider" msgstr "デフォルトプロバイダーを使用" @@ -4602,6 +5542,10 @@ msgstr "アプリ内ブラウザーを使用" msgid "Use my default browser" msgstr "デフォルトのブラウザーを使用" +#: src/view/com/modals/ChangeHandle.tsx:401 +msgid "Use the DNS panel" +msgstr "" + #: src/view/com/modals/AddAppPasswords.tsx:155 msgid "Use this to sign into the other app along with your handle." msgstr "このアプリパスワードとハンドルを使って他のアプリにサインインします。" @@ -4614,15 +5558,24 @@ msgstr "このアプリパスワードとハンドルを使って他のアプリ msgid "Used by:" msgstr "使用者:" -#: src/view/com/modals/ModerationDetails.tsx:54 +#: src/components/moderation/ModerationDetailsDialog.tsx:65 +#: src/lib/moderation/useModerationCauseDescription.ts:56 msgid "User Blocked" msgstr "ブロック中のユーザー" -#: src/view/com/modals/ModerationDetails.tsx:40 +#: src/lib/moderation/useModerationCauseDescription.ts:48 +msgid "User Blocked by \"{0}\"" +msgstr "" + +#: src/components/moderation/ModerationDetailsDialog.tsx:54 msgid "User Blocked by List" msgstr "リストによってブロック中のユーザー" -#: src/view/com/modals/ModerationDetails.tsx:60 +#: src/lib/moderation/useModerationCauseDescription.ts:66 +msgid "User Blocking You" +msgstr "" + +#: src/components/moderation/ModerationDetailsDialog.tsx:71 msgid "User Blocks You" msgstr "あなたをブロックしているユーザー" @@ -4635,13 +5588,13 @@ msgstr "ユーザーハンドル" msgid "User list by {0}" msgstr "<0/>の作成したユーザーリスト" -#: src/view/screens/ProfileList.tsx:763 +#: src/view/screens/ProfileList.tsx:777 msgid "User list by <0/>" msgstr "<0/>の作成したユーザーリスト" #: src/view/com/lists/ListCard.tsx:83 #: src/view/com/modals/UserAddRemoveLists.tsx:196 -#: src/view/screens/ProfileList.tsx:761 +#: src/view/screens/ProfileList.tsx:775 msgid "User list by you" msgstr "あなたの作成したユーザーリスト" @@ -4662,7 +5615,7 @@ msgstr "ユーザーリスト" msgid "Username or email address" msgstr "ユーザー名またはメールアドレス" -#: src/view/screens/ProfileList.tsx:797 +#: src/view/screens/ProfileList.tsx:811 msgid "Users" msgstr "ユーザー" @@ -4674,19 +5627,31 @@ msgstr "<0/>にフォローされているユーザー" msgid "Users in \"{0}\"" msgstr "{0}のユーザー" +#: src/components/LikesDialog.tsx:85 +msgid "Users that have liked this content or profile" +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:437 +msgid "Value:" +msgstr "" + #: src/view/com/auth/create/Step2.tsx:243 #~ msgid "Verification code" #~ msgstr "認証コード" -#: src/view/screens/Settings/index.tsx:910 +#: src/view/com/modals/ChangeHandle.tsx:510 +msgid "Verify {0}" +msgstr "" + +#: src/view/screens/Settings/index.tsx:940 msgid "Verify email" msgstr "メールアドレスを確認" -#: src/view/screens/Settings/index.tsx:935 +#: src/view/screens/Settings/index.tsx:965 msgid "Verify my email" msgstr "メールアドレスを確認" -#: src/view/screens/Settings/index.tsx:944 +#: src/view/screens/Settings/index.tsx:974 msgid "Verify My Email" msgstr "メールアドレスを確認" @@ -4703,7 +5668,7 @@ msgstr "メールアドレスを確認" msgid "Video Games" msgstr "ビデオゲーム" -#: src/view/com/profile/ProfileHeader.tsx:662 +#: src/screens/Profile/Header/Shell.tsx:110 msgid "View {0}'s avatar" msgstr "{0}のアバターを表示" @@ -4711,11 +5676,23 @@ msgstr "{0}のアバターを表示" msgid "View debug entry" msgstr "デバッグエントリーを表示" -#: src/view/com/posts/FeedSlice.tsx:103 +#: src/components/ReportDialog/SelectReportOptionView.tsx:133 +msgid "View details" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:128 +msgid "View details for reporting a copyright violation" +msgstr "" + +#: src/view/com/posts/FeedSlice.tsx:99 msgid "View full thread" msgstr "スレッドをすべて表示" -#: src/view/com/posts/FeedErrorMessage.tsx:172 +#: src/components/moderation/LabelsOnMe.tsx:51 +msgid "View information about these labels" +msgstr "" + +#: src/view/com/posts/FeedErrorMessage.tsx:166 msgid "View profile" msgstr "プロフィールを表示" @@ -4723,15 +5700,34 @@ msgstr "プロフィールを表示" msgid "View the avatar" msgstr "アバターを表示" +#: src/components/LabelingServiceCard/index.tsx:140 +msgid "View the labeling service provided by @{0}" +msgstr "" + +#: src/view/screens/ProfileFeed.tsx:584 +msgid "View users who like this feed" +msgstr "" + #: src/view/com/modals/LinkWarning.tsx:75 +#: src/view/com/modals/LinkWarning.tsx:77 msgid "Visit Site" msgstr "サイトへアクセス" -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:42 -#: src/view/com/modals/ContentFilteringSettings.tsx:259 +#: src/components/moderation/GlobalModerationLabelPref.tsx:44 +#: src/lib/moderation/useLabelBehaviorDescription.ts:17 +#: src/lib/moderation/useLabelBehaviorDescription.ts:22 +#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:53 msgid "Warn" msgstr "警告" +#: src/lib/moderation/useLabelBehaviorDescription.ts:48 +msgid "Warn content" +msgstr "" + +#: src/lib/moderation/useLabelBehaviorDescription.ts:46 +msgid "Warn content and filter from feeds" +msgstr "" + #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:134 msgid "We also think you'll like \"For You\" by Skygaze:" msgstr "Skygazeによる「For You」フィードもおすすめ:" @@ -4768,6 +5764,14 @@ msgstr "" msgid "We recommend our \"Discover\" feed:" msgstr "我々の「Discover」フィードがおすすめ:" +#: src/components/dialogs/BirthDateSettings.tsx:52 +msgid "We were unable to load your birth date preferences. Please try again." +msgstr "" + +#: src/screens/Moderation/index.tsx:387 +msgid "We were unable to load your configured labelers at this time." +msgstr "" + #: src/screens/Onboarding/StepInterests/index.tsx:133 msgid "We weren't able to connect. Please try again to continue setting up your account. If it continues to fail, you can skip this flow." msgstr "接続できませんでした。アカウントの設定を続けるためにもう一度お試しください。繰り返し失敗する場合は、この手順をスキップすることもできます。" @@ -4777,8 +5781,8 @@ msgid "We will let you know when your account is ready." msgstr "アカウントの準備ができたらお知らせします。" #: src/view/com/modals/AppealLabel.tsx:48 -msgid "We'll look into your appeal promptly." -msgstr "私たちはあなたの申し立てを迅速に調査します。" +#~ msgid "We'll look into your appeal promptly." +#~ msgstr "私たちはあなたの申し立てを迅速に調査します。" #: src/screens/Onboarding/StepInterests/index.tsx:138 msgid "We'll use this to help customize your experience." @@ -4788,7 +5792,7 @@ msgstr "これはあなたの体験をカスタマイズするために使用さ msgid "We're so excited to have you join us!" msgstr "私たちはあなたが参加してくれることをとても楽しみにしています!" -#: src/view/screens/ProfileList.tsx:86 +#: src/view/screens/ProfileList.tsx:89 msgid "We're sorry, but we were unable to resolve this list. If this persists, please contact the list creator, @{handleOrDid}." msgstr "大変申し訳ありませんが、このリストを解決できませんでした。それでもこの問題が解決しない場合は、作成者の@{handleOrDid}までお問い合わせください。" @@ -4796,16 +5800,20 @@ msgstr "大変申し訳ありませんが、このリストを解決できませ msgid "We're sorry, but we weren't able to load your muted words at this time. Please try again." msgstr "" -#: src/view/screens/Search/Search.tsx:254 +#: src/view/screens/Search/Search.tsx:255 msgid "We're sorry, but your search could not be completed. Please try again in a few minutes." msgstr "大変申し訳ありませんが、検索を完了できませんでした。数分後に再試行してください。" -#: src/components/Lists.tsx:211 +#: src/components/Lists.tsx:194 #: src/view/screens/NotFound.tsx:48 msgid "We're sorry! We can't find the page you were looking for." msgstr "大変申し訳ありません!お探しのページが見つかりません。" -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:46 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:319 +msgid "We're sorry! You can only subscribe to ten labelers, and you've reached your limit of ten." +msgstr "" + +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:48 msgid "Welcome to <0>Bluesky" msgstr "<0>Blueskyへようこそ" @@ -4814,11 +5822,11 @@ msgid "What are your interests?" msgstr "何に興味がありますか?" #: src/view/com/modals/report/Modal.tsx:169 -msgid "What is the issue with this {collectionName}?" -msgstr "この{collectionName}の問題は何ですか?" +#~ msgid "What is the issue with this {collectionName}?" +#~ msgstr "この{collectionName}の問題は何ですか?" #: src/view/com/auth/SplashScreen.tsx:59 -#: src/view/com/composer/Composer.tsx:286 +#: src/view/com/composer/Composer.tsx:295 msgid "What's up?" msgstr "最近どう?" @@ -4835,16 +5843,36 @@ msgstr "アルゴリズムによるフィードにはどの言語を使用しま msgid "Who can reply" msgstr "返信できるユーザー" +#: src/components/ReportDialog/SelectReportOptionView.tsx:44 +msgid "Why should this content be reviewed?" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:57 +msgid "Why should this feed be reviewed?" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:54 +msgid "Why should this list be reviewed?" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:51 +msgid "Why should this post be reviewed?" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:48 +msgid "Why should this user be reviewed?" +msgstr "" + #: src/view/com/modals/crop-image/CropImage.web.tsx:102 msgid "Wide" msgstr "ワイド" -#: src/view/com/composer/Composer.tsx:422 +#: src/view/com/composer/Composer.tsx:435 msgid "Write post" msgstr "投稿を書く" -#: src/view/com/composer/Composer.tsx:285 -#: src/view/com/composer/Prompt.tsx:33 +#: src/view/com/composer/Composer.tsx:294 +#: src/view/com/composer/Prompt.tsx:37 msgid "Write your reply" msgstr "返信を書く" @@ -4874,6 +5902,10 @@ msgstr "はい" msgid "You are in line." msgstr "あなたは並んでいます。" +#: src/view/com/profile/ProfileFollows.tsx:93 +msgid "You are not following anyone." +msgstr "" + #: src/view/com/posts/FollowingEmptyState.tsx:67 #: src/view/com/posts/FollowingEndOfFeed.tsx:68 msgid "You can also discover new Custom Feeds to follow." @@ -4896,6 +5928,10 @@ msgstr "これらの設定はあとで変更できます。" msgid "You can now sign in with your new password." msgstr "新しいパスワードでサインインできるようになりました。" +#: src/view/com/profile/ProfileFollowers.tsx:94 +msgid "You do not have any followers." +msgstr "" + #: src/view/com/modals/InviteCodes.tsx:66 msgid "You don't have any invite codes yet! We'll send you some when you've been on Bluesky for a little longer." msgstr "まだ招待コードがありません!Blueskyをもうしばらく利用したらお送りします。" @@ -4912,11 +5948,13 @@ msgstr "保存されたフィードがありません!" msgid "You don't have any saved feeds." msgstr "保存されたフィードがありません。" -#: src/view/com/post-thread/PostThread.tsx:465 +#: src/view/com/post-thread/PostThread.tsx:159 msgid "You have blocked the author or you have been blocked by the author." msgstr "あなたが投稿者をブロックしているか、または投稿者によってあなたはブロックされています。" -#: src/view/com/modals/ModerationDetails.tsx:56 +#: src/components/moderation/ModerationDetailsDialog.tsx:67 +#: src/lib/moderation/useModerationCauseDescription.ts:50 +#: src/lib/moderation/useModerationCauseDescription.ts:58 msgid "You have blocked this user. You cannot view their content." msgstr "あなたはこのユーザーをブロックしているため、コンテンツを閲覧できません。" @@ -4927,9 +5965,26 @@ msgstr "あなたはこのユーザーをブロックしているため、コン msgid "You have entered an invalid code. It should look like XXXXX-XXXXX." msgstr "無効なコードが入力されました。それはXXXXX-XXXXXのようになっているはずです。" +#: src/lib/moderation/useModerationCauseDescription.ts:109 +msgid "You have hidden this post" +msgstr "" + +#: src/components/moderation/ModerationDetailsDialog.tsx:102 +msgid "You have hidden this post." +msgstr "" + +#: src/components/moderation/ModerationDetailsDialog.tsx:95 +#: src/lib/moderation/useModerationCauseDescription.ts:92 +msgid "You have muted this account." +msgstr "" + +#: src/lib/moderation/useModerationCauseDescription.ts:86 +msgid "You have muted this user" +msgstr "" + #: src/view/com/modals/ModerationDetails.tsx:87 -msgid "You have muted this user." -msgstr "あなたはこのユーザーをミュートしています。" +#~ msgid "You have muted this user." +#~ msgstr "あなたはこのユーザーをミュートしています。" #: src/view/com/feeds/ProfileFeedgens.tsx:136 msgid "You have no feeds." @@ -4941,34 +5996,50 @@ msgid "You have no lists." msgstr "リストがありません。" #: src/view/screens/ModerationBlockedAccounts.tsx:132 -msgid "You have not blocked any accounts yet. To block an account, go to their profile and selected \"Block account\" from the menu on their account." -msgstr "ブロック中のアカウントはまだありません。アカウントをブロックするには、ユーザーのプロフィールに移動し、アカウントメニューから「アカウントをブロック」を選択します。" +msgid "You have not blocked any accounts yet. To block an account, go to their profile and select \"Block account\" from the menu on their account." +msgstr "" + +#: src/view/screens/ModerationBlockedAccounts.tsx:132 +#~ msgid "You have not blocked any accounts yet. To block an account, go to their profile and selected \"Block account\" from the menu on their account." +#~ msgstr "ブロック中のアカウントはまだありません。アカウントをブロックするには、ユーザーのプロフィールに移動し、アカウントメニューから「アカウントをブロック」を選択します。" -#: src/view/screens/AppPasswords.tsx:87 +#: src/view/screens/AppPasswords.tsx:89 msgid "You have not created any app passwords yet. You can create one by pressing the button below." msgstr "アプリパスワードはまだ作成されていません。下のボタンを押すと作成できます。" #: src/view/screens/ModerationMutedAccounts.tsx:131 -msgid "You have not muted any accounts yet. To mute an account, go to their profile and selected \"Mute account\" from the menu on their account." -msgstr "ミュートしているアカウントはまだありません。アカウントをミュートするには、プロフィールに移動し、アカウントメニューから「アカウントをミュート」を選択します。" +msgid "You have not muted any accounts yet. To mute an account, go to their profile and select \"Mute account\" from the menu on their account." +msgstr "" + +#: src/view/screens/ModerationMutedAccounts.tsx:131 +#~ msgid "You have not muted any accounts yet. To mute an account, go to their profile and selected \"Mute account\" from the menu on their account." +#~ msgstr "ミュートしているアカウントはまだありません。アカウントをミュートするには、プロフィールに移動し、アカウントメニューから「アカウントをミュート」を選択します。" #: src/components/dialogs/MutedWords.tsx:250 msgid "You haven't muted any words or tags yet" msgstr "" +#: src/components/moderation/LabelsOnMeDialog.tsx:69 +msgid "You may appeal these labels if you feel they were placed in error." +msgstr "" + #: src/view/com/modals/ContentFilteringSettings.tsx:175 -msgid "You must be 18 or older to enable adult content." -msgstr "成人向けコンテンツを有効にするには、18歳以上である必要があります。" +#~ msgid "You must be 18 or older to enable adult content." +#~ msgstr "成人向けコンテンツを有効にするには、18歳以上である必要があります。" -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:103 +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:110 msgid "You must be 18 years or older to enable adult content" msgstr "成人向けコンテンツを有効にするには、18歳以上である必要があります。" -#: src/view/com/util/forms/PostDropdownBtn.tsx:147 +#: src/components/ReportDialog/SubmitView.tsx:205 +msgid "You must select at least one labeler for a report" +msgstr "" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:144 msgid "You will no longer receive notifications for this thread" msgstr "これ以降、このスレッドに関する通知を受け取ることはできなくなります" -#: src/view/com/util/forms/PostDropdownBtn.tsx:150 +#: src/view/com/util/forms/PostDropdownBtn.tsx:147 msgid "You will now receive notifications for this thread" msgstr "これ以降、このスレッドに関する通知を受け取ることができます" @@ -4976,7 +6047,7 @@ msgstr "これ以降、このスレッドに関する通知を受け取ること msgid "You will receive an email with a \"reset code.\" Enter that code here, then enter your new password." msgstr "「リセットコード」が記載されたメールが届きます。ここにコードを入力し、新しいパスワードを入力します。" -#: src/screens/Onboarding/StepModeration/index.tsx:72 +#: src/screens/Onboarding/StepModeration/index.tsx:59 msgid "You're in control" msgstr "あなたがコントロールしています" @@ -4990,6 +6061,11 @@ msgstr "あなたは並んでいます。" msgid "You're ready to go!" msgstr "準備ができました!" +#: src/components/moderation/ModerationDetailsDialog.tsx:99 +#: src/lib/moderation/useModerationCauseDescription.ts:101 +msgid "You've chosen to hide a word or tag within this post." +msgstr "" + #: src/view/com/posts/FollowingEndOfFeed.tsx:48 msgid "You've reached the end of your feed! Find some more accounts to follow." msgstr "フィードはここまでです!もっとフォローするアカウントを見つけましょう。" @@ -5062,22 +6138,22 @@ msgstr "フルハンドルは<0>@{0}になります" msgid "Your muted words" msgstr "" -#: src/view/com/modals/ChangePassword.tsx:155 +#: src/view/com/modals/ChangePassword.tsx:157 msgid "Your password has been changed successfully!" msgstr "パスワードの変更が完了しました!" -#: src/view/com/composer/Composer.tsx:274 +#: src/view/com/composer/Composer.tsx:283 msgid "Your post has been published" msgstr "投稿を公開しました" #: src/screens/Onboarding/StepFinished.tsx:105 #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:59 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:59 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:61 msgid "Your posts, likes, and blocks are public. Mutes are private." msgstr "投稿、いいね、ブロックは公開されます。ミュートは非公開です。" -#: src/view/com/modals/SwitchAccount.tsx:84 -#: src/view/screens/Settings/index.tsx:118 +#: src/view/com/modals/SwitchAccount.tsx:88 +#: src/view/screens/Settings/index.tsx:123 msgid "Your profile" msgstr "あなたのプロフィール" @@ -5085,7 +6161,7 @@ msgstr "あなたのプロフィール" #~ msgid "Your profile and posts will not be visible to people visiting the Bluesky app or website without having an account and being logged in." #~ msgstr "あなたのプロフィールと投稿は、アカウントを持っておらずログインしていない状態でBlueskyのアプリまたはウェブサイトを訪問する人々には表示されません。" -#: src/view/com/composer/Composer.tsx:273 +#: src/view/com/composer/Composer.tsx:282 msgid "Your reply has been published" msgstr "返信を公開しました" diff --git a/src/locale/locales/ko/messages.po b/src/locale/locales/ko/messages.po index 28059c3edf..0fc833795f 100644 --- a/src/locale/locales/ko/messages.po +++ b/src/locale/locales/ko/messages.po @@ -21,7 +21,7 @@ msgstr "(이메일 없음)" msgid "{following} following" msgstr "{following} 팔로우 중" -#: src/view/shell/Drawer.tsx:440 +#: src/view/shell/Drawer.tsx:443 msgid "{numUnreadNotifications} unread" msgstr "{numUnreadNotifications}개 읽지 않음" @@ -29,6 +29,10 @@ msgstr "{numUnreadNotifications}개 읽지 않음" msgid "<0/> members" msgstr "<0/>의 멤버" +#: src/view/shell/Drawer.tsx:97 +msgid "<0>{0} following" +msgstr "" + #: src/screens/Profile/Header/Metrics.tsx:46 msgid "<0>{following} <1>following" msgstr "<0>{following} <1>팔로우 중" @@ -50,7 +54,7 @@ msgid "⚠Invalid Handle" msgstr "⚠ 잘못된 핸들" #: src/view/com/util/ViewHeader.tsx:89 -#: src/view/screens/Search/Search.tsx:647 +#: src/view/screens/Search/Search.tsx:648 msgid "Access navigation links and settings" msgstr "탐색 링크 및 설정으로 이동합니다" @@ -59,7 +63,7 @@ msgid "Access profile and other navigation links" msgstr "프로필 및 기타 탐색 링크로 이동합니다" #: src/view/com/modals/EditImage.tsx:299 -#: src/view/screens/Settings/index.tsx:469 +#: src/view/screens/Settings/index.tsx:466 msgid "Accessibility" msgstr "접근성" @@ -68,7 +72,7 @@ msgid "account" msgstr "계정" #: src/view/com/auth/login/LoginForm.tsx:166 -#: src/view/screens/Settings/index.tsx:326 +#: src/view/screens/Settings/index.tsx:323 #: src/view/screens/Settings/index.tsx:739 msgid "Account" msgstr "계정" @@ -117,7 +121,7 @@ msgstr "계정 언뮤트됨" #: src/components/dialogs/MutedWords.tsx:165 #: src/view/com/auth/onboarding/RecommendedFeedsItem.tsx:150 -#: src/view/com/modals/ListAddRemoveUsers.tsx:264 +#: src/view/com/modals/ListAddRemoveUsers.tsx:268 #: src/view/com/modals/UserAddRemoveLists.tsx:219 #: src/view/screens/ProfileList.tsx:827 msgid "Add" @@ -131,8 +135,8 @@ msgstr "콘텐츠 경고 추가" msgid "Add a user to this list" msgstr "이 리스트에 사용자 추가" -#: src/view/screens/Settings/index.tsx:401 -#: src/view/screens/Settings/index.tsx:410 +#: src/view/screens/Settings/index.tsx:398 +#: src/view/screens/Settings/index.tsx:407 msgid "Add account" msgstr "계정 추가" @@ -148,11 +152,11 @@ msgstr "대체 텍스트 추가하기" msgid "Add App Password" msgstr "앱 비밀번호 추가" -#: src/view/com/composer/Composer.tsx:462 +#: src/view/com/composer/Composer.tsx:466 msgid "Add link card" msgstr "링크 카드 추가" -#: src/view/com/composer/Composer.tsx:467 +#: src/view/com/composer/Composer.tsx:471 msgid "Add link card:" msgstr "링크 카드 추가:" @@ -194,16 +198,17 @@ msgstr "내 피드에 추가됨" msgid "Adjust the number of likes a reply must have to be shown in your feed." msgstr "답글이 피드에 표시되기 위해 필요한 좋아요 수를 조정합니다." +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:117 #: src/view/com/modals/SelfLabel.tsx:75 msgid "Adult Content" msgstr "성인 콘텐츠" -#: src/components/moderation/ModerationLabelPref.tsx:102 +#: src/components/moderation/ModerationLabelPref.tsx:114 msgid "Adult content is disabled." msgstr "성인 콘텐츠가 비활성화되어 있습니다." -#: src/screens/Moderation/index.tsx:383 -#: src/view/screens/Settings/index.tsx:682 +#: src/screens/Moderation/index.tsx:377 +#: src/view/screens/Settings/index.tsx:680 msgid "Advanced" msgstr "고급" @@ -212,11 +217,11 @@ msgid "All the feeds you've saved, right in one place." msgstr "저장한 모든 피드를 한 곳에서 확인하세요." #: src/view/com/auth/login/ForgotPasswordForm.tsx:221 -#: src/view/com/modals/ChangePassword.tsx:168 +#: src/view/com/modals/ChangePassword.tsx:170 msgid "Already have a code?" msgstr "이미 코드가 있나요?" -#: src/view/com/auth/login/ChooseAccountForm.tsx:98 +#: src/view/com/auth/login/ChooseAccountForm.tsx:102 msgid "Already signed in as @{0}" msgstr "이미 @{0}(으)로 로그인했습니다" @@ -246,10 +251,12 @@ msgstr "어떤 옵션에도 포함되지 않는 문제" #: src/view/com/profile/FollowButton.tsx:35 #: src/view/com/profile/FollowButton.tsx:45 +#: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:188 +#: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:198 msgid "An issue occurred, please try again." msgstr "문제가 발생했습니다. 다시 시도해 주세요." -#: src/view/com/notifications/FeedItem.tsx:236 +#: src/view/com/notifications/FeedItem.tsx:240 #: src/view/com/threadgate/WhoCanReply.tsx:178 msgid "and" msgstr "및" @@ -278,13 +285,13 @@ msgstr "앱 비밀번호 이름에는 문자, 숫자, 공백, 대시, 밑줄만 msgid "App Password names must be at least 4 characters long." msgstr "앱 비밀번호 이름은 4자 이상이어야 합니다." -#: src/view/screens/Settings/index.tsx:693 +#: src/view/screens/Settings/index.tsx:691 msgid "App password settings" msgstr "앱 비밀번호 설정" #: src/Navigation.tsx:251 #: src/view/screens/AppPasswords.tsx:189 -#: src/view/screens/Settings/index.tsx:702 +#: src/view/screens/Settings/index.tsx:700 msgid "App Passwords" msgstr "앱 비밀번호" @@ -301,7 +308,7 @@ msgstr "\"{0}\" 라벨 이의신청" msgid "Appeal submitted." msgstr "이의신청 제출함" -#: src/view/screens/Settings/index.tsx:484 +#: src/view/screens/Settings/index.tsx:481 msgid "Appearance" msgstr "모양" @@ -313,7 +320,7 @@ msgstr "앱 비밀번호 \"{name}\"을(를) 삭제하시겠습니까?" msgid "Are you sure you want to remove {0} from your feeds?" msgstr "피드에서 {0}을(를) 제거하시겠습니까?" -#: src/view/com/composer/Composer.tsx:504 +#: src/view/com/composer/Composer.tsx:508 msgid "Are you sure you'd like to discard this draft?" msgstr "이 초안을 삭제하시겠습니까?" @@ -337,36 +344,33 @@ msgstr "선정적이지 않거나 예술적인 노출." #: src/components/moderation/LabelsOnMeDialog.tsx:248 #: src/screens/Profile/Header/Shell.tsx:97 #: src/view/com/auth/create/CreateAccount.tsx:158 -#: src/view/com/auth/login/ChooseAccountForm.tsx:151 +#: src/view/com/auth/login/ChooseAccountForm.tsx:155 #: src/view/com/auth/login/ForgotPasswordForm.tsx:174 #: src/view/com/auth/login/LoginForm.tsx:259 #: src/view/com/auth/login/SetNewPasswordForm.tsx:179 -#: src/view/com/post-thread/PostThread.tsx:473 -#: src/view/com/post-thread/PostThread.tsx:523 -#: src/view/com/post-thread/PostThread.tsx:531 #: src/view/com/util/ViewHeader.tsx:87 msgid "Back" msgstr "뒤로" #: src/view/com/post-thread/PostThread.tsx:481 -msgctxt "action" -msgid "Back" -msgstr "뒤로" +#~ msgctxt "action" +#~ msgid "Back" +#~ msgstr "뒤로" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:136 msgid "Based on your interest in {interestsText}" msgstr "{interestsText}에 대한 관심사 기반" -#: src/view/screens/Settings/index.tsx:541 +#: src/view/screens/Settings/index.tsx:538 msgid "Basics" msgstr "기본" -#: src/components/dialogs/BirthDateSettings.tsx:101 +#: src/components/dialogs/BirthDateSettings.tsx:107 #: src/view/com/auth/create/Step1.tsx:227 msgid "Birthday" msgstr "생년월일" -#: src/view/screens/Settings/index.tsx:358 +#: src/view/screens/Settings/index.tsx:355 msgid "Birthday:" msgstr "생년월일:" @@ -402,7 +406,7 @@ msgstr "이 계정들을 차단하시겠습니까?" msgid "Blocked" msgstr "차단됨" -#: src/screens/Moderation/index.tsx:270 +#: src/screens/Moderation/index.tsx:269 msgid "Blocked accounts" msgstr "차단한 계정" @@ -419,11 +423,11 @@ msgstr "차단한 계정은 내 스레드에 답글을 달거나 나를 멘션 msgid "Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you. You will not see their content and they will be prevented from seeing yours." msgstr "차단한 계정은 내 스레드에 답글을 달거나 나를 멘션하거나 기타 다른 방식으로 나와 상호작용할 수 없습니다. 차단한 계정의 콘텐츠를 볼 수 없으며 해당 계정도 내 콘텐츠를 볼 수 없게 됩니다." -#: src/view/com/post-thread/PostThread.tsx:325 +#: src/view/com/post-thread/PostThread.tsx:313 msgid "Blocked post." msgstr "차단된 게시물." -#: src/screens/Profile/Sections/Labels.tsx:171 +#: src/screens/Profile/Sections/Labels.tsx:153 msgid "Blocking does not prevent this labeler from placing labels on your account." msgstr "차단하더라도 이 라벨러가 내 계정에 라벨을 붙이는 것을 막지는 못합니다." @@ -435,7 +439,7 @@ msgstr "차단 목록은 공개됩니다. 차단한 계정은 내 스레드에 msgid "Blocking will not prevent labels from being applied on your account, but it will stop this account from replying in your threads or interacting with you." msgstr "차단하더라도 내 계정에 라벨이 붙는 것은 막지 못하지만, 이 계정이 내 스레드에 답글을 달거나 나와 상호작용하는 것은 중지됩니다." -#: src/view/com/auth/HomeLoggedOutCTA.tsx:93 +#: src/view/com/auth/HomeLoggedOutCTA.tsx:97 #: src/view/com/auth/SplashScreen.web.tsx:133 msgid "Blog" msgstr "블로그" @@ -451,21 +455,21 @@ msgid "Bluesky is an open network where you can choose your hosting provider. Cu msgstr "Bluesky는 호스팅 제공자를 선택할 수 있는 개방형 네트워크입니다. 개발자를 위한 사용자 지정 호스팅이 베타 버전으로 제공됩니다." #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:80 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:80 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:82 msgid "Bluesky is flexible." msgstr "Bluesky는 유연합니다." #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:69 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:69 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:71 msgid "Bluesky is open." msgstr "Bluesky는 열려 있습니다." #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:56 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:56 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:58 msgid "Bluesky is public." msgstr "Bluesky는 공개적입니다." -#: src/screens/Moderation/index.tsx:539 +#: src/screens/Moderation/index.tsx:535 msgid "Bluesky will not show your profile and posts to logged-out users. Other apps may not honor this request. This does not make your account private." msgstr "로그아웃한 사용자에게 내 프로필과 게시물을 표시하지 않습니다. 다른 앱에서는 이 설정을 따르지 않을 수 있습니다. 내 계정을 비공개로 전환하지는 않습니다." @@ -481,11 +485,11 @@ msgstr "이미지 흐리게 및 피드에서 필터링" msgid "Books" msgstr "책" -#: src/view/screens/Settings/index.tsx:887 +#: src/view/screens/Settings/index.tsx:889 msgid "Build version {0} {1}" msgstr "빌드 버전 {0} {1}" -#: src/view/com/auth/HomeLoggedOutCTA.tsx:87 +#: src/view/com/auth/HomeLoggedOutCTA.tsx:91 #: src/view/com/auth/SplashScreen.web.tsx:128 msgid "Business" msgstr "비즈니스" @@ -506,6 +510,10 @@ msgstr "{0} 님이 만듦" msgid "by <0/>" msgstr "<0/> 님이 만듦" +#: src/view/com/auth/create/Policies.tsx:87 +msgid "By creating an account you agree to the {els}." +msgstr "" + #: src/view/com/profile/ProfileSubpageHeader.tsx:159 msgid "by you" msgstr "내가 만듦" @@ -518,24 +526,30 @@ msgstr "카메라" msgid "Can only contain letters, numbers, spaces, dashes, and underscores. Must be at least 4 characters long, but no more than 32 characters long." msgstr "글자, 숫자, 공백, 대시, 밑줄만 포함할 수 있습니다. 길이는 4자 이상이어야 하고 32자를 넘지 않아야 합니다." +#: src/components/Menu/index.tsx:213 #: src/components/Prompt.tsx:116 #: src/components/Prompt.tsx:118 +#: src/components/TagMenu/index.tsx:268 #: src/view/com/composer/Composer.tsx:316 #: src/view/com/composer/Composer.tsx:321 #: src/view/com/modals/ChangeEmail.tsx:218 #: src/view/com/modals/ChangeEmail.tsx:220 -#: src/view/com/modals/ChangePassword.tsx:265 -#: src/view/com/modals/ChangePassword.tsx:268 +#: src/view/com/modals/ChangeHandle.tsx:153 +#: src/view/com/modals/ChangePassword.tsx:267 +#: src/view/com/modals/ChangePassword.tsx:270 #: src/view/com/modals/CreateOrEditList.tsx:355 +#: src/view/com/modals/crop-image/CropImage.web.tsx:137 #: src/view/com/modals/EditImage.tsx:323 #: src/view/com/modals/EditProfile.tsx:249 #: src/view/com/modals/InAppBrowserConsent.tsx:78 +#: src/view/com/modals/InAppBrowserConsent.tsx:80 #: src/view/com/modals/LinkWarning.tsx:87 +#: src/view/com/modals/LinkWarning.tsx:89 #: src/view/com/modals/Repost.tsx:87 #: src/view/com/modals/VerifyEmail.tsx:247 #: src/view/com/modals/VerifyEmail.tsx:253 -#: src/view/screens/Search/Search.tsx:716 -#: src/view/shell/desktop/Search.tsx:238 +#: src/view/screens/Search/Search.tsx:717 +#: src/view/shell/desktop/Search.tsx:239 msgid "Cancel" msgstr "취소" @@ -568,16 +582,24 @@ msgid "Cancel quote post" msgstr "게시물 인용 취소" #: src/view/com/modals/ListAddRemoveUsers.tsx:87 -#: src/view/shell/desktop/Search.tsx:234 +#: src/view/shell/desktop/Search.tsx:235 msgid "Cancel search" msgstr "검색 취소" -#: src/view/screens/Settings/index.tsx:352 +#: src/view/com/modals/LinkWarning.tsx:88 +msgid "Cancels opening the linked website" +msgstr "" + +#: src/view/com/modals/VerifyEmail.tsx:152 +msgid "Change" +msgstr "" + +#: src/view/screens/Settings/index.tsx:349 msgctxt "action" msgid "Change" msgstr "변경" -#: src/view/screens/Settings/index.tsx:714 +#: src/view/screens/Settings/index.tsx:712 msgid "Change handle" msgstr "핸들 변경" @@ -594,7 +616,8 @@ msgstr "내 이메일 변경하기" msgid "Change password" msgstr "비밀번호 변경" -#: src/view/screens/Settings/index.tsx:759 +#: src/view/com/modals/ChangePassword.tsx:141 +#: src/view/screens/Settings/index.tsx:761 msgid "Change Password" msgstr "비밀번호 변경" @@ -603,8 +626,8 @@ msgid "Change post language to {0}" msgstr "게시물 언어를 {0}(으)로 변경" #: src/view/screens/Settings/index.tsx:751 -msgid "Change your Bluesky password" -msgstr "내 Bluesky 비밀번호를 변경합니다" +#~ msgid "Change your Bluesky password" +#~ msgstr "내 Bluesky 비밀번호를 변경합니다" #: src/view/com/modals/ChangeEmail.tsx:109 msgid "Change Your Email" @@ -632,8 +655,8 @@ msgid "Choose \"Everybody\" or \"Nobody\"" msgstr "\"모두\" 또는 \"없음\"을 선택하세요." #: src/view/screens/Settings/index.tsx:715 -msgid "Choose a new Bluesky username or create" -msgstr "새 Bluesky 사용자 이름을 선택하거나 만듭니다" +#~ msgid "Choose a new Bluesky username or create" +#~ msgstr "새 Bluesky 사용자 이름을 선택하거나 만듭니다" #: src/view/com/auth/server-input/index.tsx:79 msgid "Choose Service" @@ -644,7 +667,7 @@ msgid "Choose the algorithms that power your custom feeds." msgstr "맞춤 피드를 구동할 알고리즘을 선택하세요." #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:83 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:83 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:85 msgid "Choose the algorithms that power your experience with custom feeds." msgstr "맞춤 피드를 통해 사용자 경험을 강화하는 알고리즘을 선택하세요." @@ -656,29 +679,35 @@ msgstr "기본 피드 선택" msgid "Choose your password" msgstr "비밀번호를 입력하세요" -#: src/view/screens/Settings/index.tsx:862 -#: src/view/screens/Settings/index.tsx:863 +#: src/view/screens/Settings/index.tsx:864 msgid "Clear all legacy storage data" msgstr "모든 레거시 스토리지 데이터 지우기" -#: src/view/screens/Settings/index.tsx:865 +#: src/view/screens/Settings/index.tsx:867 msgid "Clear all legacy storage data (restart after this)" msgstr "모든 레거시 스토리지 데이터 지우기 (이후 다시 시작)" -#: src/view/screens/Settings/index.tsx:874 -#: src/view/screens/Settings/index.tsx:875 +#: src/view/screens/Settings/index.tsx:876 msgid "Clear all storage data" msgstr "모든 스토리지 데이터 지우기" -#: src/view/screens/Settings/index.tsx:877 +#: src/view/screens/Settings/index.tsx:879 msgid "Clear all storage data (restart after this)" msgstr "모든 스토리지 데이터 지우기 (이후 다시 시작)" #: src/view/com/util/forms/SearchInput.tsx:88 -#: src/view/screens/Search/Search.tsx:697 +#: src/view/screens/Search/Search.tsx:698 msgid "Clear search query" msgstr "검색어 지우기" +#: src/view/screens/Settings/index.tsx:865 +msgid "Clears all legacy storage data" +msgstr "" + +#: src/view/screens/Settings/index.tsx:877 +msgid "Clears all storage data" +msgstr "" + #: src/view/screens/Support.tsx:40 msgid "click here" msgstr "이곳을 클릭" @@ -695,8 +724,8 @@ msgstr "이곳을 클릭하여 #{tag}의 태그 메뉴 열기" msgid "Climate" msgstr "기후" -#: src/view/com/modals/ChangePassword.tsx:265 -#: src/view/com/modals/ChangePassword.tsx:268 +#: src/view/com/modals/ChangePassword.tsx:267 +#: src/view/com/modals/ChangePassword.tsx:270 msgid "Close" msgstr "닫기" @@ -713,11 +742,11 @@ msgstr "알림 닫기" msgid "Close bottom drawer" msgstr "하단 서랍 닫기" -#: src/view/com/lightbox/ImageViewing/components/ImageDefaultHeader.tsx:30 +#: src/view/com/lightbox/ImageViewing/components/ImageDefaultHeader.tsx:36 msgid "Close image" msgstr "이미지 닫기" -#: src/view/com/lightbox/Lightbox.web.tsx:119 +#: src/view/com/lightbox/Lightbox.web.tsx:129 msgid "Close image viewer" msgstr "이미지 뷰어 닫기" @@ -742,11 +771,11 @@ msgstr "비밀번호 변경 알림을 닫습니다" msgid "Closes post composer and discards post draft" msgstr "게시물 작성 상자를 닫고 게시물 초안을 삭제합니다" -#: src/view/com/lightbox/ImageViewing/components/ImageDefaultHeader.tsx:31 +#: src/view/com/lightbox/ImageViewing/components/ImageDefaultHeader.tsx:37 msgid "Closes viewer for header image" msgstr "헤더 이미지 뷰어를 닫습니다" -#: src/view/com/notifications/FeedItem.tsx:317 +#: src/view/com/notifications/FeedItem.tsx:321 msgid "Collapses list of users for a given notification" msgstr "이 알림에 대한 사용자 목록을 축소합니다" @@ -771,7 +800,7 @@ msgstr "온보딩 완료 후 계정 사용 시작" msgid "Complete the challenge" msgstr "챌린지 완료하기" -#: src/view/com/composer/Composer.tsx:433 +#: src/view/com/composer/Composer.tsx:437 msgid "Compose posts up to {MAX_GRAPHEME_LENGTH} characters in length" msgstr "최대 {MAX_GRAPHEME_LENGTH}자 길이까지 글을 작성할 수 있습니다" @@ -780,12 +809,12 @@ msgid "Compose reply" msgstr "답글 작성하기" #: src/components/moderation/GlobalModerationLabelPref.tsx:69 -#: src/components/moderation/ModerationLabelPref.tsx:128 +#: src/components/moderation/ModerationLabelPref.tsx:149 #: src/screens/Onboarding/StepModeration/ModerationOption.tsx:81 msgid "Configure content filtering setting for category: {0}" msgstr "{0} 카테고리에 대한 콘텐츠 필터링 설정 구성" -#: src/components/moderation/ModerationLabelPref.tsx:104 +#: src/components/moderation/ModerationLabelPref.tsx:116 msgid "Configured in <0>moderation settings." msgstr "<0>검토 설정에서 설정합니다." @@ -812,15 +841,16 @@ msgstr "콘텐츠 언어 설정 확인" msgid "Confirm delete account" msgstr "계정 삭제 확인" -#: src/screens/Moderation/index.tsx:304 +#: src/screens/Moderation/index.tsx:303 msgid "Confirm your age:" msgstr "나이를 확인하세요:" -#: src/screens/Moderation/index.tsx:295 +#: src/screens/Moderation/index.tsx:294 msgid "Confirm your birthdate" msgstr "생년월일 확인" #: src/view/com/modals/ChangeEmail.tsx:157 +#: src/view/com/modals/DeleteAccount.tsx:176 #: src/view/com/modals/DeleteAccount.tsx:182 #: src/view/com/modals/VerifyEmail.tsx:165 msgid "Confirmation code" @@ -843,7 +873,7 @@ msgstr "콘텐츠" msgid "Content Blocked" msgstr "콘텐츠 차단됨" -#: src/screens/Moderation/index.tsx:288 +#: src/screens/Moderation/index.tsx:287 msgid "Content filters" msgstr "콘텐츠 필터" @@ -858,7 +888,7 @@ msgid "Content Not Available" msgstr "콘텐츠를 사용할 수 없음" #: src/components/moderation/ModerationDetailsDialog.tsx:47 -#: src/components/moderation/ScreenHider.tsx:99 +#: src/components/moderation/ScreenHider.tsx:100 #: src/lib/moderation/useGlobalLabelStrings.ts:22 #: src/lib/moderation/useModerationCauseDescription.ts:38 msgid "Content Warning" @@ -879,6 +909,7 @@ msgstr "컨텍스트 메뉴 배경을 클릭하여 메뉴를 닫습니다." #: src/screens/Onboarding/StepTopicalFeeds.tsx:114 #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:148 #: src/view/com/auth/onboarding/RecommendedFollows.tsx:209 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:96 msgid "Continue" msgstr "계속" @@ -911,6 +942,7 @@ msgid "Copied build version to clipboard" msgstr "빌드 버전 클립보드에 복사됨" #: src/view/com/modals/AddAppPasswords.tsx:76 +#: src/view/com/modals/ChangeHandle.tsx:327 #: src/view/com/modals/InviteCodes.tsx:152 #: src/view/com/util/forms/PostDropdownBtn.tsx:158 msgid "Copied to clipboard" @@ -924,6 +956,10 @@ msgstr "앱 비밀번호를 복사합니다" msgid "Copy" msgstr "복사" +#: src/view/com/modals/ChangeHandle.tsx:481 +msgid "Copy {0}" +msgstr "" + #: src/view/screens/ProfileList.tsx:388 msgid "Copy link to list" msgstr "리스트 링크 복사" @@ -951,13 +987,13 @@ msgstr "피드를 불러올 수 없습니다" msgid "Could not load list" msgstr "리스트를 불러올 수 없습니다" -#: src/view/com/auth/HomeLoggedOutCTA.tsx:62 -#: src/view/com/auth/SplashScreen.tsx:71 +#: src/view/com/auth/HomeLoggedOutCTA.tsx:64 +#: src/view/com/auth/SplashScreen.tsx:73 #: src/view/com/auth/SplashScreen.web.tsx:81 msgid "Create a new account" msgstr "새 계정 만들기" -#: src/view/screens/Settings/index.tsx:402 +#: src/view/screens/Settings/index.tsx:399 msgid "Create a new Bluesky account" msgstr "새 Bluesky 계정을 만듭니다" @@ -974,7 +1010,7 @@ msgstr "앱 비밀번호 만들기" msgid "Create new account" msgstr "새 계정 만들기" -#: src/components/ReportDialog/SelectReportOptionView.tsx:93 +#: src/components/ReportDialog/SelectReportOptionView.tsx:94 msgid "Create report for {0}" msgstr "{0}에 대한 신고 작성하기" @@ -982,7 +1018,7 @@ msgstr "{0}에 대한 신고 작성하기" msgid "Created {0}" msgstr "{0}에 생성됨" -#: src/view/com/composer/Composer.tsx:464 +#: src/view/com/composer/Composer.tsx:468 msgid "Creates a card with a thumbnail. The card links to {url}" msgstr "미리보기 이미지가 있는 카드를 만듭니다. 카드가 {url}(으)로 연결됩니다" @@ -1008,8 +1044,8 @@ msgstr "커뮤니티에서 구축한 맞춤 피드는 새로운 경험을 제공 msgid "Customize media from external sites." msgstr "외부 사이트 미디어를 사용자 지정합니다." -#: src/view/screens/Settings/index.tsx:503 -#: src/view/screens/Settings/index.tsx:529 +#: src/view/screens/Settings/index.tsx:500 +#: src/view/screens/Settings/index.tsx:526 msgid "Dark" msgstr "어두움" @@ -1017,11 +1053,11 @@ msgstr "어두움" msgid "Dark mode" msgstr "어두운 모드" -#: src/view/screens/Settings/index.tsx:516 +#: src/view/screens/Settings/index.tsx:513 msgid "Dark Theme" msgstr "어두운 테마" -#: src/view/screens/Settings/index.tsx:835 +#: src/view/screens/Settings/index.tsx:837 msgid "Debug Moderation" msgstr "검토 디버그" @@ -1035,7 +1071,7 @@ msgstr "디버그 패널" msgid "Delete" msgstr "삭제" -#: src/view/screens/Settings/index.tsx:790 +#: src/view/screens/Settings/index.tsx:792 msgid "Delete account" msgstr "계정 삭제" @@ -1059,7 +1095,7 @@ msgstr "리스트 삭제" msgid "Delete my account" msgstr "내 계정 삭제" -#: src/view/screens/Settings/index.tsx:802 +#: src/view/screens/Settings/index.tsx:804 msgid "Delete My Account…" msgstr "내 계정 삭제…" @@ -1080,7 +1116,7 @@ msgstr "이 게시물을 삭제하시겠습니까?" msgid "Deleted" msgstr "삭제됨" -#: src/view/com/post-thread/PostThread.tsx:317 +#: src/view/com/post-thread/PostThread.tsx:305 msgid "Deleted post." msgstr "삭제된 게시물." @@ -1095,27 +1131,27 @@ msgstr "설명" msgid "Did you want to say anything?" msgstr "하고 싶은 말이 있나요?" -#: src/view/screens/Settings/index.tsx:522 +#: src/view/screens/Settings/index.tsx:519 msgid "Dim" msgstr "어둑함" #: src/lib/moderation/useLabelBehaviorDescription.ts:32 #: src/lib/moderation/useLabelBehaviorDescription.ts:42 #: src/lib/moderation/useLabelBehaviorDescription.ts:68 -#: src/screens/Moderation/index.tsx:347 +#: src/screens/Moderation/index.tsx:343 msgid "Disabled" msgstr "비활성화됨" -#: src/view/com/composer/Composer.tsx:506 +#: src/view/com/composer/Composer.tsx:510 msgid "Discard" msgstr "삭제" -#: src/view/com/composer/Composer.tsx:503 +#: src/view/com/composer/Composer.tsx:507 msgid "Discard draft?" msgstr "초안 삭제" +#: src/screens/Moderation/index.tsx:520 #: src/screens/Moderation/index.tsx:524 -#: src/screens/Moderation/index.tsx:528 msgid "Discourage apps from showing my account to logged-out users" msgstr "앱이 로그아웃한 사용자에게 내 계정을 표시하지 않도록 설정하기" @@ -1136,16 +1172,24 @@ msgstr "표시 이름" msgid "Display Name" msgstr "표시 이름" +#: src/view/com/modals/ChangeHandle.tsx:398 +msgid "DNS Panel" +msgstr "" + #: src/lib/moderation/useGlobalLabelStrings.ts:39 msgid "Does not include nudity." msgstr "노출을 포함하지 않음." -#: src/view/com/modals/ChangeHandle.tsx:487 +#: src/view/com/modals/ChangeHandle.tsx:482 +msgid "Domain Value" +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:489 msgid "Domain verified!" msgstr "도메인을 확인했습니다." -#: src/components/dialogs/BirthDateSettings.tsx:112 -#: src/components/dialogs/BirthDateSettings.tsx:118 +#: src/components/dialogs/BirthDateSettings.tsx:119 +#: src/components/dialogs/BirthDateSettings.tsx:125 #: src/view/com/auth/server-input/index.tsx:165 #: src/view/com/auth/server-input/index.tsx:166 #: src/view/com/modals/AddAppPasswords.tsx:226 @@ -1155,8 +1199,8 @@ msgstr "도메인을 확인했습니다." #: src/view/com/modals/InviteCodes.tsx:123 #: src/view/com/modals/ListAddRemoveUsers.tsx:142 #: src/view/screens/PreferencesFollowingFeed.tsx:311 -#: src/view/screens/Settings/ExportCarDialog.tsx:93 #: src/view/screens/Settings/ExportCarDialog.tsx:94 +#: src/view/screens/Settings/ExportCarDialog.tsx:95 msgid "Done" msgstr "완료" @@ -1182,8 +1226,8 @@ msgid "Double tap to sign in" msgstr "두 번 탭하여 로그인합니다" #: src/view/screens/Settings/index.tsx:773 -msgid "Download Bluesky account data (repository)" -msgstr "Bluesky 계정 데이터를 다운로드합니다 (저장소)" +#~ msgid "Download Bluesky account data (repository)" +#~ msgstr "Bluesky 계정 데이터를 다운로드합니다 (저장소)" #: src/view/screens/Settings/ExportCarDialog.tsx:59 #: src/view/screens/Settings/ExportCarDialog.tsx:63 @@ -1194,14 +1238,22 @@ msgstr "CAR 파일 다운로드" msgid "Drop to add images" msgstr "드롭하여 이미지 추가" -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:116 +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:120 msgid "Due to Apple policies, adult content can only be enabled on the web after completing sign up." msgstr "Apple 정책으로 인해 성인 콘텐츠는 가입을 완료한 후에 웹에서만 사용 설정할 수 있습니다." +#: src/view/com/modals/ChangeHandle.tsx:257 +msgid "e.g. alice" +msgstr "" + #: src/view/com/modals/EditProfile.tsx:185 msgid "e.g. Alice Roberts" msgstr "예: 앨리스 로버츠" +#: src/view/com/modals/ChangeHandle.tsx:381 +msgid "e.g. alice.com" +msgstr "" + #: src/view/com/modals/EditProfile.tsx:203 msgid "e.g. Artist, dog-lover, and avid reader." msgstr "예: 예술가, 개 애호가, 독서광." @@ -1235,7 +1287,7 @@ msgctxt "action" msgid "Edit" msgstr "편집" -#: src/view/com/util/UserAvatar.tsx:295 +#: src/view/com/util/UserAvatar.tsx:299 #: src/view/com/util/UserBanner.tsx:85 msgid "Edit avatar" msgstr "아바타 편집" @@ -1318,7 +1370,7 @@ msgstr "이메일 변경됨" msgid "Email verified" msgstr "이메일 확인됨" -#: src/view/screens/Settings/index.tsx:330 +#: src/view/screens/Settings/index.tsx:327 msgid "Email:" msgstr "이메일:" @@ -1326,10 +1378,14 @@ msgstr "이메일:" msgid "Enable {0} only" msgstr "{0}만 사용" -#: src/screens/Moderation/index.tsx:335 +#: src/screens/Moderation/index.tsx:331 msgid "Enable adult content" msgstr "성인 콘텐츠 활성화" +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:94 +msgid "Enable Adult Content" +msgstr "" + #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:78 #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:79 msgid "Enable adult content in your feeds" @@ -1347,7 +1403,7 @@ msgstr "미디어 플레이어를 사용할 외부 사이트" msgid "Enable this setting to only see replies between people you follow." msgstr "내가 팔로우하는 사람들 간의 답글만 표시합니다." -#: src/screens/Moderation/index.tsx:345 +#: src/screens/Moderation/index.tsx:341 msgid "Enabled" msgstr "활성화됨" @@ -1368,7 +1424,7 @@ msgstr "단어 또는 태그 입력" msgid "Enter Confirmation Code" msgstr "확인 코드 입력" -#: src/view/com/modals/ChangePassword.tsx:151 +#: src/view/com/modals/ChangePassword.tsx:153 msgid "Enter the code you received to change your password." msgstr "비밀번호를 변경하려면 받은 코드를 입력하세요." @@ -1380,7 +1436,7 @@ msgstr "사용할 도메인 입력" msgid "Enter the email you used to create your account. We'll send you a \"reset code\" so you can set a new password." msgstr "계정을 만들 때 사용한 이메일을 입력하세요. 새 비밀번호를 설정할 수 있도록 \"재설정 코드\"를 보내드립니다." -#: src/components/dialogs/BirthDateSettings.tsx:102 +#: src/components/dialogs/BirthDateSettings.tsx:108 #: src/view/com/auth/create/Step1.tsx:228 msgid "Enter your birth date" msgstr "생년월일을 입력하세요" @@ -1417,20 +1473,28 @@ msgstr "모두" msgid "Excessive mentions or replies" msgstr "과도한 멘션 또는 답글" +#: src/view/com/modals/DeleteAccount.tsx:231 +msgid "Exits account deletion process" +msgstr "" + #: src/view/com/modals/ChangeHandle.tsx:150 msgid "Exits handle change process" msgstr "핸들 변경 프로세스를 종료합니다" -#: src/view/com/lightbox/Lightbox.web.tsx:120 +#: src/view/com/modals/crop-image/CropImage.web.tsx:135 +msgid "Exits image cropping process" +msgstr "" + +#: src/view/com/lightbox/Lightbox.web.tsx:130 msgid "Exits image view" msgstr "이미지 보기를 종료합니다" #: src/view/com/modals/ListAddRemoveUsers.tsx:88 -#: src/view/shell/desktop/Search.tsx:235 +#: src/view/shell/desktop/Search.tsx:236 msgid "Exits inputting search query" msgstr "검색어 입력을 종료합니다" -#: src/view/com/lightbox/Lightbox.web.tsx:163 +#: src/view/com/lightbox/Lightbox.web.tsx:183 msgid "Expand alt text" msgstr "대체 텍스트 확장" @@ -1447,12 +1511,12 @@ msgstr "노골적이거나 불쾌감을 줄 수 있는 미디어." msgid "Explicit sexual images." msgstr "노골적인 성적 이미지." -#: src/view/screens/Settings/index.tsx:771 +#: src/view/screens/Settings/index.tsx:773 msgid "Export my data" msgstr "내 데이터 내보내기" #: src/view/screens/Settings/ExportCarDialog.tsx:44 -#: src/view/screens/Settings/index.tsx:782 +#: src/view/screens/Settings/index.tsx:784 msgid "Export My Data" msgstr "내 데이터 내보내기" @@ -1467,11 +1531,11 @@ msgstr "외부 미디어는 웹사이트가 나와 내 기기에 대한 정보 #: src/Navigation.tsx:275 #: src/view/screens/PreferencesExternalEmbeds.tsx:52 -#: src/view/screens/Settings/index.tsx:675 +#: src/view/screens/Settings/index.tsx:673 msgid "External Media Preferences" msgstr "외부 미디어 설정" -#: src/view/screens/Settings/index.tsx:666 +#: src/view/screens/Settings/index.tsx:664 msgid "External media settings" msgstr "외부 미디어 설정" @@ -1493,6 +1557,10 @@ msgstr "게시물을 삭제하지 못했습니다. 다시 시도해 주세요" msgid "Failed to load recommended feeds" msgstr "추천 피드를 불러오지 못했습니다" +#: src/view/com/lightbox/Lightbox.tsx:83 +msgid "Failed to save image: {0}" +msgstr "" + #: src/Navigation.tsx:196 msgid "Feed" msgstr "피드" @@ -1506,7 +1574,7 @@ msgid "Feed offline" msgstr "피드 오프라인" #: src/view/shell/desktop/RightNav.tsx:61 -#: src/view/shell/Drawer.tsx:311 +#: src/view/shell/Drawer.tsx:314 msgid "Feedback" msgstr "피드백" @@ -1515,9 +1583,9 @@ msgstr "피드백" #: src/view/screens/Feeds.tsx:524 #: src/view/screens/Profile.tsx:192 #: src/view/shell/bottom-bar/BottomBar.tsx:183 -#: src/view/shell/desktop/LeftNav.tsx:342 -#: src/view/shell/Drawer.tsx:476 -#: src/view/shell/Drawer.tsx:477 +#: src/view/shell/desktop/LeftNav.tsx:346 +#: src/view/shell/Drawer.tsx:479 +#: src/view/shell/Drawer.tsx:480 msgid "Feeds" msgstr "피드" @@ -1533,6 +1601,10 @@ msgstr "피드는 사용자가 약간의 코딩 전문 지식만으로 구축할 msgid "Feeds can be topical as well!" msgstr "주제 기반 피드도 있습니다!" +#: src/view/com/modals/ChangeHandle.tsx:482 +msgid "File Contents" +msgstr "" + #: src/lib/moderation/useLabelBehaviorDescription.ts:66 msgid "Filter from feeds" msgstr "피드에서 필터링" @@ -1547,15 +1619,15 @@ msgstr "마무리 중" msgid "Find accounts to follow" msgstr "팔로우할 계정 찾아보기" -#: src/view/screens/Search/Search.tsx:440 +#: src/view/screens/Search/Search.tsx:441 msgid "Find users on Bluesky" msgstr "Bluesky에서 사용자 찾기" -#: src/view/screens/Search/Search.tsx:438 +#: src/view/screens/Search/Search.tsx:439 msgid "Find users with the search tool on the right" msgstr "오른쪽의 검색 도구로 사용자 찾기" -#: src/view/com/auth/onboarding/RecommendedFollowsItem.tsx:153 +#: src/view/com/auth/onboarding/RecommendedFollowsItem.tsx:155 msgid "Finding similar accounts..." msgstr "유사한 계정을 찾는 중…" @@ -1586,7 +1658,9 @@ msgstr "세로로 뒤집기" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:181 #: src/screens/Profile/Header/ProfileHeaderStandard.tsx:229 +#: src/view/com/auth/onboarding/RecommendedFollowsItem.tsx:141 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:139 +#: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:246 msgid "Follow" msgstr "팔로우" @@ -1618,7 +1692,7 @@ msgstr "선택한 계정을 팔로우하고 다음 단계를 계속 진행합니 msgid "Follow some users to get started. We can recommend you more users based on who you find interesting." msgstr "시작하려면 사용자 몇 명을 팔로우해 보세요. 누구에게 관심이 있는지를 기반으로 더 많은 사용자를 추천해 드릴 수 있습니다." -#: src/view/com/profile/ProfileCard.tsx:214 +#: src/view/com/profile/ProfileCard.tsx:216 msgid "Followed by {0}" msgstr "{0} 님이 팔로우함" @@ -1630,16 +1704,18 @@ msgstr "팔로우한 사용자" msgid "Followed users only" msgstr "팔로우한 사용자만" -#: src/view/com/notifications/FeedItem.tsx:166 +#: src/view/com/notifications/FeedItem.tsx:170 msgid "followed you" msgstr "님이 나를 팔로우했습니다" +#: src/view/com/profile/ProfileFollowers.tsx:109 #: src/view/screens/ProfileFollowers.tsx:25 msgid "Followers" msgstr "팔로워" #: src/screens/Profile/Header/ProfileHeaderStandard.tsx:227 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:139 +#: src/view/com/profile/ProfileFollows.tsx:108 #: src/view/screens/ProfileFollows.tsx:25 msgid "Following" msgstr "팔로우 중" @@ -1648,11 +1724,15 @@ msgstr "팔로우 중" msgid "Following {0}" msgstr "{0} 님을 팔로우했습니다" +#: src/view/screens/Settings/index.tsx:549 +msgid "Following feed preferences" +msgstr "" + #: src/Navigation.tsx:262 #: src/view/com/home/HomeHeaderLayout.web.tsx:50 #: src/view/com/home/HomeHeaderLayoutMobile.tsx:84 #: src/view/screens/PreferencesFollowingFeed.tsx:104 -#: src/view/screens/Settings/index.tsx:561 +#: src/view/screens/Settings/index.tsx:558 msgid "Following Feed Preferences" msgstr "팔로우 중 피드 설정" @@ -1660,7 +1740,7 @@ msgstr "팔로우 중 피드 설정" msgid "Follows you" msgstr "나를 팔로우함" -#: src/view/com/profile/ProfileCard.tsx:139 +#: src/view/com/profile/ProfileCard.tsx:141 msgid "Follows You" msgstr "나를 팔로우함" @@ -1698,7 +1778,7 @@ msgstr "잦은 원치 않는 콘텐츠 게시" msgid "From @{sanitizedAuthor}" msgstr "@{sanitizedAuthor} 님의 태그" -#: src/view/com/posts/FeedItem.tsx:183 +#: src/view/com/posts/FeedItem.tsx:179 msgctxt "from-feed" msgid "From <0/>" msgstr "<0/>에서" @@ -1716,32 +1796,42 @@ msgstr "시작하기" msgid "Glaring violations of law or terms of service" msgstr "명백한 법률 또는 서비스 약관 위반 행위" -#: src/components/moderation/ScreenHider.tsx:143 -#: src/components/moderation/ScreenHider.tsx:152 +#: src/components/moderation/ScreenHider.tsx:144 +#: src/components/moderation/ScreenHider.tsx:153 #: src/view/com/auth/LoggedOut.tsx:81 #: src/view/com/auth/LoggedOut.tsx:82 -#: src/view/shell/desktop/LeftNav.tsx:104 +#: src/view/screens/NotFound.tsx:55 +#: src/view/screens/ProfileFeed.tsx:111 +#: src/view/screens/ProfileList.tsx:916 +#: src/view/shell/desktop/LeftNav.tsx:108 msgid "Go back" msgstr "뒤로" #: src/screens/Profile/ErrorState.tsx:62 #: src/screens/Profile/ErrorState.tsx:66 -#: src/view/screens/ProfileFeed.tsx:111 +#: src/view/screens/NotFound.tsx:54 #: src/view/screens/ProfileFeed.tsx:116 -#: src/view/screens/ProfileList.tsx:916 #: src/view/screens/ProfileList.tsx:921 msgid "Go Back" msgstr "뒤로" -#: src/components/ReportDialog/SelectReportOptionView.tsx:73 +#: src/components/ReportDialog/SelectReportOptionView.tsx:74 #: src/components/ReportDialog/SubmitView.tsx:104 #: src/screens/Onboarding/Layout.tsx:104 #: src/screens/Onboarding/Layout.tsx:193 msgid "Go back to previous step" msgstr "이전 단계로 돌아가기" -#: src/view/screens/Search/Search.tsx:747 -#: src/view/shell/desktop/Search.tsx:262 +#: src/view/screens/NotFound.tsx:55 +msgid "Go home" +msgstr "" + +#: src/view/screens/NotFound.tsx:54 +msgid "Go Home" +msgstr "" + +#: src/view/screens/Search/Search.tsx:748 +#: src/view/shell/desktop/Search.tsx:263 msgid "Go to @{queryMaybeHandle}" msgstr "@{queryMaybeHandle}(으)로 이동" @@ -1749,7 +1839,7 @@ msgstr "@{queryMaybeHandle}(으)로 이동" #: src/view/com/auth/login/ForgotPasswordForm.tsx:218 #: src/view/com/auth/login/LoginForm.tsx:288 #: src/view/com/auth/login/SetNewPasswordForm.tsx:195 -#: src/view/com/modals/ChangePassword.tsx:165 +#: src/view/com/modals/ChangePassword.tsx:167 msgid "Go to next" msgstr "다음" @@ -1778,7 +1868,7 @@ msgid "Having trouble?" msgstr "문제가 있나요?" #: src/view/shell/desktop/RightNav.tsx:90 -#: src/view/shell/Drawer.tsx:321 +#: src/view/shell/Drawer.tsx:324 msgid "Help" msgstr "도움말" @@ -1811,7 +1901,7 @@ msgstr "앱 비밀번호입니다." msgid "Hide" msgstr "숨기기" -#: src/view/com/notifications/FeedItem.tsx:325 +#: src/view/com/notifications/FeedItem.tsx:329 msgctxt "action" msgid "Hide" msgstr "숨기기" @@ -1830,7 +1920,7 @@ msgstr "콘텐츠 숨기기" msgid "Hide this post?" msgstr "이 게시물을 숨기시겠습니까?" -#: src/view/com/notifications/FeedItem.tsx:315 +#: src/view/com/notifications/FeedItem.tsx:319 msgid "Hide user list" msgstr "사용자 리스트 숨기기" @@ -1864,14 +1954,19 @@ msgstr "검토 서비스를 불러올 수 없습니다." #: src/Navigation.tsx:454 #: src/view/shell/bottom-bar/BottomBar.tsx:139 -#: src/view/shell/desktop/LeftNav.tsx:306 -#: src/view/shell/Drawer.tsx:398 -#: src/view/shell/Drawer.tsx:399 +#: src/view/shell/desktop/LeftNav.tsx:310 +#: src/view/shell/Drawer.tsx:401 +#: src/view/shell/Drawer.tsx:402 msgid "Home" msgstr "홈" +#: src/view/com/modals/ChangeHandle.tsx:421 +msgid "Host:" +msgstr "" + #: src/view/com/auth/create/Step1.tsx:75 #: src/view/com/auth/login/ForgotPasswordForm.tsx:120 +#: src/view/com/modals/ChangeHandle.tsx:280 msgid "Hosting provider" msgstr "호스팅 제공자" @@ -1891,7 +1986,7 @@ msgstr "확인 코드가 있습니다" msgid "I have my own domain" msgstr "내 도메인을 가지고 있습니다" -#: src/view/com/lightbox/Lightbox.web.tsx:165 +#: src/view/com/lightbox/Lightbox.web.tsx:185 msgid "If alt text is long, toggles alt text expanded state" msgstr "대체 텍스트가 긴 경우 대체 텍스트 확장 상태를 전환합니다" @@ -1899,6 +1994,10 @@ msgstr "대체 텍스트가 긴 경우 대체 텍스트 확장 상태를 전환 msgid "If none are selected, suitable for all ages." msgstr "아무것도 선택하지 않으면 모든 연령대에 적합하다는 뜻입니다." +#: src/view/com/auth/create/Policies.tsx:91 +msgid "If you are not yet an adult according to the laws of your country, your parent or legal guardian must read these Terms on your behalf." +msgstr "" + #: src/view/screens/ProfileList.tsx:610 msgid "If you delete this list, you won't be able to recover it." msgstr "이 리스트를 삭제하면 다시 복구할 수 없습니다." @@ -1907,7 +2006,7 @@ msgstr "이 리스트를 삭제하면 다시 복구할 수 없습니다." msgid "If you remove this post, you won't be able to recover it." msgstr "이 게시물을 삭제하면 다시 복구할 수 없습니다." -#: src/view/com/modals/ChangePassword.tsx:146 +#: src/view/com/modals/ChangePassword.tsx:148 msgid "If you want to change your password, we will send you a code to verify that this is your account." msgstr "비밀번호를 변경하고 싶다면 본인 계정임을 확인할 수 있는 코드를 보내드리겠습니다." @@ -1967,11 +2066,15 @@ msgstr "가입 시 사용한 사용자 이름 또는 이메일 주소를 입력 msgid "Input your password" msgstr "비밀번호를 입력합니다" +#: src/view/com/modals/ChangeHandle.tsx:390 +msgid "Input your preferred hosting provider" +msgstr "" + #: src/view/com/auth/create/Step2.tsx:80 msgid "Input your user handle" msgstr "사용자 핸들을 입력합니다" -#: src/view/com/post-thread/PostThreadItem.tsx:225 +#: src/view/com/post-thread/PostThreadItem.tsx:221 msgid "Invalid or unsupported post record" msgstr "유효하지 않거나 지원되지 않는 게시물 기록" @@ -2004,7 +2107,7 @@ msgstr "초대 코드: 1개 사용 가능" msgid "It shows posts from the people you follow as they happen." msgstr "내가 팔로우하는 사람들의 게시물이 올라오는 대로 표시됩니다." -#: src/view/com/auth/HomeLoggedOutCTA.tsx:99 +#: src/view/com/auth/HomeLoggedOutCTA.tsx:103 #: src/view/com/auth/SplashScreen.web.tsx:138 msgid "Jobs" msgstr "채용" @@ -2029,7 +2132,7 @@ msgstr "작성자가 라벨 지정함." msgid "Labels" msgstr "라벨" -#: src/screens/Profile/Sections/Labels.tsx:161 +#: src/screens/Profile/Sections/Labels.tsx:143 msgid "Labels are annotations on users and content. They can be used to hide, warn, and categorize the network." msgstr "라벨은 사용자 및 콘텐츠에 대한 주석입니다. 네트워크를 숨기고, 경고하고, 분류하는 데 사용할 수 있습니다." @@ -2049,7 +2152,7 @@ msgstr "내 콘텐츠의 라벨" msgid "Language selection" msgstr "언어 선택" -#: src/view/screens/Settings/index.tsx:612 +#: src/view/screens/Settings/index.tsx:610 msgid "Language settings" msgstr "언어 설정" @@ -2058,7 +2161,7 @@ msgstr "언어 설정" msgid "Language Settings" msgstr "언어 설정" -#: src/view/screens/Settings/index.tsx:621 +#: src/view/screens/Settings/index.tsx:619 msgid "Languages" msgstr "언어" @@ -2066,7 +2169,7 @@ msgstr "언어" msgid "Last step!" msgstr "마지막 단계예요!" -#: src/components/moderation/ScreenHider.tsx:128 +#: src/components/moderation/ScreenHider.tsx:129 msgid "Learn More" msgstr "더 알아보기" @@ -2076,11 +2179,11 @@ msgid "Learn more about the moderation applied to this content." msgstr "이 콘텐츠에 적용된 검토 설정에 대해 자세히 알아보세요." #: src/components/moderation/PostHider.tsx:85 -#: src/components/moderation/ScreenHider.tsx:125 +#: src/components/moderation/ScreenHider.tsx:126 msgid "Learn more about this warning" msgstr "이 경고에 대해 더 알아보기" -#: src/screens/Moderation/index.tsx:555 +#: src/screens/Moderation/index.tsx:551 msgid "Learn more about what is public on Bluesky." msgstr "Bluesky에서 공개되는 항목에 대해 자세히 알아보세요." @@ -2113,7 +2216,7 @@ msgstr "비밀번호를 재설정해 봅시다!" msgid "Let's go!" msgstr "출발!" -#: src/view/screens/Settings/index.tsx:497 +#: src/view/screens/Settings/index.tsx:494 msgid "Light" msgstr "밝음" @@ -2152,11 +2255,11 @@ msgstr "{count}명의 사용자가 좋아함" msgid "Liked by {likeCount} {0}" msgstr "{likeCount}명의 사용자가 좋아함" -#: src/view/com/notifications/FeedItem.tsx:170 +#: src/view/com/notifications/FeedItem.tsx:174 msgid "liked your custom feed" msgstr "님이 내 맞춤 피드를 좋아합니다" -#: src/view/com/notifications/FeedItem.tsx:155 +#: src/view/com/notifications/FeedItem.tsx:159 msgid "liked your post" msgstr "님이 내 게시물을 좋아합니다" @@ -2207,29 +2310,29 @@ msgstr "리스트 언뮤트됨" #: src/Navigation.tsx:114 #: src/view/screens/Profile.tsx:187 #: src/view/screens/Profile.tsx:193 -#: src/view/shell/desktop/LeftNav.tsx:379 -#: src/view/shell/Drawer.tsx:492 -#: src/view/shell/Drawer.tsx:493 +#: src/view/shell/desktop/LeftNav.tsx:383 +#: src/view/shell/Drawer.tsx:495 +#: src/view/shell/Drawer.tsx:496 msgid "Lists" msgstr "리스트" #: src/view/com/post-thread/PostThread.tsx:334 #: src/view/com/post-thread/PostThread.tsx:342 -msgid "Load more posts" -msgstr "더 많은 게시물 불러오기" +#~ msgid "Load more posts" +#~ msgstr "더 많은 게시물 불러오기" #: src/view/screens/Notifications.tsx:159 msgid "Load new notifications" msgstr "새 알림 불러오기" #: src/screens/Profile/Sections/Feed.tsx:70 -#: src/view/com/feeds/FeedPage.tsx:115 +#: src/view/com/feeds/FeedPage.tsx:124 #: src/view/screens/ProfileFeed.tsx:495 #: src/view/screens/ProfileList.tsx:695 msgid "Load new posts" msgstr "새 게시물 불러오기" -#: src/view/com/composer/text-input/mobile/Autocomplete.tsx:95 +#: src/view/com/composer/text-input/mobile/Autocomplete.tsx:99 msgid "Loading..." msgstr "불러오는 중…" @@ -2244,11 +2347,11 @@ msgstr "로그" msgid "Log out" msgstr "로그아웃" -#: src/screens/Moderation/index.tsx:448 +#: src/screens/Moderation/index.tsx:444 msgid "Logged-out visibility" msgstr "로그아웃 표시" -#: src/view/com/auth/login/ChooseAccountForm.tsx:133 +#: src/view/com/auth/login/ChooseAccountForm.tsx:137 msgid "Login to account that is not listed" msgstr "목록에 없는 계정으로 로그인" @@ -2281,7 +2384,7 @@ msgid "Mentioned users" msgstr "멘션한 사용자" #: src/view/com/util/ViewHeader.tsx:87 -#: src/view/screens/Search/Search.tsx:646 +#: src/view/screens/Search/Search.tsx:647 msgid "Menu" msgstr "메뉴" @@ -2295,10 +2398,10 @@ msgstr "오해의 소지가 있는 계정" #: src/Navigation.tsx:119 #: src/screens/Moderation/index.tsx:106 -#: src/view/screens/Settings/index.tsx:643 -#: src/view/shell/desktop/LeftNav.tsx:397 -#: src/view/shell/Drawer.tsx:511 -#: src/view/shell/Drawer.tsx:512 +#: src/view/screens/Settings/index.tsx:641 +#: src/view/shell/desktop/LeftNav.tsx:401 +#: src/view/shell/Drawer.tsx:514 +#: src/view/shell/Drawer.tsx:515 msgid "Moderation" msgstr "검토" @@ -2329,7 +2432,7 @@ msgstr "검토 리스트 생성됨" msgid "Moderation list updated" msgstr "검토 리스트 업데이트됨" -#: src/screens/Moderation/index.tsx:246 +#: src/screens/Moderation/index.tsx:245 msgid "Moderation lists" msgstr "검토 리스트" @@ -2338,7 +2441,7 @@ msgstr "검토 리스트" msgid "Moderation Lists" msgstr "검토 리스트" -#: src/view/screens/Settings/index.tsx:637 +#: src/view/screens/Settings/index.tsx:635 msgid "Moderation settings" msgstr "검토 설정" @@ -2346,7 +2449,7 @@ msgstr "검토 설정" msgid "Moderation states" msgstr "검토 상태" -#: src/screens/Moderation/index.tsx:218 +#: src/screens/Moderation/index.tsx:217 msgid "Moderation tools" msgstr "검토 도구" @@ -2355,6 +2458,10 @@ msgstr "검토 도구" msgid "Moderator has chosen to set a general warning on the content." msgstr "관리자가 콘텐츠에 일반 경고를 설정했습니다." +#: src/view/com/post-thread/PostThreadItem.tsx:541 +msgid "More" +msgstr "" + #: src/view/shell/desktop/Feeds.tsx:65 msgid "More feeds" msgstr "피드 더 보기" @@ -2431,7 +2538,7 @@ msgstr "단어 및 태그 뮤트" msgid "Muted" msgstr "뮤트됨" -#: src/screens/Moderation/index.tsx:258 +#: src/screens/Moderation/index.tsx:257 msgid "Muted accounts" msgstr "뮤트한 계정" @@ -2448,7 +2555,7 @@ msgstr "계정을 뮤트하면 피드와 알림에서 해당 계정의 게시물 msgid "Muted by \"{0}\"" msgstr "\"{0}\" 님이 뮤트함" -#: src/screens/Moderation/index.tsx:234 +#: src/screens/Moderation/index.tsx:233 msgid "Muted words & tags" msgstr "뮤트한 단어 및 태그" @@ -2456,8 +2563,8 @@ msgstr "뮤트한 단어 및 태그" msgid "Muting is private. Muted accounts can interact with you, but you will not see their posts or receive notifications from them." msgstr "뮤트 목록은 비공개입니다. 뮤트한 계정은 나와 상호작용할 수 있지만 해당 계정의 게시물을 보거나 해당 계정으로부터 알림을 받을 수 없습니다." -#: src/components/dialogs/BirthDateSettings.tsx:34 -#: src/components/dialogs/BirthDateSettings.tsx:86 +#: src/components/dialogs/BirthDateSettings.tsx:35 +#: src/components/dialogs/BirthDateSettings.tsx:38 msgid "My Birthday" msgstr "내 생년월일" @@ -2469,13 +2576,17 @@ msgstr "내 피드" msgid "My Profile" msgstr "내 프로필" -#: src/view/screens/Settings/index.tsx:600 +#: src/view/screens/Settings/index.tsx:592 +msgid "My saved feeds" +msgstr "" + +#: src/view/screens/Settings/index.tsx:598 msgid "My Saved Feeds" msgstr "내 저장된 피드" #: src/view/com/auth/server-input/index.tsx:118 -msgid "my-server.com" -msgstr "my-server.com" +#~ msgid "my-server.com" +#~ msgstr "my-server.com" #: src/view/com/modals/AddAppPasswords.tsx:179 #: src/view/com/modals/CreateOrEditList.tsx:290 @@ -2500,7 +2611,7 @@ msgstr "자연" #: src/view/com/auth/login/ForgotPasswordForm.tsx:219 #: src/view/com/auth/login/LoginForm.tsx:289 #: src/view/com/auth/login/SetNewPasswordForm.tsx:196 -#: src/view/com/modals/ChangePassword.tsx:166 +#: src/view/com/modals/ChangePassword.tsx:168 msgid "Navigates to the next screen" msgstr "다음 화면으로 이동합니다" @@ -2508,7 +2619,7 @@ msgstr "다음 화면으로 이동합니다" msgid "Navigates to your profile" msgstr "내 프로필로 이동합니다" -#: src/components/ReportDialog/SelectReportOptionView.tsx:123 +#: src/components/ReportDialog/SelectReportOptionView.tsx:124 msgid "Need to report a copyright violation?" msgstr "저작권 위반을 신고해야 하나요?" @@ -2518,7 +2629,7 @@ msgid "Never load embeds from {0}" msgstr "{0}에서 임베드를 불러오지 않습니다" #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:72 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:72 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:74 msgid "Never lose access to your followers and data." msgstr "팔로워와 데이터에 대한 접근 권한을 잃지 마세요." @@ -2526,6 +2637,10 @@ msgstr "팔로워와 데이터에 대한 접근 권한을 잃지 마세요." msgid "Never lose access to your followers or data." msgstr "팔로워 또는 데이터에 대한 접근 권한을 잃지 마세요." +#: src/view/com/modals/ChangeHandle.tsx:520 +msgid "Nevermind, create a handle for me" +msgstr "" + #: src/view/screens/Lists.tsx:76 msgctxt "action" msgid "New" @@ -2540,14 +2655,15 @@ msgid "New Moderation List" msgstr "새 검토 리스트" #: src/view/com/auth/login/SetNewPasswordForm.tsx:150 +#: src/view/com/modals/ChangePassword.tsx:212 msgid "New password" msgstr "새 비밀번호" -#: src/view/com/modals/ChangePassword.tsx:215 +#: src/view/com/modals/ChangePassword.tsx:217 msgid "New Password" msgstr "새 비밀번호" -#: src/view/com/feeds/FeedPage.tsx:126 +#: src/view/com/feeds/FeedPage.tsx:135 msgctxt "action" msgid "New post" msgstr "새 게시물" @@ -2558,11 +2674,11 @@ msgstr "새 게시물" #: src/view/screens/ProfileFeed.tsx:433 #: src/view/screens/ProfileList.tsx:199 #: src/view/screens/ProfileList.tsx:227 -#: src/view/shell/desktop/LeftNav.tsx:248 +#: src/view/shell/desktop/LeftNav.tsx:252 msgid "New post" msgstr "새 게시물" -#: src/view/shell/desktop/LeftNav.tsx:258 +#: src/view/shell/desktop/LeftNav.tsx:262 msgctxt "action" msgid "New Post" msgstr "새 게시물" @@ -2586,8 +2702,8 @@ msgstr "뉴스" #: src/view/com/auth/login/SetNewPasswordForm.tsx:187 #: src/view/com/auth/login/SetNewPasswordForm.tsx:198 #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:79 -#: src/view/com/modals/ChangePassword.tsx:251 #: src/view/com/modals/ChangePassword.tsx:253 +#: src/view/com/modals/ChangePassword.tsx:255 msgid "Next" msgstr "다음" @@ -2596,7 +2712,7 @@ msgctxt "action" msgid "Next" msgstr "다음" -#: src/view/com/lightbox/Lightbox.web.tsx:149 +#: src/view/com/lightbox/Lightbox.web.tsx:169 msgid "Next image" msgstr "다음 이미지" @@ -2614,6 +2730,10 @@ msgstr "아니요" msgid "No description" msgstr "설명 없음" +#: src/view/com/modals/ChangeHandle.tsx:406 +msgid "No DNS Panel" +msgstr "" + #: src/screens/Profile/Header/ProfileHeaderStandard.tsx:111 msgid "No longer following {0}" msgstr "더 이상 {0} 님을 팔로우하지 않음" @@ -2622,12 +2742,12 @@ msgstr "더 이상 {0} 님을 팔로우하지 않음" msgid "No notifications yet!" msgstr "아직 알림이 없습니다." -#: src/view/com/composer/text-input/mobile/Autocomplete.tsx:97 -#: src/view/com/composer/text-input/web/Autocomplete.tsx:191 +#: src/view/com/composer/text-input/mobile/Autocomplete.tsx:101 +#: src/view/com/composer/text-input/web/Autocomplete.tsx:195 msgid "No result" msgstr "결과 없음" -#: src/components/Lists.tsx:191 +#: src/components/Lists.tsx:189 msgid "No results found" msgstr "결과를 찾을 수 없음" @@ -2636,8 +2756,8 @@ msgid "No results found for \"{query}\"" msgstr "\"{query}\"에 대한 결과를 찾을 수 없습니다" #: src/view/com/modals/ListAddRemoveUsers.tsx:127 -#: src/view/screens/Search/Search.tsx:281 -#: src/view/screens/Search/Search.tsx:309 +#: src/view/screens/Search/Search.tsx:282 +#: src/view/screens/Search/Search.tsx:310 msgid "No results found for {query}" msgstr "{query}에 대한 결과를 찾을 수 없습니다" @@ -2677,7 +2797,7 @@ msgstr "나중에 하기" msgid "Note about sharing" msgstr "공유 관련 참고 사항" -#: src/screens/Moderation/index.tsx:546 +#: src/screens/Moderation/index.tsx:542 msgid "Note: Bluesky is an open and public network. This setting only limits the visibility of your content on the Bluesky app and website, and other apps may not respect this setting. Your content may still be shown to logged-out users by other apps and websites." msgstr "참고: Bluesky는 개방형 공개 네트워크입니다. 이 설정은 Bluesky 앱과 웹사이트에서만 내 콘텐츠가 표시되는 것을 제한하며, 다른 앱에서는 이 설정을 준수하지 않을 수 있습니다. 다른 앱과 웹사이트에서는 로그아웃한 사용자에게 내 콘텐츠가 계속 표시될 수 있습니다." @@ -2685,9 +2805,9 @@ msgstr "참고: Bluesky는 개방형 공개 네트워크입니다. 이 설정은 #: src/view/screens/Notifications.tsx:124 #: src/view/screens/Notifications.tsx:148 #: src/view/shell/bottom-bar/BottomBar.tsx:207 -#: src/view/shell/desktop/LeftNav.tsx:361 -#: src/view/shell/Drawer.tsx:435 -#: src/view/shell/Drawer.tsx:436 +#: src/view/shell/desktop/LeftNav.tsx:365 +#: src/view/shell/Drawer.tsx:438 +#: src/view/shell/Drawer.tsx:439 msgid "Notifications" msgstr "알림" @@ -2711,6 +2831,10 @@ msgstr "이런!" msgid "Oh no! Something went wrong." msgstr "이런! 뭔가 잘못되었습니다." +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:127 +msgid "OK" +msgstr "" + #: src/view/com/auth/login/PasswordUpdatedForm.tsx:41 msgid "Okay" msgstr "확인" @@ -2731,11 +2855,11 @@ msgstr "하나 이상의 이미지에 대체 텍스트가 누락되었습니다. msgid "Only {0} can reply." msgstr "{0}만 답글을 달 수 있습니다." -#: src/components/Lists.tsx:81 +#: src/components/Lists.tsx:83 msgid "Oops, something went wrong!" msgstr "이런, 뭔가 잘못되었습니다!" -#: src/components/Lists.tsx:187 +#: src/components/Lists.tsx:157 #: src/view/screens/AppPasswords.tsx:67 #: src/view/screens/Profile.tsx:97 msgid "Oops!" @@ -2745,8 +2869,8 @@ msgstr "이런!" msgid "Open" msgstr "공개성" -#: src/view/com/composer/Composer.tsx:486 -#: src/view/com/composer/Composer.tsx:487 +#: src/view/com/composer/Composer.tsx:490 +#: src/view/com/composer/Composer.tsx:491 msgid "Open emoji picker" msgstr "이모티콘 선택기 열기" @@ -2758,7 +2882,7 @@ msgstr "피드 옵션 메뉴 열기" msgid "Open links with in-app browser" msgstr "링크를 인앱 브라우저로 열기" -#: src/screens/Moderation/index.tsx:230 +#: src/screens/Moderation/index.tsx:229 msgid "Open muted words and tags settings" msgstr "뮤트한 단어 및 태그 설정 열기" @@ -2770,11 +2894,15 @@ msgstr "내비게이션 열기" msgid "Open post options menu" msgstr "게시물 옵션 메뉴 열기" -#: src/view/screens/Settings/index.tsx:822 -#: src/view/screens/Settings/index.tsx:832 +#: src/view/screens/Settings/index.tsx:824 +#: src/view/screens/Settings/index.tsx:834 msgid "Open storybook page" msgstr "스토리북 페이지 열기" +#: src/view/screens/Settings/index.tsx:812 +msgid "Open system log" +msgstr "" + #: src/view/com/util/forms/DropdownButton.tsx:154 msgid "Opens {numItems} options" msgstr "{numItems}번째 옵션을 엽니다" @@ -2783,7 +2911,7 @@ msgstr "{numItems}번째 옵션을 엽니다" msgid "Opens additional details for a debug entry" msgstr "디버그 항목에 대한 추가 세부 정보를 엽니다" -#: src/view/com/notifications/FeedItem.tsx:348 +#: src/view/com/notifications/FeedItem.tsx:353 msgid "Opens an expanded list of users in this notification" msgstr "이 알림에서 확장된 사용자 목록을 엽니다" @@ -2795,7 +2923,7 @@ msgstr "기기에서 카메라를 엽니다" msgid "Opens composer" msgstr "답글 작성 상자를 엽니다" -#: src/view/screens/Settings/index.tsx:613 +#: src/view/screens/Settings/index.tsx:611 msgid "Opens configurable language settings" msgstr "구성 가능한 언어 설정을 엽니다" @@ -2803,23 +2931,53 @@ msgstr "구성 가능한 언어 설정을 엽니다" msgid "Opens device photo gallery" msgstr "기기의 사진 갤러리를 엽니다" -#: src/view/screens/Settings/index.tsx:667 +#: src/view/screens/Settings/index.tsx:665 msgid "Opens external embeds settings" msgstr "외부 임베드 설정을 엽니다" +#: src/view/com/auth/HomeLoggedOutCTA.tsx:56 +#: src/view/com/auth/SplashScreen.tsx:70 +msgid "Opens flow to create a new Bluesky account" +msgstr "" + +#: src/view/com/auth/HomeLoggedOutCTA.tsx:74 +#: src/view/com/auth/SplashScreen.tsx:83 +msgid "Opens flow to sign into your existing Bluesky account" +msgstr "" + #: src/view/com/modals/InviteCodes.tsx:172 msgid "Opens list of invite codes" msgstr "초대 코드 목록을 엽니다" +#: src/view/screens/Settings/index.tsx:794 +msgid "Opens modal for account deletion confirmation. Requires email code" +msgstr "" + #: src/view/screens/Settings/index.tsx:792 -msgid "Opens modal for account deletion confirmation. Requires email code." -msgstr "계정 삭제 확인을 위한 대화 상자를 엽니다. 이메일 코드가 필요합니다" +#~ msgid "Opens modal for account deletion confirmation. Requires email code." +#~ msgstr "계정 삭제 확인을 위한 대화 상자를 엽니다. 이메일 코드가 필요합니다" + +#: src/view/screens/Settings/index.tsx:752 +msgid "Opens modal for changing your Bluesky password" +msgstr "" + +#: src/view/screens/Settings/index.tsx:714 +msgid "Opens modal for choosing a new Bluesky handle" +msgstr "" + +#: src/view/screens/Settings/index.tsx:775 +msgid "Opens modal for downloading your Bluesky account data (repository)" +msgstr "" + +#: src/view/screens/Settings/index.tsx:966 +msgid "Opens modal for email verification" +msgstr "" #: src/view/com/modals/ChangeHandle.tsx:281 msgid "Opens modal for using custom domain" msgstr "사용자 지정 도메인을 사용하기 위한 대화 상자를 엽니다" -#: src/view/screens/Settings/index.tsx:638 +#: src/view/screens/Settings/index.tsx:636 msgid "Opens moderation settings" msgstr "검토 설정을 엽니다" @@ -2832,28 +2990,40 @@ msgstr "비밀번호 재설정 양식을 엽니다" msgid "Opens screen to edit Saved Feeds" msgstr "저장된 피드를 편집할 수 있는 화면을 엽니다" -#: src/view/screens/Settings/index.tsx:594 +#: src/view/screens/Settings/index.tsx:593 msgid "Opens screen with all saved feeds" msgstr "모든 저장된 피드 화면을 엽니다" +#: src/view/screens/Settings/index.tsx:692 +msgid "Opens the app password settings" +msgstr "" + #: src/view/screens/Settings/index.tsx:694 -msgid "Opens the app password settings page" -msgstr "비밀번호 설정 페이지를 엽니다" +#~ msgid "Opens the app password settings page" +#~ msgstr "비밀번호 설정 페이지를 엽니다" + +#: src/view/screens/Settings/index.tsx:550 +msgid "Opens the Following feed preferences" +msgstr "" #: src/view/screens/Settings/index.tsx:553 -msgid "Opens the home feed preferences" -msgstr "홈 피드 설정을 엽니다" +#~ msgid "Opens the home feed preferences" +#~ msgstr "홈 피드 설정을 엽니다" + +#: src/view/com/modals/LinkWarning.tsx:76 +msgid "Opens the linked website" +msgstr "" -#: src/view/screens/Settings/index.tsx:823 -#: src/view/screens/Settings/index.tsx:833 +#: src/view/screens/Settings/index.tsx:825 +#: src/view/screens/Settings/index.tsx:835 msgid "Opens the storybook page" msgstr "스토리북 페이지를 엽니다" -#: src/view/screens/Settings/index.tsx:811 +#: src/view/screens/Settings/index.tsx:813 msgid "Opens the system log page" msgstr "시스템 로그 페이지를 엽니다" -#: src/view/screens/Settings/index.tsx:574 +#: src/view/screens/Settings/index.tsx:571 msgid "Opens the threads preferences" msgstr "스레드 설정을 엽니다" @@ -2873,7 +3043,7 @@ msgstr "또는 다음 옵션을 결합하세요:" msgid "Other" msgstr "기타" -#: src/view/com/auth/login/ChooseAccountForm.tsx:138 +#: src/view/com/auth/login/ChooseAccountForm.tsx:142 msgid "Other account" msgstr "다른 계정" @@ -2881,7 +3051,7 @@ msgstr "다른 계정" msgid "Other..." msgstr "기타…" -#: src/components/Lists.tsx:193 +#: src/components/Lists.tsx:190 #: src/view/screens/NotFound.tsx:45 msgid "Page not found" msgstr "페이지를 찾을 수 없음" @@ -2892,12 +3062,18 @@ msgstr "페이지를 찾을 수 없음" #: src/view/com/auth/create/Step1.tsx:191 #: src/view/com/auth/create/Step1.tsx:201 +#: src/view/com/auth/login/LoginForm.tsx:210 #: src/view/com/auth/login/LoginForm.tsx:226 #: src/view/com/auth/login/SetNewPasswordForm.tsx:161 +#: src/view/com/modals/DeleteAccount.tsx:195 #: src/view/com/modals/DeleteAccount.tsx:202 msgid "Password" msgstr "비밀번호" +#: src/view/com/modals/ChangePassword.tsx:142 +msgid "Password Changed" +msgstr "" + #: src/view/com/auth/login/Login.tsx:157 msgid "Password updated" msgstr "비밀번호 변경됨" @@ -3022,7 +3198,7 @@ msgctxt "action" msgid "Post" msgstr "게시하기" -#: src/view/com/post-thread/PostThread.tsx:304 +#: src/view/com/post-thread/PostThread.tsx:292 msgctxt "description" msgid "Post" msgstr "게시물" @@ -3041,7 +3217,7 @@ msgstr "@{0} 님의 게시물" msgid "Post deleted" msgstr "게시물 삭제됨" -#: src/view/com/post-thread/PostThread.tsx:463 +#: src/view/com/post-thread/PostThread.tsx:157 msgid "Post hidden" msgstr "게시물 숨김" @@ -3063,7 +3239,8 @@ msgstr "게시물 언어" msgid "Post Languages" msgstr "게시물 언어" -#: src/view/com/post-thread/PostThread.tsx:515 +#: src/view/com/post-thread/PostThread.tsx:152 +#: src/view/com/post-thread/PostThread.tsx:164 msgid "Post not found" msgstr "게시물을 찾을 수 없음" @@ -3087,7 +3264,11 @@ msgstr "게시물 숨겨짐" msgid "Potentially Misleading Link" msgstr "오해의 소지가 있는 링크" -#: src/view/com/lightbox/Lightbox.web.tsx:135 +#: src/components/Lists.tsx:88 +msgid "Press to retry" +msgstr "" + +#: src/view/com/lightbox/Lightbox.web.tsx:150 msgid "Previous image" msgstr "이전 이미지" @@ -3099,15 +3280,16 @@ msgstr "주 언어" msgid "Prioritize Your Follows" msgstr "내 팔로우 먼저 표시" -#: src/view/screens/Settings/index.tsx:650 +#: src/view/screens/Settings/index.tsx:648 #: src/view/shell/desktop/RightNav.tsx:72 msgid "Privacy" msgstr "개인정보" #: src/Navigation.tsx:231 +#: src/view/com/auth/create/Policies.tsx:69 #: src/view/screens/PrivacyPolicy.tsx:29 -#: src/view/screens/Settings/index.tsx:919 -#: src/view/shell/Drawer.tsx:262 +#: src/view/screens/Settings/index.tsx:921 +#: src/view/shell/Drawer.tsx:265 msgid "Privacy Policy" msgstr "개인정보 처리방침" @@ -3120,11 +3302,11 @@ msgstr "처리 중…" msgid "profile" msgstr "프로필" -#: src/view/shell/bottom-bar/BottomBar.tsx:249 -#: src/view/shell/desktop/LeftNav.tsx:415 +#: src/view/shell/bottom-bar/BottomBar.tsx:251 +#: src/view/shell/desktop/LeftNav.tsx:419 #: src/view/shell/Drawer.tsx:70 -#: src/view/shell/Drawer.tsx:546 -#: src/view/shell/Drawer.tsx:547 +#: src/view/shell/Drawer.tsx:549 +#: src/view/shell/Drawer.tsx:550 msgid "Profile" msgstr "프로필" @@ -3132,7 +3314,7 @@ msgstr "프로필" msgid "Profile updated" msgstr "프로필 업데이트됨" -#: src/view/screens/Settings/index.tsx:977 +#: src/view/screens/Settings/index.tsx:979 msgid "Protect your account by verifying your email." msgstr "이메일을 인증하여 계정을 보호하세요." @@ -3178,6 +3360,10 @@ msgstr "무작위" msgid "Ratios" msgstr "비율" +#: src/view/screens/Search/Search.tsx:776 +msgid "Recent Searches" +msgstr "" + #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:116 msgid "Recommended Feeds" msgstr "추천 피드" @@ -3188,7 +3374,7 @@ msgstr "추천 사용자" #: src/components/dialogs/MutedWords.tsx:287 #: src/view/com/feeds/FeedSourceCard.tsx:283 -#: src/view/com/modals/ListAddRemoveUsers.tsx:264 +#: src/view/com/modals/ListAddRemoveUsers.tsx:268 #: src/view/com/modals/SelfLabel.tsx:83 #: src/view/com/modals/UserAddRemoveLists.tsx:219 #: src/view/com/posts/FeedErrorMessage.tsx:204 @@ -3199,11 +3385,11 @@ msgstr "제거" msgid "Remove account" msgstr "계정 제거" -#: src/view/com/util/UserAvatar.tsx:351 +#: src/view/com/util/UserAvatar.tsx:358 msgid "Remove Avatar" msgstr "아바타 제거" -#: src/view/com/util/UserBanner.tsx:145 +#: src/view/com/util/UserBanner.tsx:148 msgid "Remove Banner" msgstr "배너 제거" @@ -3280,8 +3466,8 @@ msgstr "답글" msgid "Reply Filters" msgstr "답글 필터" -#: src/view/com/post/Post.tsx:169 -#: src/view/com/posts/FeedItem.tsx:283 +#: src/view/com/post/Post.tsx:166 +#: src/view/com/posts/FeedItem.tsx:280 msgctxt "description" msgid "Reply to <0/>" msgstr "<0/> 님에게 보내는 답글" @@ -3305,23 +3491,23 @@ msgstr "리스트 신고" msgid "Report post" msgstr "게시물 신고" -#: src/components/ReportDialog/SelectReportOptionView.tsx:42 +#: src/components/ReportDialog/SelectReportOptionView.tsx:43 msgid "Report this content" msgstr "이 콘텐츠 신고하기" -#: src/components/ReportDialog/SelectReportOptionView.tsx:55 +#: src/components/ReportDialog/SelectReportOptionView.tsx:56 msgid "Report this feed" msgstr "이 피드 신고하기" -#: src/components/ReportDialog/SelectReportOptionView.tsx:52 +#: src/components/ReportDialog/SelectReportOptionView.tsx:53 msgid "Report this list" msgstr "이 리스트 신고하기" -#: src/components/ReportDialog/SelectReportOptionView.tsx:49 +#: src/components/ReportDialog/SelectReportOptionView.tsx:50 msgid "Report this post" msgstr "이 게시물 신고하기" -#: src/components/ReportDialog/SelectReportOptionView.tsx:46 +#: src/components/ReportDialog/SelectReportOptionView.tsx:47 msgid "Report this user" msgstr "이 사용자 신고하기" @@ -3346,15 +3532,15 @@ msgstr "재게시 또는 게시물 인용" msgid "Reposted By" msgstr "재게시한 사용자" -#: src/view/com/posts/FeedItem.tsx:201 +#: src/view/com/posts/FeedItem.tsx:197 msgid "Reposted by {0}" msgstr "{0} 님이 재게시함" -#: src/view/com/posts/FeedItem.tsx:218 +#: src/view/com/posts/FeedItem.tsx:214 msgid "Reposted by <0/>" msgstr "<0/> 님이 재게시함" -#: src/view/com/notifications/FeedItem.tsx:162 +#: src/view/com/notifications/FeedItem.tsx:166 msgid "reposted your post" msgstr "님이 내 게시물을 재게시했습니다" @@ -3367,12 +3553,12 @@ msgstr "이 게시물의 재게시" msgid "Request Change" msgstr "변경 요청" -#: src/view/com/modals/ChangePassword.tsx:239 #: src/view/com/modals/ChangePassword.tsx:241 +#: src/view/com/modals/ChangePassword.tsx:243 msgid "Request Code" msgstr "코드 요청" -#: src/view/screens/Settings/index.tsx:474 +#: src/view/screens/Settings/index.tsx:471 msgid "Require alt text before posting" msgstr "게시하기 전 대체 텍스트 필수" @@ -3382,18 +3568,20 @@ msgstr "이 제공자에서 필수" #: src/view/com/auth/login/SetNewPasswordForm.tsx:124 #: src/view/com/auth/login/SetNewPasswordForm.tsx:136 +#: src/view/com/modals/ChangePassword.tsx:185 msgid "Reset code" msgstr "재설정 코드" -#: src/view/com/modals/ChangePassword.tsx:190 +#: src/view/com/modals/ChangePassword.tsx:192 msgid "Reset Code" msgstr "재설정 코드" #: src/view/screens/Settings/index.tsx:852 -msgid "Reset onboarding" -msgstr "온보딩 초기화" +#~ msgid "Reset onboarding" +#~ msgstr "온보딩 초기화" -#: src/view/screens/Settings/index.tsx:855 +#: src/view/screens/Settings/index.tsx:854 +#: src/view/screens/Settings/index.tsx:857 msgid "Reset onboarding state" msgstr "온보딩 상태 초기화" @@ -3402,18 +3590,19 @@ msgid "Reset password" msgstr "비밀번호 재설정" #: src/view/screens/Settings/index.tsx:842 -msgid "Reset preferences" -msgstr "설정 초기화" +#~ msgid "Reset preferences" +#~ msgstr "설정 초기화" -#: src/view/screens/Settings/index.tsx:845 +#: src/view/screens/Settings/index.tsx:844 +#: src/view/screens/Settings/index.tsx:847 msgid "Reset preferences state" msgstr "설정 상태 초기화" -#: src/view/screens/Settings/index.tsx:853 +#: src/view/screens/Settings/index.tsx:855 msgid "Resets the onboarding state" msgstr "온보딩 상태 초기화" -#: src/view/screens/Settings/index.tsx:843 +#: src/view/screens/Settings/index.tsx:845 msgid "Resets the preferences state" msgstr "설정 상태 초기화" @@ -3426,6 +3615,7 @@ msgstr "로그인을 다시 시도합니다" msgid "Retries the last action, which errored out" msgstr "오류가 발생한 마지막 작업을 다시 시도합니다" +#: src/components/Lists.tsx:98 #: src/screens/Onboarding/StepInterests/index.tsx:221 #: src/screens/Onboarding/StepInterests/index.tsx:224 #: src/view/com/auth/create/CreateAccount.tsx:181 @@ -3441,7 +3631,16 @@ msgstr "다시 시도" msgid "Return to previous page" msgstr "이전 페이지로 돌아갑니다" -#: src/components/dialogs/BirthDateSettings.tsx:118 +#: src/view/screens/NotFound.tsx:59 +msgid "Returns to home page" +msgstr "" + +#: src/view/screens/NotFound.tsx:58 +#: src/view/screens/ProfileFeed.tsx:112 +msgid "Returns to previous page" +msgstr "" + +#: src/components/dialogs/BirthDateSettings.tsx:125 #: src/view/com/modals/ChangeHandle.tsx:173 #: src/view/com/modals/CreateOrEditList.tsx:337 #: src/view/com/modals/EditProfile.tsx:224 @@ -3458,7 +3657,7 @@ msgstr "저장" msgid "Save alt text" msgstr "대체 텍스트 저장" -#: src/components/dialogs/BirthDateSettings.tsx:112 +#: src/components/dialogs/BirthDateSettings.tsx:119 msgid "Save birthday" msgstr "생년월일 저장" @@ -3483,6 +3682,10 @@ msgstr "내 피드에 저장" msgid "Saved Feeds" msgstr "저장된 피드" +#: src/view/com/lightbox/Lightbox.tsx:81 +msgid "Saved to your camera roll." +msgstr "" + #: src/view/screens/ProfileFeed.tsx:212 msgid "Saved to your feeds" msgstr "내 피드에 저장됨" @@ -3495,6 +3698,10 @@ msgstr "프로필에 대한 모든 변경 사항을 저장합니다" msgid "Saves handle change to {handle}" msgstr "핸들을 {handle}(으)로 변경합니다" +#: src/view/com/modals/crop-image/CropImage.web.tsx:145 +msgid "Saves image crop settings" +msgstr "" + #: src/screens/Onboarding/index.tsx:36 msgid "Science" msgstr "과학" @@ -3508,20 +3715,20 @@ msgstr "맨 위로 스크롤" #: src/view/com/modals/ListAddRemoveUsers.tsx:75 #: src/view/com/util/forms/SearchInput.tsx:67 #: src/view/com/util/forms/SearchInput.tsx:79 -#: src/view/screens/Search/Search.tsx:419 -#: src/view/screens/Search/Search.tsx:668 -#: src/view/screens/Search/Search.tsx:686 +#: src/view/screens/Search/Search.tsx:420 +#: src/view/screens/Search/Search.tsx:669 +#: src/view/screens/Search/Search.tsx:687 #: src/view/shell/bottom-bar/BottomBar.tsx:161 -#: src/view/shell/desktop/LeftNav.tsx:324 -#: src/view/shell/desktop/Search.tsx:214 -#: src/view/shell/desktop/Search.tsx:223 -#: src/view/shell/Drawer.tsx:362 -#: src/view/shell/Drawer.tsx:363 +#: src/view/shell/desktop/LeftNav.tsx:328 +#: src/view/shell/desktop/Search.tsx:215 +#: src/view/shell/desktop/Search.tsx:224 +#: src/view/shell/Drawer.tsx:365 +#: src/view/shell/Drawer.tsx:366 msgid "Search" msgstr "검색" -#: src/view/screens/Search/Search.tsx:735 -#: src/view/shell/desktop/Search.tsx:255 +#: src/view/screens/Search/Search.tsx:736 +#: src/view/shell/desktop/Search.tsx:256 msgid "Search for \"{query}\"" msgstr "\"{query}\"에 대한 검색 결과" @@ -3575,9 +3782,17 @@ msgstr "{item} 선택" msgid "Select from an existing account" msgstr "기존 계정에서 선택" +#: src/view/screens/LanguageSettings.tsx:299 +msgid "Select languages" +msgstr "" + #: src/components/ReportDialog/SelectLabelerView.tsx:30 -msgid "Select moderation service" -msgstr "검토 서비스 선택하기" +#~ msgid "Select moderation service" +#~ msgstr "검토 서비스 선택하기" + +#: src/components/ReportDialog/SelectLabelerView.tsx:32 +msgid "Select moderator" +msgstr "" #: src/view/com/util/Selector.tsx:107 msgid "Select option {i} of {numItems}" @@ -3613,8 +3828,12 @@ msgid "Select which languages you want your subscribed feeds to include. If none msgstr "구독하는 피드에 포함할 언어를 선택합니다. 선택하지 않으면 모든 언어가 표시됩니다." #: src/view/screens/LanguageSettings.tsx:98 -msgid "Select your app language for the default text to display in the app" -msgstr "앱에 표시되는 기본 텍스트 언어를 선택합니다." +#~ msgid "Select your app language for the default text to display in the app" +#~ msgstr "앱에 표시되는 기본 텍스트 언어를 선택합니다." + +#: src/view/screens/LanguageSettings.tsx:98 +msgid "Select your app language for the default text to display in the app." +msgstr "" #: src/screens/Onboarding/StepInterests/index.tsx:196 msgid "Select your interests from the options below" @@ -3646,8 +3865,8 @@ msgctxt "action" msgid "Send Email" msgstr "이메일 보내기" -#: src/view/shell/Drawer.tsx:295 -#: src/view/shell/Drawer.tsx:316 +#: src/view/shell/Drawer.tsx:298 +#: src/view/shell/Drawer.tsx:319 msgid "Send feedback" msgstr "피드백 보내기" @@ -3656,7 +3875,7 @@ msgstr "피드백 보내기" msgid "Send report" msgstr "신고 보내기" -#: src/components/ReportDialog/SelectLabelerView.tsx:44 +#: src/components/ReportDialog/SelectLabelerView.tsx:46 msgid "Send report to {0}" msgstr "{0} 님에게 신고 보내기" @@ -3668,29 +3887,29 @@ msgstr "계정 삭제를 위한 확인 코드가 포함된 이메일을 전송 msgid "Server address" msgstr "서버 주소" -#: src/screens/Moderation/index.tsx:307 +#: src/screens/Moderation/index.tsx:306 msgid "Set birthdate" msgstr "생년월일 설정" #: src/view/screens/Settings/index.tsx:506 -msgid "Set color theme to dark" -msgstr "색상 테마를 어두움으로 설정합니다" +#~ msgid "Set color theme to dark" +#~ msgstr "색상 테마를 어두움으로 설정합니다" #: src/view/screens/Settings/index.tsx:499 -msgid "Set color theme to light" -msgstr "색상 테마를 밝음으로 설정합니다" +#~ msgid "Set color theme to light" +#~ msgstr "색상 테마를 밝음으로 설정합니다" #: src/view/screens/Settings/index.tsx:493 -msgid "Set color theme to system setting" -msgstr "색상 테마를 시스템 설정에 맞춥니다" +#~ msgid "Set color theme to system setting" +#~ msgstr "색상 테마를 시스템 설정에 맞춥니다" #: src/view/screens/Settings/index.tsx:532 -msgid "Set dark theme to the dark theme" -msgstr "어두운 테마를 완전히 어둡게 설정합니다" +#~ msgid "Set dark theme to the dark theme" +#~ msgstr "어두운 테마를 완전히 어둡게 설정합니다" #: src/view/screens/Settings/index.tsx:525 -msgid "Set dark theme to the dim theme" -msgstr "어두운 테마를 살짝 밝게 설정합니다" +#~ msgid "Set dark theme to the dim theme" +#~ msgstr "어두운 테마를 살짝 밝게 설정합니다" #: src/view/com/auth/login/SetNewPasswordForm.tsx:104 msgid "Set new password" @@ -3728,6 +3947,26 @@ msgstr "계정 설정하기" msgid "Sets Bluesky username" msgstr "Bluesky 사용자 이름을 설정합니다" +#: src/view/screens/Settings/index.tsx:503 +msgid "Sets color theme to dark" +msgstr "" + +#: src/view/screens/Settings/index.tsx:496 +msgid "Sets color theme to light" +msgstr "" + +#: src/view/screens/Settings/index.tsx:490 +msgid "Sets color theme to system setting" +msgstr "" + +#: src/view/screens/Settings/index.tsx:529 +msgid "Sets dark theme to the dark theme" +msgstr "" + +#: src/view/screens/Settings/index.tsx:522 +msgid "Sets dark theme to the dim theme" +msgstr "" + #: src/view/com/auth/login/ForgotPasswordForm.tsx:157 msgid "Sets email for password reset" msgstr "비밀번호 재설정을 위한 이메일을 설정합니다" @@ -3736,16 +3975,28 @@ msgstr "비밀번호 재설정을 위한 이메일을 설정합니다" msgid "Sets hosting provider for password reset" msgstr "비밀번호 재설정을 위한 호스팅 제공자를 설정합니다" +#: src/view/com/modals/crop-image/CropImage.web.tsx:123 +msgid "Sets image aspect ratio to square" +msgstr "" + +#: src/view/com/modals/crop-image/CropImage.web.tsx:113 +msgid "Sets image aspect ratio to tall" +msgstr "" + +#: src/view/com/modals/crop-image/CropImage.web.tsx:103 +msgid "Sets image aspect ratio to wide" +msgstr "" + #: src/view/com/auth/create/Step1.tsx:97 #: src/view/com/auth/login/LoginForm.tsx:151 msgid "Sets server for the Bluesky client" msgstr "Bluesky 클라이언트를 위한 서버를 설정합니다" #: src/Navigation.tsx:139 -#: src/view/screens/Settings/index.tsx:312 -#: src/view/shell/desktop/LeftNav.tsx:433 -#: src/view/shell/Drawer.tsx:567 -#: src/view/shell/Drawer.tsx:568 +#: src/view/screens/Settings/index.tsx:309 +#: src/view/shell/desktop/LeftNav.tsx:437 +#: src/view/shell/Drawer.tsx:570 +#: src/view/shell/Drawer.tsx:571 msgid "Settings" msgstr "설정" @@ -3785,7 +4036,7 @@ msgstr "피드 공유" #: src/components/moderation/GlobalModerationLabelPref.tsx:45 #: src/components/moderation/PostHider.tsx:107 #: src/screens/Onboarding/StepModeration/ModerationOption.tsx:54 -#: src/view/screens/Settings/index.tsx:362 +#: src/view/screens/Settings/index.tsx:359 msgid "Show" msgstr "표시" @@ -3793,8 +4044,8 @@ msgstr "표시" msgid "Show all replies" msgstr "모든 답글 표시" -#: src/components/moderation/ScreenHider.tsx:161 -#: src/components/moderation/ScreenHider.tsx:164 +#: src/components/moderation/ScreenHider.tsx:162 +#: src/components/moderation/ScreenHider.tsx:165 msgid "Show anyway" msgstr "무시하고 표시" @@ -3815,9 +4066,9 @@ msgstr "{0} 임베드 표시" msgid "Show follows similar to {0}" msgstr "{0} 님과 비슷한 팔로우 표시" -#: src/view/com/post-thread/PostThreadItem.tsx:509 -#: src/view/com/post/Post.tsx:204 -#: src/view/com/posts/FeedItem.tsx:358 +#: src/view/com/post-thread/PostThreadItem.tsx:507 +#: src/view/com/post/Post.tsx:201 +#: src/view/com/posts/FeedItem.tsx:355 msgid "Show More" msgstr "더 보기" @@ -3874,7 +4125,7 @@ msgstr "팔로우 중 피드에 재게시 표시" msgid "Show the content" msgstr "콘텐츠 표시" -#: src/view/com/notifications/FeedItem.tsx:346 +#: src/view/com/notifications/FeedItem.tsx:351 msgid "Show users" msgstr "사용자 표시" @@ -3890,22 +4141,23 @@ msgstr "경고 표시 및 피드에서 필터링" msgid "Shows posts from {0} in your feed" msgstr "피드에 {0} 님의 게시물을 표시합니다" -#: src/view/com/auth/HomeLoggedOutCTA.tsx:70 +#: src/view/com/auth/HomeLoggedOutCTA.tsx:72 #: src/view/com/auth/login/Login.tsx:98 -#: src/view/com/auth/SplashScreen.tsx:79 -#: src/view/shell/bottom-bar/BottomBar.tsx:287 -#: src/view/shell/bottom-bar/BottomBar.tsx:288 +#: src/view/com/auth/SplashScreen.tsx:81 +#: src/view/shell/bottom-bar/BottomBar.tsx:289 #: src/view/shell/bottom-bar/BottomBar.tsx:290 +#: src/view/shell/bottom-bar/BottomBar.tsx:292 #: src/view/shell/bottom-bar/BottomBarWeb.tsx:178 #: src/view/shell/bottom-bar/BottomBarWeb.tsx:179 #: src/view/shell/bottom-bar/BottomBarWeb.tsx:181 #: src/view/shell/NavSignupCard.tsx:58 #: src/view/shell/NavSignupCard.tsx:59 +#: src/view/shell/NavSignupCard.tsx:61 msgid "Sign in" msgstr "로그인" -#: src/view/com/auth/HomeLoggedOutCTA.tsx:78 -#: src/view/com/auth/SplashScreen.tsx:82 +#: src/view/com/auth/HomeLoggedOutCTA.tsx:82 +#: src/view/com/auth/SplashScreen.tsx:86 #: src/view/com/auth/SplashScreen.web.tsx:91 msgid "Sign In" msgstr "로그인" @@ -3914,7 +4166,7 @@ msgstr "로그인" msgid "Sign in as {0}" msgstr "{0}(으)로 로그인" -#: src/view/com/auth/login/ChooseAccountForm.tsx:118 +#: src/view/com/auth/login/ChooseAccountForm.tsx:122 #: src/view/com/auth/login/Login.tsx:116 msgid "Sign in as..." msgstr "로그인" @@ -3923,16 +4175,16 @@ msgstr "로그인" msgid "Sign into" msgstr "로그인" -#: src/view/com/modals/SwitchAccount.tsx:64 -#: src/view/com/modals/SwitchAccount.tsx:69 -#: src/view/screens/Settings/index.tsx:104 -#: src/view/screens/Settings/index.tsx:107 +#: src/view/com/modals/SwitchAccount.tsx:68 +#: src/view/com/modals/SwitchAccount.tsx:73 +#: src/view/screens/Settings/index.tsx:105 +#: src/view/screens/Settings/index.tsx:108 msgid "Sign out" msgstr "로그아웃" -#: src/view/shell/bottom-bar/BottomBar.tsx:277 -#: src/view/shell/bottom-bar/BottomBar.tsx:278 +#: src/view/shell/bottom-bar/BottomBar.tsx:279 #: src/view/shell/bottom-bar/BottomBar.tsx:280 +#: src/view/shell/bottom-bar/BottomBar.tsx:282 #: src/view/shell/bottom-bar/BottomBarWeb.tsx:168 #: src/view/shell/bottom-bar/BottomBarWeb.tsx:169 #: src/view/shell/bottom-bar/BottomBarWeb.tsx:171 @@ -3946,26 +4198,26 @@ msgstr "가입하기" msgid "Sign up or sign in to join the conversation" msgstr "가입 또는 로그인하여 대화에 참여하세요" -#: src/components/moderation/ScreenHider.tsx:97 +#: src/components/moderation/ScreenHider.tsx:98 #: src/lib/moderation/useGlobalLabelStrings.ts:28 msgid "Sign-in Required" msgstr "로그인 필요" -#: src/view/screens/Settings/index.tsx:373 +#: src/view/screens/Settings/index.tsx:370 msgid "Signed in as" msgstr "로그인한 계정" -#: src/view/com/auth/login/ChooseAccountForm.tsx:103 +#: src/view/com/auth/login/ChooseAccountForm.tsx:107 msgid "Signed in as @{0}" msgstr "@{0}(으)로 로그인했습니다" -#: src/view/com/modals/SwitchAccount.tsx:66 +#: src/view/com/modals/SwitchAccount.tsx:70 msgid "Signs {0} out of Bluesky" msgstr "Bluesky에서 {0}을(를) 로그아웃합니다" #: src/screens/Onboarding/StepInterests/index.tsx:235 #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:195 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:33 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:35 msgid "Skip" msgstr "건너뛰기" @@ -3977,15 +4229,15 @@ msgstr "이 단계 건너뛰기" msgid "Software Dev" msgstr "소프트웨어 개발" -#: src/components/ReportDialog/index.tsx:50 +#: src/components/ReportDialog/index.tsx:52 #: src/screens/Moderation/index.tsx:116 -#: src/screens/Profile/Sections/Labels.tsx:88 +#: src/screens/Profile/Sections/Labels.tsx:77 msgid "Something went wrong, please try again." msgstr "뭔가 잘못되었습니다. 다시 시도해 주세요." #: src/components/Lists.tsx:202 -msgid "Something went wrong!" -msgstr "뭔가 잘못되었습니다!" +#~ msgid "Something went wrong!" +#~ msgstr "뭔가 잘못되었습니다!" #: src/App.native.tsx:71 msgid "Sorry! Your session expired. Please log in again." @@ -4019,7 +4271,7 @@ msgstr "스포츠" msgid "Square" msgstr "정사각형" -#: src/view/screens/Settings/index.tsx:899 +#: src/view/screens/Settings/index.tsx:901 msgid "Status page" msgstr "상태 페이지" @@ -4032,7 +4284,7 @@ msgid "Storage cleared, you need to restart the app now." msgstr "스토리지가 지워졌으며 지금 앱을 다시 시작해야 합니다." #: src/Navigation.tsx:211 -#: src/view/screens/Settings/index.tsx:825 +#: src/view/screens/Settings/index.tsx:827 msgid "Storybook" msgstr "스토리북" @@ -4045,7 +4297,7 @@ msgstr "확인" msgid "Subscribe" msgstr "구독" -#: src/screens/Profile/Sections/Labels.tsx:199 +#: src/screens/Profile/Sections/Labels.tsx:181 msgid "Subscribe to @{0} to use these labels:" msgstr "이 라벨을 사용하려면 @{0} 님을 구독하세요:" @@ -4066,11 +4318,11 @@ msgstr "이 라벨러 구독하기" msgid "Subscribe to this list" msgstr "이 리스트 구독하기" -#: src/view/screens/Search/Search.tsx:374 +#: src/view/screens/Search/Search.tsx:375 msgid "Suggested Follows" msgstr "팔로우 추천" -#: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:64 +#: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:65 msgid "Suggested for you" msgstr "나를 위한 추천" @@ -4084,25 +4336,25 @@ msgstr "외설적" msgid "Support" msgstr "지원" -#: src/view/com/modals/SwitchAccount.tsx:117 +#: src/view/com/modals/SwitchAccount.tsx:121 msgid "Switch Account" msgstr "계정 전환" -#: src/view/com/modals/SwitchAccount.tsx:97 -#: src/view/screens/Settings/index.tsx:134 +#: src/view/com/modals/SwitchAccount.tsx:101 +#: src/view/screens/Settings/index.tsx:135 msgid "Switch to {0}" msgstr "{0}(으)로 전환" -#: src/view/com/modals/SwitchAccount.tsx:98 -#: src/view/screens/Settings/index.tsx:135 +#: src/view/com/modals/SwitchAccount.tsx:102 +#: src/view/screens/Settings/index.tsx:136 msgid "Switches the account you are logged in to" msgstr "로그인한 계정을 전환합니다" -#: src/view/screens/Settings/index.tsx:490 +#: src/view/screens/Settings/index.tsx:487 msgid "System" msgstr "시스템" -#: src/view/screens/Settings/index.tsx:813 +#: src/view/screens/Settings/index.tsx:815 msgid "System log" msgstr "시스템 로그" @@ -4131,9 +4383,10 @@ msgid "Terms" msgstr "이용약관" #: src/Navigation.tsx:236 -#: src/view/screens/Settings/index.tsx:913 +#: src/view/com/auth/create/Policies.tsx:59 +#: src/view/screens/Settings/index.tsx:915 #: src/view/screens/TermsOfService.tsx:29 -#: src/view/shell/Drawer.tsx:256 +#: src/view/shell/Drawer.tsx:259 msgid "Terms of Service" msgstr "서비스 이용약관" @@ -4155,6 +4408,10 @@ msgstr "텍스트 입력 필드" msgid "Thank you. Your report has been sent." msgstr "감사합니다. 신고를 전송했습니다." +#: src/view/com/modals/ChangeHandle.tsx:466 +msgid "That contains the following:" +msgstr "" + #: src/view/com/auth/create/CreateAccount.tsx:94 msgid "That handle is already taken." msgstr "이 핸들은 이미 사용 중입니다." @@ -4188,7 +4445,8 @@ msgstr "내 콘텐츠에 다음 라벨이 적용되었습니다." msgid "The following steps will help customize your Bluesky experience." msgstr "다음 단계는 Bluesky 환경을 맞춤 설정하는 데 도움이 됩니다." -#: src/view/com/post-thread/PostThread.tsx:518 +#: src/view/com/post-thread/PostThread.tsx:153 +#: src/view/com/post-thread/PostThread.tsx:165 msgid "The post may have been deleted." msgstr "게시물이 삭제되었을 수 있습니다." @@ -4240,7 +4498,7 @@ msgstr "서버에 연결하는 동안 문제가 발생했습니다" msgid "There was an issue fetching notifications. Tap here to try again." msgstr "알림을 가져오는 동안 문제가 발생했습니다. 이곳을 탭하여 다시 시도하세요." -#: src/view/com/posts/Feed.tsx:279 +#: src/view/com/posts/Feed.tsx:283 msgid "There was an issue fetching posts. Tap here to try again." msgstr "게시물을 가져오는 동안 문제가 발생했습니다. 이곳을 탭하여 다시 시도하세요." @@ -4298,11 +4556,11 @@ msgstr "Bluesky에 신규 사용자가 몰리고 있습니다! 최대한 빨리 msgid "These are popular accounts you might like:" msgstr "내가 좋아할 만한 인기 계정입니다:" -#: src/components/moderation/ScreenHider.tsx:116 +#: src/components/moderation/ScreenHider.tsx:117 msgid "This {screenDescription} has been flagged:" msgstr "이 {screenDescription}에 다음 플래그가 지정되었습니다:" -#: src/components/moderation/ScreenHider.tsx:111 +#: src/components/moderation/ScreenHider.tsx:112 msgid "This account has requested that users sign in to view their profile." msgstr "이 계정의 프로필을 보려면 로그인해야 합니다." @@ -4332,8 +4590,12 @@ msgid "This content is not viewable without a Bluesky account." msgstr "이 콘텐츠는 Bluesky 계정이 없으면 볼 수 없습니다." #: src/view/screens/Settings/ExportCarDialog.tsx:75 -msgid "This feature is in beta. You can read more about repository exports in <0>this blogpost." -msgstr "이 기능은 베타 버전입니다. 저장소 내보내기에 대한 자세한 내용은 <0>이 블로그 글에서 확인할 수 있습니다." +#~ msgid "This feature is in beta. You can read more about repository exports in <0>this blogpost." +#~ msgstr "이 기능은 베타 버전입니다. 저장소 내보내기에 대한 자세한 내용은 <0>이 블로그 글에서 확인할 수 있습니다." + +#: src/view/screens/Settings/ExportCarDialog.tsx:75 +msgid "This feature is in beta. You can read more about repository exports in <0>this blogpost." +msgstr "" #: src/view/com/posts/FeedErrorMessage.tsx:114 msgid "This feed is currently receiving high traffic and is temporarily unavailable. Please try again later." @@ -4349,7 +4611,7 @@ msgstr "이 피드는 비어 있습니다." msgid "This feed is empty! You may need to follow more users or tune your language settings." msgstr "이 피드는 비어 있습니다. 더 많은 사용자를 팔로우하거나 언어 설정을 조정해 보세요." -#: src/components/dialogs/BirthDateSettings.tsx:89 +#: src/components/dialogs/BirthDateSettings.tsx:41 msgid "This information is not shared with other users." msgstr "이 정보는 다른 사용자와 공유되지 않습니다." @@ -4361,7 +4623,7 @@ msgstr "이는 이메일을 변경하거나 비밀번호를 재설정해야 할 msgid "This label was applied by {0}." msgstr "이 라벨은 {0}이(가) 적용했습니다." -#: src/screens/Profile/Sections/Labels.tsx:186 +#: src/screens/Profile/Sections/Labels.tsx:168 msgid "This labeler hasn't declared what labels it publishes, and may not be active." msgstr "이 라벨러는 라벨을 게시하지 않았으며 활성화되어 있지 않을 수 있습니다." @@ -4397,6 +4659,18 @@ msgstr "이 게시물을 피드에서 숨깁니다." msgid "This profile is only visible to logged-in users. It won't be visible to people who aren't logged in." msgstr "이 프로필은 로그인한 사용자에게만 표시됩니다. 로그인하지 않은 사용자에게는 표시되지 않습니다." +#: src/view/com/auth/create/Policies.tsx:46 +msgid "This service has not provided terms of service or a privacy policy." +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:446 +msgid "This should create a domain record at:" +msgstr "" + +#: src/view/com/profile/ProfileFollowers.tsx:95 +msgid "This user doesn't have any followers." +msgstr "" + #: src/components/moderation/ModerationDetailsDialog.tsx:73 #: src/lib/moderation/useModerationCauseDescription.ts:68 msgid "This user has blocked you. You cannot view their content." @@ -4414,6 +4688,10 @@ msgstr "이 사용자는 내가 차단한 <0>{0} 리스트에 포함되어 msgid "This user is included in the <0>{0} list which you have muted." msgstr "이 사용자는 내가 뮤트한 <0>{0} 리스트에 포함되어 있습니다." +#: src/view/com/profile/ProfileFollows.tsx:94 +msgid "This user isn't following anyone." +msgstr "" + #: src/view/com/modals/SelfLabel.tsx:137 msgid "This warning is only available for posts with media attached." msgstr "이 경고는 미디어가 첨부된 게시물에만 사용할 수 있습니다." @@ -4422,8 +4700,12 @@ msgstr "이 경고는 미디어가 첨부된 게시물에만 사용할 수 있 msgid "This will delete {0} from your muted words. You can always add it back later." msgstr "뮤트한 단어에서 {0}이(가) 삭제됩니다. 나중에 언제든지 다시 추가할 수 있습니다." +#: src/view/screens/Settings/index.tsx:570 +msgid "Thread preferences" +msgstr "" + #: src/view/screens/PreferencesThreads.tsx:53 -#: src/view/screens/Settings/index.tsx:583 +#: src/view/screens/Settings/index.tsx:580 msgid "Thread Preferences" msgstr "스레드 설정" @@ -4435,6 +4717,10 @@ msgstr "스레드 모드" msgid "Threads Preferences" msgstr "스레드 설정" +#: src/components/ReportDialog/SelectLabelerView.tsx:35 +msgid "To whom would you like to send this report?" +msgstr "" + #: src/components/dialogs/MutedWords.tsx:113 msgid "Toggle between muted word options." msgstr "뮤트한 단어 옵션 사이를 전환합니다." @@ -4443,7 +4729,7 @@ msgstr "뮤트한 단어 옵션 사이를 전환합니다." msgid "Toggle dropdown" msgstr "드롭다운 열기 및 닫기" -#: src/screens/Moderation/index.tsx:338 +#: src/screens/Moderation/index.tsx:334 msgid "Toggle to enable or disable adult content" msgstr "성인 콘텐츠 활성화 또는 비활성화 전환" @@ -4451,8 +4737,8 @@ msgstr "성인 콘텐츠 활성화 또는 비활성화 전환" msgid "Transformations" msgstr "변형" +#: src/view/com/post-thread/PostThreadItem.tsx:644 #: src/view/com/post-thread/PostThreadItem.tsx:646 -#: src/view/com/post-thread/PostThreadItem.tsx:648 #: src/view/com/util/forms/PostDropdownBtn.tsx:212 #: src/view/com/util/forms/PostDropdownBtn.tsx:214 msgid "Translate" @@ -4463,6 +4749,10 @@ msgctxt "action" msgid "Try again" msgstr "다시 시도" +#: src/view/com/modals/ChangeHandle.tsx:429 +msgid "Type:" +msgstr "" + #: src/view/screens/ProfileList.tsx:478 msgid "Un-block list" msgstr "리스트 차단 해제" @@ -4508,6 +4798,11 @@ msgstr "계정을 차단 해제하시겠습니까?" msgid "Undo repost" msgstr "재게시 취소" +#: src/view/com/auth/onboarding/RecommendedFollowsItem.tsx:141 +#: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:246 +msgid "Unfollow" +msgstr "" + #: src/view/com/profile/FollowButton.tsx:60 msgctxt "action" msgid "Unfollow" @@ -4586,6 +4881,10 @@ msgstr "원치 않는 성적 콘텐츠" msgid "Update {displayName} in Lists" msgstr "리스트에서 {displayName} 업데이트" +#: src/view/com/modals/ChangeHandle.tsx:509 +msgid "Update to {handle}" +msgstr "" + #: src/view/com/auth/login/SetNewPasswordForm.tsx:204 msgid "Updating..." msgstr "업데이트 중…" @@ -4594,30 +4893,38 @@ msgstr "업데이트 중…" msgid "Upload a text file to:" msgstr "텍스트 파일 업로드 경로:" -#: src/view/com/util/UserAvatar.tsx:319 -#: src/view/com/util/UserAvatar.tsx:322 -#: src/view/com/util/UserBanner.tsx:113 +#: src/view/com/util/UserAvatar.tsx:326 +#: src/view/com/util/UserAvatar.tsx:329 #: src/view/com/util/UserBanner.tsx:116 +#: src/view/com/util/UserBanner.tsx:119 msgid "Upload from Camera" msgstr "카메라에서 업로드" -#: src/view/com/util/UserAvatar.tsx:336 -#: src/view/com/util/UserBanner.tsx:130 +#: src/view/com/util/UserAvatar.tsx:343 +#: src/view/com/util/UserBanner.tsx:133 msgid "Upload from Files" msgstr "파일에서 업로드" -#: src/view/com/util/UserAvatar.tsx:330 -#: src/view/com/util/UserAvatar.tsx:334 -#: src/view/com/util/UserBanner.tsx:124 -#: src/view/com/util/UserBanner.tsx:128 +#: src/view/com/util/UserAvatar.tsx:337 +#: src/view/com/util/UserAvatar.tsx:341 +#: src/view/com/util/UserBanner.tsx:127 +#: src/view/com/util/UserBanner.tsx:131 msgid "Upload from Library" msgstr "라이브러리에서 업로드" +#: src/view/com/modals/ChangeHandle.tsx:409 +msgid "Use a file on your server" +msgstr "" + #: src/view/screens/AppPasswords.tsx:197 msgid "Use app passwords to login to other Bluesky clients without giving full access to your account or password." msgstr "앱 비밀번호를 사용하면 계정이나 비밀번호에 대한 전체 접근 권한을 제공하지 않고도 다른 Bluesky 클라이언트에 로그인할 수 있습니다." -#: src/view/com/modals/ChangeHandle.tsx:515 +#: src/view/com/modals/ChangeHandle.tsx:518 +msgid "Use bsky.social as hosting provider" +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:517 msgid "Use default provider" msgstr "기본 제공자 사용" @@ -4631,6 +4938,10 @@ msgstr "인앱 브라우저 사용" msgid "Use my default browser" msgstr "내 기본 브라우저 사용" +#: src/view/com/modals/ChangeHandle.tsx:401 +msgid "Use the DNS panel" +msgstr "" + #: src/view/com/modals/AddAppPasswords.tsx:155 msgid "Use this to sign into the other app along with your handle." msgstr "이 비밀번호와 핸들을 사용하여 다른 앱에 로그인하세요." @@ -4712,15 +5023,23 @@ msgstr "\"{0}\"에 있는 사용자" msgid "Users that have liked this content or profile" msgstr "이 콘텐츠 또는 프로필을 좋아하는 사용자" -#: src/view/screens/Settings/index.tsx:938 +#: src/view/com/modals/ChangeHandle.tsx:437 +msgid "Value:" +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:510 +msgid "Verify {0}" +msgstr "" + +#: src/view/screens/Settings/index.tsx:940 msgid "Verify email" msgstr "이메일 인증" -#: src/view/screens/Settings/index.tsx:963 +#: src/view/screens/Settings/index.tsx:965 msgid "Verify my email" msgstr "내 이메일 인증하기" -#: src/view/screens/Settings/index.tsx:972 +#: src/view/screens/Settings/index.tsx:974 msgid "Verify My Email" msgstr "내 이메일 인증하기" @@ -4745,11 +5064,11 @@ msgstr "{0} 님의 아바타를 봅니다" msgid "View debug entry" msgstr "디버그 항목 보기" -#: src/components/ReportDialog/SelectReportOptionView.tsx:132 +#: src/components/ReportDialog/SelectReportOptionView.tsx:133 msgid "View details" msgstr "세부 정보 보기" -#: src/components/ReportDialog/SelectReportOptionView.tsx:127 +#: src/components/ReportDialog/SelectReportOptionView.tsx:128 msgid "View details for reporting a copyright violation" msgstr "저작권 위반 신고에 대한 세부 정보 보기" @@ -4778,6 +5097,7 @@ msgid "View users who like this feed" msgstr "이 피드를 좋아하는 사용자 보기" #: src/view/com/modals/LinkWarning.tsx:75 +#: src/view/com/modals/LinkWarning.tsx:77 msgid "Visit Site" msgstr "사이트 방문" @@ -4824,7 +5144,11 @@ msgstr "게시물이 표시되지 않을 수 있으므로 많은 게시물에 msgid "We recommend our \"Discover\" feed:" msgstr "\"Discover\" 피드를 권장합니다:" -#: src/screens/Moderation/index.tsx:391 +#: src/components/dialogs/BirthDateSettings.tsx:52 +msgid "We were unable to load your birth date preferences. Please try again." +msgstr "" + +#: src/screens/Moderation/index.tsx:387 msgid "We were unable to load your configured labelers at this time." msgstr "현재 구성된 라벨러를 불러올 수 없습니다." @@ -4852,11 +5176,11 @@ msgstr "죄송하지만 이 리스트를 불러올 수 없습니다. 이 문제 msgid "We're sorry, but we weren't able to load your muted words at this time. Please try again." msgstr "죄송하지만 현재 뮤트한 단어를 불러올 수 없습니다. 다시 시도해 주세요." -#: src/view/screens/Search/Search.tsx:254 +#: src/view/screens/Search/Search.tsx:255 msgid "We're sorry, but your search could not be completed. Please try again in a few minutes." msgstr "죄송하지만 검색을 완료할 수 없습니다. 몇 분 후에 다시 시도해 주세요." -#: src/components/Lists.tsx:210 +#: src/components/Lists.tsx:194 #: src/view/screens/NotFound.tsx:48 msgid "We're sorry! We can't find the page you were looking for." msgstr "죄송합니다. 페이지를 찾을 수 없습니다." @@ -4865,7 +5189,7 @@ msgstr "죄송합니다. 페이지를 찾을 수 없습니다." msgid "We're sorry! You can only subscribe to ten labelers, and you've reached your limit of ten." msgstr "죄송합니다. 라벨러는 10개까지만 구독할 수 있으며 10개에 도달했습니다." -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:46 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:48 msgid "Welcome to <0>Bluesky" msgstr "<0>Bluesky에 오신 것을 환영합니다" @@ -4892,26 +5216,26 @@ msgid "Who can reply" msgstr "답글을 달 수 있는 사람" #: src/components/ReportDialog/SelectLabelerView.tsx:33 -msgid "Who do you want to send this report to?" -msgstr "이 신고를 누구에게 보내시겠습니까?" +#~ msgid "Who do you want to send this report to?" +#~ msgstr "이 신고를 누구에게 보내시겠습니까?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:43 +#: src/components/ReportDialog/SelectReportOptionView.tsx:44 msgid "Why should this content be reviewed?" msgstr "이 콘텐츠를 검토해야 하는 이유는 무엇인가요?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:56 +#: src/components/ReportDialog/SelectReportOptionView.tsx:57 msgid "Why should this feed be reviewed?" msgstr "이 피드를 검토해야 하는 이유는 무엇인가요?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:53 +#: src/components/ReportDialog/SelectReportOptionView.tsx:54 msgid "Why should this list be reviewed?" msgstr "이 리스트를 검토해야 하는 이유는 무엇인가요?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:50 +#: src/components/ReportDialog/SelectReportOptionView.tsx:51 msgid "Why should this post be reviewed?" msgstr "이 게시물을 검토해야 하는 이유는 무엇인가요?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:47 +#: src/components/ReportDialog/SelectReportOptionView.tsx:48 msgid "Why should this user be reviewed?" msgstr "이 사용자를 검토해야 하는 이유는 무엇인가요?" @@ -4919,12 +5243,12 @@ msgstr "이 사용자를 검토해야 하는 이유는 무엇인가요?" msgid "Wide" msgstr "가로" -#: src/view/com/composer/Composer.tsx:431 +#: src/view/com/composer/Composer.tsx:435 msgid "Write post" msgstr "게시물 작성" #: src/view/com/composer/Composer.tsx:294 -#: src/view/com/composer/Prompt.tsx:33 +#: src/view/com/composer/Prompt.tsx:37 msgid "Write your reply" msgstr "답글 작성하기" @@ -4946,6 +5270,10 @@ msgstr "예" msgid "You are in line." msgstr "대기 중입니다." +#: src/view/com/profile/ProfileFollows.tsx:93 +msgid "You are not following anyone." +msgstr "" + #: src/view/com/posts/FollowingEmptyState.tsx:67 #: src/view/com/posts/FollowingEndOfFeed.tsx:68 msgid "You can also discover new Custom Feeds to follow." @@ -4960,6 +5288,10 @@ msgstr "이 설정은 나중에 변경할 수 있습니다." msgid "You can now sign in with your new password." msgstr "이제 새 비밀번호로 로그인할 수 있습니다." +#: src/view/com/profile/ProfileFollowers.tsx:94 +msgid "You do not have any followers." +msgstr "" + #: src/view/com/modals/InviteCodes.tsx:66 msgid "You don't have any invite codes yet! We'll send you some when you've been on Bluesky for a little longer." msgstr "아직 초대 코드가 없습니다! Bluesky를 좀 더 오래 사용하신 후에 보내드리겠습니다." @@ -4976,7 +5308,7 @@ msgstr "저장된 피드가 없습니다!" msgid "You don't have any saved feeds." msgstr "저장된 피드가 없습니다." -#: src/view/com/post-thread/PostThread.tsx:466 +#: src/view/com/post-thread/PostThread.tsx:159 msgid "You have blocked the author or you have been blocked by the author." msgstr "작성자를 차단했거나 작성자가 나를 차단했습니다." @@ -5020,16 +5352,24 @@ msgid "You have no lists." msgstr "리스트가 없습니다." #: src/view/screens/ModerationBlockedAccounts.tsx:132 -msgid "You have not blocked any accounts yet. To block an account, go to their profile and selected \"Block account\" from the menu on their account." -msgstr "아직 어떤 계정도 차단하지 않았습니다. 계정을 차단하려면 해당 계정의 프로필로 이동하여 계정 메뉴에서 \"계정 차단\"을 선택하세요." +msgid "You have not blocked any accounts yet. To block an account, go to their profile and select \"Block account\" from the menu on their account." +msgstr "" + +#: src/view/screens/ModerationBlockedAccounts.tsx:132 +#~ msgid "You have not blocked any accounts yet. To block an account, go to their profile and selected \"Block account\" from the menu on their account." +#~ msgstr "아직 어떤 계정도 차단하지 않았습니다. 계정을 차단하려면 해당 계정의 프로필로 이동하여 계정 메뉴에서 \"계정 차단\"을 선택하세요." #: src/view/screens/AppPasswords.tsx:89 msgid "You have not created any app passwords yet. You can create one by pressing the button below." msgstr "아직 앱 비밀번호를 생성하지 않았습니다. 아래 버튼을 눌러 생성할 수 있습니다." #: src/view/screens/ModerationMutedAccounts.tsx:131 -msgid "You have not muted any accounts yet. To mute an account, go to their profile and selected \"Mute account\" from the menu on their account." -msgstr "아직 어떤 계정도 뮤트하지 않았습니다. 계정을 뮤트하려면 해당 계정의 프로필로 이동하여 계정 메뉴에서 \"계정 뮤트\"를 선택하세요." +msgid "You have not muted any accounts yet. To mute an account, go to their profile and select \"Mute account\" from the menu on their account." +msgstr "" + +#: src/view/screens/ModerationMutedAccounts.tsx:131 +#~ msgid "You have not muted any accounts yet. To mute an account, go to their profile and selected \"Mute account\" from the menu on their account." +#~ msgstr "아직 어떤 계정도 뮤트하지 않았습니다. 계정을 뮤트하려면 해당 계정의 프로필로 이동하여 계정 메뉴에서 \"계정 뮤트\"를 선택하세요." #: src/components/dialogs/MutedWords.tsx:250 msgid "You haven't muted any words or tags yet" @@ -5039,7 +5379,7 @@ msgstr "아직 어떤 단어나 태그도 뮤트하지 않았습니다" msgid "You may appeal these labels if you feel they were placed in error." msgstr "이 라벨이 잘못 지정되었다고 생각되면 이의신청할 수 있습니다." -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:108 +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:110 msgid "You must be 18 years or older to enable adult content" msgstr "성인 콘텐츠를 사용하려면 만 18세 이상이어야 합니다." @@ -5136,7 +5476,7 @@ msgstr "내 전체 핸들: <0>@{0}" msgid "Your muted words" msgstr "뮤트한 단어" -#: src/view/com/modals/ChangePassword.tsx:155 +#: src/view/com/modals/ChangePassword.tsx:157 msgid "Your password has been changed successfully!" msgstr "비밀번호를 성공적으로 변경했습니다." @@ -5146,12 +5486,12 @@ msgstr "게시물을 게시했습니다" #: src/screens/Onboarding/StepFinished.tsx:105 #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:59 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:59 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:61 msgid "Your posts, likes, and blocks are public. Mutes are private." msgstr "게시물, 좋아요, 차단 목록은 공개됩니다. 뮤트 목록은 공개되지 않습니다." -#: src/view/com/modals/SwitchAccount.tsx:84 -#: src/view/screens/Settings/index.tsx:122 +#: src/view/com/modals/SwitchAccount.tsx:88 +#: src/view/screens/Settings/index.tsx:123 msgid "Your profile" msgstr "내 프로필" diff --git a/src/locale/locales/pt-BR/messages.po b/src/locale/locales/pt-BR/messages.po index bfd794c551..62d004c2a5 100644 --- a/src/locale/locales/pt-BR/messages.po +++ b/src/locale/locales/pt-BR/messages.po @@ -17,11 +17,11 @@ msgstr "" msgid "(no email)" msgstr "(sem email)" -#: src/view/com/profile/ProfileHeader.tsx:593 +#: src/screens/Profile/Header/Metrics.tsx:45 msgid "{following} following" msgstr "{following} seguindo" -#: src/view/shell/Drawer.tsx:440 +#: src/view/shell/Drawer.tsx:443 msgid "{numUnreadNotifications} unread" msgstr "{numUnreadNotifications} não lidas" @@ -29,7 +29,11 @@ msgstr "{numUnreadNotifications} não lidas" msgid "<0/> members" msgstr "<0/> membros" -#: src/view/com/profile/ProfileHeader.tsx:595 +#: src/view/shell/Drawer.tsx:97 +msgid "<0>{0} following" +msgstr "" + +#: src/screens/Profile/Header/Metrics.tsx:46 msgid "<0>{following} <1>following" msgstr "<0>{following} <1>seguindo" @@ -45,20 +49,20 @@ msgstr "<0>Siga alguns<2>Usuários<1>recomendados" msgid "<0>Welcome to<1>Bluesky" msgstr "<0>Bem-vindo ao<1>Bluesky" -#: src/view/com/profile/ProfileHeader.tsx:558 +#: src/screens/Profile/Header/Handle.tsx:42 msgid "⚠Invalid Handle" msgstr "⚠Usuário Inválido" #: src/view/com/util/moderation/LabelInfo.tsx:45 -msgid "A content warning has been applied to this {0}." -msgstr "Um aviso de conteúdo foi aplicado a este {0}." +#~ msgid "A content warning has been applied to this {0}." +#~ msgstr "Um aviso de conteúdo foi aplicado a este {0}." #: src/lib/hooks/useOTAUpdate.ts:16 -msgid "A new version of the app is available. Please update to continue using the app." -msgstr "Uma nova versão do aplicativo está disponível. Por favor, atualize para continuar usando o aplicativo." +#~ msgid "A new version of the app is available. Please update to continue using the app." +#~ msgstr "Uma nova versão do aplicativo está disponível. Por favor, atualize para continuar usando o aplicativo." #: src/view/com/util/ViewHeader.tsx:89 -#: src/view/screens/Search/Search.tsx:647 +#: src/view/screens/Search/Search.tsx:648 msgid "Access navigation links and settings" msgstr "Acessar links de navegação e configurações" @@ -67,29 +71,38 @@ msgid "Access profile and other navigation links" msgstr "Acessar perfil e outros links de navegação" #: src/view/com/modals/EditImage.tsx:299 -#: src/view/screens/Settings/index.tsx:451 +#: src/view/screens/Settings/index.tsx:466 msgid "Accessibility" msgstr "Acessibilidade" +#: src/components/moderation/LabelsOnMe.tsx:42 +msgid "account" +msgstr "" + #: src/view/com/auth/login/LoginForm.tsx:166 -#: src/view/screens/Settings/index.tsx:308 -#: src/view/screens/Settings/index.tsx:721 +#: src/view/screens/Settings/index.tsx:323 +#: src/view/screens/Settings/index.tsx:739 msgid "Account" msgstr "Conta" -#: src/view/com/profile/ProfileHeader.tsx:246 +#: src/view/com/profile/ProfileMenu.tsx:139 msgid "Account blocked" msgstr "Conta bloqueada" -#: src/view/com/profile/ProfileHeader.tsx:213 +#: src/view/com/profile/ProfileMenu.tsx:153 +msgid "Account followed" +msgstr "" + +#: src/view/com/profile/ProfileMenu.tsx:113 msgid "Account muted" msgstr "Conta silenciada" -#: src/view/com/modals/ModerationDetails.tsx:86 +#: src/components/moderation/ModerationDetailsDialog.tsx:94 +#: src/lib/moderation/useModerationCauseDescription.ts:91 msgid "Account Muted" msgstr "Conta Silenciada" -#: src/view/com/modals/ModerationDetails.tsx:72 +#: src/components/moderation/ModerationDetailsDialog.tsx:83 msgid "Account Muted by List" msgstr "Conta Silenciada por Lista" @@ -101,19 +114,24 @@ msgstr "Configurações da conta" msgid "Account removed from quick access" msgstr "Conta removida do acesso rápido" -#: src/view/com/profile/ProfileHeader.tsx:268 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:130 +#: src/view/com/profile/ProfileMenu.tsx:128 msgid "Account unblocked" msgstr "Conta desbloqueada" -#: src/view/com/profile/ProfileHeader.tsx:226 +#: src/view/com/profile/ProfileMenu.tsx:166 +msgid "Account unfollowed" +msgstr "" + +#: src/view/com/profile/ProfileMenu.tsx:102 msgid "Account unmuted" msgstr "Conta dessilenciada" #: src/components/dialogs/MutedWords.tsx:165 #: src/view/com/auth/onboarding/RecommendedFeedsItem.tsx:150 -#: src/view/com/modals/ListAddRemoveUsers.tsx:264 +#: src/view/com/modals/ListAddRemoveUsers.tsx:268 #: src/view/com/modals/UserAddRemoveLists.tsx:219 -#: src/view/screens/ProfileList.tsx:813 +#: src/view/screens/ProfileList.tsx:827 msgid "Add" msgstr "Adicionar" @@ -121,12 +139,12 @@ msgstr "Adicionar" msgid "Add a content warning" msgstr "Adicionar um aviso de conteúdo" -#: src/view/screens/ProfileList.tsx:803 +#: src/view/screens/ProfileList.tsx:817 msgid "Add a user to this list" msgstr "Adicionar um usuário a esta lista" -#: src/view/screens/Settings/index.tsx:383 -#: src/view/screens/Settings/index.tsx:392 +#: src/view/screens/Settings/index.tsx:398 +#: src/view/screens/Settings/index.tsx:407 msgid "Add account" msgstr "Adicionar conta" @@ -136,26 +154,26 @@ msgstr "Adicionar conta" msgid "Add alt text" msgstr "Adicionar texto alternativo" -#: src/view/screens/AppPasswords.tsx:102 -#: src/view/screens/AppPasswords.tsx:143 -#: src/view/screens/AppPasswords.tsx:156 +#: src/view/screens/AppPasswords.tsx:104 +#: src/view/screens/AppPasswords.tsx:145 +#: src/view/screens/AppPasswords.tsx:158 msgid "Add App Password" msgstr "Adicionar Senha de Aplicativo" #: src/view/com/modals/report/InputIssueDetails.tsx:41 #: src/view/com/modals/report/Modal.tsx:191 -msgid "Add details" -msgstr "Adicionar detalhes" +#~ msgid "Add details" +#~ msgstr "Adicionar detalhes" #: src/view/com/modals/report/Modal.tsx:194 -msgid "Add details to report" -msgstr "Adicionar detalhes à denúncia" +#~ msgid "Add details to report" +#~ msgstr "Adicionar detalhes à denúncia" -#: src/view/com/composer/Composer.tsx:453 +#: src/view/com/composer/Composer.tsx:466 msgid "Add link card" msgstr "Adicionar prévia de link" -#: src/view/com/composer/Composer.tsx:458 +#: src/view/com/composer/Composer.tsx:471 msgid "Add link card:" msgstr "Adicionar prévia de link:" @@ -171,12 +189,12 @@ msgstr "Adicionar palavras/tags silenciadas" msgid "Add the following DNS record to your domain:" msgstr "Adicione o seguinte registro DNS ao seu domínio:" -#: src/view/com/profile/ProfileHeader.tsx:310 +#: src/view/com/profile/ProfileMenu.tsx:263 +#: src/view/com/profile/ProfileMenu.tsx:266 msgid "Add to Lists" msgstr "Adicionar às Listas" -#: src/view/com/feeds/FeedSourceCard.tsx:245 -#: src/view/screens/ProfileFeed.tsx:273 +#: src/view/com/feeds/FeedSourceCard.tsx:234 msgid "Add to my feeds" msgstr "Adicionar aos meus feeds" @@ -189,7 +207,7 @@ msgstr "Adicionado" msgid "Added to list" msgstr "Adicionado à lista" -#: src/view/com/feeds/FeedSourceCard.tsx:127 +#: src/view/com/feeds/FeedSourceCard.tsx:108 msgid "Added to my feeds" msgstr "Adicionado aos meus feeds" @@ -197,15 +215,21 @@ msgstr "Adicionado aos meus feeds" msgid "Adjust the number of likes a reply must have to be shown in your feed." msgstr "Ajuste o número de curtidas para que uma resposta apareça no seu feed." +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:117 #: src/view/com/modals/SelfLabel.tsx:75 msgid "Adult Content" msgstr "Conteúdo Adulto" #: src/view/com/modals/ContentFilteringSettings.tsx:141 -msgid "Adult content can only be enabled via the Web at <0/>." -msgstr "Conteúdo adulto só pode ser habilitado no site: <0/>." +#~ msgid "Adult content can only be enabled via the Web at <0/>." +#~ msgstr "Conteúdo adulto só pode ser habilitado no site: <0/>." -#: src/view/screens/Settings/index.tsx:664 +#: src/components/moderation/ModerationLabelPref.tsx:114 +msgid "Adult content is disabled." +msgstr "" + +#: src/screens/Moderation/index.tsx:377 +#: src/view/screens/Settings/index.tsx:680 msgid "Advanced" msgstr "Avançado" @@ -214,11 +238,11 @@ msgid "All the feeds you've saved, right in one place." msgstr "Todos os feeds que você salvou, em um único lugar." #: src/view/com/auth/login/ForgotPasswordForm.tsx:221 -#: src/view/com/modals/ChangePassword.tsx:168 +#: src/view/com/modals/ChangePassword.tsx:170 msgid "Already have a code?" msgstr "Já tem um código?" -#: src/view/com/auth/login/ChooseAccountForm.tsx:98 +#: src/view/com/auth/login/ChooseAccountForm.tsx:102 msgid "Already signed in as @{0}" msgstr "Já logado como @{0}" @@ -242,12 +266,18 @@ msgstr "Um email foi enviado para {0}. Ele inclui um código de confirmação qu msgid "An email has been sent to your previous address, {0}. It includes a confirmation code which you can enter below." msgstr "Um email foi enviado para seu email anterior, {0}. Ele inclui um código de confirmação que você pode inserir abaixo." -#: src/view/com/profile/FollowButton.tsx:30 -#: src/view/com/profile/FollowButton.tsx:40 +#: src/lib/moderation/useReportOptions.ts:26 +msgid "An issue not included in these options" +msgstr "" + +#: src/view/com/profile/FollowButton.tsx:35 +#: src/view/com/profile/FollowButton.tsx:45 +#: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:188 +#: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:198 msgid "An issue occurred, please try again." msgstr "Ocorreu um problema, por favor tente novamente." -#: src/view/com/notifications/FeedItem.tsx:237 +#: src/view/com/notifications/FeedItem.tsx:240 #: src/view/com/threadgate/WhoCanReply.tsx:178 msgid "and" msgstr "e" @@ -256,11 +286,15 @@ msgstr "e" msgid "Animals" msgstr "Animais" +#: src/lib/moderation/useReportOptions.ts:31 +msgid "Anti-Social Behavior" +msgstr "" + #: src/view/screens/LanguageSettings.tsx:95 msgid "App Language" msgstr "Idioma do aplicativo" -#: src/view/screens/AppPasswords.tsx:228 +#: src/view/screens/AppPasswords.tsx:223 msgid "App password deleted" msgstr "Senha de Aplicativo excluída" @@ -272,7 +306,7 @@ msgstr "O nome da Senha de Aplicativo só pode conter letras, números, traços msgid "App Password names must be at least 4 characters long." msgstr "O nome da Senha de Aplicativo precisa ter no mínimo 4 caracteres." -#: src/view/screens/Settings/index.tsx:675 +#: src/view/screens/Settings/index.tsx:691 msgid "App password settings" msgstr "Configurações de Senha de Aplicativo" @@ -280,49 +314,65 @@ msgstr "Configurações de Senha de Aplicativo" #~ msgid "App passwords" #~ msgstr "Senhas de aplicativos" -#: src/Navigation.tsx:239 -#: src/view/screens/AppPasswords.tsx:187 -#: src/view/screens/Settings/index.tsx:684 +#: src/Navigation.tsx:251 +#: src/view/screens/AppPasswords.tsx:189 +#: src/view/screens/Settings/index.tsx:700 msgid "App Passwords" msgstr "Senhas de Aplicativos" +#: src/components/moderation/LabelsOnMeDialog.tsx:134 +#: src/components/moderation/LabelsOnMeDialog.tsx:137 +msgid "Appeal" +msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:202 +msgid "Appeal \"{0}\" label" +msgstr "" + #: src/view/com/util/forms/PostDropdownBtn.tsx:337 #: src/view/com/util/forms/PostDropdownBtn.tsx:346 -msgid "Appeal content warning" -msgstr "Contestar aviso de conteúdo" +#~ msgid "Appeal content warning" +#~ msgstr "Contestar aviso de conteúdo" #: src/view/com/modals/AppealLabel.tsx:65 -msgid "Appeal Content Warning" -msgstr "Contestar aviso de conteúdo" +#~ msgid "Appeal Content Warning" +#~ msgstr "Contestar aviso de conteúdo" + +#: src/components/moderation/LabelsOnMeDialog.tsx:193 +msgid "Appeal submitted." +msgstr "" #: src/view/com/util/moderation/LabelInfo.tsx:52 -msgid "Appeal this decision" -msgstr "Contestar esta decisão" +#~ msgid "Appeal this decision" +#~ msgstr "Contestar esta decisão" #: src/view/com/util/moderation/LabelInfo.tsx:56 -msgid "Appeal this decision." -msgstr "Contestar esta decisão." +#~ msgid "Appeal this decision." +#~ msgstr "Contestar esta decisão." -#: src/view/screens/Settings/index.tsx:466 +#: src/view/screens/Settings/index.tsx:481 msgid "Appearance" msgstr "Aparência" -#: src/view/screens/AppPasswords.tsx:224 +#: src/view/screens/AppPasswords.tsx:265 msgid "Are you sure you want to delete the app password \"{name}\"?" msgstr "Tem certeza de que deseja excluir a senha do aplicativo \"{name}\"?" -#: src/view/com/composer/Composer.tsx:150 +#: src/view/com/feeds/FeedSourceCard.tsx:280 +msgid "Are you sure you want to remove {0} from your feeds?" +msgstr "" + +#: src/view/com/composer/Composer.tsx:508 msgid "Are you sure you'd like to discard this draft?" msgstr "Tem certeza que deseja descartar este rascunho?" #: src/components/dialogs/MutedWords.tsx:282 -#: src/view/screens/ProfileList.tsx:365 msgid "Are you sure?" msgstr "Tem certeza?" #: src/view/com/util/forms/PostDropdownBtn.tsx:322 -msgid "Are you sure? This cannot be undone." -msgstr "Tem certeza? Esta ação não poderá ser desfeita." +#~ msgid "Are you sure? This cannot be undone." +#~ msgstr "Tem certeza? Esta ação não poderá ser desfeita." #: src/view/com/composer/select-language/SuggestedLanguage.tsx:60 msgid "Are you writing in <0>{0}?" @@ -336,78 +386,86 @@ msgstr "Arte" msgid "Artistic or non-erotic nudity." msgstr "Nudez artística ou não erótica." +#: src/components/moderation/LabelsOnMeDialog.tsx:247 +#: src/components/moderation/LabelsOnMeDialog.tsx:248 +#: src/screens/Profile/Header/Shell.tsx:97 #: src/view/com/auth/create/CreateAccount.tsx:158 -#: src/view/com/auth/login/ChooseAccountForm.tsx:151 +#: src/view/com/auth/login/ChooseAccountForm.tsx:155 #: src/view/com/auth/login/ForgotPasswordForm.tsx:174 #: src/view/com/auth/login/LoginForm.tsx:259 #: src/view/com/auth/login/SetNewPasswordForm.tsx:179 -#: src/view/com/modals/report/InputIssueDetails.tsx:46 -#: src/view/com/post-thread/PostThread.tsx:472 -#: src/view/com/post-thread/PostThread.tsx:522 -#: src/view/com/post-thread/PostThread.tsx:530 -#: src/view/com/profile/ProfileHeader.tsx:649 #: src/view/com/util/ViewHeader.tsx:87 msgid "Back" msgstr "Voltar" #: src/view/com/post-thread/PostThread.tsx:480 -msgctxt "action" -msgid "Back" -msgstr "Voltar" +#~ msgctxt "action" +#~ msgid "Back" +#~ msgstr "Voltar" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:136 msgid "Based on your interest in {interestsText}" msgstr "Com base no seu interesse em {interestsText}" -#: src/view/screens/Settings/index.tsx:523 +#: src/view/screens/Settings/index.tsx:538 msgid "Basics" msgstr "Básicos" +#: src/components/dialogs/BirthDateSettings.tsx:107 #: src/view/com/auth/create/Step1.tsx:227 -#: src/view/com/modals/BirthDateSettings.tsx:73 msgid "Birthday" msgstr "Aniversário" -#: src/view/screens/Settings/index.tsx:340 +#: src/view/screens/Settings/index.tsx:355 msgid "Birthday:" msgstr "Aniversário:" -#: src/view/com/profile/ProfileHeader.tsx:239 -#: src/view/com/profile/ProfileHeader.tsx:346 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:278 +#: src/view/com/profile/ProfileMenu.tsx:361 +msgid "Block" +msgstr "" + +#: src/view/com/profile/ProfileMenu.tsx:300 +#: src/view/com/profile/ProfileMenu.tsx:307 msgid "Block Account" msgstr "Bloquear Conta" -#: src/view/screens/ProfileList.tsx:556 +#: src/view/com/profile/ProfileMenu.tsx:344 +msgid "Block Account?" +msgstr "" + +#: src/view/screens/ProfileList.tsx:530 msgid "Block accounts" msgstr "Bloquear contas" -#: src/view/screens/ProfileList.tsx:506 +#: src/view/screens/ProfileList.tsx:478 +#: src/view/screens/ProfileList.tsx:634 msgid "Block list" msgstr "Lista de bloqueio" -#: src/view/screens/ProfileList.tsx:316 +#: src/view/screens/ProfileList.tsx:629 msgid "Block these accounts?" msgstr "Bloquear estas contas?" #: src/view/screens/ProfileList.tsx:320 -msgid "Block this List" -msgstr "Bloquear esta Lista" +#~ msgid "Block this List" +#~ msgstr "Bloquear esta Lista" #: src/view/com/lists/ListCard.tsx:110 -#: src/view/com/util/post-embeds/QuoteEmbed.tsx:61 +#: src/view/com/util/post-embeds/QuoteEmbed.tsx:55 msgid "Blocked" msgstr "Bloqueado" -#: src/view/screens/Moderation.tsx:142 +#: src/screens/Moderation/index.tsx:269 msgid "Blocked accounts" msgstr "Contas bloqueadas" -#: src/Navigation.tsx:132 +#: src/Navigation.tsx:134 #: src/view/screens/ModerationBlockedAccounts.tsx:107 msgid "Blocked Accounts" msgstr "Contas Bloqueadas" -#: src/view/com/profile/ProfileHeader.tsx:241 +#: src/view/com/profile/ProfileMenu.tsx:356 msgid "Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you." msgstr "Contas bloqueadas não podem te responder, mencionar ou interagir com você." @@ -415,15 +473,23 @@ msgstr "Contas bloqueadas não podem te responder, mencionar ou interagir com vo msgid "Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you. You will not see their content and they will be prevented from seeing yours." msgstr "Contas bloqueadas não podem te responder, mencionar ou interagir com você. Você não verá o conteúdo deles e eles serão impedidos de ver o seu." -#: src/view/com/post-thread/PostThread.tsx:324 +#: src/view/com/post-thread/PostThread.tsx:313 msgid "Blocked post." msgstr "Post bloqueado." -#: src/view/screens/ProfileList.tsx:318 +#: src/screens/Profile/Sections/Labels.tsx:153 +msgid "Blocking does not prevent this labeler from placing labels on your account." +msgstr "" + +#: src/view/screens/ProfileList.tsx:631 msgid "Blocking is public. Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you." msgstr "Bloqueios são públicos. Contas bloqueadas não podem te responder, mencionar ou interagir com você." -#: src/view/com/auth/HomeLoggedOutCTA.tsx:93 +#: src/view/com/profile/ProfileMenu.tsx:353 +msgid "Blocking will not prevent labels from being applied on your account, but it will stop this account from replying in your threads or interacting with you." +msgstr "" + +#: src/view/com/auth/HomeLoggedOutCTA.tsx:97 #: src/view/com/auth/SplashScreen.web.tsx:133 msgid "Blog" msgstr "Blog" @@ -439,17 +505,17 @@ msgid "Bluesky is an open network where you can choose your hosting provider. Cu msgstr "Bluesky é uma rede aberta que permite a escolha do seu provedor de hospedagem. Desenvolvedores já conseguem utilizar a versão beta de hospedagem própria." #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:80 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:80 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:82 msgid "Bluesky is flexible." msgstr "Bluesky é flexível." #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:69 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:69 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:71 msgid "Bluesky is open." msgstr "Bluesky é aberto." #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:56 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:56 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:58 msgid "Bluesky is public." msgstr "Bluesky é público." @@ -457,19 +523,27 @@ msgstr "Bluesky é público." #~ msgid "Bluesky uses invites to build a healthier community. If you don't know anybody with an invite, you can sign up for the waitlist and we'll send one soon." #~ msgstr "O Bluesky usa convites para criar uma comunidade mais saudável. Se você não conhece ninguém que tenha um convite, inscreva-se na lista de espera e em breve enviaremos um para você." -#: src/view/screens/Moderation.tsx:245 +#: src/screens/Moderation/index.tsx:535 msgid "Bluesky will not show your profile and posts to logged-out users. Other apps may not honor this request. This does not make your account private." msgstr "O Bluesky não mostrará seu perfil e publicações para usuários desconectados. Outros aplicativos podem não honrar esta solicitação. Isso não torna a sua conta privada." +#: src/lib/moderation/useLabelBehaviorDescription.ts:53 +msgid "Blur images" +msgstr "" + +#: src/lib/moderation/useLabelBehaviorDescription.ts:51 +msgid "Blur images and filter from feeds" +msgstr "" + #: src/screens/Onboarding/index.tsx:33 msgid "Books" msgstr "Livros" -#: src/view/screens/Settings/index.tsx:859 +#: src/view/screens/Settings/index.tsx:889 msgid "Build version {0} {1}" msgstr "Versão {0} {1}" -#: src/view/com/auth/HomeLoggedOutCTA.tsx:87 +#: src/view/com/auth/HomeLoggedOutCTA.tsx:91 #: src/view/com/auth/SplashScreen.web.tsx:128 msgid "Business" msgstr "Empresarial" @@ -482,17 +556,23 @@ msgstr "por -" msgid "by {0}" msgstr "por {0}" +#: src/components/LabelingServiceCard/index.tsx:57 +msgid "By {0}" +msgstr "" + #: src/view/com/profile/ProfileSubpageHeader.tsx:161 msgid "by <0/>" msgstr "por <0/>" +#: src/view/com/auth/create/Policies.tsx:87 +msgid "By creating an account you agree to the {els}." +msgstr "" + #: src/view/com/profile/ProfileSubpageHeader.tsx:159 msgid "by you" msgstr "por você" -#: src/view/com/composer/photos/OpenCameraBtn.tsx:60 -#: src/view/com/util/UserAvatar.tsx:224 -#: src/view/com/util/UserBanner.tsx:40 +#: src/view/com/composer/photos/OpenCameraBtn.tsx:77 msgid "Camera" msgstr "Câmera" @@ -500,28 +580,33 @@ msgstr "Câmera" msgid "Can only contain letters, numbers, spaces, dashes, and underscores. Must be at least 4 characters long, but no more than 32 characters long." msgstr "Só pode conter letras, números, espaços, traços e sublinhados. Deve ter pelo menos 4 caracteres, mas não mais de 32 caracteres." -#: src/components/Prompt.tsx:101 -#: src/view/com/composer/Composer.tsx:307 -#: src/view/com/composer/Composer.tsx:312 +#: src/components/Menu/index.tsx:213 +#: src/components/Prompt.tsx:116 +#: src/components/Prompt.tsx:118 +#: src/components/TagMenu/index.tsx:268 +#: src/view/com/composer/Composer.tsx:316 +#: src/view/com/composer/Composer.tsx:321 #: src/view/com/modals/ChangeEmail.tsx:218 #: src/view/com/modals/ChangeEmail.tsx:220 -#: src/view/com/modals/ChangePassword.tsx:265 -#: src/view/com/modals/ChangePassword.tsx:268 +#: src/view/com/modals/ChangeHandle.tsx:153 +#: src/view/com/modals/ChangePassword.tsx:267 +#: src/view/com/modals/ChangePassword.tsx:270 #: src/view/com/modals/CreateOrEditList.tsx:355 +#: src/view/com/modals/crop-image/CropImage.web.tsx:137 #: src/view/com/modals/EditImage.tsx:323 #: src/view/com/modals/EditProfile.tsx:249 #: src/view/com/modals/InAppBrowserConsent.tsx:78 +#: src/view/com/modals/InAppBrowserConsent.tsx:80 #: src/view/com/modals/LinkWarning.tsx:87 +#: src/view/com/modals/LinkWarning.tsx:89 #: src/view/com/modals/Repost.tsx:87 #: src/view/com/modals/VerifyEmail.tsx:247 #: src/view/com/modals/VerifyEmail.tsx:253 -#: src/view/screens/Search/Search.tsx:716 -#: src/view/shell/desktop/Search.tsx:238 +#: src/view/screens/Search/Search.tsx:717 +#: src/view/shell/desktop/Search.tsx:239 msgid "Cancel" msgstr "Cancelar" -#: src/view/com/modals/Confirm.tsx:88 -#: src/view/com/modals/Confirm.tsx:91 #: src/view/com/modals/CreateOrEditList.tsx:360 #: src/view/com/modals/DeleteAccount.tsx:156 #: src/view/com/modals/DeleteAccount.tsx:234 @@ -551,7 +636,7 @@ msgid "Cancel quote post" msgstr "Cancelar citação" #: src/view/com/modals/ListAddRemoveUsers.tsx:87 -#: src/view/shell/desktop/Search.tsx:234 +#: src/view/shell/desktop/Search.tsx:235 msgid "Cancel search" msgstr "Cancelar busca" @@ -559,17 +644,25 @@ msgstr "Cancelar busca" #~ msgid "Cancel waitlist signup" #~ msgstr "Cancelar inscrição na lista de espera" -#: src/view/screens/Settings/index.tsx:334 +#: src/view/com/modals/LinkWarning.tsx:88 +msgid "Cancels opening the linked website" +msgstr "" + +#: src/view/com/modals/VerifyEmail.tsx:152 +msgid "Change" +msgstr "" + +#: src/view/screens/Settings/index.tsx:349 msgctxt "action" msgid "Change" msgstr "Alterar" -#: src/view/screens/Settings/index.tsx:696 +#: src/view/screens/Settings/index.tsx:712 msgid "Change handle" msgstr "Alterar usuário" #: src/view/com/modals/ChangeHandle.tsx:161 -#: src/view/screens/Settings/index.tsx:705 +#: src/view/screens/Settings/index.tsx:723 msgid "Change Handle" msgstr "Alterar Usuário" @@ -577,11 +670,12 @@ msgstr "Alterar Usuário" msgid "Change my email" msgstr "Alterar meu email" -#: src/view/screens/Settings/index.tsx:732 +#: src/view/screens/Settings/index.tsx:750 msgid "Change password" msgstr "Alterar senha" -#: src/view/screens/Settings/index.tsx:741 +#: src/view/com/modals/ChangePassword.tsx:141 +#: src/view/screens/Settings/index.tsx:761 msgid "Change Password" msgstr "Alterar Senha" @@ -590,8 +684,8 @@ msgid "Change post language to {0}" msgstr "Trocar idioma do post para {0}" #: src/view/screens/Settings/index.tsx:733 -msgid "Change your Bluesky password" -msgstr "Alterar sua senha do Bluesky" +#~ msgid "Change your Bluesky password" +#~ msgstr "Alterar sua senha do Bluesky" #: src/view/com/modals/ChangeEmail.tsx:109 msgid "Change Your Email" @@ -619,8 +713,8 @@ msgid "Choose \"Everybody\" or \"Nobody\"" msgstr "Escolha \"Todos\" ou \"Ninguém\"" #: src/view/screens/Settings/index.tsx:697 -msgid "Choose a new Bluesky username or create" -msgstr "Crie ou escolha um novo usuário no Bluesky" +#~ msgid "Choose a new Bluesky username or create" +#~ msgstr "Crie ou escolha um novo usuário no Bluesky" #: src/view/com/auth/server-input/index.tsx:79 msgid "Choose Service" @@ -631,7 +725,7 @@ msgid "Choose the algorithms that power your custom feeds." msgstr "Escolha os algoritmos que geram seus feeds customizados." #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:83 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:83 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:85 msgid "Choose the algorithms that power your experience with custom feeds." msgstr "Escolha os algoritmos que fazem sentido para você com os feeds personalizados." @@ -643,29 +737,35 @@ msgstr "Escolha seus feeds principais" msgid "Choose your password" msgstr "Escolha sua senha" -#: src/view/screens/Settings/index.tsx:834 -#: src/view/screens/Settings/index.tsx:835 +#: src/view/screens/Settings/index.tsx:864 msgid "Clear all legacy storage data" msgstr "Limpar todos os dados de armazenamento legados" -#: src/view/screens/Settings/index.tsx:837 +#: src/view/screens/Settings/index.tsx:867 msgid "Clear all legacy storage data (restart after this)" msgstr "Limpar todos os dados de armazenamento legados (reinicie em seguida)" -#: src/view/screens/Settings/index.tsx:846 -#: src/view/screens/Settings/index.tsx:847 +#: src/view/screens/Settings/index.tsx:876 msgid "Clear all storage data" msgstr "Limpar todos os dados de armazenamento" -#: src/view/screens/Settings/index.tsx:849 +#: src/view/screens/Settings/index.tsx:879 msgid "Clear all storage data (restart after this)" msgstr "Limpar todos os dados de armazenamento (reinicie em seguida)" #: src/view/com/util/forms/SearchInput.tsx:88 -#: src/view/screens/Search/Search.tsx:697 +#: src/view/screens/Search/Search.tsx:698 msgid "Clear search query" msgstr "Limpar busca" +#: src/view/screens/Settings/index.tsx:865 +msgid "Clears all legacy storage data" +msgstr "" + +#: src/view/screens/Settings/index.tsx:877 +msgid "Clears all storage data" +msgstr "" + #: src/view/screens/Support.tsx:40 msgid "click here" msgstr "clique aqui" @@ -682,8 +782,8 @@ msgstr "Clique aqui para abrir o menu da tag #{tag}" msgid "Climate" msgstr "Clima e tempo" -#: src/view/com/modals/ChangePassword.tsx:265 -#: src/view/com/modals/ChangePassword.tsx:268 +#: src/view/com/modals/ChangePassword.tsx:267 +#: src/view/com/modals/ChangePassword.tsx:270 msgid "Close" msgstr "Fechar" @@ -696,27 +796,28 @@ msgstr "Fechar janela ativa" msgid "Close alert" msgstr "Fechar alerta" -#: src/view/com/util/BottomSheetCustomBackdrop.tsx:33 +#: src/view/com/util/BottomSheetCustomBackdrop.tsx:36 msgid "Close bottom drawer" msgstr "Fechar parte inferior" -#: src/view/com/lightbox/ImageViewing/components/ImageDefaultHeader.tsx:26 +#: src/view/com/lightbox/ImageViewing/components/ImageDefaultHeader.tsx:36 msgid "Close image" msgstr "Fechar imagem" -#: src/view/com/lightbox/Lightbox.web.tsx:119 +#: src/view/com/lightbox/Lightbox.web.tsx:129 msgid "Close image viewer" msgstr "Fechar visualizador de imagens" -#: src/view/shell/index.web.tsx:51 +#: src/view/shell/index.web.tsx:55 msgid "Close navigation footer" msgstr "Fechar o painel de navegação" +#: src/components/Menu/index.tsx:207 #: src/components/TagMenu/index.tsx:262 msgid "Close this dialog" msgstr "Fechar esta janela" -#: src/view/shell/index.web.tsx:52 +#: src/view/shell/index.web.tsx:56 msgid "Closes bottom navigation bar" msgstr "Fecha barra de navegação inferior" @@ -724,15 +825,15 @@ msgstr "Fecha barra de navegação inferior" msgid "Closes password update alert" msgstr "Fecha alerta de troca de senha" -#: src/view/com/composer/Composer.tsx:309 +#: src/view/com/composer/Composer.tsx:318 msgid "Closes post composer and discards post draft" msgstr "Fecha o editor de post e descarta o rascunho" -#: src/view/com/lightbox/ImageViewing/components/ImageDefaultHeader.tsx:27 +#: src/view/com/lightbox/ImageViewing/components/ImageDefaultHeader.tsx:37 msgid "Closes viewer for header image" msgstr "Fechar o visualizador de banner" -#: src/view/com/notifications/FeedItem.tsx:318 +#: src/view/com/notifications/FeedItem.tsx:321 msgid "Collapses list of users for a given notification" msgstr "Fecha lista de usuários da notificação" @@ -744,7 +845,7 @@ msgstr "Comédia" msgid "Comics" msgstr "Quadrinhos" -#: src/Navigation.tsx:229 +#: src/Navigation.tsx:241 #: src/view/screens/CommunityGuidelines.tsx:32 msgid "Community Guidelines" msgstr "Diretrizes da Comunidade" @@ -757,7 +858,7 @@ msgstr "Completar e começar a usar sua conta" msgid "Complete the challenge" msgstr "Complete o captcha" -#: src/view/com/composer/Composer.tsx:424 +#: src/view/com/composer/Composer.tsx:437 msgid "Compose posts up to {MAX_GRAPHEME_LENGTH} characters in length" msgstr "Escreva posts de até {MAX_GRAPHEME_LENGTH} caracteres" @@ -765,12 +866,18 @@ msgstr "Escreva posts de até {MAX_GRAPHEME_LENGTH} caracteres" msgid "Compose reply" msgstr "Escrever resposta" -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:67 +#: src/components/moderation/GlobalModerationLabelPref.tsx:69 +#: src/components/moderation/ModerationLabelPref.tsx:149 +#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:81 msgid "Configure content filtering setting for category: {0}" msgstr "Configure o filtro de conteúdo por categoria: {0}" -#: src/components/Prompt.tsx:124 -#: src/view/com/modals/AppealLabel.tsx:98 +#: src/components/moderation/ModerationLabelPref.tsx:116 +msgid "Configured in <0>moderation settings." +msgstr "" + +#: src/components/Prompt.tsx:152 +#: src/components/Prompt.tsx:155 #: src/view/com/modals/SelfLabel.tsx:154 #: src/view/com/modals/VerifyEmail.tsx:231 #: src/view/com/modals/VerifyEmail.tsx:233 @@ -781,9 +888,9 @@ msgstr "Confirmar" #: src/view/com/modals/Confirm.tsx:75 #: src/view/com/modals/Confirm.tsx:78 -msgctxt "action" -msgid "Confirm" -msgstr "Confirmar" +#~ msgctxt "action" +#~ msgid "Confirm" +#~ msgstr "Confirmar" #: src/view/com/modals/ChangeEmail.tsx:193 #: src/view/com/modals/ChangeEmail.tsx:195 @@ -799,10 +906,19 @@ msgid "Confirm delete account" msgstr "Confirmar a exclusão da conta" #: src/view/com/modals/ContentFilteringSettings.tsx:156 -msgid "Confirm your age to enable adult content." -msgstr "Confirme sua idade para habilitar conteúdo adulto." +#~ msgid "Confirm your age to enable adult content." +#~ msgstr "Confirme sua idade para habilitar conteúdo adulto." + +#: src/screens/Moderation/index.tsx:303 +msgid "Confirm your age:" +msgstr "" + +#: src/screens/Moderation/index.tsx:294 +msgid "Confirm your birthdate" +msgstr "" #: src/view/com/modals/ChangeEmail.tsx:157 +#: src/view/com/modals/DeleteAccount.tsx:176 #: src/view/com/modals/DeleteAccount.tsx:182 #: src/view/com/modals/VerifyEmail.tsx:165 msgid "Confirmation code" @@ -821,25 +937,40 @@ msgstr "Conectando..." msgid "Contact support" msgstr "Contatar suporte" +#: src/components/moderation/LabelsOnMe.tsx:42 +msgid "content" +msgstr "" + +#: src/lib/moderation/useGlobalLabelStrings.ts:18 +msgid "Content Blocked" +msgstr "" + #: src/view/screens/Moderation.tsx:83 -msgid "Content filtering" -msgstr "Filtragem do conteúdo" +#~ msgid "Content filtering" +#~ msgstr "Filtragem do conteúdo" #: src/view/com/modals/ContentFilteringSettings.tsx:44 -msgid "Content Filtering" -msgstr "Filtragem do Conteúdo" +#~ msgid "Content Filtering" +#~ msgstr "Filtragem do Conteúdo" + +#: src/screens/Moderation/index.tsx:287 +msgid "Content filters" +msgstr "" #: src/view/com/modals/lang-settings/ContentLanguagesSettings.tsx:74 #: src/view/screens/LanguageSettings.tsx:278 msgid "Content Languages" msgstr "Idiomas do Conteúdo" -#: src/view/com/modals/ModerationDetails.tsx:65 +#: src/components/moderation/ModerationDetailsDialog.tsx:76 +#: src/lib/moderation/useModerationCauseDescription.ts:75 msgid "Content Not Available" msgstr "Conteúdo Indisponível" -#: src/view/com/modals/ModerationDetails.tsx:33 -#: src/view/com/util/moderation/ScreenHider.tsx:78 +#: src/components/moderation/ModerationDetailsDialog.tsx:47 +#: src/components/moderation/ScreenHider.tsx:100 +#: src/lib/moderation/useGlobalLabelStrings.ts:22 +#: src/lib/moderation/useModerationCauseDescription.ts:38 msgid "Content Warning" msgstr "Aviso de Conteúdo" @@ -847,19 +978,24 @@ msgstr "Aviso de Conteúdo" msgid "Content warnings" msgstr "Avisos de conteúdo" +#: src/components/Menu/index.web.tsx:84 +msgid "Context menu backdrop, click to close the menu." +msgstr "" + #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:170 #: src/screens/Onboarding/StepFollowingFeed.tsx:153 #: src/screens/Onboarding/StepInterests/index.tsx:248 -#: src/screens/Onboarding/StepModeration/index.tsx:118 +#: src/screens/Onboarding/StepModeration/index.tsx:102 #: src/screens/Onboarding/StepTopicalFeeds.tsx:114 #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:148 #: src/view/com/auth/onboarding/RecommendedFollows.tsx:209 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:96 msgid "Continue" msgstr "Continuar" #: src/screens/Onboarding/StepFollowingFeed.tsx:150 #: src/screens/Onboarding/StepInterests/index.tsx:245 -#: src/screens/Onboarding/StepModeration/index.tsx:115 +#: src/screens/Onboarding/StepModeration/index.tsx:99 #: src/screens/Onboarding/StepTopicalFeeds.tsx:111 msgid "Continue to next step" msgstr "Continuar para o próximo passo" @@ -881,13 +1017,14 @@ msgstr "Culinária" msgid "Copied" msgstr "Copiado" -#: src/view/screens/Settings/index.tsx:241 +#: src/view/screens/Settings/index.tsx:247 msgid "Copied build version to clipboard" msgstr "Versão do aplicativo copiada" #: src/view/com/modals/AddAppPasswords.tsx:76 +#: src/view/com/modals/ChangeHandle.tsx:327 #: src/view/com/modals/InviteCodes.tsx:152 -#: src/view/com/util/forms/PostDropdownBtn.tsx:161 +#: src/view/com/util/forms/PostDropdownBtn.tsx:158 msgid "Copied to clipboard" msgstr "Copiado" @@ -899,44 +1036,48 @@ msgstr "Copia senha de aplicativo" msgid "Copy" msgstr "Copiar" -#: src/view/screens/ProfileList.tsx:418 +#: src/view/com/modals/ChangeHandle.tsx:481 +msgid "Copy {0}" +msgstr "" + +#: src/view/screens/ProfileList.tsx:388 msgid "Copy link to list" msgstr "Copiar link da lista" -#: src/view/com/util/forms/PostDropdownBtn.tsx:231 +#: src/view/com/util/forms/PostDropdownBtn.tsx:228 #: src/view/com/util/forms/PostDropdownBtn.tsx:237 msgid "Copy link to post" msgstr "Copiar link do post" #: src/view/com/profile/ProfileHeader.tsx:295 -msgid "Copy link to profile" -msgstr "Copiar link do perfil" +#~ msgid "Copy link to profile" +#~ msgstr "Copiar link do perfil" -#: src/view/com/util/forms/PostDropdownBtn.tsx:223 -#: src/view/com/util/forms/PostDropdownBtn.tsx:225 +#: src/view/com/util/forms/PostDropdownBtn.tsx:220 +#: src/view/com/util/forms/PostDropdownBtn.tsx:222 msgid "Copy post text" msgstr "Copiar texto do post" -#: src/Navigation.tsx:234 +#: src/Navigation.tsx:246 #: src/view/screens/CopyrightPolicy.tsx:29 msgid "Copyright Policy" msgstr "Política de Direitos Autorais" -#: src/view/screens/ProfileFeed.tsx:97 +#: src/view/screens/ProfileFeed.tsx:102 msgid "Could not load feed" msgstr "Não foi possível carregar o feed" -#: src/view/screens/ProfileList.tsx:893 +#: src/view/screens/ProfileList.tsx:907 msgid "Could not load list" msgstr "Não foi possível carregar a lista" -#: src/view/com/auth/HomeLoggedOutCTA.tsx:62 -#: src/view/com/auth/SplashScreen.tsx:71 +#: src/view/com/auth/HomeLoggedOutCTA.tsx:64 +#: src/view/com/auth/SplashScreen.tsx:73 #: src/view/com/auth/SplashScreen.web.tsx:81 msgid "Create a new account" msgstr "Criar uma nova conta" -#: src/view/screens/Settings/index.tsx:384 +#: src/view/screens/Settings/index.tsx:399 msgid "Create a new Bluesky account" msgstr "Criar uma nova conta do Bluesky" @@ -953,19 +1094,23 @@ msgstr "Criar Senha de Aplicativo" msgid "Create new account" msgstr "Criar uma nova conta" -#: src/view/screens/AppPasswords.tsx:249 +#: src/components/ReportDialog/SelectReportOptionView.tsx:94 +msgid "Create report for {0}" +msgstr "" + +#: src/view/screens/AppPasswords.tsx:246 msgid "Created {0}" msgstr "{0} criada" #: src/view/screens/ProfileFeed.tsx:616 -msgid "Created by <0/>" -msgstr "Criado por <0/>" +#~ msgid "Created by <0/>" +#~ msgstr "Criado por <0/>" #: src/view/screens/ProfileFeed.tsx:614 -msgid "Created by you" -msgstr "Criado por você" +#~ msgid "Created by you" +#~ msgstr "Criado por você" -#: src/view/com/composer/Composer.tsx:455 +#: src/view/com/composer/Composer.tsx:468 msgid "Creates a card with a thumbnail. The card links to {url}" msgstr "Cria uma prévia com miniatura. A prévia faz um link para {url}" @@ -991,8 +1136,8 @@ msgstr "Feeds customizados feitos pela comunidade te proporcionam novas experiê msgid "Customize media from external sites." msgstr "Configurar mídia de sites externos." -#: src/view/screens/Settings/index.tsx:485 -#: src/view/screens/Settings/index.tsx:511 +#: src/view/screens/Settings/index.tsx:500 +#: src/view/screens/Settings/index.tsx:526 msgid "Dark" msgstr "Escuro" @@ -1000,15 +1145,25 @@ msgstr "Escuro" msgid "Dark mode" msgstr "Modo escuro" -#: src/view/screens/Settings/index.tsx:498 +#: src/view/screens/Settings/index.tsx:513 msgid "Dark Theme" msgstr "Modo Escuro" +#: src/view/screens/Settings/index.tsx:837 +msgid "Debug Moderation" +msgstr "" + #: src/view/screens/Debug.tsx:83 msgid "Debug panel" msgstr "Painel de depuração" -#: src/view/screens/Settings/index.tsx:772 +#: src/view/com/util/forms/PostDropdownBtn.tsx:319 +#: src/view/screens/AppPasswords.tsx:268 +#: src/view/screens/ProfileList.tsx:613 +msgid "Delete" +msgstr "" + +#: src/view/screens/Settings/index.tsx:792 msgid "Delete account" msgstr "Excluir a conta" @@ -1016,13 +1171,15 @@ msgstr "Excluir a conta" msgid "Delete Account" msgstr "Excluir a Conta" -#: src/view/screens/AppPasswords.tsx:222 -#: src/view/screens/AppPasswords.tsx:242 +#: src/view/screens/AppPasswords.tsx:239 msgid "Delete app password" msgstr "Excluir senha de aplicativo" -#: src/view/screens/ProfileList.tsx:364 -#: src/view/screens/ProfileList.tsx:445 +#: src/view/screens/AppPasswords.tsx:263 +msgid "Delete app password?" +msgstr "" + +#: src/view/screens/ProfileList.tsx:415 msgid "Delete List" msgstr "Excluir Lista" @@ -1030,24 +1187,28 @@ msgstr "Excluir Lista" msgid "Delete my account" msgstr "Excluir minha conta" -#: src/view/screens/Settings/index.tsx:784 +#: src/view/screens/Settings/index.tsx:804 msgid "Delete My Account…" msgstr "Excluir minha conta…" -#: src/view/com/util/forms/PostDropdownBtn.tsx:317 -#: src/view/com/util/forms/PostDropdownBtn.tsx:326 +#: src/view/com/util/forms/PostDropdownBtn.tsx:302 +#: src/view/com/util/forms/PostDropdownBtn.tsx:304 msgid "Delete post" msgstr "Excluir post" -#: src/view/com/util/forms/PostDropdownBtn.tsx:321 +#: src/view/screens/ProfileList.tsx:608 +msgid "Delete this list?" +msgstr "" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:314 msgid "Delete this post?" msgstr "Excluir este post?" -#: src/view/com/util/post-embeds/QuoteEmbed.tsx:70 +#: src/view/com/util/post-embeds/QuoteEmbed.tsx:64 msgid "Deleted" msgstr "Excluído" -#: src/view/com/post-thread/PostThread.tsx:316 +#: src/view/com/post-thread/PostThread.tsx:305 msgid "Deleted post." msgstr "Post excluído." @@ -1062,23 +1223,35 @@ msgstr "Descrição" #~ msgid "Developer Tools" #~ msgstr "Ferramentas de Desenvolvedor" -#: src/view/com/composer/Composer.tsx:218 +#: src/view/com/composer/Composer.tsx:217 msgid "Did you want to say anything?" msgstr "Você gostaria de dizer alguma coisa?" -#: src/view/screens/Settings/index.tsx:504 +#: src/view/screens/Settings/index.tsx:519 msgid "Dim" msgstr "Menos escuro" -#: src/view/com/composer/Composer.tsx:151 +#: src/lib/moderation/useLabelBehaviorDescription.ts:32 +#: src/lib/moderation/useLabelBehaviorDescription.ts:42 +#: src/lib/moderation/useLabelBehaviorDescription.ts:68 +#: src/screens/Moderation/index.tsx:343 +msgid "Disabled" +msgstr "" + +#: src/view/com/composer/Composer.tsx:510 msgid "Discard" msgstr "Descartar" #: src/view/com/composer/Composer.tsx:145 -msgid "Discard draft" -msgstr "Descartar rascunho" +#~ msgid "Discard draft" +#~ msgstr "Descartar rascunho" + +#: src/view/com/composer/Composer.tsx:507 +msgid "Discard draft?" +msgstr "" -#: src/view/screens/Moderation.tsx:226 +#: src/screens/Moderation/index.tsx:520 +#: src/screens/Moderation/index.tsx:524 msgid "Discourage apps from showing my account to logged-out users" msgstr "Desencorajar aplicativos a mostrar minha conta para usuários deslogados" @@ -1099,7 +1272,19 @@ msgstr "Nome de exibição" msgid "Display Name" msgstr "Nome de Exibição" -#: src/view/com/modals/ChangeHandle.tsx:487 +#: src/view/com/modals/ChangeHandle.tsx:398 +msgid "DNS Panel" +msgstr "" + +#: src/lib/moderation/useGlobalLabelStrings.ts:39 +msgid "Does not include nudity." +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:482 +msgid "Domain Value" +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:489 msgid "Domain verified!" msgstr "Domínio verificado!" @@ -1120,19 +1305,19 @@ msgctxt "action" msgid "Done" msgstr "Feito" +#: src/components/dialogs/BirthDateSettings.tsx:119 +#: src/components/dialogs/BirthDateSettings.tsx:125 #: src/view/com/auth/server-input/index.tsx:165 #: src/view/com/auth/server-input/index.tsx:166 #: src/view/com/modals/AddAppPasswords.tsx:226 #: src/view/com/modals/AltImage.tsx:139 -#: src/view/com/modals/ContentFilteringSettings.tsx:88 -#: src/view/com/modals/ContentFilteringSettings.tsx:96 #: src/view/com/modals/crop-image/CropImage.web.tsx:152 #: src/view/com/modals/InviteCodes.tsx:80 #: src/view/com/modals/InviteCodes.tsx:123 #: src/view/com/modals/ListAddRemoveUsers.tsx:142 #: src/view/screens/PreferencesFollowingFeed.tsx:311 -#: src/view/screens/Settings/ExportCarDialog.tsx:93 #: src/view/screens/Settings/ExportCarDialog.tsx:94 +#: src/view/screens/Settings/ExportCarDialog.tsx:95 msgid "Done" msgstr "Feito" @@ -1145,8 +1330,8 @@ msgid "Double tap to sign in" msgstr "Toque duas vezes para logar" #: src/view/screens/Settings/index.tsx:755 -msgid "Download Bluesky account data (repository)" -msgstr "Baixar os dados da minha conta Bluesky (repositório)" +#~ msgid "Download Bluesky account data (repository)" +#~ msgstr "Baixar os dados da minha conta Bluesky (repositório)" #: src/view/screens/Settings/ExportCarDialog.tsx:59 #: src/view/screens/Settings/ExportCarDialog.tsx:63 @@ -1157,18 +1342,30 @@ msgstr "Baixar arquivo CAR" msgid "Drop to add images" msgstr "Solte para adicionar imagens" -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:111 +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:120 msgid "Due to Apple policies, adult content can only be enabled on the web after completing sign up." msgstr "Devido a políticas da Apple, o conteúdo adulto só pode ser habilitado no site após terminar o cadastro." +#: src/view/com/modals/ChangeHandle.tsx:257 +msgid "e.g. alice" +msgstr "" + #: src/view/com/modals/EditProfile.tsx:185 msgid "e.g. Alice Roberts" msgstr "ex. Alice Roberts" +#: src/view/com/modals/ChangeHandle.tsx:381 +msgid "e.g. alice.com" +msgstr "" + #: src/view/com/modals/EditProfile.tsx:203 msgid "e.g. Artist, dog-lover, and avid reader." msgstr "ex. Artista, amo cachorros, leitora ávida." +#: src/lib/moderation/useGlobalLabelStrings.ts:43 +msgid "E.g. artistic nudes." +msgstr "" + #: src/view/com/modals/CreateOrEditList.tsx:283 msgid "e.g. Great Posters" msgstr "ex. Perfis Legais" @@ -1194,12 +1391,17 @@ msgctxt "action" msgid "Edit" msgstr "Editar" +#: src/view/com/util/UserAvatar.tsx:299 +#: src/view/com/util/UserBanner.tsx:85 +msgid "Edit avatar" +msgstr "" + #: src/view/com/composer/photos/Gallery.tsx:144 #: src/view/com/modals/EditImage.tsx:207 msgid "Edit image" msgstr "Editar imagem" -#: src/view/screens/ProfileList.tsx:433 +#: src/view/screens/ProfileList.tsx:403 msgid "Edit list details" msgstr "Editar detalhes da lista" @@ -1207,7 +1409,7 @@ msgstr "Editar detalhes da lista" msgid "Edit Moderation List" msgstr "Editar lista de moderação" -#: src/Navigation.tsx:244 +#: src/Navigation.tsx:256 #: src/view/screens/Feeds.tsx:434 #: src/view/screens/SavedFeeds.tsx:84 msgid "Edit My Feeds" @@ -1217,11 +1419,13 @@ msgstr "Editar Meus Feeds" msgid "Edit my profile" msgstr "Editar meu perfil" -#: src/view/com/profile/ProfileHeader.tsx:418 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:172 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:161 msgid "Edit profile" msgstr "Editar perfil" -#: src/view/com/profile/ProfileHeader.tsx:423 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:175 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:164 msgid "Edit Profile" msgstr "Editar Perfil" @@ -1270,7 +1474,7 @@ msgstr "E-mail Atualizado" msgid "Email verified" msgstr "E-mail verificado" -#: src/view/screens/Settings/index.tsx:312 +#: src/view/screens/Settings/index.tsx:327 msgid "Email:" msgstr "E-mail:" @@ -1278,12 +1482,16 @@ msgstr "E-mail:" msgid "Enable {0} only" msgstr "Habilitar somente {0}" -#: src/view/com/modals/ContentFilteringSettings.tsx:167 +#: src/screens/Moderation/index.tsx:331 +msgid "Enable adult content" +msgstr "" + +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:94 msgid "Enable Adult Content" msgstr "Habilitar Conteúdo Adulto" -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:76 -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:77 +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:78 +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:79 msgid "Enable adult content in your feeds" msgstr "Habilitar conteúdo adulto nos feeds" @@ -1299,7 +1507,11 @@ msgstr "Habilitar mídia para" msgid "Enable this setting to only see replies between people you follow." msgstr "Ative esta configuração para ver respostas apenas entre as pessoas que você segue." -#: src/view/screens/Profile.tsx:455 +#: src/screens/Moderation/index.tsx:341 +msgid "Enabled" +msgstr "" + +#: src/screens/Profile/Sections/Feed.tsx:84 msgid "End of feed" msgstr "Fim do feed" @@ -1316,7 +1528,7 @@ msgstr "Digite uma palavra ou tag" msgid "Enter Confirmation Code" msgstr "Insira o código de confirmação" -#: src/view/com/modals/ChangePassword.tsx:151 +#: src/view/com/modals/ChangePassword.tsx:153 msgid "Enter the code you received to change your password." msgstr "Digite o código recebido para alterar sua senha." @@ -1328,8 +1540,8 @@ msgstr "Digite o domínio que você deseja usar" msgid "Enter the email you used to create your account. We'll send you a \"reset code\" so you can set a new password." msgstr "Digite o e-mail que você usou para criar a sua conta. Nós lhe enviaremos um \"código de redefinição\" para que você possa definir uma nova senha." +#: src/components/dialogs/BirthDateSettings.tsx:108 #: src/view/com/auth/create/Step1.tsx:228 -#: src/view/com/modals/BirthDateSettings.tsx:74 msgid "Enter your birth date" msgstr "Insira seu aniversário" @@ -1365,16 +1577,28 @@ msgstr "Erro:" msgid "Everybody" msgstr "Todos" +#: src/lib/moderation/useReportOptions.ts:66 +msgid "Excessive mentions or replies" +msgstr "" + +#: src/view/com/modals/DeleteAccount.tsx:231 +msgid "Exits account deletion process" +msgstr "" + #: src/view/com/modals/ChangeHandle.tsx:150 msgid "Exits handle change process" msgstr "Sair do processo de trocar usuário" -#: src/view/com/lightbox/Lightbox.web.tsx:120 +#: src/view/com/modals/crop-image/CropImage.web.tsx:135 +msgid "Exits image cropping process" +msgstr "" + +#: src/view/com/lightbox/Lightbox.web.tsx:130 msgid "Exits image view" msgstr "Sair do visualizador de imagem" #: src/view/com/modals/ListAddRemoveUsers.tsx:88 -#: src/view/shell/desktop/Search.tsx:235 +#: src/view/shell/desktop/Search.tsx:236 msgid "Exits inputting search query" msgstr "Sair da busca" @@ -1382,7 +1606,7 @@ msgstr "Sair da busca" #~ msgid "Exits signing up for waitlist with {email}" #~ msgstr "Desistir de entrar na lista de espera" -#: src/view/com/lightbox/Lightbox.web.tsx:163 +#: src/view/com/lightbox/Lightbox.web.tsx:183 msgid "Expand alt text" msgstr "Expandir texto alternativo" @@ -1391,12 +1615,20 @@ msgstr "Expandir texto alternativo" msgid "Expand or collapse the full post you are replying to" msgstr "Mostrar ou esconder o post a que você está respondendo" -#: src/view/screens/Settings/index.tsx:753 +#: src/lib/moderation/useGlobalLabelStrings.ts:47 +msgid "Explicit or potentially disturbing media." +msgstr "" + +#: src/lib/moderation/useGlobalLabelStrings.ts:35 +msgid "Explicit sexual images." +msgstr "" + +#: src/view/screens/Settings/index.tsx:773 msgid "Export my data" msgstr "Exportar meus dados" #: src/view/screens/Settings/ExportCarDialog.tsx:44 -#: src/view/screens/Settings/index.tsx:764 +#: src/view/screens/Settings/index.tsx:784 msgid "Export My Data" msgstr "Exportar Meus Dados" @@ -1409,13 +1641,13 @@ msgstr "Mídia Externa" msgid "External media may allow websites to collect information about you and your device. No information is sent or requested until you press the \"play\" button." msgstr "Mídias externas podem permitir que sites coletem informações sobre você e seu dispositivo. Nenhuma informação é enviada ou solicitada até que você pressione o botão de \"play\"." -#: src/Navigation.tsx:263 +#: src/Navigation.tsx:275 #: src/view/screens/PreferencesExternalEmbeds.tsx:52 -#: src/view/screens/Settings/index.tsx:657 +#: src/view/screens/Settings/index.tsx:673 msgid "External Media Preferences" msgstr "Preferências de Mídia Externa" -#: src/view/screens/Settings/index.tsx:648 +#: src/view/screens/Settings/index.tsx:664 msgid "External media settings" msgstr "Preferências de mídia externa" @@ -1428,7 +1660,7 @@ msgstr "Não foi possível criar senha de aplicativo." msgid "Failed to create the list. Check your internet connection and try again." msgstr "Não foi possível criar a lista. Por favor tente novamente." -#: src/view/com/util/forms/PostDropdownBtn.tsx:128 +#: src/view/com/util/forms/PostDropdownBtn.tsx:125 msgid "Failed to delete post, please try again" msgstr "Não foi possível excluir o post, por favor tente novamente." @@ -1437,11 +1669,15 @@ msgstr "Não foi possível excluir o post, por favor tente novamente." msgid "Failed to load recommended feeds" msgstr "Falha ao carregar feeds recomendados" -#: src/Navigation.tsx:194 +#: src/view/com/lightbox/Lightbox.tsx:83 +msgid "Failed to save image: {0}" +msgstr "" + +#: src/Navigation.tsx:196 msgid "Feed" msgstr "Feed" -#: src/view/com/feeds/FeedSourceCard.tsx:231 +#: src/view/com/feeds/FeedSourceCard.tsx:218 msgid "Feed by {0}" msgstr "Feed por {0}" @@ -1454,18 +1690,18 @@ msgstr "Feed offline" #~ msgstr "Preferências de Feeds" #: src/view/shell/desktop/RightNav.tsx:61 -#: src/view/shell/Drawer.tsx:311 +#: src/view/shell/Drawer.tsx:314 msgid "Feedback" msgstr "Comentários" -#: src/Navigation.tsx:452 +#: src/Navigation.tsx:464 #: src/view/screens/Feeds.tsx:419 #: src/view/screens/Feeds.tsx:524 -#: src/view/screens/Profile.tsx:184 -#: src/view/shell/bottom-bar/BottomBar.tsx:181 -#: src/view/shell/desktop/LeftNav.tsx:342 -#: src/view/shell/Drawer.tsx:476 -#: src/view/shell/Drawer.tsx:477 +#: src/view/screens/Profile.tsx:192 +#: src/view/shell/bottom-bar/BottomBar.tsx:183 +#: src/view/shell/desktop/LeftNav.tsx:346 +#: src/view/shell/Drawer.tsx:479 +#: src/view/shell/Drawer.tsx:480 msgid "Feeds" msgstr "Feeds" @@ -1481,6 +1717,14 @@ msgstr "Os feeds são algoritmos personalizados que os usuários com um pouco de msgid "Feeds can be topical as well!" msgstr "Feeds podem ser de assuntos específicos também!" +#: src/view/com/modals/ChangeHandle.tsx:482 +msgid "File Contents" +msgstr "" + +#: src/lib/moderation/useLabelBehaviorDescription.ts:66 +msgid "Filter from feeds" +msgstr "" + #: src/screens/Onboarding/StepFinished.tsx:151 msgid "Finalizing" msgstr "Finalizando" @@ -1491,15 +1735,15 @@ msgstr "Finalizando" msgid "Find accounts to follow" msgstr "Encontre contas para seguir" -#: src/view/screens/Search/Search.tsx:440 +#: src/view/screens/Search/Search.tsx:441 msgid "Find users on Bluesky" msgstr "Encontrar usuários no Bluesky" -#: src/view/screens/Search/Search.tsx:438 +#: src/view/screens/Search/Search.tsx:439 msgid "Find users with the search tool on the right" msgstr "Encontre usuários com a ferramenta de busca à direita" -#: src/view/com/auth/onboarding/RecommendedFollowsItem.tsx:150 +#: src/view/com/auth/onboarding/RecommendedFollowsItem.tsx:155 msgid "Finding similar accounts..." msgstr "Procurando contas semelhantes..." @@ -1529,22 +1773,29 @@ msgid "Flip vertically" msgstr "Virar verticalmente" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:181 -#: src/view/com/post-thread/PostThreadFollowBtn.tsx:136 -#: src/view/com/profile/ProfileHeader.tsx:513 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:229 +#: src/view/com/auth/onboarding/RecommendedFollowsItem.tsx:141 +#: src/view/com/post-thread/PostThreadFollowBtn.tsx:139 +#: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:246 msgid "Follow" msgstr "Seguir" -#: src/view/com/profile/FollowButton.tsx:64 +#: src/view/com/profile/FollowButton.tsx:69 msgctxt "action" msgid "Follow" msgstr "Seguir" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:58 -#: src/view/com/post-thread/PostThreadFollowBtn.tsx:122 -#: src/view/com/profile/ProfileHeader.tsx:504 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:214 +#: src/view/com/post-thread/PostThreadFollowBtn.tsx:125 msgid "Follow {0}" msgstr "Seguir {0}" +#: src/view/com/profile/ProfileMenu.tsx:242 +#: src/view/com/profile/ProfileMenu.tsx:253 +msgid "Follow Account" +msgstr "" + #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:179 msgid "Follow All" msgstr "Seguir Todas" @@ -1557,7 +1808,7 @@ msgstr "Siga algumas contas e continue para o próximo passo" msgid "Follow some users to get started. We can recommend you more users based on who you find interesting." msgstr "Comece seguindo alguns usuários. Mais usuários podem ser recomendados com base em quem você acha interessante." -#: src/view/com/profile/ProfileCard.tsx:194 +#: src/view/com/profile/ProfileCard.tsx:216 msgid "Followed by {0}" msgstr "Seguido por {0}" @@ -1569,33 +1820,39 @@ msgstr "Usuários seguidos" msgid "Followed users only" msgstr "Somente usuários seguidos" -#: src/view/com/notifications/FeedItem.tsx:166 +#: src/view/com/notifications/FeedItem.tsx:170 msgid "followed you" msgstr "seguiu você" +#: src/view/com/profile/ProfileFollowers.tsx:109 #: src/view/screens/ProfileFollowers.tsx:25 msgid "Followers" msgstr "Seguidores" -#: src/view/com/post-thread/PostThreadFollowBtn.tsx:136 -#: src/view/com/profile/ProfileHeader.tsx:495 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:227 +#: src/view/com/post-thread/PostThreadFollowBtn.tsx:139 +#: src/view/com/profile/ProfileFollows.tsx:108 #: src/view/screens/ProfileFollows.tsx:25 msgid "Following" msgstr "Seguindo" -#: src/view/com/profile/ProfileHeader.tsx:149 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:89 msgid "Following {0}" msgstr "Seguindo {0}" -#: src/Navigation.tsx:250 +#: src/view/screens/Settings/index.tsx:549 +msgid "Following feed preferences" +msgstr "" + +#: src/Navigation.tsx:262 #: src/view/com/home/HomeHeaderLayout.web.tsx:50 #: src/view/com/home/HomeHeaderLayoutMobile.tsx:84 #: src/view/screens/PreferencesFollowingFeed.tsx:104 -#: src/view/screens/Settings/index.tsx:543 +#: src/view/screens/Settings/index.tsx:558 msgid "Following Feed Preferences" msgstr "Configurações do feed principal" -#: src/view/com/profile/ProfileHeader.tsx:546 +#: src/screens/Profile/Header/Handle.tsx:24 msgid "Follows you" msgstr "Segue você" @@ -1628,12 +1885,16 @@ msgstr "Esqueci a senha" msgid "Forgot Password" msgstr "Esqueci a Senha" +#: src/lib/moderation/useReportOptions.ts:52 +msgid "Frequently Posts Unwanted Content" +msgstr "" + #: src/screens/Hashtag.tsx:108 #: src/screens/Hashtag.tsx:148 msgid "From @{sanitizedAuthor}" msgstr "De @{sanitizedAuthor}" -#: src/view/com/posts/FeedItem.tsx:189 +#: src/view/com/posts/FeedItem.tsx:179 msgctxt "from-feed" msgid "From <0/>" msgstr "Por <0/>" @@ -1647,27 +1908,46 @@ msgstr "Galeria" msgid "Get Started" msgstr "Vamos começar" +#: src/lib/moderation/useReportOptions.ts:37 +msgid "Glaring violations of law or terms of service" +msgstr "" + +#: src/components/moderation/ScreenHider.tsx:144 +#: src/components/moderation/ScreenHider.tsx:153 #: src/view/com/auth/LoggedOut.tsx:81 #: src/view/com/auth/LoggedOut.tsx:82 -#: src/view/com/util/moderation/ScreenHider.tsx:123 -#: src/view/shell/desktop/LeftNav.tsx:104 +#: src/view/screens/NotFound.tsx:55 +#: src/view/screens/ProfileFeed.tsx:111 +#: src/view/screens/ProfileList.tsx:916 +#: src/view/shell/desktop/LeftNav.tsx:108 msgid "Go back" msgstr "Voltar" -#: src/view/screens/ProfileFeed.tsx:106 -#: src/view/screens/ProfileFeed.tsx:111 -#: src/view/screens/ProfileList.tsx:902 -#: src/view/screens/ProfileList.tsx:907 +#: src/screens/Profile/ErrorState.tsx:62 +#: src/screens/Profile/ErrorState.tsx:66 +#: src/view/screens/NotFound.tsx:54 +#: src/view/screens/ProfileFeed.tsx:116 +#: src/view/screens/ProfileList.tsx:921 msgid "Go Back" msgstr "Voltar" +#: src/components/ReportDialog/SelectReportOptionView.tsx:74 +#: src/components/ReportDialog/SubmitView.tsx:104 #: src/screens/Onboarding/Layout.tsx:104 #: src/screens/Onboarding/Layout.tsx:193 msgid "Go back to previous step" msgstr "Voltar para o passo anterior" -#: src/view/screens/Search/Search.tsx:747 -#: src/view/shell/desktop/Search.tsx:262 +#: src/view/screens/NotFound.tsx:55 +msgid "Go home" +msgstr "" + +#: src/view/screens/NotFound.tsx:54 +msgid "Go Home" +msgstr "" + +#: src/view/screens/Search/Search.tsx:748 +#: src/view/shell/desktop/Search.tsx:263 msgid "Go to @{queryMaybeHandle}" msgstr "Ir para @{queryMaybleHandle}" @@ -1675,15 +1955,23 @@ msgstr "Ir para @{queryMaybleHandle}" #: src/view/com/auth/login/ForgotPasswordForm.tsx:218 #: src/view/com/auth/login/LoginForm.tsx:288 #: src/view/com/auth/login/SetNewPasswordForm.tsx:195 -#: src/view/com/modals/ChangePassword.tsx:165 +#: src/view/com/modals/ChangePassword.tsx:167 msgid "Go to next" msgstr "Próximo" +#: src/lib/moderation/useGlobalLabelStrings.ts:46 +msgid "Graphic Media" +msgstr "" + #: src/view/com/modals/ChangeHandle.tsx:265 msgid "Handle" msgstr "Usuário" -#: src/Navigation.tsx:270 +#: src/lib/moderation/useReportOptions.ts:32 +msgid "Harassment, trolling, or intolerance" +msgstr "" + +#: src/Navigation.tsx:282 msgid "Hashtag" msgstr "Hashtag" @@ -1700,7 +1988,7 @@ msgid "Having trouble?" msgstr "Precisa de ajuda?" #: src/view/shell/desktop/RightNav.tsx:90 -#: src/view/shell/Drawer.tsx:321 +#: src/view/shell/Drawer.tsx:324 msgid "Help" msgstr "Ajuda" @@ -1720,40 +2008,45 @@ msgstr "Aqui estão alguns feeds de assuntos baseados nos seus interesses: {inte msgid "Here is your app password." msgstr "Aqui está a sua senha de aplicativo." -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:41 -#: src/view/com/modals/ContentFilteringSettings.tsx:251 -#: src/view/com/util/moderation/ContentHider.tsx:105 -#: src/view/com/util/moderation/PostHider.tsx:108 +#: src/components/moderation/ContentHider.tsx:115 +#: src/components/moderation/GlobalModerationLabelPref.tsx:43 +#: src/components/moderation/PostHider.tsx:107 +#: src/lib/moderation/useLabelBehaviorDescription.ts:15 +#: src/lib/moderation/useLabelBehaviorDescription.ts:20 +#: src/lib/moderation/useLabelBehaviorDescription.ts:25 +#: src/lib/moderation/useLabelBehaviorDescription.ts:30 +#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:52 +#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:76 +#: src/view/com/util/forms/PostDropdownBtn.tsx:328 msgid "Hide" msgstr "Ocultar" -#: src/view/com/modals/ContentFilteringSettings.tsx:224 -#: src/view/com/notifications/FeedItem.tsx:326 +#: src/view/com/notifications/FeedItem.tsx:329 msgctxt "action" msgid "Hide" msgstr "Esconder" #: src/view/com/util/forms/PostDropdownBtn.tsx:276 -#: src/view/com/util/forms/PostDropdownBtn.tsx:287 +#: src/view/com/util/forms/PostDropdownBtn.tsx:278 msgid "Hide post" msgstr "Ocultar post" -#: src/view/com/util/moderation/ContentHider.tsx:67 -#: src/view/com/util/moderation/PostHider.tsx:61 +#: src/components/moderation/ContentHider.tsx:67 +#: src/components/moderation/PostHider.tsx:64 msgid "Hide the content" msgstr "Esconder o conteúdo" -#: src/view/com/util/forms/PostDropdownBtn.tsx:280 +#: src/view/com/util/forms/PostDropdownBtn.tsx:325 msgid "Hide this post?" msgstr "Ocultar este post?" -#: src/view/com/notifications/FeedItem.tsx:316 +#: src/view/com/notifications/FeedItem.tsx:319 msgid "Hide user list" msgstr "Ocultar lista de usuários" #: src/view/com/profile/ProfileHeader.tsx:487 -msgid "Hides posts from {0} in your feed" -msgstr "Esconder posts de {0} no seu feed" +#~ msgid "Hides posts from {0} in your feed" +#~ msgstr "Esconder posts de {0} no seu feed" #: src/view/com/posts/FeedErrorMessage.tsx:111 msgid "Hmm, some kind of issue occurred when contacting the feed server. Please let the feed owner know about this issue." @@ -1775,11 +2068,19 @@ msgstr "Hmm, o servidor do feed teve algum problema. Por favor, avise o criador msgid "Hmm, we're having trouble finding this feed. It may have been deleted." msgstr "Hmm, estamos com problemas para encontrar este feed. Ele pode ter sido excluído." -#: src/Navigation.tsx:442 -#: src/view/shell/bottom-bar/BottomBar.tsx:137 -#: src/view/shell/desktop/LeftNav.tsx:306 -#: src/view/shell/Drawer.tsx:398 -#: src/view/shell/Drawer.tsx:399 +#: src/screens/Moderation/index.tsx:61 +msgid "Hmmmm, it seems we're having trouble loading this data. See below for more details. If this issue persists, please contact us." +msgstr "" + +#: src/screens/Profile/ErrorState.tsx:31 +msgid "Hmmmm, we couldn't load that moderation service." +msgstr "" + +#: src/Navigation.tsx:454 +#: src/view/shell/bottom-bar/BottomBar.tsx:139 +#: src/view/shell/desktop/LeftNav.tsx:310 +#: src/view/shell/Drawer.tsx:401 +#: src/view/shell/Drawer.tsx:402 msgid "Home" msgstr "Página Inicial" @@ -1790,8 +2091,13 @@ msgstr "Página Inicial" #~ msgid "Home Feed Preferences" #~ msgstr "Preferências da Página Inicial" +#: src/view/com/modals/ChangeHandle.tsx:421 +msgid "Host:" +msgstr "" + #: src/view/com/auth/create/Step1.tsx:75 #: src/view/com/auth/login/ForgotPasswordForm.tsx:120 +#: src/view/com/modals/ChangeHandle.tsx:280 msgid "Hosting provider" msgstr "Provedor de hospedagem" @@ -1811,7 +2117,7 @@ msgstr "Eu tenho um código" msgid "I have my own domain" msgstr "Eu tenho meu próprio domínio" -#: src/view/com/lightbox/Lightbox.web.tsx:165 +#: src/view/com/lightbox/Lightbox.web.tsx:185 msgid "If alt text is long, toggles alt text expanded state" msgstr "Se o texto alternativo é longo, mostra o texto completo" @@ -1819,10 +2125,26 @@ msgstr "Se o texto alternativo é longo, mostra o texto completo" msgid "If none are selected, suitable for all ages." msgstr "Se nenhum for selecionado, adequado para todas as idades." -#: src/view/com/modals/ChangePassword.tsx:146 +#: src/view/com/auth/create/Policies.tsx:91 +msgid "If you are not yet an adult according to the laws of your country, your parent or legal guardian must read these Terms on your behalf." +msgstr "" + +#: src/view/screens/ProfileList.tsx:610 +msgid "If you delete this list, you won't be able to recover it." +msgstr "" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:316 +msgid "If you remove this post, you won't be able to recover it." +msgstr "" + +#: src/view/com/modals/ChangePassword.tsx:148 msgid "If you want to change your password, we will send you a code to verify that this is your account." msgstr "Se você quiser alterar sua senha, enviaremos um código que para verificar sua identidade." +#: src/lib/moderation/useReportOptions.ts:36 +msgid "Illegal and Urgent" +msgstr "" + #: src/view/com/util/images/Gallery.tsx:38 msgid "Image" msgstr "Imagem" @@ -1833,8 +2155,12 @@ msgstr "Texto alternativo da imagem" #: src/view/com/util/UserAvatar.tsx:311 #: src/view/com/util/UserBanner.tsx:118 -msgid "Image options" -msgstr "Opções de imagem" +#~ msgid "Image options" +#~ msgstr "Opções de imagem" + +#: src/lib/moderation/useReportOptions.ts:47 +msgid "Impersonation or false claims about identity or affiliation" +msgstr "" #: src/view/com/auth/login/SetNewPasswordForm.tsx:138 msgid "Input code sent to your email for password reset" @@ -1880,11 +2206,15 @@ msgstr "Insira o usuário ou e-mail que você cadastrou" msgid "Input your password" msgstr "Insira sua senha" +#: src/view/com/modals/ChangeHandle.tsx:390 +msgid "Input your preferred hosting provider" +msgstr "" + #: src/view/com/auth/create/Step2.tsx:80 msgid "Input your user handle" msgstr "Insira o usuário" -#: src/view/com/post-thread/PostThreadItem.tsx:226 +#: src/view/com/post-thread/PostThreadItem.tsx:221 msgid "Invalid or unsupported post record" msgstr "Post inválido" @@ -1917,7 +2247,7 @@ msgstr "Convites: 1 disponível" msgid "It shows posts from the people you follow as they happen." msgstr "Mostra os posts de quem você segue conforme acontecem." -#: src/view/com/auth/HomeLoggedOutCTA.tsx:99 +#: src/view/com/auth/HomeLoggedOutCTA.tsx:103 #: src/view/com/auth/SplashScreen.web.tsx:138 msgid "Jobs" msgstr "Carreiras" @@ -1939,20 +2269,52 @@ msgstr "Carreiras" msgid "Journalism" msgstr "Jornalismo" +#: src/components/moderation/LabelsOnMe.tsx:59 +msgid "label has been placed on this {labelTarget}" +msgstr "" + +#: src/components/moderation/ContentHider.tsx:144 +msgid "Labeled by {0}." +msgstr "" + +#: src/components/moderation/ContentHider.tsx:142 +msgid "Labeled by the author." +msgstr "" + +#: src/view/screens/Profile.tsx:186 +msgid "Labels" +msgstr "" + +#: src/screens/Profile/Sections/Labels.tsx:143 +msgid "Labels are annotations on users and content. They can be used to hide, warn, and categorize the network." +msgstr "" + +#: src/components/moderation/LabelsOnMe.tsx:61 +msgid "labels have been placed on this {labelTarget}" +msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:63 +msgid "Labels on your account" +msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:65 +msgid "Labels on your content" +msgstr "" + #: src/view/com/composer/select-language/SelectLangBtn.tsx:104 msgid "Language selection" msgstr "Seleção de idioma" -#: src/view/screens/Settings/index.tsx:594 +#: src/view/screens/Settings/index.tsx:610 msgid "Language settings" msgstr "Configuração de Idioma" -#: src/Navigation.tsx:142 +#: src/Navigation.tsx:144 #: src/view/screens/LanguageSettings.tsx:89 msgid "Language Settings" msgstr "Configurações de Idiomas" -#: src/view/screens/Settings/index.tsx:603 +#: src/view/screens/Settings/index.tsx:619 msgid "Languages" msgstr "Idiomas" @@ -1961,27 +2323,31 @@ msgid "Last step!" msgstr "Último passo!" #: src/view/com/util/moderation/ContentHider.tsx:103 -msgid "Learn more" -msgstr "Saiba mais" +#~ msgid "Learn more" +#~ msgstr "Saiba mais" -#: src/view/com/util/moderation/PostAlerts.tsx:47 -#: src/view/com/util/moderation/ProfileHeaderAlerts.tsx:65 -#: src/view/com/util/moderation/ScreenHider.tsx:104 +#: src/components/moderation/ScreenHider.tsx:129 msgid "Learn More" msgstr "Saiba Mais" -#: src/view/com/util/moderation/ContentHider.tsx:85 -#: src/view/com/util/moderation/PostAlerts.tsx:40 -#: src/view/com/util/moderation/PostHider.tsx:78 -#: src/view/com/util/moderation/ProfileHeaderAlerts.tsx:49 -#: src/view/com/util/moderation/ScreenHider.tsx:101 +#: src/components/moderation/ContentHider.tsx:65 +#: src/components/moderation/ContentHider.tsx:128 +msgid "Learn more about the moderation applied to this content." +msgstr "" + +#: src/components/moderation/PostHider.tsx:85 +#: src/components/moderation/ScreenHider.tsx:126 msgid "Learn more about this warning" msgstr "Saiba mais sobre este aviso" -#: src/view/screens/Moderation.tsx:262 +#: src/screens/Moderation/index.tsx:551 msgid "Learn more about what is public on Bluesky." msgstr "Saiba mais sobre o que é público no Bluesky." +#: src/components/moderation/ContentHider.tsx:152 +msgid "Learn more." +msgstr "" + #: src/view/com/modals/lang-settings/ContentLanguagesSettings.tsx:82 msgid "Leave them all unchecked to see any language." msgstr "Deixe todos desmarcados para ver qualquer idioma." @@ -1994,7 +2360,7 @@ msgstr "Saindo do Bluesky" msgid "left to go." msgstr "na sua frente." -#: src/view/screens/Settings/index.tsx:278 +#: src/view/screens/Settings/index.tsx:292 msgid "Legacy storage cleared, you need to restart the app now." msgstr "Armazenamento limpo, você precisa reiniciar o app agora." @@ -2009,55 +2375,65 @@ msgstr "Vamos lá!" #: src/view/com/util/UserAvatar.tsx:248 #: src/view/com/util/UserBanner.tsx:62 -msgid "Library" -msgstr "Biblioteca" +#~ msgid "Library" +#~ msgstr "Biblioteca" -#: src/view/screens/Settings/index.tsx:479 +#: src/view/screens/Settings/index.tsx:494 msgid "Light" msgstr "Claro" -#: src/view/com/util/post-ctrls/PostCtrls.tsx:182 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:185 msgid "Like" msgstr "Curtir" -#: src/view/screens/ProfileFeed.tsx:591 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:257 +#: src/view/screens/ProfileFeed.tsx:572 msgid "Like this feed" msgstr "Curtir este feed" -#: src/Navigation.tsx:199 +#: src/components/LikesDialog.tsx:87 +#: src/Navigation.tsx:201 +#: src/Navigation.tsx:206 msgid "Liked by" msgstr "Curtido por" +#: src/screens/Profile/ProfileLabelerLikedBy.tsx:42 #: src/view/screens/PostLikedBy.tsx:27 #: src/view/screens/ProfileFeedLikedBy.tsx:27 msgid "Liked By" msgstr "Curtido Por" -#: src/view/com/feeds/FeedSourceCard.tsx:279 +#: src/view/com/feeds/FeedSourceCard.tsx:268 msgid "Liked by {0} {1}" msgstr "Curtido por {0} {1}" -#: src/view/screens/ProfileFeed.tsx:606 +#: src/components/LabelingServiceCard/index.tsx:72 +msgid "Liked by {count} {0}" +msgstr "" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:277 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:291 +#: src/view/screens/ProfileFeed.tsx:587 msgid "Liked by {likeCount} {0}" msgstr "Curtido por {likeCount} {0}" -#: src/view/com/notifications/FeedItem.tsx:170 +#: src/view/com/notifications/FeedItem.tsx:174 msgid "liked your custom feed" msgstr "curtiram seu feed" -#: src/view/com/notifications/FeedItem.tsx:155 +#: src/view/com/notifications/FeedItem.tsx:159 msgid "liked your post" msgstr "curtiu seu post" -#: src/view/screens/Profile.tsx:183 +#: src/view/screens/Profile.tsx:191 msgid "Likes" msgstr "Curtidas" -#: src/view/com/post-thread/PostThreadItem.tsx:183 +#: src/view/com/post-thread/PostThreadItem.tsx:182 msgid "Likes on this post" msgstr "Curtidas neste post" -#: src/Navigation.tsx:168 +#: src/Navigation.tsx:170 msgid "List" msgstr "Lista" @@ -2065,15 +2441,15 @@ msgstr "Lista" msgid "List Avatar" msgstr "Avatar da lista" -#: src/view/screens/ProfileList.tsx:324 +#: src/view/screens/ProfileList.tsx:311 msgid "List blocked" msgstr "Lista bloqueada" -#: src/view/com/feeds/FeedSourceCard.tsx:233 +#: src/view/com/feeds/FeedSourceCard.tsx:220 msgid "List by {0}" msgstr "Lista por {0}" -#: src/view/screens/ProfileList.tsx:378 +#: src/view/screens/ProfileList.tsx:355 msgid "List deleted" msgstr "Lista excluída" @@ -2085,39 +2461,40 @@ msgstr "Lista silenciada" msgid "List Name" msgstr "Nome da lista" -#: src/view/screens/ProfileList.tsx:343 +#: src/view/screens/ProfileList.tsx:325 msgid "List unblocked" msgstr "Lista desbloqueada" -#: src/view/screens/ProfileList.tsx:302 +#: src/view/screens/ProfileList.tsx:297 msgid "List unmuted" msgstr "Lista dessilenciada" -#: src/Navigation.tsx:112 -#: src/view/screens/Profile.tsx:185 -#: src/view/shell/desktop/LeftNav.tsx:379 -#: src/view/shell/Drawer.tsx:492 -#: src/view/shell/Drawer.tsx:493 +#: src/Navigation.tsx:114 +#: src/view/screens/Profile.tsx:187 +#: src/view/screens/Profile.tsx:193 +#: src/view/shell/desktop/LeftNav.tsx:383 +#: src/view/shell/Drawer.tsx:495 +#: src/view/shell/Drawer.tsx:496 msgid "Lists" msgstr "Listas" #: src/view/com/post-thread/PostThread.tsx:333 #: src/view/com/post-thread/PostThread.tsx:341 -msgid "Load more posts" -msgstr "Carregar mais posts" +#~ msgid "Load more posts" +#~ msgstr "Carregar mais posts" #: src/view/screens/Notifications.tsx:159 msgid "Load new notifications" msgstr "Carregar novas notificações" -#: src/view/com/feeds/FeedPage.tsx:115 -#: src/view/screens/Profile.tsx:440 +#: src/screens/Profile/Sections/Feed.tsx:70 +#: src/view/com/feeds/FeedPage.tsx:124 #: src/view/screens/ProfileFeed.tsx:495 -#: src/view/screens/ProfileList.tsx:681 +#: src/view/screens/ProfileList.tsx:695 msgid "Load new posts" msgstr "Carregar novos posts" -#: src/view/com/composer/text-input/mobile/Autocomplete.tsx:95 +#: src/view/com/composer/text-input/mobile/Autocomplete.tsx:99 msgid "Loading..." msgstr "Carregando..." @@ -2125,7 +2502,7 @@ msgstr "Carregando..." #~ msgid "Local dev server" #~ msgstr "Servidor de desenvolvimento local" -#: src/Navigation.tsx:209 +#: src/Navigation.tsx:221 msgid "Log" msgstr "Registros" @@ -2136,11 +2513,11 @@ msgstr "Registros" msgid "Log out" msgstr "Sair" -#: src/view/screens/Moderation.tsx:155 +#: src/screens/Moderation/index.tsx:444 msgid "Logged-out visibility" msgstr "Visibilidade do seu perfil" -#: src/view/com/auth/login/ChooseAccountForm.tsx:133 +#: src/view/com/auth/login/ChooseAccountForm.tsx:137 msgid "Login to account that is not listed" msgstr "Fazer login em uma conta que não está listada" @@ -2160,7 +2537,7 @@ msgstr "Não pode ter mais que 253 caracteres" msgid "May only contain letters and numbers" msgstr "Só pode conter letras e números" -#: src/view/screens/Profile.tsx:182 +#: src/view/screens/Profile.tsx:190 msgid "Media" msgstr "Mídia" @@ -2173,35 +2550,43 @@ msgid "Mentioned users" msgstr "Usuários mencionados" #: src/view/com/util/ViewHeader.tsx:87 -#: src/view/screens/Search/Search.tsx:646 +#: src/view/screens/Search/Search.tsx:647 msgid "Menu" msgstr "Menu" -#: src/view/com/posts/FeedErrorMessage.tsx:197 +#: src/view/com/posts/FeedErrorMessage.tsx:192 msgid "Message from server: {0}" msgstr "Mensagem do servidor: {0}" -#: src/Navigation.tsx:117 -#: src/view/screens/Moderation.tsx:66 -#: src/view/screens/Settings/index.tsx:625 -#: src/view/shell/desktop/LeftNav.tsx:397 -#: src/view/shell/Drawer.tsx:511 -#: src/view/shell/Drawer.tsx:512 +#: src/lib/moderation/useReportOptions.ts:45 +msgid "Misleading Account" +msgstr "" + +#: src/Navigation.tsx:119 +#: src/screens/Moderation/index.tsx:106 +#: src/view/screens/Settings/index.tsx:641 +#: src/view/shell/desktop/LeftNav.tsx:401 +#: src/view/shell/Drawer.tsx:514 +#: src/view/shell/Drawer.tsx:515 msgid "Moderation" msgstr "Moderação" +#: src/components/moderation/ModerationDetailsDialog.tsx:113 +msgid "Moderation details" +msgstr "" + #: src/view/com/lists/ListCard.tsx:93 #: src/view/com/modals/UserAddRemoveLists.tsx:206 msgid "Moderation list by {0}" msgstr "Lista de moderação por {0}" -#: src/view/screens/ProfileList.tsx:775 +#: src/view/screens/ProfileList.tsx:789 msgid "Moderation list by <0/>" msgstr "Lista de moderação por <0/>" #: src/view/com/lists/ListCard.tsx:91 #: src/view/com/modals/UserAddRemoveLists.tsx:204 -#: src/view/screens/ProfileList.tsx:773 +#: src/view/screens/ProfileList.tsx:787 msgid "Moderation list by you" msgstr "Lista de moderação por você" @@ -2213,30 +2598,41 @@ msgstr "Lista de moderação criada" msgid "Moderation list updated" msgstr "Lista de moderação criada" -#: src/view/screens/Moderation.tsx:114 +#: src/screens/Moderation/index.tsx:245 msgid "Moderation lists" msgstr "Listas de moderação" -#: src/Navigation.tsx:122 +#: src/Navigation.tsx:124 #: src/view/screens/ModerationModlists.tsx:58 msgid "Moderation Lists" msgstr "Listas de Moderação" -#: src/view/screens/Settings/index.tsx:619 +#: src/view/screens/Settings/index.tsx:635 msgid "Moderation settings" msgstr "Moderação" -#: src/view/com/modals/ModerationDetails.tsx:35 +#: src/Navigation.tsx:216 +msgid "Moderation states" +msgstr "" + +#: src/screens/Moderation/index.tsx:217 +msgid "Moderation tools" +msgstr "" + +#: src/components/moderation/ModerationDetailsDialog.tsx:49 +#: src/lib/moderation/useModerationCauseDescription.ts:40 msgid "Moderator has chosen to set a general warning on the content." msgstr "O moderador escolheu um aviso geral neste conteúdo." +#: src/view/com/post-thread/PostThreadItem.tsx:541 +msgid "More" +msgstr "" + #: src/view/shell/desktop/Feeds.tsx:65 msgid "More feeds" msgstr "Mais feeds" -#: src/view/com/profile/ProfileHeader.tsx:523 -#: src/view/screens/ProfileFeed.tsx:363 -#: src/view/screens/ProfileList.tsx:617 +#: src/view/screens/ProfileList.tsx:599 msgid "More options" msgstr "Mais opções" @@ -2260,11 +2656,12 @@ msgstr "Silenciar" msgid "Mute {truncatedTag}" msgstr "Silenciar {truncatedTag}" -#: src/view/com/profile/ProfileHeader.tsx:327 +#: src/view/com/profile/ProfileMenu.tsx:279 +#: src/view/com/profile/ProfileMenu.tsx:286 msgid "Mute Account" msgstr "Silenciar Conta" -#: src/view/screens/ProfileList.tsx:544 +#: src/view/screens/ProfileList.tsx:518 msgid "Mute accounts" msgstr "Silenciar contas" @@ -2284,17 +2681,18 @@ msgstr "Silenciar apenas as tags" msgid "Mute in text & tags" msgstr "Silenciar texto e tags" -#: src/view/screens/ProfileList.tsx:491 +#: src/view/screens/ProfileList.tsx:461 +#: src/view/screens/ProfileList.tsx:624 msgid "Mute list" msgstr "Lista de moderação" -#: src/view/screens/ProfileList.tsx:275 +#: src/view/screens/ProfileList.tsx:619 msgid "Mute these accounts?" msgstr "Silenciar estas contas?" #: src/view/screens/ProfileList.tsx:279 -msgid "Mute this List" -msgstr "Silenciar esta lista" +#~ msgid "Mute this List" +#~ msgstr "Silenciar esta lista" #: src/components/dialogs/MutedWords.tsx:127 msgid "Mute this word in post text and tags" @@ -2318,11 +2716,11 @@ msgstr "Silenciar palavras/tags" msgid "Muted" msgstr "Silenciada" -#: src/view/screens/Moderation.tsx:128 +#: src/screens/Moderation/index.tsx:257 msgid "Muted accounts" msgstr "Contas silenciadas" -#: src/Navigation.tsx:127 +#: src/Navigation.tsx:129 #: src/view/screens/ModerationMutedAccounts.tsx:107 msgid "Muted Accounts" msgstr "Contas Silenciadas" @@ -2331,15 +2729,20 @@ msgstr "Contas Silenciadas" msgid "Muted accounts have their posts removed from your feed and from your notifications. Mutes are completely private." msgstr "Contas silenciadas não aparecem no seu feed ou nas suas notificações. Suas contas silenciadas são completamente privadas." -#: src/view/screens/Moderation.tsx:100 +#: src/lib/moderation/useModerationCauseDescription.ts:85 +msgid "Muted by \"{0}\"" +msgstr "" + +#: src/screens/Moderation/index.tsx:233 msgid "Muted words & tags" msgstr "Palavras/tags silenciadas" -#: src/view/screens/ProfileList.tsx:277 +#: src/view/screens/ProfileList.tsx:621 msgid "Muting is private. Muted accounts can interact with you, but you will not see their posts or receive notifications from them." msgstr "Silenciar é privado. Contas silenciadas podem interagir com você, mas você não verá postagens ou receber notificações delas." -#: src/view/com/modals/BirthDateSettings.tsx:56 +#: src/components/dialogs/BirthDateSettings.tsx:35 +#: src/components/dialogs/BirthDateSettings.tsx:38 msgid "My Birthday" msgstr "Meu Aniversário" @@ -2351,13 +2754,17 @@ msgstr "Meus Feeds" msgid "My Profile" msgstr "Meu Perfil" -#: src/view/screens/Settings/index.tsx:582 +#: src/view/screens/Settings/index.tsx:592 +msgid "My saved feeds" +msgstr "" + +#: src/view/screens/Settings/index.tsx:598 msgid "My Saved Feeds" msgstr "Meus Feeds Salvos" #: src/view/com/auth/server-input/index.tsx:118 -msgid "my-server.com" -msgstr "meu-servidor.com.br" +#~ msgid "my-server.com" +#~ msgstr "meu-servidor.com.br" #: src/view/com/modals/AddAppPasswords.tsx:179 #: src/view/com/modals/CreateOrEditList.tsx:290 @@ -2368,6 +2775,12 @@ msgstr "Nome" msgid "Name is required" msgstr "Nome é obrigatório" +#: src/lib/moderation/useReportOptions.ts:57 +#: src/lib/moderation/useReportOptions.ts:78 +#: src/lib/moderation/useReportOptions.ts:86 +msgid "Name or Description Violates Community Standards" +msgstr "" + #: src/screens/Onboarding/index.tsx:25 msgid "Nature" msgstr "Natureza" @@ -2376,7 +2789,7 @@ msgstr "Natureza" #: src/view/com/auth/login/ForgotPasswordForm.tsx:219 #: src/view/com/auth/login/LoginForm.tsx:289 #: src/view/com/auth/login/SetNewPasswordForm.tsx:196 -#: src/view/com/modals/ChangePassword.tsx:166 +#: src/view/com/modals/ChangePassword.tsx:168 msgid "Navigates to the next screen" msgstr "Navega para próxima tela" @@ -2384,13 +2797,17 @@ msgstr "Navega para próxima tela" msgid "Navigates to your profile" msgstr "Navega para seu perfil" +#: src/components/ReportDialog/SelectReportOptionView.tsx:124 +msgid "Need to report a copyright violation?" +msgstr "" + #: src/view/com/modals/EmbedConsent.tsx:107 #: src/view/com/modals/EmbedConsent.tsx:123 msgid "Never load embeds from {0}" msgstr "Nunca carregar anexos de {0}" #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:72 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:72 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:74 msgid "Never lose access to your followers and data." msgstr "Nunca perca o acesso aos seus seguidores e dados." @@ -2399,8 +2816,12 @@ msgid "Never lose access to your followers or data." msgstr "Nunca perca o acesso aos seus seguidores ou dados." #: src/components/dialogs/MutedWords.tsx:293 -msgid "Nevermind" -msgstr "Deixa pra lá" +#~ msgid "Nevermind" +#~ msgstr "Deixa pra lá" + +#: src/view/com/modals/ChangeHandle.tsx:520 +msgid "Nevermind, create a handle for me" +msgstr "" #: src/view/screens/Lists.tsx:76 msgctxt "action" @@ -2416,29 +2837,30 @@ msgid "New Moderation List" msgstr "Nova lista de moderação" #: src/view/com/auth/login/SetNewPasswordForm.tsx:150 +#: src/view/com/modals/ChangePassword.tsx:212 msgid "New password" msgstr "Nova senha" -#: src/view/com/modals/ChangePassword.tsx:215 +#: src/view/com/modals/ChangePassword.tsx:217 msgid "New Password" msgstr "Nova Senha" -#: src/view/com/feeds/FeedPage.tsx:126 +#: src/view/com/feeds/FeedPage.tsx:135 msgctxt "action" msgid "New post" msgstr "Novo post" #: src/view/screens/Feeds.tsx:555 #: src/view/screens/Notifications.tsx:168 -#: src/view/screens/Profile.tsx:382 +#: src/view/screens/Profile.tsx:450 #: src/view/screens/ProfileFeed.tsx:433 -#: src/view/screens/ProfileList.tsx:196 -#: src/view/screens/ProfileList.tsx:224 -#: src/view/shell/desktop/LeftNav.tsx:248 +#: src/view/screens/ProfileList.tsx:199 +#: src/view/screens/ProfileList.tsx:227 +#: src/view/shell/desktop/LeftNav.tsx:252 msgid "New post" msgstr "Novo post" -#: src/view/shell/desktop/LeftNav.tsx:258 +#: src/view/shell/desktop/LeftNav.tsx:262 msgctxt "action" msgid "New Post" msgstr "Novo Post" @@ -2462,8 +2884,8 @@ msgstr "Notícias" #: src/view/com/auth/login/SetNewPasswordForm.tsx:187 #: src/view/com/auth/login/SetNewPasswordForm.tsx:198 #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:79 -#: src/view/com/modals/ChangePassword.tsx:251 #: src/view/com/modals/ChangePassword.tsx:253 +#: src/view/com/modals/ChangePassword.tsx:255 msgid "Next" msgstr "Próximo" @@ -2472,7 +2894,7 @@ msgctxt "action" msgid "Next" msgstr "Próximo" -#: src/view/com/lightbox/Lightbox.web.tsx:149 +#: src/view/com/lightbox/Lightbox.web.tsx:169 msgid "Next image" msgstr "Próxima imagem" @@ -2485,12 +2907,16 @@ msgstr "Próxima imagem" msgid "No" msgstr "Não" -#: src/view/screens/ProfileFeed.tsx:584 -#: src/view/screens/ProfileList.tsx:755 +#: src/view/screens/ProfileFeed.tsx:561 +#: src/view/screens/ProfileList.tsx:769 msgid "No description" msgstr "Sem descrição" -#: src/view/com/profile/ProfileHeader.tsx:170 +#: src/view/com/modals/ChangeHandle.tsx:406 +msgid "No DNS Panel" +msgstr "" + +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:111 msgid "No longer following {0}" msgstr "Você não está mais seguindo {0}" @@ -2498,12 +2924,12 @@ msgstr "Você não está mais seguindo {0}" msgid "No notifications yet!" msgstr "Nenhuma notificação!" -#: src/view/com/composer/text-input/mobile/Autocomplete.tsx:97 -#: src/view/com/composer/text-input/web/Autocomplete.tsx:191 +#: src/view/com/composer/text-input/mobile/Autocomplete.tsx:101 +#: src/view/com/composer/text-input/web/Autocomplete.tsx:195 msgid "No result" msgstr "Nenhum resultado" -#: src/components/Lists.tsx:192 +#: src/components/Lists.tsx:189 msgid "No results found" msgstr "Nenhum resultado encontrado" @@ -2512,8 +2938,8 @@ msgid "No results found for \"{query}\"" msgstr "Nenhum resultado encontrado para \"{query}\"" #: src/view/com/modals/ListAddRemoveUsers.tsx:127 -#: src/view/screens/Search/Search.tsx:281 -#: src/view/screens/Search/Search.tsx:309 +#: src/view/screens/Search/Search.tsx:282 +#: src/view/screens/Search/Search.tsx:310 msgid "No results found for {query}" msgstr "Nenhum resultado encontrado para {query}" @@ -2525,12 +2951,21 @@ msgstr "Não, obrigado" msgid "Nobody" msgstr "Ninguém" +#: src/components/LikedByList.tsx:102 +#: src/components/LikesDialog.tsx:99 +msgid "Nobody has liked this yet. Maybe you should be the first!" +msgstr "" + +#: src/lib/moderation/useGlobalLabelStrings.ts:42 +msgid "Non-sexual Nudity" +msgstr "" + #: src/view/com/modals/SelfLabel.tsx:135 msgid "Not Applicable." msgstr "Não Aplicável." -#: src/Navigation.tsx:107 -#: src/view/screens/Profile.tsx:106 +#: src/Navigation.tsx:109 +#: src/view/screens/Profile.tsx:97 msgid "Not Found" msgstr "Não encontrado" @@ -2539,17 +2974,22 @@ msgstr "Não encontrado" msgid "Not right now" msgstr "Agora não" -#: src/view/screens/Moderation.tsx:252 +#: src/view/com/profile/ProfileMenu.tsx:368 +#: src/view/com/util/forms/PostDropdownBtn.tsx:342 +msgid "Note about sharing" +msgstr "" + +#: src/screens/Moderation/index.tsx:542 msgid "Note: Bluesky is an open and public network. This setting only limits the visibility of your content on the Bluesky app and website, and other apps may not respect this setting. Your content may still be shown to logged-out users by other apps and websites." msgstr "Nota: o Bluesky é uma rede aberta e pública. Esta configuração limita somente a visibilidade do seu conteúdo no site e aplicativo do Bluesky, e outros aplicativos podem não respeitar esta configuração. Seu conteúdo ainda poderá ser exibido para usuários deslogados por outros aplicativos e sites." -#: src/Navigation.tsx:457 +#: src/Navigation.tsx:469 #: src/view/screens/Notifications.tsx:124 #: src/view/screens/Notifications.tsx:148 -#: src/view/shell/bottom-bar/BottomBar.tsx:205 -#: src/view/shell/desktop/LeftNav.tsx:361 -#: src/view/shell/Drawer.tsx:435 -#: src/view/shell/Drawer.tsx:436 +#: src/view/shell/bottom-bar/BottomBar.tsx:207 +#: src/view/shell/desktop/LeftNav.tsx:365 +#: src/view/shell/Drawer.tsx:438 +#: src/view/shell/Drawer.tsx:439 msgid "Notifications" msgstr "Notificações" @@ -2557,7 +2997,15 @@ msgstr "Notificações" msgid "Nudity" msgstr "Nudez" -#: src/view/com/util/ErrorBoundary.tsx:35 +#: src/lib/moderation/useReportOptions.ts:71 +msgid "Nudity or pornography not labeled as such" +msgstr "" + +#: src/lib/moderation/useLabelBehaviorDescription.ts:11 +msgid "Off" +msgstr "" + +#: src/view/com/util/ErrorBoundary.tsx:49 msgid "Oh no!" msgstr "Opa!" @@ -2565,6 +3013,10 @@ msgstr "Opa!" msgid "Oh no! Something went wrong." msgstr "Opa! Algo deu errado." +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:127 +msgid "OK" +msgstr "" + #: src/view/com/auth/login/PasswordUpdatedForm.tsx:41 msgid "Okay" msgstr "Ok" @@ -2573,11 +3025,11 @@ msgstr "Ok" msgid "Oldest replies first" msgstr "Respostas mais antigas primeiro" -#: src/view/screens/Settings/index.tsx:234 +#: src/view/screens/Settings/index.tsx:240 msgid "Onboarding reset" msgstr "Resetar tutoriais" -#: src/view/com/composer/Composer.tsx:382 +#: src/view/com/composer/Composer.tsx:391 msgid "One or more images is missing alt text." msgstr "Uma ou mais imagens estão sem texto alternativo." @@ -2585,13 +3037,13 @@ msgstr "Uma ou mais imagens estão sem texto alternativo." msgid "Only {0} can reply." msgstr "Apenas {0} pode responder." -#: src/components/Lists.tsx:82 +#: src/components/Lists.tsx:83 msgid "Oops, something went wrong!" msgstr "Opa, algo deu errado!" -#: src/components/Lists.tsx:188 -#: src/view/screens/AppPasswords.tsx:65 -#: src/view/screens/Profile.tsx:106 +#: src/components/Lists.tsx:157 +#: src/view/screens/AppPasswords.tsx:67 +#: src/view/screens/Profile.tsx:97 msgid "Oops!" msgstr "Opa!" @@ -2600,34 +3052,47 @@ msgid "Open" msgstr "Abrir" #: src/view/screens/Moderation.tsx:75 -msgid "Open content filtering settings" -msgstr "Abrir configurações de filtro" +#~ msgid "Open content filtering settings" +#~ msgstr "Abrir configurações de filtro" -#: src/view/com/composer/Composer.tsx:477 -#: src/view/com/composer/Composer.tsx:478 +#: src/view/com/composer/Composer.tsx:490 +#: src/view/com/composer/Composer.tsx:491 msgid "Open emoji picker" msgstr "Abrir seletor de emojis" -#: src/view/screens/Settings/index.tsx:712 +#: src/view/screens/ProfileFeed.tsx:299 +msgid "Open feed options menu" +msgstr "" + +#: src/view/screens/Settings/index.tsx:730 msgid "Open links with in-app browser" msgstr "Abrir links no navegador interno" +#: src/screens/Moderation/index.tsx:229 +msgid "Open muted words and tags settings" +msgstr "" + #: src/view/screens/Moderation.tsx:92 -msgid "Open muted words settings" -msgstr "Abrir configurações das palavras silenciadas" +#~ msgid "Open muted words settings" +#~ msgstr "Abrir configurações das palavras silenciadas" #: src/view/com/home/HomeHeaderLayoutMobile.tsx:50 msgid "Open navigation" msgstr "Abrir navegação" -#: src/view/com/util/forms/PostDropdownBtn.tsx:175 +#: src/view/com/util/forms/PostDropdownBtn.tsx:183 msgid "Open post options menu" msgstr "Abrir opções do post" -#: src/view/screens/Settings/index.tsx:804 -msgid "Open storybook page" +#: src/view/screens/Settings/index.tsx:824 +#: src/view/screens/Settings/index.tsx:834 +msgid "Open storybook page" msgstr "Abre o storybook" +#: src/view/screens/Settings/index.tsx:812 +msgid "Open system log" +msgstr "" + #: src/view/com/util/forms/DropdownButton.tsx:154 msgid "Opens {numItems} options" msgstr "Abre {numItems} opções" @@ -2636,11 +3101,11 @@ msgstr "Abre {numItems} opções" msgid "Opens additional details for a debug entry" msgstr "Abre detalhes adicionais para um registro de depuração" -#: src/view/com/notifications/FeedItem.tsx:349 +#: src/view/com/notifications/FeedItem.tsx:353 msgid "Opens an expanded list of users in this notification" msgstr "Abre a lista de usuários nesta notificação" -#: src/view/com/composer/photos/OpenCameraBtn.tsx:61 +#: src/view/com/composer/photos/OpenCameraBtn.tsx:78 msgid "Opens camera on device" msgstr "Abre a câmera do dispositivo" @@ -2648,7 +3113,7 @@ msgstr "Abre a câmera do dispositivo" msgid "Opens composer" msgstr "Abre o editor de post" -#: src/view/screens/Settings/index.tsx:595 +#: src/view/screens/Settings/index.tsx:611 msgid "Opens configurable language settings" msgstr "Abre definições de idioma configuráveis" @@ -2657,34 +3122,64 @@ msgid "Opens device photo gallery" msgstr "Abre a galeria de fotos do dispositivo" #: src/view/com/profile/ProfileHeader.tsx:420 -msgid "Opens editor for profile display name, avatar, background image, and description" -msgstr "Abre o editor de nome, avatar, banner e descrição do perfil" +#~ msgid "Opens editor for profile display name, avatar, background image, and description" +#~ msgstr "Abre o editor de nome, avatar, banner e descrição do perfil" -#: src/view/screens/Settings/index.tsx:649 +#: src/view/screens/Settings/index.tsx:665 msgid "Opens external embeds settings" msgstr "Abre as configurações de anexos externos" +#: src/view/com/auth/HomeLoggedOutCTA.tsx:56 +#: src/view/com/auth/SplashScreen.tsx:70 +msgid "Opens flow to create a new Bluesky account" +msgstr "" + +#: src/view/com/auth/HomeLoggedOutCTA.tsx:74 +#: src/view/com/auth/SplashScreen.tsx:83 +msgid "Opens flow to sign into your existing Bluesky account" +msgstr "" + #: src/view/com/profile/ProfileHeader.tsx:575 -msgid "Opens followers list" -msgstr "Abre lista de seguidores" +#~ msgid "Opens followers list" +#~ msgstr "Abre lista de seguidores" #: src/view/com/profile/ProfileHeader.tsx:594 -msgid "Opens following list" -msgstr "Abre lista de seguidos" +#~ msgid "Opens following list" +#~ msgstr "Abre lista de seguidos" #: src/view/com/modals/InviteCodes.tsx:172 msgid "Opens list of invite codes" msgstr "Abre a lista de códigos de convite" +#: src/view/screens/Settings/index.tsx:794 +msgid "Opens modal for account deletion confirmation. Requires email code" +msgstr "" + #: src/view/screens/Settings/index.tsx:774 -msgid "Opens modal for account deletion confirmation. Requires email code." -msgstr "Abre modal para confirmar exclusão de conta. Requer código de verificação." +#~ msgid "Opens modal for account deletion confirmation. Requires email code." +#~ msgstr "Abre modal para confirmar exclusão de conta. Requer código de verificação." + +#: src/view/screens/Settings/index.tsx:752 +msgid "Opens modal for changing your Bluesky password" +msgstr "" + +#: src/view/screens/Settings/index.tsx:714 +msgid "Opens modal for choosing a new Bluesky handle" +msgstr "" + +#: src/view/screens/Settings/index.tsx:775 +msgid "Opens modal for downloading your Bluesky account data (repository)" +msgstr "" + +#: src/view/screens/Settings/index.tsx:966 +msgid "Opens modal for email verification" +msgstr "" #: src/view/com/modals/ChangeHandle.tsx:281 msgid "Opens modal for using custom domain" msgstr "Abre modal para usar o domínio personalizado" -#: src/view/screens/Settings/index.tsx:620 +#: src/view/screens/Settings/index.tsx:636 msgid "Opens moderation settings" msgstr "Abre configurações de moderação" @@ -2697,27 +3192,40 @@ msgstr "Abre o formulário de redefinição de senha" msgid "Opens screen to edit Saved Feeds" msgstr "Abre a tela para editar feeds salvos" -#: src/view/screens/Settings/index.tsx:576 +#: src/view/screens/Settings/index.tsx:593 msgid "Opens screen with all saved feeds" msgstr "Abre a tela com todos os feeds salvos" +#: src/view/screens/Settings/index.tsx:692 +msgid "Opens the app password settings" +msgstr "" + #: src/view/screens/Settings/index.tsx:676 -msgid "Opens the app password settings page" -msgstr "Abre a página de configurações de senha do aplicativo" +#~ msgid "Opens the app password settings page" +#~ msgstr "Abre a página de configurações de senha do aplicativo" + +#: src/view/screens/Settings/index.tsx:550 +msgid "Opens the Following feed preferences" +msgstr "" #: src/view/screens/Settings/index.tsx:535 -msgid "Opens the home feed preferences" -msgstr "Abre as preferências do feed inicial" +#~ msgid "Opens the home feed preferences" +#~ msgstr "Abre as preferências do feed inicial" -#: src/view/screens/Settings/index.tsx:805 +#: src/view/com/modals/LinkWarning.tsx:76 +msgid "Opens the linked website" +msgstr "" + +#: src/view/screens/Settings/index.tsx:825 +#: src/view/screens/Settings/index.tsx:835 msgid "Opens the storybook page" msgstr "Abre a página do storybook" -#: src/view/screens/Settings/index.tsx:793 +#: src/view/screens/Settings/index.tsx:813 msgid "Opens the system log page" msgstr "Abre a página de log do sistema" -#: src/view/screens/Settings/index.tsx:556 +#: src/view/screens/Settings/index.tsx:571 msgid "Opens the threads preferences" msgstr "Abre as preferências de threads" @@ -2725,11 +3233,19 @@ msgstr "Abre as preferências de threads" msgid "Option {0} of {numItems}" msgstr "Opção {0} de {numItems}" +#: src/components/ReportDialog/SubmitView.tsx:162 +msgid "Optionally provide additional information below:" +msgstr "" + #: src/view/com/modals/Threadgate.tsx:89 msgid "Or combine these options:" msgstr "Ou combine estas opções:" -#: src/view/com/auth/login/ChooseAccountForm.tsx:138 +#: src/lib/moderation/useReportOptions.ts:25 +msgid "Other" +msgstr "" + +#: src/view/com/auth/login/ChooseAccountForm.tsx:142 msgid "Other account" msgstr "Outra conta" @@ -2737,7 +3253,7 @@ msgstr "Outra conta" msgid "Other..." msgstr "Outro..." -#: src/components/Lists.tsx:194 +#: src/components/Lists.tsx:190 #: src/view/screens/NotFound.tsx:45 msgid "Page not found" msgstr "Página não encontrada" @@ -2748,12 +3264,18 @@ msgstr "Página Não Encontrada" #: src/view/com/auth/create/Step1.tsx:191 #: src/view/com/auth/create/Step1.tsx:201 +#: src/view/com/auth/login/LoginForm.tsx:210 #: src/view/com/auth/login/LoginForm.tsx:226 #: src/view/com/auth/login/SetNewPasswordForm.tsx:161 +#: src/view/com/modals/DeleteAccount.tsx:195 #: src/view/com/modals/DeleteAccount.tsx:202 msgid "Password" msgstr "Senha" +#: src/view/com/modals/ChangePassword.tsx:142 +msgid "Password Changed" +msgstr "" + #: src/view/com/auth/login/Login.tsx:157 msgid "Password updated" msgstr "Senha atualizada" @@ -2762,11 +3284,11 @@ msgstr "Senha atualizada" msgid "Password updated!" msgstr "Senha atualizada!" -#: src/Navigation.tsx:162 +#: src/Navigation.tsx:164 msgid "People followed by @{0}" msgstr "Pessoas seguidas por @{0}" -#: src/Navigation.tsx:155 +#: src/Navigation.tsx:157 msgid "People following @{0}" msgstr "Pessoas seguindo @{0}" @@ -2786,11 +3308,15 @@ msgstr "Pets" msgid "Pictures meant for adults." msgstr "Imagens destinadas a adultos." -#: src/view/screens/ProfileFeed.tsx:354 -#: src/view/screens/ProfileList.tsx:581 +#: src/view/screens/ProfileFeed.tsx:291 +#: src/view/screens/ProfileList.tsx:563 msgid "Pin to home" msgstr "Fixar na tela inicial" +#: src/view/screens/ProfileFeed.tsx:294 +msgid "Pin to Home" +msgstr "" + #: src/view/screens/SavedFeeds.tsx:88 msgid "Pinned Feeds" msgstr "Feeds Fixados" @@ -2852,16 +3378,20 @@ msgstr "Por favor, digite o seu e-mail." msgid "Please enter your password as well:" msgstr "Por favor, digite sua senha também:" +#: src/components/moderation/LabelsOnMeDialog.tsx:222 +msgid "Please explain why you think this label was incorrectly applied by {0}" +msgstr "" + #: src/view/com/modals/AppealLabel.tsx:72 #: src/view/com/modals/AppealLabel.tsx:75 -msgid "Please tell us why you think this content warning was incorrectly applied!" -msgstr "Por favor, diga-nos por que você acha que este aviso de conteúdo foi aplicado incorretamente!" +#~ msgid "Please tell us why you think this content warning was incorrectly applied!" +#~ msgstr "Por favor, diga-nos por que você acha que este aviso de conteúdo foi aplicado incorretamente!" #: src/view/com/modals/VerifyEmail.tsx:101 msgid "Please Verify Your Email" msgstr "Por favor, verifique seu e-mail" -#: src/view/com/composer/Composer.tsx:222 +#: src/view/com/composer/Composer.tsx:221 msgid "Please wait for your link card to finish loading" msgstr "Aguarde até que a prévia de link termine de carregar" @@ -2873,13 +3403,17 @@ msgstr "Política" msgid "Porn" msgstr "Pornografia" -#: src/view/com/composer/Composer.tsx:357 -#: src/view/com/composer/Composer.tsx:365 +#: src/lib/moderation/useGlobalLabelStrings.ts:34 +msgid "Pornography" +msgstr "" + +#: src/view/com/composer/Composer.tsx:366 +#: src/view/com/composer/Composer.tsx:374 msgctxt "action" msgid "Post" msgstr "Postar" -#: src/view/com/post-thread/PostThread.tsx:303 +#: src/view/com/post-thread/PostThread.tsx:292 msgctxt "description" msgid "Post" msgstr "Post" @@ -2888,20 +3422,30 @@ msgstr "Post" msgid "Post by {0}" msgstr "Post por {0}" -#: src/Navigation.tsx:174 -#: src/Navigation.tsx:181 -#: src/Navigation.tsx:188 +#: src/Navigation.tsx:176 +#: src/Navigation.tsx:183 +#: src/Navigation.tsx:190 msgid "Post by @{0}" msgstr "Post por @{0}" -#: src/view/com/util/forms/PostDropdownBtn.tsx:108 +#: src/view/com/util/forms/PostDropdownBtn.tsx:105 msgid "Post deleted" msgstr "Post excluído" -#: src/view/com/post-thread/PostThread.tsx:462 +#: src/view/com/post-thread/PostThread.tsx:157 msgid "Post hidden" msgstr "Post oculto" +#: src/components/moderation/ModerationDetailsDialog.tsx:98 +#: src/lib/moderation/useModerationCauseDescription.ts:99 +msgid "Post Hidden by Muted Word" +msgstr "" + +#: src/components/moderation/ModerationDetailsDialog.tsx:101 +#: src/lib/moderation/useModerationCauseDescription.ts:108 +msgid "Post Hidden by You" +msgstr "" + #: src/view/com/composer/select-language/SelectLangBtn.tsx:87 msgid "Post language" msgstr "Idioma do post" @@ -2910,7 +3454,8 @@ msgstr "Idioma do post" msgid "Post Languages" msgstr "Idiomas do Post" -#: src/view/com/post-thread/PostThread.tsx:514 +#: src/view/com/post-thread/PostThread.tsx:152 +#: src/view/com/post-thread/PostThread.tsx:164 msgid "Post not found" msgstr "Post não encontrado" @@ -2918,7 +3463,7 @@ msgstr "Post não encontrado" msgid "posts" msgstr "posts" -#: src/view/screens/Profile.tsx:180 +#: src/view/screens/Profile.tsx:188 msgid "Posts" msgstr "Posts" @@ -2934,7 +3479,11 @@ msgstr "Posts ocultados" msgid "Potentially Misleading Link" msgstr "Link Potencialmente Enganoso" -#: src/view/com/lightbox/Lightbox.web.tsx:135 +#: src/components/Lists.tsx:88 +msgid "Press to retry" +msgstr "" + +#: src/view/com/lightbox/Lightbox.web.tsx:150 msgid "Previous image" msgstr "Imagem anterior" @@ -2946,15 +3495,16 @@ msgstr "Idioma Principal" msgid "Prioritize Your Follows" msgstr "Priorizar seus Seguidores" -#: src/view/screens/Settings/index.tsx:632 +#: src/view/screens/Settings/index.tsx:648 #: src/view/shell/desktop/RightNav.tsx:72 msgid "Privacy" msgstr "Privacidade" -#: src/Navigation.tsx:219 +#: src/Navigation.tsx:231 +#: src/view/com/auth/create/Policies.tsx:69 #: src/view/screens/PrivacyPolicy.tsx:29 -#: src/view/screens/Settings/index.tsx:891 -#: src/view/shell/Drawer.tsx:262 +#: src/view/screens/Settings/index.tsx:921 +#: src/view/shell/Drawer.tsx:265 msgid "Privacy Policy" msgstr "Política de Privacidade" @@ -2962,11 +3512,16 @@ msgstr "Política de Privacidade" msgid "Processing..." msgstr "Processando..." -#: src/view/shell/bottom-bar/BottomBar.tsx:247 -#: src/view/shell/desktop/LeftNav.tsx:415 +#: src/view/screens/DebugMod.tsx:888 +#: src/view/screens/Profile.tsx:340 +msgid "profile" +msgstr "" + +#: src/view/shell/bottom-bar/BottomBar.tsx:251 +#: src/view/shell/desktop/LeftNav.tsx:419 #: src/view/shell/Drawer.tsx:70 -#: src/view/shell/Drawer.tsx:546 -#: src/view/shell/Drawer.tsx:547 +#: src/view/shell/Drawer.tsx:549 +#: src/view/shell/Drawer.tsx:550 msgid "Profile" msgstr "Perfil" @@ -2974,7 +3529,7 @@ msgstr "Perfil" msgid "Profile updated" msgstr "Perfil atualizado" -#: src/view/screens/Settings/index.tsx:949 +#: src/view/screens/Settings/index.tsx:979 msgid "Protect your account by verifying your email." msgstr "Proteja a sua conta verificando o seu e-mail." @@ -2990,11 +3545,11 @@ msgstr "Listas públicas e compartilháveis para silenciar ou bloquear usuários msgid "Public, shareable lists which can drive feeds." msgstr "Listas públicas e compartilháveis que geram feeds." -#: src/view/com/composer/Composer.tsx:342 +#: src/view/com/composer/Composer.tsx:351 msgid "Publish post" msgstr "Publicar post" -#: src/view/com/composer/Composer.tsx:342 +#: src/view/com/composer/Composer.tsx:351 msgid "Publish reply" msgstr "Publicar resposta" @@ -3020,6 +3575,10 @@ msgstr "Aleatório" msgid "Ratios" msgstr "Índices" +#: src/view/screens/Search/Search.tsx:776 +msgid "Recent Searches" +msgstr "" + #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:116 msgid "Recommended Feeds" msgstr "Feeds Recomendados" @@ -3028,36 +3587,50 @@ msgstr "Feeds Recomendados" msgid "Recommended Users" msgstr "Usuários Recomendados" -#: src/components/dialogs/MutedWords.tsx:298 -#: src/view/com/modals/ListAddRemoveUsers.tsx:264 +#: src/components/dialogs/MutedWords.tsx:287 +#: src/view/com/feeds/FeedSourceCard.tsx:283 +#: src/view/com/modals/ListAddRemoveUsers.tsx:268 #: src/view/com/modals/SelfLabel.tsx:83 #: src/view/com/modals/UserAddRemoveLists.tsx:219 -#: src/view/com/util/UserAvatar.tsx:285 -#: src/view/com/util/UserBanner.tsx:91 +#: src/view/com/posts/FeedErrorMessage.tsx:204 msgid "Remove" msgstr "Remover" #: src/view/com/feeds/FeedSourceCard.tsx:108 -msgid "Remove {0} from my feeds?" -msgstr "Remover {0} dos meus feeds?" +#~ msgid "Remove {0} from my feeds?" +#~ msgstr "Remover {0} dos meus feeds?" #: src/view/com/util/AccountDropdownBtn.tsx:22 msgid "Remove account" msgstr "Remover conta" -#: src/view/com/posts/FeedErrorMessage.tsx:131 -#: src/view/com/posts/FeedErrorMessage.tsx:166 +#: src/view/com/util/UserAvatar.tsx:358 +msgid "Remove Avatar" +msgstr "" + +#: src/view/com/util/UserBanner.tsx:148 +msgid "Remove Banner" +msgstr "" + +#: src/view/com/posts/FeedErrorMessage.tsx:160 msgid "Remove feed" msgstr "Remover feed" -#: src/view/com/feeds/FeedSourceCard.tsx:107 -#: src/view/com/feeds/FeedSourceCard.tsx:169 -#: src/view/com/feeds/FeedSourceCard.tsx:174 -#: src/view/com/feeds/FeedSourceCard.tsx:245 -#: src/view/screens/ProfileFeed.tsx:273 +#: src/view/com/posts/FeedErrorMessage.tsx:201 +msgid "Remove feed?" +msgstr "" + +#: src/view/com/feeds/FeedSourceCard.tsx:173 +#: src/view/com/feeds/FeedSourceCard.tsx:233 +#: src/view/screens/ProfileFeed.tsx:334 +#: src/view/screens/ProfileFeed.tsx:340 msgid "Remove from my feeds" msgstr "Remover dos meus feeds" +#: src/view/com/feeds/FeedSourceCard.tsx:278 +msgid "Remove from my feeds?" +msgstr "" + #: src/view/com/composer/photos/Gallery.tsx:167 msgid "Remove image" msgstr "Remover imagem" @@ -3066,7 +3639,7 @@ msgstr "Remover imagem" msgid "Remove image preview" msgstr "Remover visualização da imagem" -#: src/components/dialogs/MutedWords.tsx:343 +#: src/components/dialogs/MutedWords.tsx:330 msgid "Remove mute word from your list" msgstr "Remover palavra silenciada da lista" @@ -3075,28 +3648,35 @@ msgid "Remove repost" msgstr "Desfazer repost" #: src/view/com/feeds/FeedSourceCard.tsx:175 -msgid "Remove this feed from my feeds?" -msgstr "Remover este feed dos meus feeds?" +#~ msgid "Remove this feed from my feeds?" +#~ msgstr "Remover este feed dos meus feeds?" + +#: src/view/com/posts/FeedErrorMessage.tsx:202 +msgid "Remove this feed from your saved feeds" +msgstr "" #: src/view/com/posts/FeedErrorMessage.tsx:132 -msgid "Remove this feed from your saved feeds?" -msgstr "Remover este feed dos feeds salvos?" +#~ msgid "Remove this feed from your saved feeds?" +#~ msgstr "Remover este feed dos feeds salvos?" #: src/view/com/modals/ListAddRemoveUsers.tsx:199 #: src/view/com/modals/UserAddRemoveLists.tsx:152 msgid "Removed from list" msgstr "Removido da lista" -#: src/view/com/feeds/FeedSourceCard.tsx:113 -#: src/view/com/feeds/FeedSourceCard.tsx:180 +#: src/view/com/feeds/FeedSourceCard.tsx:121 msgid "Removed from my feeds" msgstr "Remover dos meus feeds" +#: src/view/screens/ProfileFeed.tsx:208 +msgid "Removed from your feeds" +msgstr "" + #: src/view/com/composer/ExternalEmbed.tsx:71 msgid "Removes default thumbnail from {0}" msgstr "Remover miniatura de {0}" -#: src/view/screens/Profile.tsx:181 +#: src/view/screens/Profile.tsx:189 msgid "Replies" msgstr "Respostas" @@ -3104,7 +3684,7 @@ msgstr "Respostas" msgid "Replies to this thread are disabled" msgstr "Respostas para esta thread estão desativadas" -#: src/view/com/composer/Composer.tsx:355 +#: src/view/com/composer/Composer.tsx:364 msgctxt "action" msgid "Reply" msgstr "Responder" @@ -3113,34 +3693,55 @@ msgstr "Responder" msgid "Reply Filters" msgstr "Filtros de Resposta" -#: src/view/com/post/Post.tsx:167 -#: src/view/com/posts/FeedItem.tsx:287 +#: src/view/com/post/Post.tsx:166 +#: src/view/com/posts/FeedItem.tsx:280 msgctxt "description" msgid "Reply to <0/>" msgstr "Responder <0/>" #: src/view/com/modals/report/Modal.tsx:166 -msgid "Report {collectionName}" -msgstr "Denunciar {collectionName}" +#~ msgid "Report {collectionName}" +#~ msgstr "Denunciar {collectionName}" -#: src/view/com/profile/ProfileHeader.tsx:361 +#: src/view/com/profile/ProfileMenu.tsx:319 +#: src/view/com/profile/ProfileMenu.tsx:322 msgid "Report Account" msgstr "Denunciar Conta" -#: src/view/screens/ProfileFeed.tsx:293 +#: src/view/screens/ProfileFeed.tsx:351 +#: src/view/screens/ProfileFeed.tsx:353 msgid "Report feed" msgstr "Denunciar feed" -#: src/view/screens/ProfileList.tsx:459 +#: src/view/screens/ProfileList.tsx:429 msgid "Report List" msgstr "Denunciar Lista" -#: src/view/com/modals/report/SendReportButton.tsx:37 -#: src/view/com/util/forms/PostDropdownBtn.tsx:301 -#: src/view/com/util/forms/PostDropdownBtn.tsx:309 +#: src/view/com/util/forms/PostDropdownBtn.tsx:292 +#: src/view/com/util/forms/PostDropdownBtn.tsx:294 msgid "Report post" msgstr "Denunciar post" +#: src/components/ReportDialog/SelectReportOptionView.tsx:43 +msgid "Report this content" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:56 +msgid "Report this feed" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:53 +msgid "Report this list" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:50 +msgid "Report this post" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:47 +msgid "Report this user" +msgstr "" + #: src/view/com/modals/Repost.tsx:43 #: src/view/com/modals/Repost.tsx:48 #: src/view/com/modals/Repost.tsx:53 @@ -3162,19 +3763,19 @@ msgstr "Repostar ou citar um post" msgid "Reposted By" msgstr "Repostado Por" -#: src/view/com/posts/FeedItem.tsx:207 +#: src/view/com/posts/FeedItem.tsx:197 msgid "Reposted by {0}" msgstr "Repostado por {0}" -#: src/view/com/posts/FeedItem.tsx:224 +#: src/view/com/posts/FeedItem.tsx:214 msgid "Reposted by <0/>" msgstr "Repostado por <0/>" -#: src/view/com/notifications/FeedItem.tsx:162 +#: src/view/com/notifications/FeedItem.tsx:166 msgid "reposted your post" msgstr "repostou seu post" -#: src/view/com/post-thread/PostThreadItem.tsx:188 +#: src/view/com/post-thread/PostThreadItem.tsx:187 msgid "Reposts of this post" msgstr "Reposts" @@ -3183,12 +3784,12 @@ msgstr "Reposts" msgid "Request Change" msgstr "Solicitar Alteração" -#: src/view/com/modals/ChangePassword.tsx:239 #: src/view/com/modals/ChangePassword.tsx:241 +#: src/view/com/modals/ChangePassword.tsx:243 msgid "Request Code" msgstr "Solicitar Código" -#: src/view/screens/Settings/index.tsx:456 +#: src/view/screens/Settings/index.tsx:471 msgid "Require alt text before posting" msgstr "Exigir texto alternativo antes de postar" @@ -3198,18 +3799,20 @@ msgstr "Obrigatório para este provedor" #: src/view/com/auth/login/SetNewPasswordForm.tsx:124 #: src/view/com/auth/login/SetNewPasswordForm.tsx:136 +#: src/view/com/modals/ChangePassword.tsx:185 msgid "Reset code" msgstr "Código de redefinição" -#: src/view/com/modals/ChangePassword.tsx:190 +#: src/view/com/modals/ChangePassword.tsx:192 msgid "Reset Code" msgstr "Código de Redefinição" #: src/view/screens/Settings/index.tsx:824 -msgid "Reset onboarding" -msgstr "Redefinir tutoriais" +#~ msgid "Reset onboarding" +#~ msgstr "Redefinir tutoriais" -#: src/view/screens/Settings/index.tsx:827 +#: src/view/screens/Settings/index.tsx:854 +#: src/view/screens/Settings/index.tsx:857 msgid "Reset onboarding state" msgstr "Redefinir tutoriais" @@ -3218,18 +3821,19 @@ msgid "Reset password" msgstr "Redefinir senha" #: src/view/screens/Settings/index.tsx:814 -msgid "Reset preferences" -msgstr "Redefinir configurações" +#~ msgid "Reset preferences" +#~ msgstr "Redefinir configurações" -#: src/view/screens/Settings/index.tsx:817 +#: src/view/screens/Settings/index.tsx:844 +#: src/view/screens/Settings/index.tsx:847 msgid "Reset preferences state" msgstr "Redefinir configurações" -#: src/view/screens/Settings/index.tsx:825 +#: src/view/screens/Settings/index.tsx:855 msgid "Resets the onboarding state" msgstr "Redefine tutoriais" -#: src/view/screens/Settings/index.tsx:815 +#: src/view/screens/Settings/index.tsx:845 msgid "Resets the preferences state" msgstr "Redefine as configurações" @@ -3242,6 +3846,7 @@ msgstr "Tenta entrar novamente" msgid "Retries the last action, which errored out" msgstr "Tenta a última ação, que deu erro" +#: src/components/Lists.tsx:98 #: src/screens/Onboarding/StepInterests/index.tsx:221 #: src/screens/Onboarding/StepInterests/index.tsx:224 #: src/view/com/auth/create/CreateAccount.tsx:181 @@ -3257,22 +3862,29 @@ msgstr "Tente novamente" #~ msgid "Retry." #~ msgstr "Tentar novamente." -#: src/view/screens/ProfileList.tsx:903 +#: src/view/screens/ProfileList.tsx:917 msgid "Return to previous page" msgstr "Voltar para página anterior" +#: src/view/screens/NotFound.tsx:59 +msgid "Returns to home page" +msgstr "" + +#: src/view/screens/NotFound.tsx:58 +#: src/view/screens/ProfileFeed.tsx:112 +msgid "Returns to previous page" +msgstr "" + #: src/view/com/lightbox/Lightbox.tsx:132 #: src/view/com/modals/CreateOrEditList.tsx:345 msgctxt "action" msgid "Save" msgstr "Salvar" -#: src/view/com/modals/BirthDateSettings.tsx:94 -#: src/view/com/modals/BirthDateSettings.tsx:97 +#: src/components/dialogs/BirthDateSettings.tsx:125 #: src/view/com/modals/ChangeHandle.tsx:173 #: src/view/com/modals/CreateOrEditList.tsx:337 #: src/view/com/modals/EditProfile.tsx:224 -#: src/view/screens/ProfileFeed.tsx:346 msgid "Save" msgstr "Salvar" @@ -3280,6 +3892,10 @@ msgstr "Salvar" msgid "Save alt text" msgstr "Salvar texto alternativo" +#: src/components/dialogs/BirthDateSettings.tsx:119 +msgid "Save birthday" +msgstr "" + #: src/view/com/modals/EditProfile.tsx:232 msgid "Save Changes" msgstr "Salvar Alterações" @@ -3292,10 +3908,23 @@ msgstr "Salvar usuário" msgid "Save image crop" msgstr "Salvar corte de imagem" +#: src/view/screens/ProfileFeed.tsx:335 +#: src/view/screens/ProfileFeed.tsx:341 +msgid "Save to my feeds" +msgstr "" + #: src/view/screens/SavedFeeds.tsx:122 msgid "Saved Feeds" msgstr "Feeds Salvos" +#: src/view/com/lightbox/Lightbox.tsx:81 +msgid "Saved to your camera roll." +msgstr "" + +#: src/view/screens/ProfileFeed.tsx:212 +msgid "Saved to your feeds" +msgstr "" + #: src/view/com/modals/EditProfile.tsx:225 msgid "Saves any changes to your profile" msgstr "Salva todas as alterações" @@ -3304,33 +3933,37 @@ msgstr "Salva todas as alterações" msgid "Saves handle change to {handle}" msgstr "Salva mudança de usuário para {handle}" +#: src/view/com/modals/crop-image/CropImage.web.tsx:145 +msgid "Saves image crop settings" +msgstr "" + #: src/screens/Onboarding/index.tsx:36 msgid "Science" msgstr "Ciência" -#: src/view/screens/ProfileList.tsx:859 +#: src/view/screens/ProfileList.tsx:873 msgid "Scroll to top" msgstr "Ir para o topo" -#: src/Navigation.tsx:447 +#: src/Navigation.tsx:459 #: src/view/com/auth/LoggedOut.tsx:122 #: src/view/com/modals/ListAddRemoveUsers.tsx:75 #: src/view/com/util/forms/SearchInput.tsx:67 #: src/view/com/util/forms/SearchInput.tsx:79 -#: src/view/screens/Search/Search.tsx:419 -#: src/view/screens/Search/Search.tsx:668 -#: src/view/screens/Search/Search.tsx:686 -#: src/view/shell/bottom-bar/BottomBar.tsx:159 -#: src/view/shell/desktop/LeftNav.tsx:324 -#: src/view/shell/desktop/Search.tsx:214 -#: src/view/shell/desktop/Search.tsx:223 -#: src/view/shell/Drawer.tsx:362 -#: src/view/shell/Drawer.tsx:363 +#: src/view/screens/Search/Search.tsx:420 +#: src/view/screens/Search/Search.tsx:669 +#: src/view/screens/Search/Search.tsx:687 +#: src/view/shell/bottom-bar/BottomBar.tsx:161 +#: src/view/shell/desktop/LeftNav.tsx:328 +#: src/view/shell/desktop/Search.tsx:215 +#: src/view/shell/desktop/Search.tsx:224 +#: src/view/shell/Drawer.tsx:365 +#: src/view/shell/Drawer.tsx:366 msgid "Search" msgstr "Buscar" -#: src/view/screens/Search/Search.tsx:735 -#: src/view/shell/desktop/Search.tsx:255 +#: src/view/screens/Search/Search.tsx:736 +#: src/view/shell/desktop/Search.tsx:256 msgid "Search for \"{query}\"" msgstr "Pesquisar por \"{query}\"" @@ -3400,6 +4033,14 @@ msgstr "Selecionar {item}" msgid "Select from an existing account" msgstr "Selecionar de uma conta existente" +#: src/view/screens/LanguageSettings.tsx:299 +msgid "Select languages" +msgstr "" + +#: src/components/ReportDialog/SelectLabelerView.tsx:32 +msgid "Select moderator" +msgstr "" + #: src/view/com/util/Selector.tsx:107 msgid "Select option {i} of {numItems}" msgstr "Seleciona opção {i} de {numItems}" @@ -3413,6 +4054,10 @@ msgstr "Selecionar serviço" msgid "Select some accounts below to follow" msgstr "Selecione algumas contas para seguir" +#: src/components/ReportDialog/SubmitView.tsx:135 +msgid "Select the moderation service(s) to report to" +msgstr "" + #: src/view/com/auth/server-input/index.tsx:82 msgid "Select the service that hosts your data." msgstr "Selecione o serviço que hospeda seus dados." @@ -3421,7 +4066,7 @@ msgstr "Selecione o serviço que hospeda seus dados." msgid "Select topical feeds to follow from the list below" msgstr "Selecione feeds de assuntos para seguir" -#: src/screens/Onboarding/StepModeration/index.tsx:75 +#: src/screens/Onboarding/StepModeration/index.tsx:62 msgid "Select what you want to see (or not see), and we’ll handle the rest." msgstr "Selecione o que você quer (ou não) ver, e cuidaremos do resto." @@ -3430,8 +4075,12 @@ msgid "Select which languages you want your subscribed feeds to include. If none msgstr "Selecione quais idiomas você deseja ver nos seus feeds. Se nenhum for selecionado, todos os idiomas serão exibidos." #: src/view/screens/LanguageSettings.tsx:98 -msgid "Select your app language for the default text to display in the app" -msgstr "Selecione o idioma do seu aplicativo" +#~ msgid "Select your app language for the default text to display in the app" +#~ msgstr "Selecione o idioma do seu aplicativo" + +#: src/view/screens/LanguageSettings.tsx:98 +msgid "Select your app language for the default text to display in the app." +msgstr "" #: src/screens/Onboarding/StepInterests/index.tsx:196 msgid "Select your interests from the options below" @@ -3463,14 +4112,23 @@ msgctxt "action" msgid "Send Email" msgstr "Enviar E-mail" -#: src/view/shell/Drawer.tsx:295 -#: src/view/shell/Drawer.tsx:316 +#: src/view/shell/Drawer.tsx:298 +#: src/view/shell/Drawer.tsx:319 msgid "Send feedback" msgstr "Enviar comentários" +#: src/components/ReportDialog/SubmitView.tsx:214 +#: src/components/ReportDialog/SubmitView.tsx:218 +msgid "Send report" +msgstr "" + #: src/view/com/modals/report/SendReportButton.tsx:45 -msgid "Send Report" -msgstr "Denunciar" +#~ msgid "Send Report" +#~ msgstr "Denunciar" + +#: src/components/ReportDialog/SelectLabelerView.tsx:46 +msgid "Send report to {0}" +msgstr "" #: src/view/com/modals/DeleteAccount.tsx:133 msgid "Sends email with confirmation code for account deletion" @@ -3481,34 +4139,38 @@ msgid "Server address" msgstr "URL do servidor" #: src/view/com/modals/ContentFilteringSettings.tsx:311 -msgid "Set {value} for {labelGroup} content moderation policy" -msgstr "Definir {value} para o filtro de moderação {labelGroup}" +#~ msgid "Set {value} for {labelGroup} content moderation policy" +#~ msgstr "Definir {value} para o filtro de moderação {labelGroup}" #: src/view/com/modals/ContentFilteringSettings.tsx:160 #: src/view/com/modals/ContentFilteringSettings.tsx:179 -msgctxt "action" -msgid "Set Age" -msgstr "Definir Idade" +#~ msgctxt "action" +#~ msgid "Set Age" +#~ msgstr "Definir Idade" + +#: src/screens/Moderation/index.tsx:306 +msgid "Set birthdate" +msgstr "" #: src/view/screens/Settings/index.tsx:488 -msgid "Set color theme to dark" -msgstr "Definir o tema de cor para escuro" +#~ msgid "Set color theme to dark" +#~ msgstr "Definir o tema de cor para escuro" #: src/view/screens/Settings/index.tsx:481 -msgid "Set color theme to light" -msgstr "Definir o tema de cor para claro" +#~ msgid "Set color theme to light" +#~ msgstr "Definir o tema de cor para claro" #: src/view/screens/Settings/index.tsx:475 -msgid "Set color theme to system setting" -msgstr "Definir o tema para acompanhar o sistema" +#~ msgid "Set color theme to system setting" +#~ msgstr "Definir o tema para acompanhar o sistema" #: src/view/screens/Settings/index.tsx:514 -msgid "Set dark theme to the dark theme" -msgstr "Definir o tema escuro para o padrão" +#~ msgid "Set dark theme to the dark theme" +#~ msgstr "Definir o tema escuro para o padrão" #: src/view/screens/Settings/index.tsx:507 -msgid "Set dark theme to the dim theme" -msgstr "Definir o tema escuro para a versão menos escura" +#~ msgid "Set dark theme to the dim theme" +#~ msgstr "Definir o tema escuro para a versão menos escura" #: src/view/com/auth/login/SetNewPasswordForm.tsx:104 msgid "Set new password" @@ -3546,6 +4208,26 @@ msgstr "Configure sua conta" msgid "Sets Bluesky username" msgstr "Configura o usuário no Bluesky" +#: src/view/screens/Settings/index.tsx:503 +msgid "Sets color theme to dark" +msgstr "" + +#: src/view/screens/Settings/index.tsx:496 +msgid "Sets color theme to light" +msgstr "" + +#: src/view/screens/Settings/index.tsx:490 +msgid "Sets color theme to system setting" +msgstr "" + +#: src/view/screens/Settings/index.tsx:529 +msgid "Sets dark theme to the dark theme" +msgstr "" + +#: src/view/screens/Settings/index.tsx:522 +msgid "Sets dark theme to the dim theme" +msgstr "" + #: src/view/com/auth/login/ForgotPasswordForm.tsx:157 msgid "Sets email for password reset" msgstr "Configura o e-mail para recuperação de senha" @@ -3554,16 +4236,28 @@ msgstr "Configura o e-mail para recuperação de senha" msgid "Sets hosting provider for password reset" msgstr "Configura o provedor de hospedagem para recuperação de senha" +#: src/view/com/modals/crop-image/CropImage.web.tsx:123 +msgid "Sets image aspect ratio to square" +msgstr "" + +#: src/view/com/modals/crop-image/CropImage.web.tsx:113 +msgid "Sets image aspect ratio to tall" +msgstr "" + +#: src/view/com/modals/crop-image/CropImage.web.tsx:103 +msgid "Sets image aspect ratio to wide" +msgstr "" + #: src/view/com/auth/create/Step1.tsx:97 #: src/view/com/auth/login/LoginForm.tsx:151 msgid "Sets server for the Bluesky client" msgstr "Configura o servidor para o cliente do Bluesky" -#: src/Navigation.tsx:137 -#: src/view/screens/Settings/index.tsx:294 -#: src/view/shell/desktop/LeftNav.tsx:433 -#: src/view/shell/Drawer.tsx:567 -#: src/view/shell/Drawer.tsx:568 +#: src/Navigation.tsx:139 +#: src/view/screens/Settings/index.tsx:309 +#: src/view/shell/desktop/LeftNav.tsx:437 +#: src/view/shell/Drawer.tsx:570 +#: src/view/shell/Drawer.tsx:571 msgid "Settings" msgstr "Configurações" @@ -3571,28 +4265,39 @@ msgstr "Configurações" msgid "Sexual activity or erotic nudity." msgstr "Atividade sexual ou nudez erótica." +#: src/lib/moderation/useGlobalLabelStrings.ts:38 +msgid "Sexually Suggestive" +msgstr "" + #: src/view/com/lightbox/Lightbox.tsx:141 msgctxt "action" msgid "Share" msgstr "Compartilhar" -#: src/view/com/profile/ProfileHeader.tsx:295 -#: src/view/com/util/forms/PostDropdownBtn.tsx:231 +#: src/view/com/profile/ProfileMenu.tsx:215 +#: src/view/com/profile/ProfileMenu.tsx:224 +#: src/view/com/util/forms/PostDropdownBtn.tsx:228 #: src/view/com/util/forms/PostDropdownBtn.tsx:237 -#: src/view/com/util/post-ctrls/PostCtrls.tsx:215 -#: src/view/screens/ProfileList.tsx:418 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:218 +#: src/view/screens/ProfileList.tsx:388 msgid "Share" msgstr "Compartilhar" -#: src/view/screens/ProfileFeed.tsx:305 +#: src/view/com/profile/ProfileMenu.tsx:373 +#: src/view/com/util/forms/PostDropdownBtn.tsx:347 +msgid "Share anyway" +msgstr "" + +#: src/view/screens/ProfileFeed.tsx:361 +#: src/view/screens/ProfileFeed.tsx:363 msgid "Share feed" msgstr "Compartilhar feed" -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:43 -#: src/view/com/modals/ContentFilteringSettings.tsx:266 -#: src/view/com/util/moderation/ContentHider.tsx:107 -#: src/view/com/util/moderation/PostHider.tsx:108 -#: src/view/screens/Settings/index.tsx:344 +#: src/components/moderation/ContentHider.tsx:115 +#: src/components/moderation/GlobalModerationLabelPref.tsx:45 +#: src/components/moderation/PostHider.tsx:107 +#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:54 +#: src/view/screens/Settings/index.tsx:359 msgid "Show" msgstr "Mostrar" @@ -3600,21 +4305,31 @@ msgstr "Mostrar" msgid "Show all replies" msgstr "Mostrar todas as respostas" -#: src/view/com/util/moderation/ScreenHider.tsx:132 +#: src/components/moderation/ScreenHider.tsx:162 +#: src/components/moderation/ScreenHider.tsx:165 msgid "Show anyway" msgstr "Mostrar mesmo assim" +#: src/lib/moderation/useLabelBehaviorDescription.ts:27 +#: src/lib/moderation/useLabelBehaviorDescription.ts:63 +msgid "Show badge" +msgstr "" + +#: src/lib/moderation/useLabelBehaviorDescription.ts:61 +msgid "Show badge and filter from feeds" +msgstr "" + #: src/view/com/modals/EmbedConsent.tsx:87 msgid "Show embeds from {0}" msgstr "Mostrar anexos de {0}" -#: src/view/com/profile/ProfileHeader.tsx:459 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:193 msgid "Show follows similar to {0}" msgstr "Mostrar usuários parecidos com {0}" -#: src/view/com/post-thread/PostThreadItem.tsx:538 -#: src/view/com/post/Post.tsx:198 -#: src/view/com/posts/FeedItem.tsx:363 +#: src/view/com/post-thread/PostThreadItem.tsx:507 +#: src/view/com/post/Post.tsx:201 +#: src/view/com/posts/FeedItem.tsx:355 msgid "Show More" msgstr "Mostrar Mais" @@ -3666,40 +4381,48 @@ msgstr "Mostrar Reposts" msgid "Show reposts in Following" msgstr "Mostrar reposts no Seguindo" -#: src/view/com/util/moderation/ContentHider.tsx:67 -#: src/view/com/util/moderation/PostHider.tsx:61 +#: src/components/moderation/ContentHider.tsx:68 +#: src/components/moderation/PostHider.tsx:64 msgid "Show the content" msgstr "Mostrar conteúdo" -#: src/view/com/notifications/FeedItem.tsx:347 +#: src/view/com/notifications/FeedItem.tsx:351 msgid "Show users" msgstr "Mostrar usuários" +#: src/lib/moderation/useLabelBehaviorDescription.ts:58 +msgid "Show warning" +msgstr "" + +#: src/lib/moderation/useLabelBehaviorDescription.ts:56 +msgid "Show warning and filter from feeds" +msgstr "" + #: src/view/com/profile/ProfileHeader.tsx:462 -msgid "Shows a list of users similar to this user." -msgstr "Mostra uma lista de usuários parecidos com este" +#~ msgid "Shows a list of users similar to this user." +#~ msgstr "Mostra uma lista de usuários parecidos com este" -#: src/view/com/post-thread/PostThreadFollowBtn.tsx:124 -#: src/view/com/profile/ProfileHeader.tsx:506 +#: src/view/com/post-thread/PostThreadFollowBtn.tsx:127 msgid "Shows posts from {0} in your feed" msgstr "Mostra posts de {0} no seu feed" -#: src/view/com/auth/HomeLoggedOutCTA.tsx:70 +#: src/view/com/auth/HomeLoggedOutCTA.tsx:72 #: src/view/com/auth/login/Login.tsx:98 -#: src/view/com/auth/SplashScreen.tsx:79 -#: src/view/shell/bottom-bar/BottomBar.tsx:285 -#: src/view/shell/bottom-bar/BottomBar.tsx:286 -#: src/view/shell/bottom-bar/BottomBar.tsx:288 +#: src/view/com/auth/SplashScreen.tsx:81 +#: src/view/shell/bottom-bar/BottomBar.tsx:289 +#: src/view/shell/bottom-bar/BottomBar.tsx:290 +#: src/view/shell/bottom-bar/BottomBar.tsx:292 #: src/view/shell/bottom-bar/BottomBarWeb.tsx:178 #: src/view/shell/bottom-bar/BottomBarWeb.tsx:179 #: src/view/shell/bottom-bar/BottomBarWeb.tsx:181 #: src/view/shell/NavSignupCard.tsx:58 #: src/view/shell/NavSignupCard.tsx:59 +#: src/view/shell/NavSignupCard.tsx:61 msgid "Sign in" msgstr "Fazer login" -#: src/view/com/auth/HomeLoggedOutCTA.tsx:78 -#: src/view/com/auth/SplashScreen.tsx:82 +#: src/view/com/auth/HomeLoggedOutCTA.tsx:82 +#: src/view/com/auth/SplashScreen.tsx:86 #: src/view/com/auth/SplashScreen.web.tsx:91 msgid "Sign In" msgstr "Fazer Login" @@ -3708,7 +4431,7 @@ msgstr "Fazer Login" msgid "Sign in as {0}" msgstr "Fazer login como {0}" -#: src/view/com/auth/login/ChooseAccountForm.tsx:118 +#: src/view/com/auth/login/ChooseAccountForm.tsx:122 #: src/view/com/auth/login/Login.tsx:116 msgid "Sign in as..." msgstr "Fazer login como..." @@ -3717,16 +4440,16 @@ msgstr "Fazer login como..." msgid "Sign into" msgstr "Fazer login" -#: src/view/com/modals/SwitchAccount.tsx:64 -#: src/view/com/modals/SwitchAccount.tsx:69 -#: src/view/screens/Settings/index.tsx:100 -#: src/view/screens/Settings/index.tsx:103 +#: src/view/com/modals/SwitchAccount.tsx:68 +#: src/view/com/modals/SwitchAccount.tsx:73 +#: src/view/screens/Settings/index.tsx:105 +#: src/view/screens/Settings/index.tsx:108 msgid "Sign out" msgstr "Sair" -#: src/view/shell/bottom-bar/BottomBar.tsx:275 -#: src/view/shell/bottom-bar/BottomBar.tsx:276 -#: src/view/shell/bottom-bar/BottomBar.tsx:278 +#: src/view/shell/bottom-bar/BottomBar.tsx:279 +#: src/view/shell/bottom-bar/BottomBar.tsx:280 +#: src/view/shell/bottom-bar/BottomBar.tsx:282 #: src/view/shell/bottom-bar/BottomBarWeb.tsx:168 #: src/view/shell/bottom-bar/BottomBarWeb.tsx:169 #: src/view/shell/bottom-bar/BottomBarWeb.tsx:171 @@ -3740,25 +4463,26 @@ msgstr "Inscrever-se" msgid "Sign up or sign in to join the conversation" msgstr "Inscreva-se ou faça login para se juntar à conversa" -#: src/view/com/util/moderation/ScreenHider.tsx:76 +#: src/components/moderation/ScreenHider.tsx:98 +#: src/lib/moderation/useGlobalLabelStrings.ts:28 msgid "Sign-in Required" msgstr "É Necessário Fazer Login" -#: src/view/screens/Settings/index.tsx:355 +#: src/view/screens/Settings/index.tsx:370 msgid "Signed in as" msgstr "Entrou como" -#: src/view/com/auth/login/ChooseAccountForm.tsx:103 +#: src/view/com/auth/login/ChooseAccountForm.tsx:107 msgid "Signed in as @{0}" msgstr "Logado como @{0}" -#: src/view/com/modals/SwitchAccount.tsx:66 +#: src/view/com/modals/SwitchAccount.tsx:70 msgid "Signs {0} out of Bluesky" msgstr "Desloga a conta {0}" #: src/screens/Onboarding/StepInterests/index.tsx:235 #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:195 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:33 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:35 msgid "Skip" msgstr "Pular" @@ -3774,15 +4498,21 @@ msgstr "Desenvolvimento de software" #~ msgid "Something went wrong and we're not sure what." #~ msgstr "Algo deu errado e meio que não sabemos o que houve." +#: src/components/ReportDialog/index.tsx:52 +#: src/screens/Moderation/index.tsx:116 +#: src/screens/Profile/Sections/Labels.tsx:77 +msgid "Something went wrong, please try again." +msgstr "" + #: src/components/Lists.tsx:203 -msgid "Something went wrong!" -msgstr "Algo deu errado!" +#~ msgid "Something went wrong!" +#~ msgstr "Algo deu errado!" #: src/view/com/modals/Waitlist.tsx:51 #~ msgid "Something went wrong. Check your email and try again." #~ msgstr "Algo deu errado. Verifique seu e-mail e tente novamente." -#: src/App.native.tsx:66 +#: src/App.native.tsx:71 msgid "Sorry! Your session expired. Please log in again." msgstr "Opa! Sua sessão expirou. Por favor, entre novamente." @@ -3794,6 +4524,18 @@ msgstr "Classificar Respostas" msgid "Sort replies to the same post by:" msgstr "Classificar respostas de um post por:" +#: src/components/moderation/LabelsOnMeDialog.tsx:147 +msgid "Source:" +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:65 +msgid "Spam" +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:53 +msgid "Spam; excessive mentions or replies" +msgstr "" + #: src/screens/Onboarding/index.tsx:30 msgid "Sports" msgstr "Esportes" @@ -3802,7 +4544,7 @@ msgstr "Esportes" msgid "Square" msgstr "Quadrado" -#: src/view/screens/Settings/index.tsx:871 +#: src/view/screens/Settings/index.tsx:901 msgid "Status page" msgstr "Página de status" @@ -3810,37 +4552,50 @@ msgstr "Página de status" msgid "Step {0} of {numSteps}" msgstr "Passo {0} de {numSteps}" -#: src/view/screens/Settings/index.tsx:274 +#: src/view/screens/Settings/index.tsx:288 msgid "Storage cleared, you need to restart the app now." msgstr "Armazenamento limpo, você precisa reiniciar o app agora." -#: src/Navigation.tsx:204 -#: src/view/screens/Settings/index.tsx:807 +#: src/Navigation.tsx:211 +#: src/view/screens/Settings/index.tsx:827 msgid "Storybook" msgstr "Storybook" -#: src/view/com/modals/AppealLabel.tsx:101 +#: src/components/moderation/LabelsOnMeDialog.tsx:256 +#: src/components/moderation/LabelsOnMeDialog.tsx:257 msgid "Submit" msgstr "Enviar" -#: src/view/screens/ProfileList.tsx:608 +#: src/view/screens/ProfileList.tsx:590 msgid "Subscribe" msgstr "Inscrever-se" +#: src/screens/Profile/Sections/Labels.tsx:181 +msgid "Subscribe to @{0} to use these labels:" +msgstr "" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:222 +msgid "Subscribe to Labeler" +msgstr "" + #: src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx:173 #: src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx:308 msgid "Subscribe to the {0} feed" msgstr "Increver-se no feed {0}" -#: src/view/screens/ProfileList.tsx:604 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:185 +msgid "Subscribe to this labeler" +msgstr "" + +#: src/view/screens/ProfileList.tsx:586 msgid "Subscribe to this list" msgstr "Inscreva-se nesta lista" -#: src/view/screens/Search/Search.tsx:374 +#: src/view/screens/Search/Search.tsx:375 msgid "Suggested Follows" msgstr "Sugestões de Seguidores" -#: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:64 +#: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:65 msgid "Suggested for you" msgstr "Sugeridos para você" @@ -3848,35 +4603,35 @@ msgstr "Sugeridos para você" msgid "Suggestive" msgstr "Sugestivo" -#: src/Navigation.tsx:214 +#: src/Navigation.tsx:226 #: src/view/screens/Support.tsx:30 #: src/view/screens/Support.tsx:33 msgid "Support" msgstr "Suporte" -#: src/view/com/modals/SwitchAccount.tsx:117 +#: src/view/com/modals/SwitchAccount.tsx:121 msgid "Switch Account" msgstr "Alterar Conta" -#: src/view/com/modals/SwitchAccount.tsx:97 -#: src/view/screens/Settings/index.tsx:130 +#: src/view/com/modals/SwitchAccount.tsx:101 +#: src/view/screens/Settings/index.tsx:135 msgid "Switch to {0}" msgstr "Trocar para {0}" -#: src/view/com/modals/SwitchAccount.tsx:98 -#: src/view/screens/Settings/index.tsx:131 +#: src/view/com/modals/SwitchAccount.tsx:102 +#: src/view/screens/Settings/index.tsx:136 msgid "Switches the account you are logged in to" msgstr "Troca a conta que você está logado" -#: src/view/screens/Settings/index.tsx:472 +#: src/view/screens/Settings/index.tsx:487 msgid "System" msgstr "Sistema" -#: src/view/screens/Settings/index.tsx:795 +#: src/view/screens/Settings/index.tsx:815 msgid "System log" msgstr "Log do sistema" -#: src/components/dialogs/MutedWords.tsx:337 +#: src/components/dialogs/MutedWords.tsx:324 msgid "tag" msgstr "tag" @@ -3904,30 +4659,49 @@ msgstr "Tecnologia" msgid "Terms" msgstr "Termos" -#: src/Navigation.tsx:224 -#: src/view/screens/Settings/index.tsx:885 +#: src/Navigation.tsx:236 +#: src/view/com/auth/create/Policies.tsx:59 +#: src/view/screens/Settings/index.tsx:915 #: src/view/screens/TermsOfService.tsx:29 -#: src/view/shell/Drawer.tsx:256 +#: src/view/shell/Drawer.tsx:259 msgid "Terms of Service" msgstr "Termos de Serviço" -#: src/components/dialogs/MutedWords.tsx:337 +#: src/lib/moderation/useReportOptions.ts:58 +#: src/lib/moderation/useReportOptions.ts:79 +#: src/lib/moderation/useReportOptions.ts:87 +msgid "Terms used violate community standards" +msgstr "" + +#: src/components/dialogs/MutedWords.tsx:324 msgid "text" msgstr "texto" -#: src/view/com/modals/AppealLabel.tsx:70 -#: src/view/com/modals/report/InputIssueDetails.tsx:51 +#: src/components/moderation/LabelsOnMeDialog.tsx:220 msgid "Text input field" msgstr "Campo de entrada de texto" +#: src/components/ReportDialog/SubmitView.tsx:78 +msgid "Thank you. Your report has been sent." +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:466 +msgid "That contains the following:" +msgstr "" + #: src/view/com/auth/create/CreateAccount.tsx:94 msgid "That handle is already taken." msgstr "Este identificador de usuário já está sendo usado." -#: src/view/com/profile/ProfileHeader.tsx:263 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:274 +#: src/view/com/profile/ProfileMenu.tsx:349 msgid "The account will be able to interact with you after unblocking." msgstr "A conta poderá interagir com você após o desbloqueio." +#: src/components/moderation/ModerationDetailsDialog.tsx:128 +msgid "the author" +msgstr "" + #: src/view/screens/CommunityGuidelines.tsx:36 msgid "The Community Guidelines have been moved to <0/>" msgstr "As Diretrizes da Comunidade foram movidas para <0/>" @@ -3936,11 +4710,20 @@ msgstr "As Diretrizes da Comunidade foram movidas para <0/>" msgid "The Copyright Policy has been moved to <0/>" msgstr "A Política de Direitos Autorais foi movida para <0/>" +#: src/components/moderation/LabelsOnMeDialog.tsx:49 +msgid "The following labels were applied to your account." +msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:50 +msgid "The following labels were applied to your content." +msgstr "" + #: src/screens/Onboarding/Layout.tsx:60 msgid "The following steps will help customize your Bluesky experience." msgstr "Os seguintes passos vão ajudar a customizar sua experiência no Bluesky." -#: src/view/com/post-thread/PostThread.tsx:517 +#: src/view/com/post-thread/PostThread.tsx:153 +#: src/view/com/post-thread/PostThread.tsx:165 msgid "The post may have been deleted." msgstr "O post pode ter sido excluído." @@ -3960,20 +4743,21 @@ msgstr "Os Termos de Serviço foram movidos para" msgid "There are many feeds to try:" msgstr "Temos vários feeds para você experimentar:" -#: src/view/screens/ProfileFeed.tsx:550 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:113 +#: src/view/screens/ProfileFeed.tsx:543 msgid "There was an an issue contacting the server, please check your internet connection and try again." msgstr "Tivemos um problema ao contatar o servidor, por favor verifique sua conexão com a internet e tente novamente." -#: src/view/com/posts/FeedErrorMessage.tsx:139 +#: src/view/com/posts/FeedErrorMessage.tsx:138 msgid "There was an an issue removing this feed. Please check your internet connection and try again." msgstr "Tivemos um problema ao remover este feed, por favor verifique sua conexão com a internet e tente novamente." -#: src/view/screens/ProfileFeed.tsx:210 +#: src/view/screens/ProfileFeed.tsx:217 msgid "There was an an issue updating your feeds, please check your internet connection and try again." msgstr "Tivemos um problema ao atualizar seus feeds, por favor verifique sua conexão com a internet e tente novamente." -#: src/view/screens/ProfileFeed.tsx:237 -#: src/view/screens/ProfileList.tsx:267 +#: src/view/screens/ProfileFeed.tsx:244 +#: src/view/screens/ProfileList.tsx:275 #: src/view/screens/SavedFeeds.tsx:209 #: src/view/screens/SavedFeeds.tsx:231 #: src/view/screens/SavedFeeds.tsx:252 @@ -3982,9 +4766,8 @@ msgstr "Tivemos um problema ao contatar o servidor deste feed" #: src/view/com/auth/onboarding/RecommendedFeedsItem.tsx:57 #: src/view/com/auth/onboarding/RecommendedFeedsItem.tsx:66 -#: src/view/com/feeds/FeedSourceCard.tsx:115 -#: src/view/com/feeds/FeedSourceCard.tsx:129 -#: src/view/com/feeds/FeedSourceCard.tsx:183 +#: src/view/com/feeds/FeedSourceCard.tsx:110 +#: src/view/com/feeds/FeedSourceCard.tsx:123 msgid "There was an issue contacting your server" msgstr "Tivemos um problema ao contatar o servidor deste feed" @@ -3992,7 +4775,7 @@ msgstr "Tivemos um problema ao contatar o servidor deste feed" msgid "There was an issue fetching notifications. Tap here to try again." msgstr "Tivemos um problema ao carregar notificações. Toque aqui para tentar de novo." -#: src/view/com/posts/Feed.tsx:265 +#: src/view/com/posts/Feed.tsx:283 msgid "There was an issue fetching posts. Tap here to try again." msgstr "Tivemos um problema ao carregar posts. Toque aqui para tentar de novo." @@ -4005,34 +4788,40 @@ msgstr "Tivemos um problema ao carregar esta lista. Toque aqui para tentar de no msgid "There was an issue fetching your lists. Tap here to try again." msgstr "Tivemos um problema ao carregar suas listas. Toque aqui para tentar de novo." -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:63 -#: src/view/com/modals/ContentFilteringSettings.tsx:126 +#: src/components/ReportDialog/SubmitView.tsx:83 +msgid "There was an issue sending your report. Please check your internet connection." +msgstr "" + +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:65 msgid "There was an issue syncing your preferences with the server" msgstr "Tivemos um problema ao sincronizar suas configurações" -#: src/view/screens/AppPasswords.tsx:66 +#: src/view/screens/AppPasswords.tsx:68 msgid "There was an issue with fetching your app passwords" msgstr "Tivemos um problema ao carregar suas senhas de app." -#: src/view/com/post-thread/PostThreadFollowBtn.tsx:93 -#: src/view/com/post-thread/PostThreadFollowBtn.tsx:105 -#: src/view/com/profile/ProfileHeader.tsx:157 -#: src/view/com/profile/ProfileHeader.tsx:178 -#: src/view/com/profile/ProfileHeader.tsx:217 -#: src/view/com/profile/ProfileHeader.tsx:230 -#: src/view/com/profile/ProfileHeader.tsx:250 -#: src/view/com/profile/ProfileHeader.tsx:272 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:98 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:120 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:134 +#: src/view/com/post-thread/PostThreadFollowBtn.tsx:96 +#: src/view/com/post-thread/PostThreadFollowBtn.tsx:108 +#: src/view/com/profile/ProfileMenu.tsx:106 +#: src/view/com/profile/ProfileMenu.tsx:117 +#: src/view/com/profile/ProfileMenu.tsx:132 +#: src/view/com/profile/ProfileMenu.tsx:143 +#: src/view/com/profile/ProfileMenu.tsx:157 +#: src/view/com/profile/ProfileMenu.tsx:170 msgid "There was an issue! {0}" msgstr "Tivemos um problema! {0}" #: src/view/screens/ProfileList.tsx:288 -#: src/view/screens/ProfileList.tsx:307 -#: src/view/screens/ProfileList.tsx:329 -#: src/view/screens/ProfileList.tsx:348 +#: src/view/screens/ProfileList.tsx:302 +#: src/view/screens/ProfileList.tsx:316 +#: src/view/screens/ProfileList.tsx:330 msgid "There was an issue. Please check your internet connection and try again." msgstr "Tivemos algum problema. Por favor verifique sua conexão com a internet e tente novamente." -#: src/view/com/util/ErrorBoundary.tsx:36 +#: src/view/com/util/ErrorBoundary.tsx:51 msgid "There was an unexpected issue in the application. Please let us know if this happened to you!" msgstr "Houve um problema inesperado no aplicativo. Por favor, deixe-nos saber se isso aconteceu com você!" @@ -4044,19 +4833,32 @@ msgstr "Muitos usuários estão tentando acessar o Bluesky! Ativaremos sua conta msgid "These are popular accounts you might like:" msgstr "Estas são contas populares que talvez você goste:" -#: src/view/com/util/moderation/ScreenHider.tsx:88 +#: src/components/moderation/ScreenHider.tsx:117 msgid "This {screenDescription} has been flagged:" msgstr "Este {screenDescription} foi reportado:" -#: src/view/com/util/moderation/ScreenHider.tsx:83 +#: src/components/moderation/ScreenHider.tsx:112 msgid "This account has requested that users sign in to view their profile." msgstr "Esta conta solicitou que os usuários fizessem login para visualizar seu perfil." +#: src/components/moderation/LabelsOnMeDialog.tsx:205 +msgid "This appeal will be sent to <0>{0}." +msgstr "" + +#: src/lib/moderation/useGlobalLabelStrings.ts:19 +msgid "This content has been hidden by the moderators." +msgstr "" + +#: src/lib/moderation/useGlobalLabelStrings.ts:24 +msgid "This content has received a general warning from moderators." +msgstr "" + #: src/view/com/modals/EmbedConsent.tsx:68 msgid "This content is hosted by {0}. Do you want to enable external media?" msgstr "Este conteúdo é hospedado por {0}. Deseja ativar a mídia externa?" -#: src/view/com/modals/ModerationDetails.tsx:67 +#: src/components/moderation/ModerationDetailsDialog.tsx:78 +#: src/lib/moderation/useModerationCauseDescription.ts:77 msgid "This content is not available because one of the users involved has blocked the other." msgstr "Este conteúdo não está disponível porque um dos usuários bloqueou o outro." @@ -4065,16 +4867,20 @@ msgid "This content is not viewable without a Bluesky account." msgstr "Este conteúdo não é visível sem uma conta do Bluesky." #: src/view/screens/Settings/ExportCarDialog.tsx:75 -msgid "This feature is in beta. You can read more about repository exports in <0>this blogpost." -msgstr "Esta funcionalidade está em beta. Você pode ler mais sobre exportação de repositórios <0>neste post do nosso blog." +#~ msgid "This feature is in beta. You can read more about repository exports in <0>this blogpost." +#~ msgstr "Esta funcionalidade está em beta. Você pode ler mais sobre exportação de repositórios <0>neste post do nosso blog." + +#: src/view/screens/Settings/ExportCarDialog.tsx:75 +msgid "This feature is in beta. You can read more about repository exports in <0>this blogpost." +msgstr "" #: src/view/com/posts/FeedErrorMessage.tsx:114 msgid "This feed is currently receiving high traffic and is temporarily unavailable. Please try again later." msgstr "Este feed está recebendo muito tráfego e está temporariamente indisponível. Por favor, tente novamente mais tarde." -#: src/view/screens/Profile.tsx:420 +#: src/screens/Profile/Sections/Feed.tsx:50 #: src/view/screens/ProfileFeed.tsx:476 -#: src/view/screens/ProfileList.tsx:661 +#: src/view/screens/ProfileList.tsx:675 msgid "This feed is empty!" msgstr "Este feed está vazio!" @@ -4082,7 +4888,7 @@ msgstr "Este feed está vazio!" msgid "This feed is empty! You may need to follow more users or tune your language settings." msgstr "Este feed está vazio! Talvez você precise seguir mais usuários ou configurar os idiomas filtrados." -#: src/view/com/modals/BirthDateSettings.tsx:61 +#: src/components/dialogs/BirthDateSettings.tsx:41 msgid "This information is not shared with other users." msgstr "Esta informação não é compartilhada com outros usuários." @@ -4090,14 +4896,26 @@ msgstr "Esta informação não é compartilhada com outros usuários." msgid "This is important in case you ever need to change your email or reset your password." msgstr "Isso é importante caso você precise alterar seu e-mail ou redefinir sua senha." +#: src/components/moderation/ModerationDetailsDialog.tsx:125 +msgid "This label was applied by {0}." +msgstr "" + +#: src/screens/Profile/Sections/Labels.tsx:168 +msgid "This labeler hasn't declared what labels it publishes, and may not be active." +msgstr "" + #: src/view/com/modals/LinkWarning.tsx:58 msgid "This link is taking you to the following website:" msgstr "Este link está levando você ao seguinte site:" -#: src/view/screens/ProfileList.tsx:839 +#: src/view/screens/ProfileList.tsx:853 msgid "This list is empty!" msgstr "Esta lista está vazia!" +#: src/screens/Profile/ErrorState.tsx:40 +msgid "This moderation service is unavailable. See below for more details. If this issue persists, contact us." +msgstr "" + #: src/view/com/modals/AddAppPasswords.tsx:106 msgid "This name is already in use" msgstr "Você já tem uma senha com esse nome" @@ -4106,32 +4924,77 @@ msgstr "Você já tem uma senha com esse nome" msgid "This post has been deleted." msgstr "Este post foi excluído." -#: src/view/com/modals/ModerationDetails.tsx:62 +#: src/view/com/util/forms/PostDropdownBtn.tsx:344 +msgid "This post is only visible to logged-in users. It won't be visible to people who aren't logged in." +msgstr "" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:326 +msgid "This post will be hidden from feeds." +msgstr "" + +#: src/view/com/profile/ProfileMenu.tsx:370 +msgid "This profile is only visible to logged-in users. It won't be visible to people who aren't logged in." +msgstr "" + +#: src/view/com/auth/create/Policies.tsx:46 +msgid "This service has not provided terms of service or a privacy policy." +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:446 +msgid "This should create a domain record at:" +msgstr "" + +#: src/view/com/profile/ProfileFollowers.tsx:95 +msgid "This user doesn't have any followers." +msgstr "" + +#: src/components/moderation/ModerationDetailsDialog.tsx:73 +#: src/lib/moderation/useModerationCauseDescription.ts:68 msgid "This user has blocked you. You cannot view their content." msgstr "Este usuário te bloqueou. Você não pode ver este conteúdo." +#: src/lib/moderation/useGlobalLabelStrings.ts:30 +msgid "This user has requested that their content only be shown to signed-in users." +msgstr "" + #: src/view/com/modals/ModerationDetails.tsx:42 -msgid "This user is included in the <0/> list which you have blocked." -msgstr "Este usuário está incluído na lista <0/>, que você bloqueou." +#~ msgid "This user is included in the <0/> list which you have blocked." +#~ msgstr "Este usuário está incluído na lista <0/>, que você bloqueou." #: src/view/com/modals/ModerationDetails.tsx:74 -msgid "This user is included in the <0/> list which you have muted." -msgstr "Este usuário está incluído na lista <0/>, que você silenciou." +#~ msgid "This user is included in the <0/> list which you have muted." +#~ msgstr "Este usuário está incluído na lista <0/>, que você silenciou." + +#: src/components/moderation/ModerationDetailsDialog.tsx:56 +msgid "This user is included in the <0>{0} list which you have blocked." +msgstr "" + +#: src/components/moderation/ModerationDetailsDialog.tsx:85 +msgid "This user is included in the <0>{0} list which you have muted." +msgstr "" + +#: src/view/com/profile/ProfileFollows.tsx:94 +msgid "This user isn't following anyone." +msgstr "" #: src/view/com/modals/SelfLabel.tsx:137 msgid "This warning is only available for posts with media attached." msgstr "Este aviso só está disponível para publicações com mídia anexada." -#: src/components/dialogs/MutedWords.tsx:285 +#: src/components/dialogs/MutedWords.tsx:284 msgid "This will delete {0} from your muted words. You can always add it back later." msgstr "Isso removerá {0} das suas palavras silenciadas. Você pode adicioná-la novamente depois." #: src/view/com/util/forms/PostDropdownBtn.tsx:282 -msgid "This will hide this post from your feeds." -msgstr "Isso ocultará este post de seus feeds." +#~ msgid "This will hide this post from your feeds." +#~ msgstr "Isso ocultará este post de seus feeds." + +#: src/view/screens/Settings/index.tsx:570 +msgid "Thread preferences" +msgstr "" #: src/view/screens/PreferencesThreads.tsx:53 -#: src/view/screens/Settings/index.tsx:565 +#: src/view/screens/Settings/index.tsx:580 msgid "Thread Preferences" msgstr "Preferências das Threads" @@ -4139,10 +5002,14 @@ msgstr "Preferências das Threads" msgid "Threaded Mode" msgstr "Visualização de Threads" -#: src/Navigation.tsx:257 +#: src/Navigation.tsx:269 msgid "Threads Preferences" msgstr "Preferências das Threads" +#: src/components/ReportDialog/SelectLabelerView.tsx:35 +msgid "To whom would you like to send this report?" +msgstr "" + #: src/components/dialogs/MutedWords.tsx:113 msgid "Toggle between muted word options." msgstr "Alternar entre opções de uma palavra silenciada" @@ -4151,14 +5018,18 @@ msgstr "Alternar entre opções de uma palavra silenciada" msgid "Toggle dropdown" msgstr "Alternar menu suspenso" +#: src/screens/Moderation/index.tsx:334 +msgid "Toggle to enable or disable adult content" +msgstr "" + #: src/view/com/modals/EditImage.tsx:271 msgid "Transformations" msgstr "Transformações" -#: src/view/com/post-thread/PostThreadItem.tsx:685 -#: src/view/com/post-thread/PostThreadItem.tsx:687 -#: src/view/com/util/forms/PostDropdownBtn.tsx:215 -#: src/view/com/util/forms/PostDropdownBtn.tsx:217 +#: src/view/com/post-thread/PostThreadItem.tsx:644 +#: src/view/com/post-thread/PostThreadItem.tsx:646 +#: src/view/com/util/forms/PostDropdownBtn.tsx:212 +#: src/view/com/util/forms/PostDropdownBtn.tsx:214 msgid "Translate" msgstr "Traduzir" @@ -4167,11 +5038,15 @@ msgctxt "action" msgid "Try again" msgstr "Tentar novamente" -#: src/view/screens/ProfileList.tsx:506 +#: src/view/com/modals/ChangeHandle.tsx:429 +msgid "Type:" +msgstr "" + +#: src/view/screens/ProfileList.tsx:478 msgid "Un-block list" msgstr "Desbloquear lista" -#: src/view/screens/ProfileList.tsx:491 +#: src/view/screens/ProfileList.tsx:461 msgid "Un-mute list" msgstr "Dessilenciar lista" @@ -4183,21 +5058,28 @@ msgstr "Dessilenciar lista" msgid "Unable to contact your service. Please check your Internet connection." msgstr "Não foi possível entrar em contato com seu serviço. Por favor, verifique sua conexão à internet." -#: src/view/com/profile/ProfileHeader.tsx:433 -#: src/view/screens/ProfileList.tsx:590 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:174 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:278 +#: src/view/com/profile/ProfileMenu.tsx:361 +#: src/view/screens/ProfileList.tsx:572 msgid "Unblock" msgstr "Desbloquear" -#: src/view/com/profile/ProfileHeader.tsx:436 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:179 msgctxt "action" msgid "Unblock" msgstr "Desbloquear" -#: src/view/com/profile/ProfileHeader.tsx:261 -#: src/view/com/profile/ProfileHeader.tsx:345 +#: src/view/com/profile/ProfileMenu.tsx:299 +#: src/view/com/profile/ProfileMenu.tsx:305 msgid "Unblock Account" msgstr "Desbloquear Conta" +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:272 +#: src/view/com/profile/ProfileMenu.tsx:343 +msgid "Unblock Account?" +msgstr "" + #: src/view/com/modals/Repost.tsx:42 #: src/view/com/modals/Repost.tsx:55 #: src/view/com/util/post-ctrls/RepostButton.tsx:60 @@ -4205,25 +5087,39 @@ msgstr "Desbloquear Conta" msgid "Undo repost" msgstr "Desfazer repost" -#: src/view/com/profile/FollowButton.tsx:55 +#: src/view/com/auth/onboarding/RecommendedFollowsItem.tsx:141 +#: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:246 +msgid "Unfollow" +msgstr "" + +#: src/view/com/profile/FollowButton.tsx:60 msgctxt "action" msgid "Unfollow" msgstr "Deixar de seguir" -#: src/view/com/profile/ProfileHeader.tsx:485 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:213 msgid "Unfollow {0}" msgstr "Deixar de seguir {0}" +#: src/view/com/profile/ProfileMenu.tsx:241 +#: src/view/com/profile/ProfileMenu.tsx:251 +msgid "Unfollow Account" +msgstr "" + #: src/view/com/auth/create/state.ts:262 msgid "Unfortunately, you do not meet the requirements to create an account." msgstr "Infelizmente, você não atende aos requisitos para criar uma conta." -#: src/view/com/util/post-ctrls/PostCtrls.tsx:182 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:185 msgid "Unlike" msgstr "Descurtir" +#: src/view/screens/ProfileFeed.tsx:572 +msgid "Unlike this feed" +msgstr "" + #: src/components/TagMenu/index.tsx:249 -#: src/view/screens/ProfileList.tsx:597 +#: src/view/screens/ProfileList.tsx:579 msgid "Unmute" msgstr "Dessilenciar" @@ -4231,7 +5127,8 @@ msgstr "Dessilenciar" msgid "Unmute {truncatedTag}" msgstr "Dessilenciar {truncatedTag}" -#: src/view/com/profile/ProfileHeader.tsx:326 +#: src/view/com/profile/ProfileMenu.tsx:278 +#: src/view/com/profile/ProfileMenu.tsx:284 msgid "Unmute Account" msgstr "Dessilenciar conta" @@ -4248,26 +5145,46 @@ msgstr "Dessilenciar posts com {displayTag}" msgid "Unmute thread" msgstr "Dessilenciar thread" -#: src/view/screens/ProfileFeed.tsx:354 -#: src/view/screens/ProfileList.tsx:581 +#: src/view/screens/ProfileFeed.tsx:294 +#: src/view/screens/ProfileList.tsx:563 msgid "Unpin" msgstr "Desafixar" -#: src/view/screens/ProfileList.tsx:474 +#: src/view/screens/ProfileFeed.tsx:291 +msgid "Unpin from home" +msgstr "" + +#: src/view/screens/ProfileList.tsx:444 msgid "Unpin moderation list" msgstr "Desafixar lista de moderação" #: src/view/screens/ProfileFeed.tsx:346 -msgid "Unsave" -msgstr "Remover" +#~ msgid "Unsave" +#~ msgstr "Remover" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:220 +msgid "Unsubscribe" +msgstr "" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:184 +msgid "Unsubscribe from this labeler" +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:70 +msgid "Unwanted Sexual Content" +msgstr "" #: src/view/com/modals/UserAddRemoveLists.tsx:70 msgid "Update {displayName} in Lists" msgstr "Atualizar {displayName} nas Listas" #: src/lib/hooks/useOTAUpdate.ts:15 -msgid "Update Available" -msgstr "Atualização Disponível" +#~ msgid "Update Available" +#~ msgstr "Atualização Disponível" + +#: src/view/com/modals/ChangeHandle.tsx:509 +msgid "Update to {handle}" +msgstr "" #: src/view/com/auth/login/SetNewPasswordForm.tsx:204 msgid "Updating..." @@ -4277,11 +5194,38 @@ msgstr "Atualizando..." msgid "Upload a text file to:" msgstr "Carregar um arquivo de texto para:" -#: src/view/screens/AppPasswords.tsx:195 +#: src/view/com/util/UserAvatar.tsx:326 +#: src/view/com/util/UserAvatar.tsx:329 +#: src/view/com/util/UserBanner.tsx:116 +#: src/view/com/util/UserBanner.tsx:119 +msgid "Upload from Camera" +msgstr "" + +#: src/view/com/util/UserAvatar.tsx:343 +#: src/view/com/util/UserBanner.tsx:133 +msgid "Upload from Files" +msgstr "" + +#: src/view/com/util/UserAvatar.tsx:337 +#: src/view/com/util/UserAvatar.tsx:341 +#: src/view/com/util/UserBanner.tsx:127 +#: src/view/com/util/UserBanner.tsx:131 +msgid "Upload from Library" +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:409 +msgid "Use a file on your server" +msgstr "" + +#: src/view/screens/AppPasswords.tsx:197 msgid "Use app passwords to login to other Bluesky clients without giving full access to your account or password." msgstr "Use as senhas de aplicativos para fazer login em outros clientes do Bluesky sem dar acesso total à sua conta ou senha." -#: src/view/com/modals/ChangeHandle.tsx:515 +#: src/view/com/modals/ChangeHandle.tsx:518 +msgid "Use bsky.social as hosting provider" +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:517 msgid "Use default provider" msgstr "Usar provedor padrão" @@ -4295,6 +5239,10 @@ msgstr "Usar o navegador interno" msgid "Use my default browser" msgstr "Usar o meu navegador padrão" +#: src/view/com/modals/ChangeHandle.tsx:401 +msgid "Use the DNS panel" +msgstr "" + #: src/view/com/modals/AddAppPasswords.tsx:155 msgid "Use this to sign into the other app along with your handle." msgstr "Use esta senha para entrar no outro aplicativo juntamente com seu identificador." @@ -4303,15 +5251,24 @@ msgstr "Use esta senha para entrar no outro aplicativo juntamente com seu identi msgid "Used by:" msgstr "Usado por:" -#: src/view/com/modals/ModerationDetails.tsx:54 +#: src/components/moderation/ModerationDetailsDialog.tsx:65 +#: src/lib/moderation/useModerationCauseDescription.ts:56 msgid "User Blocked" msgstr "Usuário Bloqueado" -#: src/view/com/modals/ModerationDetails.tsx:40 +#: src/lib/moderation/useModerationCauseDescription.ts:48 +msgid "User Blocked by \"{0}\"" +msgstr "" + +#: src/components/moderation/ModerationDetailsDialog.tsx:54 msgid "User Blocked by List" msgstr "Usuário Bloqueado Por Lista" -#: src/view/com/modals/ModerationDetails.tsx:60 +#: src/lib/moderation/useModerationCauseDescription.ts:66 +msgid "User Blocking You" +msgstr "" + +#: src/components/moderation/ModerationDetailsDialog.tsx:71 msgid "User Blocks You" msgstr "Este Usuário Te Bloqueou" @@ -4324,13 +5281,13 @@ msgstr "Usuário" msgid "User list by {0}" msgstr "Lista de usuários por {0}" -#: src/view/screens/ProfileList.tsx:763 +#: src/view/screens/ProfileList.tsx:777 msgid "User list by <0/>" msgstr "Lista de usuários por <0/>" #: src/view/com/lists/ListCard.tsx:83 #: src/view/com/modals/UserAddRemoveLists.tsx:196 -#: src/view/screens/ProfileList.tsx:761 +#: src/view/screens/ProfileList.tsx:775 msgid "User list by you" msgstr "Sua lista de usuários" @@ -4351,7 +5308,7 @@ msgstr "Listas de Usuários" msgid "Username or email address" msgstr "Nome de usuário ou endereço de e-mail" -#: src/view/screens/ProfileList.tsx:797 +#: src/view/screens/ProfileList.tsx:811 msgid "Users" msgstr "Usuários" @@ -4363,15 +5320,27 @@ msgstr "usuários seguidos por <0/>" msgid "Users in \"{0}\"" msgstr "Usuários em \"{0}\"" -#: src/view/screens/Settings/index.tsx:910 +#: src/components/LikesDialog.tsx:85 +msgid "Users that have liked this content or profile" +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:437 +msgid "Value:" +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:510 +msgid "Verify {0}" +msgstr "" + +#: src/view/screens/Settings/index.tsx:940 msgid "Verify email" msgstr "Verificar e-mail" -#: src/view/screens/Settings/index.tsx:935 +#: src/view/screens/Settings/index.tsx:965 msgid "Verify my email" msgstr "Verificar meu e-mail" -#: src/view/screens/Settings/index.tsx:944 +#: src/view/screens/Settings/index.tsx:974 msgid "Verify My Email" msgstr "Verificar Meu Email" @@ -4388,7 +5357,7 @@ msgstr "Verificar Seu E-mail" msgid "Video Games" msgstr "Games" -#: src/view/com/profile/ProfileHeader.tsx:662 +#: src/screens/Profile/Header/Shell.tsx:110 msgid "View {0}'s avatar" msgstr "Ver o avatar de {0}" @@ -4396,11 +5365,23 @@ msgstr "Ver o avatar de {0}" msgid "View debug entry" msgstr "Ver depuração" -#: src/view/com/posts/FeedSlice.tsx:103 +#: src/components/ReportDialog/SelectReportOptionView.tsx:133 +msgid "View details" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:128 +msgid "View details for reporting a copyright violation" +msgstr "" + +#: src/view/com/posts/FeedSlice.tsx:99 msgid "View full thread" msgstr "Ver thread completa" -#: src/view/com/posts/FeedErrorMessage.tsx:172 +#: src/components/moderation/LabelsOnMe.tsx:51 +msgid "View information about these labels" +msgstr "" + +#: src/view/com/posts/FeedErrorMessage.tsx:166 msgid "View profile" msgstr "Ver perfil" @@ -4408,15 +5389,34 @@ msgstr "Ver perfil" msgid "View the avatar" msgstr "Ver o avatar" +#: src/components/LabelingServiceCard/index.tsx:140 +msgid "View the labeling service provided by @{0}" +msgstr "" + +#: src/view/screens/ProfileFeed.tsx:584 +msgid "View users who like this feed" +msgstr "" + #: src/view/com/modals/LinkWarning.tsx:75 +#: src/view/com/modals/LinkWarning.tsx:77 msgid "Visit Site" msgstr "Visitar Site" -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:42 -#: src/view/com/modals/ContentFilteringSettings.tsx:259 +#: src/components/moderation/GlobalModerationLabelPref.tsx:44 +#: src/lib/moderation/useLabelBehaviorDescription.ts:17 +#: src/lib/moderation/useLabelBehaviorDescription.ts:22 +#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:53 msgid "Warn" msgstr "Avisar" +#: src/lib/moderation/useLabelBehaviorDescription.ts:48 +msgid "Warn content" +msgstr "" + +#: src/lib/moderation/useLabelBehaviorDescription.ts:46 +msgid "Warn content and filter from feeds" +msgstr "" + #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:134 msgid "We also think you'll like \"For You\" by Skygaze:" msgstr "Também recomendamos o \"For You\", do Skygaze:" @@ -4449,6 +5449,14 @@ msgstr "Não recomendamos utilizar palavras comuns que aparecem em muitos posts, msgid "We recommend our \"Discover\" feed:" msgstr "Recomendamos nosso feed \"Discover\":" +#: src/components/dialogs/BirthDateSettings.tsx:52 +msgid "We were unable to load your birth date preferences. Please try again." +msgstr "" + +#: src/screens/Moderation/index.tsx:387 +msgid "We were unable to load your configured labelers at this time." +msgstr "" + #: src/screens/Onboarding/StepInterests/index.tsx:133 msgid "We weren't able to connect. Please try again to continue setting up your account. If it continues to fail, you can skip this flow." msgstr "Não conseguimos conectar. Por favor, tente novamente para continuar configurando a sua conta. Se continuar falhando, você pode pular este fluxo." @@ -4458,8 +5466,8 @@ msgid "We will let you know when your account is ready." msgstr "Avisaremos quando sua conta estiver pronta." #: src/view/com/modals/AppealLabel.tsx:48 -msgid "We'll look into your appeal promptly." -msgstr "Avaliaremos sua contestação o quanto antes." +#~ msgid "We'll look into your appeal promptly." +#~ msgstr "Avaliaremos sua contestação o quanto antes." #: src/screens/Onboarding/StepInterests/index.tsx:138 msgid "We'll use this to help customize your experience." @@ -4469,7 +5477,7 @@ msgstr "Usaremos isto para customizar a sua experiência." msgid "We're so excited to have you join us!" msgstr "Estamos muito felizes em recebê-lo!" -#: src/view/screens/ProfileList.tsx:86 +#: src/view/screens/ProfileList.tsx:89 msgid "We're sorry, but we were unable to resolve this list. If this persists, please contact the list creator, @{handleOrDid}." msgstr "Tivemos um problema ao exibir esta lista. Se continuar acontecendo, contate o criador da lista: @{handleOrDid}." @@ -4477,16 +5485,20 @@ msgstr "Tivemos um problema ao exibir esta lista. Se continuar acontecendo, cont msgid "We're sorry, but we weren't able to load your muted words at this time. Please try again." msgstr "Não foi possível carregar sua lista de palavras silenciadas. Por favor, tente novamente." -#: src/view/screens/Search/Search.tsx:254 +#: src/view/screens/Search/Search.tsx:255 msgid "We're sorry, but your search could not be completed. Please try again in a few minutes." msgstr "Lamentamos, mas sua busca não pôde ser concluída. Por favor, tente novamente em alguns minutos." -#: src/components/Lists.tsx:211 +#: src/components/Lists.tsx:194 #: src/view/screens/NotFound.tsx:48 msgid "We're sorry! We can't find the page you were looking for." msgstr "Sentimos muito! Não conseguimos encontrar a página que você estava procurando." -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:46 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:319 +msgid "We're sorry! You can only subscribe to ten labelers, and you've reached your limit of ten." +msgstr "" + +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:48 msgid "Welcome to <0>Bluesky" msgstr "Bem-vindo ao <0>Bluesky" @@ -4495,11 +5507,11 @@ msgid "What are your interests?" msgstr "Do que você gosta?" #: src/view/com/modals/report/Modal.tsx:169 -msgid "What is the issue with this {collectionName}?" -msgstr "Qual é o problema com este {collectionName}?" +#~ msgid "What is the issue with this {collectionName}?" +#~ msgstr "Qual é o problema com este {collectionName}?" #: src/view/com/auth/SplashScreen.tsx:59 -#: src/view/com/composer/Composer.tsx:286 +#: src/view/com/composer/Composer.tsx:295 msgid "What's up?" msgstr "E aí?" @@ -4516,16 +5528,36 @@ msgstr "Quais idiomas você gostaria de ver nos seus feeds?" msgid "Who can reply" msgstr "Quem pode responder" +#: src/components/ReportDialog/SelectReportOptionView.tsx:44 +msgid "Why should this content be reviewed?" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:57 +msgid "Why should this feed be reviewed?" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:54 +msgid "Why should this list be reviewed?" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:51 +msgid "Why should this post be reviewed?" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:48 +msgid "Why should this user be reviewed?" +msgstr "" + #: src/view/com/modals/crop-image/CropImage.web.tsx:102 msgid "Wide" msgstr "Largo" -#: src/view/com/composer/Composer.tsx:422 +#: src/view/com/composer/Composer.tsx:435 msgid "Write post" msgstr "Escrever post" -#: src/view/com/composer/Composer.tsx:285 -#: src/view/com/composer/Prompt.tsx:33 +#: src/view/com/composer/Composer.tsx:294 +#: src/view/com/composer/Prompt.tsx:37 msgid "Write your reply" msgstr "Escreva sua resposta" @@ -4547,6 +5579,10 @@ msgstr "Sim" msgid "You are in line." msgstr "Você está na fila." +#: src/view/com/profile/ProfileFollows.tsx:93 +msgid "You are not following anyone." +msgstr "" + #: src/view/com/posts/FollowingEmptyState.tsx:67 #: src/view/com/posts/FollowingEndOfFeed.tsx:68 msgid "You can also discover new Custom Feeds to follow." @@ -4561,6 +5597,10 @@ msgstr "Você pode mudar estas configurações depois." msgid "You can now sign in with your new password." msgstr "Agora você pode entrar com a sua nova senha." +#: src/view/com/profile/ProfileFollowers.tsx:94 +msgid "You do not have any followers." +msgstr "" + #: src/view/com/modals/InviteCodes.tsx:66 msgid "You don't have any invite codes yet! We'll send you some when you've been on Bluesky for a little longer." msgstr "Você ainda não tem nenhum convite! Nós lhe enviaremos alguns quando você estiver há mais tempo no Bluesky." @@ -4577,11 +5617,13 @@ msgstr "Você não tem feeds salvos!" msgid "You don't have any saved feeds." msgstr "Você não tem feeds salvos." -#: src/view/com/post-thread/PostThread.tsx:465 +#: src/view/com/post-thread/PostThread.tsx:159 msgid "You have blocked the author or you have been blocked by the author." msgstr "Você bloqueou esta conta ou foi bloqueado por ela." -#: src/view/com/modals/ModerationDetails.tsx:56 +#: src/components/moderation/ModerationDetailsDialog.tsx:67 +#: src/lib/moderation/useModerationCauseDescription.ts:50 +#: src/lib/moderation/useModerationCauseDescription.ts:58 msgid "You have blocked this user. You cannot view their content." msgstr "Você bloqueou este usuário. Você não pode ver este conteúdo." @@ -4592,9 +5634,26 @@ msgstr "Você bloqueou este usuário. Você não pode ver este conteúdo." msgid "You have entered an invalid code. It should look like XXXXX-XXXXX." msgstr "Você utilizou um código inválido. O código segue este padrão: XXXXX-XXXXX." +#: src/lib/moderation/useModerationCauseDescription.ts:109 +msgid "You have hidden this post" +msgstr "" + +#: src/components/moderation/ModerationDetailsDialog.tsx:102 +msgid "You have hidden this post." +msgstr "" + +#: src/components/moderation/ModerationDetailsDialog.tsx:95 +#: src/lib/moderation/useModerationCauseDescription.ts:92 +msgid "You have muted this account." +msgstr "" + +#: src/lib/moderation/useModerationCauseDescription.ts:86 +msgid "You have muted this user" +msgstr "" + #: src/view/com/modals/ModerationDetails.tsx:87 -msgid "You have muted this user." -msgstr "Você silenciou este usuário." +#~ msgid "You have muted this user." +#~ msgstr "Você silenciou este usuário." #: src/view/com/feeds/ProfileFeedgens.tsx:136 msgid "You have no feeds." @@ -4606,34 +5665,50 @@ msgid "You have no lists." msgstr "Você não tem listas." #: src/view/screens/ModerationBlockedAccounts.tsx:132 -msgid "You have not blocked any accounts yet. To block an account, go to their profile and selected \"Block account\" from the menu on their account." -msgstr "Você ainda não bloqueou nenhuma conta. Para bloquear uma conta, acesse um perfil e selecione \"Bloquear conta\" no menu." +msgid "You have not blocked any accounts yet. To block an account, go to their profile and select \"Block account\" from the menu on their account." +msgstr "" + +#: src/view/screens/ModerationBlockedAccounts.tsx:132 +#~ msgid "You have not blocked any accounts yet. To block an account, go to their profile and selected \"Block account\" from the menu on their account." +#~ msgstr "Você ainda não bloqueou nenhuma conta. Para bloquear uma conta, acesse um perfil e selecione \"Bloquear conta\" no menu." -#: src/view/screens/AppPasswords.tsx:87 +#: src/view/screens/AppPasswords.tsx:89 msgid "You have not created any app passwords yet. You can create one by pressing the button below." msgstr "Você ainda não criou nenhuma senha de aplicativo. Você pode criar uma pressionando o botão abaixo." #: src/view/screens/ModerationMutedAccounts.tsx:131 -msgid "You have not muted any accounts yet. To mute an account, go to their profile and selected \"Mute account\" from the menu on their account." -msgstr "Você ainda não silenciou nenhuma conta. Para silenciar uma conta, acesse um perfil e selecione \"Silenciar conta\" no menu." +msgid "You have not muted any accounts yet. To mute an account, go to their profile and select \"Mute account\" from the menu on their account." +msgstr "" + +#: src/view/screens/ModerationMutedAccounts.tsx:131 +#~ msgid "You have not muted any accounts yet. To mute an account, go to their profile and selected \"Mute account\" from the menu on their account." +#~ msgstr "Você ainda não silenciou nenhuma conta. Para silenciar uma conta, acesse um perfil e selecione \"Silenciar conta\" no menu." #: src/components/dialogs/MutedWords.tsx:250 msgid "You haven't muted any words or tags yet" msgstr "Você não silenciou nenhuma palavra ou tag ainda" +#: src/components/moderation/LabelsOnMeDialog.tsx:69 +msgid "You may appeal these labels if you feel they were placed in error." +msgstr "" + #: src/view/com/modals/ContentFilteringSettings.tsx:175 -msgid "You must be 18 or older to enable adult content." -msgstr "Você precisa ser maior de idade para habilitar conteúdo adulto." +#~ msgid "You must be 18 or older to enable adult content." +#~ msgstr "Você precisa ser maior de idade para habilitar conteúdo adulto." -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:103 +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:110 msgid "You must be 18 years or older to enable adult content" msgstr "Você precisa ser maior de idade para habilitar conteúdo adulto." -#: src/view/com/util/forms/PostDropdownBtn.tsx:147 +#: src/components/ReportDialog/SubmitView.tsx:205 +msgid "You must select at least one labeler for a report" +msgstr "" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:144 msgid "You will no longer receive notifications for this thread" msgstr "Você não vai mais receber notificações desta thread" -#: src/view/com/util/forms/PostDropdownBtn.tsx:150 +#: src/view/com/util/forms/PostDropdownBtn.tsx:147 msgid "You will now receive notifications for this thread" msgstr "Você vai receber notificações desta thread" @@ -4641,7 +5716,7 @@ msgstr "Você vai receber notificações desta thread" msgid "You will receive an email with a \"reset code.\" Enter that code here, then enter your new password." msgstr "Você receberá um e-mail com um \"código de redefinição\". Digite esse código aqui, e então digite sua nova senha." -#: src/screens/Onboarding/StepModeration/index.tsx:72 +#: src/screens/Onboarding/StepModeration/index.tsx:59 msgid "You're in control" msgstr "Você está no controle" @@ -4655,6 +5730,11 @@ msgstr "Você está na fila" msgid "You're ready to go!" msgstr "Tudo pronto!" +#: src/components/moderation/ModerationDetailsDialog.tsx:99 +#: src/lib/moderation/useModerationCauseDescription.ts:101 +msgid "You've chosen to hide a word or tag within this post." +msgstr "" + #: src/view/com/posts/FollowingEndOfFeed.tsx:48 msgid "You've reached the end of your feed! Find some more accounts to follow." msgstr "Você chegou ao fim do seu feed! Encontre novas contas para seguir." @@ -4723,26 +5803,26 @@ msgstr "Seu usuário completo será <0>@{0}" msgid "Your muted words" msgstr "Suas palavras silenciadas" -#: src/view/com/modals/ChangePassword.tsx:155 +#: src/view/com/modals/ChangePassword.tsx:157 msgid "Your password has been changed successfully!" msgstr "Sua senha foi alterada com sucesso!" -#: src/view/com/composer/Composer.tsx:274 +#: src/view/com/composer/Composer.tsx:283 msgid "Your post has been published" msgstr "Seu post foi publicado" #: src/screens/Onboarding/StepFinished.tsx:105 #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:59 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:59 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:61 msgid "Your posts, likes, and blocks are public. Mutes are private." msgstr "Suas postagens, curtidas e bloqueios são públicos. Silenciamentos são privados." -#: src/view/com/modals/SwitchAccount.tsx:84 -#: src/view/screens/Settings/index.tsx:118 +#: src/view/com/modals/SwitchAccount.tsx:88 +#: src/view/screens/Settings/index.tsx:123 msgid "Your profile" msgstr "Seu perfil" -#: src/view/com/composer/Composer.tsx:273 +#: src/view/com/composer/Composer.tsx:282 msgid "Your reply has been published" msgstr "Sua resposta foi publicada" diff --git a/src/locale/locales/uk/messages.po b/src/locale/locales/uk/messages.po index 2af731a4bb..f4543222de 100644 --- a/src/locale/locales/uk/messages.po +++ b/src/locale/locales/uk/messages.po @@ -26,7 +26,7 @@ msgstr "(немає ел. адреси)" #~ msgid "{0, plural, one {# invite code available} other {# invite codes available}}" #~ msgstr "" -#: src/view/com/profile/ProfileHeader.tsx:593 +#: src/screens/Profile/Header/Metrics.tsx:45 msgid "{following} following" msgstr "{following} підписок" @@ -44,7 +44,7 @@ msgstr "{following} підписок" #~ msgid "{invitesAvailable} invite codes available" #~ msgstr "" -#: src/view/shell/Drawer.tsx:440 +#: src/view/shell/Drawer.tsx:443 msgid "{numUnreadNotifications} unread" msgstr "{numUnreadNotifications} непрочитаних" @@ -52,7 +52,11 @@ msgstr "{numUnreadNotifications} непрочитаних" msgid "<0/> members" msgstr "<0/> учасників" -#: src/view/com/profile/ProfileHeader.tsx:595 +#: src/view/shell/Drawer.tsx:97 +msgid "<0>{0} following" +msgstr "" + +#: src/screens/Profile/Header/Metrics.tsx:46 msgid "<0>{following} <1>following" msgstr "<0>{following} <1>підписок" @@ -68,20 +72,20 @@ msgstr "<0>Підпишіться на деяких <1>рекомендов msgid "<0>Welcome to<1>Bluesky" msgstr "<0>Ласкаво просимо до<1>Bluesky" -#: src/view/com/profile/ProfileHeader.tsx:558 +#: src/screens/Profile/Header/Handle.tsx:42 msgid "⚠Invalid Handle" msgstr "⚠Недопустимий псевдонім" #: src/view/com/util/moderation/LabelInfo.tsx:45 -msgid "A content warning has been applied to this {0}." -msgstr "Попередження про вміст було додано до цього {0}." +#~ msgid "A content warning has been applied to this {0}." +#~ msgstr "Попередження про вміст було додано до цього {0}." #: src/lib/hooks/useOTAUpdate.ts:16 -msgid "A new version of the app is available. Please update to continue using the app." -msgstr "Доступна нова версія. Будь ласка, оновіть застосунок, щоб продовжити ним користуватися." +#~ msgid "A new version of the app is available. Please update to continue using the app." +#~ msgstr "Доступна нова версія. Будь ласка, оновіть застосунок, щоб продовжити ним користуватися." #: src/view/com/util/ViewHeader.tsx:89 -#: src/view/screens/Search/Search.tsx:647 +#: src/view/screens/Search/Search.tsx:648 msgid "Access navigation links and settings" msgstr "Відкрити навігацію й налаштування" @@ -90,29 +94,38 @@ msgid "Access profile and other navigation links" msgstr "Відкрити профіль та іншу навігацію" #: src/view/com/modals/EditImage.tsx:299 -#: src/view/screens/Settings/index.tsx:451 +#: src/view/screens/Settings/index.tsx:466 msgid "Accessibility" msgstr "Доступність" +#: src/components/moderation/LabelsOnMe.tsx:42 +msgid "account" +msgstr "" + #: src/view/com/auth/login/LoginForm.tsx:166 -#: src/view/screens/Settings/index.tsx:308 -#: src/view/screens/Settings/index.tsx:721 +#: src/view/screens/Settings/index.tsx:323 +#: src/view/screens/Settings/index.tsx:739 msgid "Account" msgstr "Обліковий запис" -#: src/view/com/profile/ProfileHeader.tsx:246 +#: src/view/com/profile/ProfileMenu.tsx:139 msgid "Account blocked" msgstr "Обліковий запис заблоковано" -#: src/view/com/profile/ProfileHeader.tsx:213 +#: src/view/com/profile/ProfileMenu.tsx:153 +msgid "Account followed" +msgstr "" + +#: src/view/com/profile/ProfileMenu.tsx:113 msgid "Account muted" msgstr "Обліковий запис ігнорується" -#: src/view/com/modals/ModerationDetails.tsx:86 +#: src/components/moderation/ModerationDetailsDialog.tsx:94 +#: src/lib/moderation/useModerationCauseDescription.ts:91 msgid "Account Muted" msgstr "Обліковий запис ігнорується" -#: src/view/com/modals/ModerationDetails.tsx:72 +#: src/components/moderation/ModerationDetailsDialog.tsx:83 msgid "Account Muted by List" msgstr "Обліковий запис ігнорується списком" @@ -124,19 +137,24 @@ msgstr "Параметри облікового запису" msgid "Account removed from quick access" msgstr "Обліковий запис вилучено зі швидкого доступу" -#: src/view/com/profile/ProfileHeader.tsx:268 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:130 +#: src/view/com/profile/ProfileMenu.tsx:128 msgid "Account unblocked" msgstr "Обліковий запис розблоковано" -#: src/view/com/profile/ProfileHeader.tsx:226 +#: src/view/com/profile/ProfileMenu.tsx:166 +msgid "Account unfollowed" +msgstr "" + +#: src/view/com/profile/ProfileMenu.tsx:102 msgid "Account unmuted" msgstr "Обліковий запис більше не ігнорується" #: src/components/dialogs/MutedWords.tsx:165 #: src/view/com/auth/onboarding/RecommendedFeedsItem.tsx:150 -#: src/view/com/modals/ListAddRemoveUsers.tsx:264 +#: src/view/com/modals/ListAddRemoveUsers.tsx:268 #: src/view/com/modals/UserAddRemoveLists.tsx:219 -#: src/view/screens/ProfileList.tsx:813 +#: src/view/screens/ProfileList.tsx:827 msgid "Add" msgstr "Додати" @@ -144,12 +162,12 @@ msgstr "Додати" msgid "Add a content warning" msgstr "Додати попередження про вміст" -#: src/view/screens/ProfileList.tsx:803 +#: src/view/screens/ProfileList.tsx:817 msgid "Add a user to this list" msgstr "Додати користувача до списку" -#: src/view/screens/Settings/index.tsx:383 -#: src/view/screens/Settings/index.tsx:392 +#: src/view/screens/Settings/index.tsx:398 +#: src/view/screens/Settings/index.tsx:407 msgid "Add account" msgstr "Додати обліковий запис" @@ -159,26 +177,26 @@ msgstr "Додати обліковий запис" msgid "Add alt text" msgstr "Додати альтернативний текст" -#: src/view/screens/AppPasswords.tsx:102 -#: src/view/screens/AppPasswords.tsx:143 -#: src/view/screens/AppPasswords.tsx:156 +#: src/view/screens/AppPasswords.tsx:104 +#: src/view/screens/AppPasswords.tsx:145 +#: src/view/screens/AppPasswords.tsx:158 msgid "Add App Password" msgstr "Додати пароль застосунку" #: src/view/com/modals/report/InputIssueDetails.tsx:41 #: src/view/com/modals/report/Modal.tsx:191 -msgid "Add details" -msgstr "Додайте подробиці" +#~ msgid "Add details" +#~ msgstr "Додайте подробиці" #: src/view/com/modals/report/Modal.tsx:194 -msgid "Add details to report" -msgstr "Додайте подробиці до скарги" +#~ msgid "Add details to report" +#~ msgstr "Додайте подробиці до скарги" -#: src/view/com/composer/Composer.tsx:453 +#: src/view/com/composer/Composer.tsx:466 msgid "Add link card" msgstr "Додати попередній перегляд" -#: src/view/com/composer/Composer.tsx:458 +#: src/view/com/composer/Composer.tsx:471 msgid "Add link card:" msgstr "Додати попередній перегляд:" @@ -194,12 +212,12 @@ msgstr "Додати ігноровані слова та теги" msgid "Add the following DNS record to your domain:" msgstr "Додайте наступний DNS-запис до вашого домену:" -#: src/view/com/profile/ProfileHeader.tsx:310 +#: src/view/com/profile/ProfileMenu.tsx:263 +#: src/view/com/profile/ProfileMenu.tsx:266 msgid "Add to Lists" msgstr "Додати до списку" -#: src/view/com/feeds/FeedSourceCard.tsx:245 -#: src/view/screens/ProfileFeed.tsx:273 +#: src/view/com/feeds/FeedSourceCard.tsx:234 msgid "Add to my feeds" msgstr "Додати до моїх стрічок" @@ -212,7 +230,7 @@ msgstr "Додано" msgid "Added to list" msgstr "Додано до списку" -#: src/view/com/feeds/FeedSourceCard.tsx:127 +#: src/view/com/feeds/FeedSourceCard.tsx:108 msgid "Added to my feeds" msgstr "Додано до моїх стрічок" @@ -220,19 +238,25 @@ msgstr "Додано до моїх стрічок" msgid "Adjust the number of likes a reply must have to be shown in your feed." msgstr "Налаштуйте мінімальну кількість вподобань для того щоб відповідь відобразилася у вашій стрічці." +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:117 #: src/view/com/modals/SelfLabel.tsx:75 msgid "Adult Content" msgstr "Вміст для дорослих" #: src/view/com/modals/ContentFilteringSettings.tsx:141 -msgid "Adult content can only be enabled via the Web at <0/>." -msgstr "Вміст для дорослих можна увімкнути лише у вебверсії на <0/>." +#~ msgid "Adult content can only be enabled via the Web at <0/>." +#~ msgstr "Вміст для дорослих можна увімкнути лише у вебверсії на <0/>." #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:78 #~ msgid "Adult content can only be enabled via the Web at <0>bsky.app." #~ msgstr "" -#: src/view/screens/Settings/index.tsx:664 +#: src/components/moderation/ModerationLabelPref.tsx:114 +msgid "Adult content is disabled." +msgstr "" + +#: src/screens/Moderation/index.tsx:377 +#: src/view/screens/Settings/index.tsx:680 msgid "Advanced" msgstr "Розширені" @@ -241,11 +265,11 @@ msgid "All the feeds you've saved, right in one place." msgstr "Усі збережені стрічки в одному місці." #: src/view/com/auth/login/ForgotPasswordForm.tsx:221 -#: src/view/com/modals/ChangePassword.tsx:168 +#: src/view/com/modals/ChangePassword.tsx:170 msgid "Already have a code?" msgstr "Вже маєте код?" -#: src/view/com/auth/login/ChooseAccountForm.tsx:98 +#: src/view/com/auth/login/ChooseAccountForm.tsx:102 msgid "Already signed in as @{0}" msgstr "Вже увійшли як @{0}" @@ -269,12 +293,18 @@ msgstr "Було надіслано лист на адресу {0}. Він мі msgid "An email has been sent to your previous address, {0}. It includes a confirmation code which you can enter below." msgstr "Було надіслано лист на вашу попередню адресу, {0}. Він містить код підтвердження, який ви можете ввести нижче." -#: src/view/com/profile/FollowButton.tsx:30 -#: src/view/com/profile/FollowButton.tsx:40 +#: src/lib/moderation/useReportOptions.ts:26 +msgid "An issue not included in these options" +msgstr "" + +#: src/view/com/profile/FollowButton.tsx:35 +#: src/view/com/profile/FollowButton.tsx:45 +#: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:188 +#: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:198 msgid "An issue occurred, please try again." msgstr "Виникла проблема, будь ласка, спробуйте ще раз." -#: src/view/com/notifications/FeedItem.tsx:237 +#: src/view/com/notifications/FeedItem.tsx:240 #: src/view/com/threadgate/WhoCanReply.tsx:178 msgid "and" msgstr "та" @@ -283,11 +313,15 @@ msgstr "та" msgid "Animals" msgstr "Тварини" +#: src/lib/moderation/useReportOptions.ts:31 +msgid "Anti-Social Behavior" +msgstr "" + #: src/view/screens/LanguageSettings.tsx:95 msgid "App Language" msgstr "Мова застосунку" -#: src/view/screens/AppPasswords.tsx:228 +#: src/view/screens/AppPasswords.tsx:223 msgid "App password deleted" msgstr "Пароль застосунку видалено" @@ -299,7 +333,7 @@ msgstr "Назва пароля може містити лише латинсь msgid "App Password names must be at least 4 characters long." msgstr "Назва пароля застосунку мусить бути хоча б 4 символи в довжину." -#: src/view/screens/Settings/index.tsx:675 +#: src/view/screens/Settings/index.tsx:691 msgid "App password settings" msgstr "Налаштування пароля застосунків" @@ -307,49 +341,65 @@ msgstr "Налаштування пароля застосунків" #~ msgid "App passwords" #~ msgstr "" -#: src/Navigation.tsx:239 -#: src/view/screens/AppPasswords.tsx:187 -#: src/view/screens/Settings/index.tsx:684 +#: src/Navigation.tsx:251 +#: src/view/screens/AppPasswords.tsx:189 +#: src/view/screens/Settings/index.tsx:700 msgid "App Passwords" msgstr "Паролі для застосунків" +#: src/components/moderation/LabelsOnMeDialog.tsx:134 +#: src/components/moderation/LabelsOnMeDialog.tsx:137 +msgid "Appeal" +msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:202 +msgid "Appeal \"{0}\" label" +msgstr "" + #: src/view/com/util/forms/PostDropdownBtn.tsx:337 #: src/view/com/util/forms/PostDropdownBtn.tsx:346 -msgid "Appeal content warning" -msgstr "Оскаржити попередження про вміст" +#~ msgid "Appeal content warning" +#~ msgstr "Оскаржити попередження про вміст" #: src/view/com/modals/AppealLabel.tsx:65 -msgid "Appeal Content Warning" -msgstr "Оскаржити попередження про вміст" +#~ msgid "Appeal Content Warning" +#~ msgstr "Оскаржити попередження про вміст" + +#: src/components/moderation/LabelsOnMeDialog.tsx:193 +msgid "Appeal submitted." +msgstr "" #: src/view/com/util/moderation/LabelInfo.tsx:52 -msgid "Appeal this decision" -msgstr "Оскаржити це рішення" +#~ msgid "Appeal this decision" +#~ msgstr "Оскаржити це рішення" #: src/view/com/util/moderation/LabelInfo.tsx:56 -msgid "Appeal this decision." -msgstr "Оскаржити це рішення" +#~ msgid "Appeal this decision." +#~ msgstr "Оскаржити це рішення" -#: src/view/screens/Settings/index.tsx:466 +#: src/view/screens/Settings/index.tsx:481 msgid "Appearance" msgstr "Оформлення" -#: src/view/screens/AppPasswords.tsx:224 +#: src/view/screens/AppPasswords.tsx:265 msgid "Are you sure you want to delete the app password \"{name}\"?" msgstr "Ви дійсно хочете видалити пароль для застосунку \"{name}\"?" -#: src/view/com/composer/Composer.tsx:150 +#: src/view/com/feeds/FeedSourceCard.tsx:280 +msgid "Are you sure you want to remove {0} from your feeds?" +msgstr "" + +#: src/view/com/composer/Composer.tsx:508 msgid "Are you sure you'd like to discard this draft?" msgstr "Ви дійсно бажаєте видалити цю чернетку?" #: src/components/dialogs/MutedWords.tsx:282 -#: src/view/screens/ProfileList.tsx:365 msgid "Are you sure?" msgstr "Ви впевнені?" #: src/view/com/util/forms/PostDropdownBtn.tsx:322 -msgid "Are you sure? This cannot be undone." -msgstr "Ви впевнені? Це не можна буде скасувати." +#~ msgid "Are you sure? This cannot be undone." +#~ msgstr "Ви впевнені? Це не можна буде скасувати." #: src/view/com/composer/select-language/SuggestedLanguage.tsx:60 msgid "Are you writing in <0>{0}?" @@ -363,78 +413,86 @@ msgstr "Мистецтво" msgid "Artistic or non-erotic nudity." msgstr "Художня або нееротична оголеність." +#: src/components/moderation/LabelsOnMeDialog.tsx:247 +#: src/components/moderation/LabelsOnMeDialog.tsx:248 +#: src/screens/Profile/Header/Shell.tsx:97 #: src/view/com/auth/create/CreateAccount.tsx:158 -#: src/view/com/auth/login/ChooseAccountForm.tsx:151 +#: src/view/com/auth/login/ChooseAccountForm.tsx:155 #: src/view/com/auth/login/ForgotPasswordForm.tsx:174 #: src/view/com/auth/login/LoginForm.tsx:259 #: src/view/com/auth/login/SetNewPasswordForm.tsx:179 -#: src/view/com/modals/report/InputIssueDetails.tsx:46 -#: src/view/com/post-thread/PostThread.tsx:472 -#: src/view/com/post-thread/PostThread.tsx:522 -#: src/view/com/post-thread/PostThread.tsx:530 -#: src/view/com/profile/ProfileHeader.tsx:649 #: src/view/com/util/ViewHeader.tsx:87 msgid "Back" msgstr "Назад" #: src/view/com/post-thread/PostThread.tsx:480 -msgctxt "action" -msgid "Back" -msgstr "Назад" +#~ msgctxt "action" +#~ msgid "Back" +#~ msgstr "Назад" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:136 msgid "Based on your interest in {interestsText}" msgstr "Ґрунтуючись на вашому інтересі до {interestsText}" -#: src/view/screens/Settings/index.tsx:523 +#: src/view/screens/Settings/index.tsx:538 msgid "Basics" msgstr "Основні" +#: src/components/dialogs/BirthDateSettings.tsx:107 #: src/view/com/auth/create/Step1.tsx:227 -#: src/view/com/modals/BirthDateSettings.tsx:73 msgid "Birthday" msgstr "Дата народження" -#: src/view/screens/Settings/index.tsx:340 +#: src/view/screens/Settings/index.tsx:355 msgid "Birthday:" msgstr "Дата народження:" -#: src/view/com/profile/ProfileHeader.tsx:239 -#: src/view/com/profile/ProfileHeader.tsx:346 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:278 +#: src/view/com/profile/ProfileMenu.tsx:361 +msgid "Block" +msgstr "" + +#: src/view/com/profile/ProfileMenu.tsx:300 +#: src/view/com/profile/ProfileMenu.tsx:307 msgid "Block Account" msgstr "Заблокувати" -#: src/view/screens/ProfileList.tsx:556 +#: src/view/com/profile/ProfileMenu.tsx:344 +msgid "Block Account?" +msgstr "" + +#: src/view/screens/ProfileList.tsx:530 msgid "Block accounts" msgstr "Заблокувати облікові записи" -#: src/view/screens/ProfileList.tsx:506 +#: src/view/screens/ProfileList.tsx:478 +#: src/view/screens/ProfileList.tsx:634 msgid "Block list" msgstr "Заблокувати список" -#: src/view/screens/ProfileList.tsx:316 +#: src/view/screens/ProfileList.tsx:629 msgid "Block these accounts?" msgstr "Заблокувати ці облікові записи?" #: src/view/screens/ProfileList.tsx:320 -msgid "Block this List" -msgstr "Заблокувати список" +#~ msgid "Block this List" +#~ msgstr "Заблокувати список" #: src/view/com/lists/ListCard.tsx:110 -#: src/view/com/util/post-embeds/QuoteEmbed.tsx:61 +#: src/view/com/util/post-embeds/QuoteEmbed.tsx:55 msgid "Blocked" msgstr "Заблоковано" -#: src/view/screens/Moderation.tsx:142 +#: src/screens/Moderation/index.tsx:269 msgid "Blocked accounts" msgstr "Заблоковані облікові записи" -#: src/Navigation.tsx:132 +#: src/Navigation.tsx:134 #: src/view/screens/ModerationBlockedAccounts.tsx:107 msgid "Blocked Accounts" msgstr "Заблоковані облікові записи" -#: src/view/com/profile/ProfileHeader.tsx:241 +#: src/view/com/profile/ProfileMenu.tsx:356 msgid "Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you." msgstr "Заблоковані облікові записи не можуть вам відповідати, згадувати вас у своїх постах, і взаємодіяти з вами будь-яким іншим чином." @@ -442,15 +500,23 @@ msgstr "Заблоковані облікові записи не можуть msgid "Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you. You will not see their content and they will be prevented from seeing yours." msgstr "Заблоковані облікові записи не можуть вам відповідати, згадувати вас у своїх постах, і взаємодіяти з вами будь-яким іншим чином. Ви не будете бачити їхні пости і вони не будуть бачити ваші." -#: src/view/com/post-thread/PostThread.tsx:324 +#: src/view/com/post-thread/PostThread.tsx:313 msgid "Blocked post." msgstr "Заблокований пост." -#: src/view/screens/ProfileList.tsx:318 +#: src/screens/Profile/Sections/Labels.tsx:153 +msgid "Blocking does not prevent this labeler from placing labels on your account." +msgstr "" + +#: src/view/screens/ProfileList.tsx:631 msgid "Blocking is public. Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you." msgstr "Блокування - це відкрита інформація. Заблоковані користувачі не можуть відповісти у ваших темах, згадувати вас або іншим чином взаємодіяти з вами." -#: src/view/com/auth/HomeLoggedOutCTA.tsx:93 +#: src/view/com/profile/ProfileMenu.tsx:353 +msgid "Blocking will not prevent labels from being applied on your account, but it will stop this account from replying in your threads or interacting with you." +msgstr "" + +#: src/view/com/auth/HomeLoggedOutCTA.tsx:97 #: src/view/com/auth/SplashScreen.web.tsx:133 msgid "Blog" msgstr "Блог" @@ -466,17 +532,17 @@ msgid "Bluesky is an open network where you can choose your hosting provider. Cu msgstr "Bluesky є відкритою мережею, де ви можете обрати свого хостинг-провайдера. Власний хостинг тепер доступний в бета-версії для розробників." #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:80 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:80 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:82 msgid "Bluesky is flexible." msgstr "Bluesky гнучкий." #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:69 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:69 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:71 msgid "Bluesky is open." msgstr "Bluesky відкритий." #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:56 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:56 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:58 msgid "Bluesky is public." msgstr "Bluesky публічний." @@ -484,7 +550,7 @@ msgstr "Bluesky публічний." #~ msgid "Bluesky uses invites to build a healthier community. If you don't know anybody with an invite, you can sign up for the waitlist and we'll send one soon." #~ msgstr "" -#: src/view/screens/Moderation.tsx:245 +#: src/screens/Moderation/index.tsx:535 msgid "Bluesky will not show your profile and posts to logged-out users. Other apps may not honor this request. This does not make your account private." msgstr "Bluesky не буде показувати ваш профіль і повідомлення відвідувачам без облікового запису. Інші застосунки можуть не слідувати цьому запиту. Це не робить ваш обліковий запис приватним." @@ -492,15 +558,23 @@ msgstr "Bluesky не буде показувати ваш профіль і по #~ msgid "Bluesky.Social" #~ msgstr "" +#: src/lib/moderation/useLabelBehaviorDescription.ts:53 +msgid "Blur images" +msgstr "" + +#: src/lib/moderation/useLabelBehaviorDescription.ts:51 +msgid "Blur images and filter from feeds" +msgstr "" + #: src/screens/Onboarding/index.tsx:33 msgid "Books" msgstr "Книги" -#: src/view/screens/Settings/index.tsx:859 +#: src/view/screens/Settings/index.tsx:889 msgid "Build version {0} {1}" msgstr "Версія {0} {1}" -#: src/view/com/auth/HomeLoggedOutCTA.tsx:87 +#: src/view/com/auth/HomeLoggedOutCTA.tsx:91 #: src/view/com/auth/SplashScreen.web.tsx:128 msgid "Business" msgstr "Організація" @@ -517,17 +591,23 @@ msgstr "від —" msgid "by {0}" msgstr "від {0}" +#: src/components/LabelingServiceCard/index.tsx:57 +msgid "By {0}" +msgstr "" + #: src/view/com/profile/ProfileSubpageHeader.tsx:161 msgid "by <0/>" msgstr "від <0/>" +#: src/view/com/auth/create/Policies.tsx:87 +msgid "By creating an account you agree to the {els}." +msgstr "" + #: src/view/com/profile/ProfileSubpageHeader.tsx:159 msgid "by you" msgstr "створено вами" -#: src/view/com/composer/photos/OpenCameraBtn.tsx:60 -#: src/view/com/util/UserAvatar.tsx:224 -#: src/view/com/util/UserBanner.tsx:40 +#: src/view/com/composer/photos/OpenCameraBtn.tsx:77 msgid "Camera" msgstr "Камера" @@ -535,28 +615,33 @@ msgstr "Камера" msgid "Can only contain letters, numbers, spaces, dashes, and underscores. Must be at least 4 characters long, but no more than 32 characters long." msgstr "Може містити лише літери, цифри, пробіли, дефіси та знаки підкреслення, і мати довжину від 4 до 32 символів." -#: src/components/Prompt.tsx:101 -#: src/view/com/composer/Composer.tsx:307 -#: src/view/com/composer/Composer.tsx:312 +#: src/components/Menu/index.tsx:213 +#: src/components/Prompt.tsx:116 +#: src/components/Prompt.tsx:118 +#: src/components/TagMenu/index.tsx:268 +#: src/view/com/composer/Composer.tsx:316 +#: src/view/com/composer/Composer.tsx:321 #: src/view/com/modals/ChangeEmail.tsx:218 #: src/view/com/modals/ChangeEmail.tsx:220 -#: src/view/com/modals/ChangePassword.tsx:265 -#: src/view/com/modals/ChangePassword.tsx:268 +#: src/view/com/modals/ChangeHandle.tsx:153 +#: src/view/com/modals/ChangePassword.tsx:267 +#: src/view/com/modals/ChangePassword.tsx:270 #: src/view/com/modals/CreateOrEditList.tsx:355 +#: src/view/com/modals/crop-image/CropImage.web.tsx:137 #: src/view/com/modals/EditImage.tsx:323 #: src/view/com/modals/EditProfile.tsx:249 #: src/view/com/modals/InAppBrowserConsent.tsx:78 +#: src/view/com/modals/InAppBrowserConsent.tsx:80 #: src/view/com/modals/LinkWarning.tsx:87 +#: src/view/com/modals/LinkWarning.tsx:89 #: src/view/com/modals/Repost.tsx:87 #: src/view/com/modals/VerifyEmail.tsx:247 #: src/view/com/modals/VerifyEmail.tsx:253 -#: src/view/screens/Search/Search.tsx:716 -#: src/view/shell/desktop/Search.tsx:238 +#: src/view/screens/Search/Search.tsx:717 +#: src/view/shell/desktop/Search.tsx:239 msgid "Cancel" msgstr "Скасувати" -#: src/view/com/modals/Confirm.tsx:88 -#: src/view/com/modals/Confirm.tsx:91 #: src/view/com/modals/CreateOrEditList.tsx:360 #: src/view/com/modals/DeleteAccount.tsx:156 #: src/view/com/modals/DeleteAccount.tsx:234 @@ -586,7 +671,7 @@ msgid "Cancel quote post" msgstr "Скасувати цитування посту" #: src/view/com/modals/ListAddRemoveUsers.tsx:87 -#: src/view/shell/desktop/Search.tsx:234 +#: src/view/shell/desktop/Search.tsx:235 msgid "Cancel search" msgstr "Скасувати пошук" @@ -594,17 +679,25 @@ msgstr "Скасувати пошук" #~ msgid "Cancel waitlist signup" #~ msgstr "" -#: src/view/screens/Settings/index.tsx:334 +#: src/view/com/modals/LinkWarning.tsx:88 +msgid "Cancels opening the linked website" +msgstr "" + +#: src/view/com/modals/VerifyEmail.tsx:152 +msgid "Change" +msgstr "" + +#: src/view/screens/Settings/index.tsx:349 msgctxt "action" msgid "Change" msgstr "Змінити" -#: src/view/screens/Settings/index.tsx:696 +#: src/view/screens/Settings/index.tsx:712 msgid "Change handle" msgstr "Змінити псевдонім" #: src/view/com/modals/ChangeHandle.tsx:161 -#: src/view/screens/Settings/index.tsx:705 +#: src/view/screens/Settings/index.tsx:723 msgid "Change Handle" msgstr "Змінити псевдонім" @@ -612,11 +705,12 @@ msgstr "Змінити псевдонім" msgid "Change my email" msgstr "Змінити адресу електронної пошти" -#: src/view/screens/Settings/index.tsx:732 +#: src/view/screens/Settings/index.tsx:750 msgid "Change password" msgstr "Змінити пароль" -#: src/view/screens/Settings/index.tsx:741 +#: src/view/com/modals/ChangePassword.tsx:141 +#: src/view/screens/Settings/index.tsx:761 msgid "Change Password" msgstr "Зміна пароля" @@ -625,8 +719,8 @@ msgid "Change post language to {0}" msgstr "Змінити мову поста на {0}" #: src/view/screens/Settings/index.tsx:733 -msgid "Change your Bluesky password" -msgstr "Змінити ваш пароль Bluesky" +#~ msgid "Change your Bluesky password" +#~ msgstr "Змінити ваш пароль Bluesky" #: src/view/com/modals/ChangeEmail.tsx:109 msgid "Change Your Email" @@ -654,8 +748,8 @@ msgid "Choose \"Everybody\" or \"Nobody\"" msgstr "Виберіть \"Усі\" або \"Ніхто\"" #: src/view/screens/Settings/index.tsx:697 -msgid "Choose a new Bluesky username or create" -msgstr "Оберіть або створіть своє ім'я користувача" +#~ msgid "Choose a new Bluesky username or create" +#~ msgstr "Оберіть або створіть своє ім'я користувача" #: src/view/com/auth/server-input/index.tsx:79 msgid "Choose Service" @@ -666,7 +760,7 @@ msgid "Choose the algorithms that power your custom feeds." msgstr "Оберіть алгоритми, що наповнюватимуть ваші стрічки." #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:83 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:83 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:85 msgid "Choose the algorithms that power your experience with custom feeds." msgstr "Автори стрічок можуть обирати будь-які алгоритми для формування стрічки саме для вас." @@ -682,29 +776,35 @@ msgstr "Виберіть ваші основні стрічки" msgid "Choose your password" msgstr "Вкажіть пароль" -#: src/view/screens/Settings/index.tsx:834 -#: src/view/screens/Settings/index.tsx:835 +#: src/view/screens/Settings/index.tsx:864 msgid "Clear all legacy storage data" msgstr "" -#: src/view/screens/Settings/index.tsx:837 +#: src/view/screens/Settings/index.tsx:867 msgid "Clear all legacy storage data (restart after this)" msgstr "" -#: src/view/screens/Settings/index.tsx:846 -#: src/view/screens/Settings/index.tsx:847 +#: src/view/screens/Settings/index.tsx:876 msgid "Clear all storage data" msgstr "" -#: src/view/screens/Settings/index.tsx:849 +#: src/view/screens/Settings/index.tsx:879 msgid "Clear all storage data (restart after this)" msgstr "" #: src/view/com/util/forms/SearchInput.tsx:88 -#: src/view/screens/Search/Search.tsx:697 +#: src/view/screens/Search/Search.tsx:698 msgid "Clear search query" msgstr "Очистити пошуковий запит" +#: src/view/screens/Settings/index.tsx:865 +msgid "Clears all legacy storage data" +msgstr "" + +#: src/view/screens/Settings/index.tsx:877 +msgid "Clears all storage data" +msgstr "" + #: src/view/screens/Support.tsx:40 msgid "click here" msgstr "натисніть тут" @@ -721,8 +821,8 @@ msgstr "Натисніть тут, щоб відкрити меню тегів msgid "Climate" msgstr "Клімат" -#: src/view/com/modals/ChangePassword.tsx:265 -#: src/view/com/modals/ChangePassword.tsx:268 +#: src/view/com/modals/ChangePassword.tsx:267 +#: src/view/com/modals/ChangePassword.tsx:270 msgid "Close" msgstr "Закрити" @@ -735,27 +835,28 @@ msgstr "Закрити діалогове вікно" msgid "Close alert" msgstr "Закрити сповіщення" -#: src/view/com/util/BottomSheetCustomBackdrop.tsx:33 +#: src/view/com/util/BottomSheetCustomBackdrop.tsx:36 msgid "Close bottom drawer" msgstr "Закрити нижнє меню" -#: src/view/com/lightbox/ImageViewing/components/ImageDefaultHeader.tsx:26 +#: src/view/com/lightbox/ImageViewing/components/ImageDefaultHeader.tsx:36 msgid "Close image" msgstr "Закрити зображення" -#: src/view/com/lightbox/Lightbox.web.tsx:119 +#: src/view/com/lightbox/Lightbox.web.tsx:129 msgid "Close image viewer" msgstr "Закрити перегляд зображення" -#: src/view/shell/index.web.tsx:51 +#: src/view/shell/index.web.tsx:55 msgid "Close navigation footer" msgstr "Закрити панель навігації" +#: src/components/Menu/index.tsx:207 #: src/components/TagMenu/index.tsx:262 msgid "Close this dialog" msgstr "Закрити діалогове вікно" -#: src/view/shell/index.web.tsx:52 +#: src/view/shell/index.web.tsx:56 msgid "Closes bottom navigation bar" msgstr "Закриває нижню панель навігації" @@ -763,15 +864,15 @@ msgstr "Закриває нижню панель навігації" msgid "Closes password update alert" msgstr "Закриває сповіщення про оновлення пароля" -#: src/view/com/composer/Composer.tsx:309 +#: src/view/com/composer/Composer.tsx:318 msgid "Closes post composer and discards post draft" msgstr "Закриває редактор постів і видаляє чернетку" -#: src/view/com/lightbox/ImageViewing/components/ImageDefaultHeader.tsx:27 +#: src/view/com/lightbox/ImageViewing/components/ImageDefaultHeader.tsx:37 msgid "Closes viewer for header image" msgstr "Закриває перегляд зображення" -#: src/view/com/notifications/FeedItem.tsx:318 +#: src/view/com/notifications/FeedItem.tsx:321 msgid "Collapses list of users for a given notification" msgstr "Згортає список користувачів для даного сповіщення" @@ -783,7 +884,7 @@ msgstr "Комедія" msgid "Comics" msgstr "Комікси" -#: src/Navigation.tsx:229 +#: src/Navigation.tsx:241 #: src/view/screens/CommunityGuidelines.tsx:32 msgid "Community Guidelines" msgstr "Правила спільноти" @@ -796,7 +897,7 @@ msgstr "Завершіть ознайомлення та розпочніть к msgid "Complete the challenge" msgstr "Виконайте завдання" -#: src/view/com/composer/Composer.tsx:424 +#: src/view/com/composer/Composer.tsx:437 msgid "Compose posts up to {MAX_GRAPHEME_LENGTH} characters in length" msgstr "Створюйте пости до {MAX_GRAPHEME_LENGTH} символів у довжину" @@ -804,12 +905,18 @@ msgstr "Створюйте пости до {MAX_GRAPHEME_LENGTH} символі msgid "Compose reply" msgstr "Відповісти" -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:67 +#: src/components/moderation/GlobalModerationLabelPref.tsx:69 +#: src/components/moderation/ModerationLabelPref.tsx:149 +#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:81 msgid "Configure content filtering setting for category: {0}" msgstr "Налаштувати фільтрування вмісту для категорій: {0}" -#: src/components/Prompt.tsx:124 -#: src/view/com/modals/AppealLabel.tsx:98 +#: src/components/moderation/ModerationLabelPref.tsx:116 +msgid "Configured in <0>moderation settings." +msgstr "" + +#: src/components/Prompt.tsx:152 +#: src/components/Prompt.tsx:155 #: src/view/com/modals/SelfLabel.tsx:154 #: src/view/com/modals/VerifyEmail.tsx:231 #: src/view/com/modals/VerifyEmail.tsx:233 @@ -820,9 +927,9 @@ msgstr "Підтвердити" #: src/view/com/modals/Confirm.tsx:75 #: src/view/com/modals/Confirm.tsx:78 -msgctxt "action" -msgid "Confirm" -msgstr "Підтвердити" +#~ msgctxt "action" +#~ msgid "Confirm" +#~ msgstr "Підтвердити" #: src/view/com/modals/ChangeEmail.tsx:193 #: src/view/com/modals/ChangeEmail.tsx:195 @@ -838,10 +945,19 @@ msgid "Confirm delete account" msgstr "Підтвердити видалення облікового запису" #: src/view/com/modals/ContentFilteringSettings.tsx:156 -msgid "Confirm your age to enable adult content." -msgstr "Підтвердьте свій вік, щоб дозволити вміст для дорослих." +#~ msgid "Confirm your age to enable adult content." +#~ msgstr "Підтвердьте свій вік, щоб дозволити вміст для дорослих." + +#: src/screens/Moderation/index.tsx:303 +msgid "Confirm your age:" +msgstr "" + +#: src/screens/Moderation/index.tsx:294 +msgid "Confirm your birthdate" +msgstr "" #: src/view/com/modals/ChangeEmail.tsx:157 +#: src/view/com/modals/DeleteAccount.tsx:176 #: src/view/com/modals/DeleteAccount.tsx:182 #: src/view/com/modals/VerifyEmail.tsx:165 msgid "Confirmation code" @@ -860,25 +976,40 @@ msgstr "З’єднання..." msgid "Contact support" msgstr "Служба підтримки" +#: src/components/moderation/LabelsOnMe.tsx:42 +msgid "content" +msgstr "" + +#: src/lib/moderation/useGlobalLabelStrings.ts:18 +msgid "Content Blocked" +msgstr "" + #: src/view/screens/Moderation.tsx:83 -msgid "Content filtering" -msgstr "Фільтрування вмісту" +#~ msgid "Content filtering" +#~ msgstr "Фільтрування вмісту" #: src/view/com/modals/ContentFilteringSettings.tsx:44 -msgid "Content Filtering" -msgstr "Фільтрування вмісту" +#~ msgid "Content Filtering" +#~ msgstr "Фільтрування вмісту" + +#: src/screens/Moderation/index.tsx:287 +msgid "Content filters" +msgstr "" #: src/view/com/modals/lang-settings/ContentLanguagesSettings.tsx:74 #: src/view/screens/LanguageSettings.tsx:278 msgid "Content Languages" msgstr "Мови" -#: src/view/com/modals/ModerationDetails.tsx:65 +#: src/components/moderation/ModerationDetailsDialog.tsx:76 +#: src/lib/moderation/useModerationCauseDescription.ts:75 msgid "Content Not Available" msgstr "Вміст недоступний" -#: src/view/com/modals/ModerationDetails.tsx:33 -#: src/view/com/util/moderation/ScreenHider.tsx:78 +#: src/components/moderation/ModerationDetailsDialog.tsx:47 +#: src/components/moderation/ScreenHider.tsx:100 +#: src/lib/moderation/useGlobalLabelStrings.ts:22 +#: src/lib/moderation/useModerationCauseDescription.ts:38 msgid "Content Warning" msgstr "Попередження про вміст" @@ -886,19 +1017,24 @@ msgstr "Попередження про вміст" msgid "Content warnings" msgstr "Попередження про вміст" +#: src/components/Menu/index.web.tsx:84 +msgid "Context menu backdrop, click to close the menu." +msgstr "" + #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:170 #: src/screens/Onboarding/StepFollowingFeed.tsx:153 #: src/screens/Onboarding/StepInterests/index.tsx:248 -#: src/screens/Onboarding/StepModeration/index.tsx:118 +#: src/screens/Onboarding/StepModeration/index.tsx:102 #: src/screens/Onboarding/StepTopicalFeeds.tsx:114 #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:148 #: src/view/com/auth/onboarding/RecommendedFollows.tsx:209 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:96 msgid "Continue" msgstr "Далі" #: src/screens/Onboarding/StepFollowingFeed.tsx:150 #: src/screens/Onboarding/StepInterests/index.tsx:245 -#: src/screens/Onboarding/StepModeration/index.tsx:115 +#: src/screens/Onboarding/StepModeration/index.tsx:99 #: src/screens/Onboarding/StepTopicalFeeds.tsx:111 msgid "Continue to next step" msgstr "Перейти до наступного кроку" @@ -920,13 +1056,14 @@ msgstr "Кухарство" msgid "Copied" msgstr "Скопійовано" -#: src/view/screens/Settings/index.tsx:241 +#: src/view/screens/Settings/index.tsx:247 msgid "Copied build version to clipboard" msgstr "Версію збірки скопійовано до буфера обміну" #: src/view/com/modals/AddAppPasswords.tsx:76 +#: src/view/com/modals/ChangeHandle.tsx:327 #: src/view/com/modals/InviteCodes.tsx:152 -#: src/view/com/util/forms/PostDropdownBtn.tsx:161 +#: src/view/com/util/forms/PostDropdownBtn.tsx:158 msgid "Copied to clipboard" msgstr "Скопійовано" @@ -938,34 +1075,38 @@ msgstr "Копіює пароль застосунку" msgid "Copy" msgstr "Скопіювати" -#: src/view/screens/ProfileList.tsx:418 +#: src/view/com/modals/ChangeHandle.tsx:481 +msgid "Copy {0}" +msgstr "" + +#: src/view/screens/ProfileList.tsx:388 msgid "Copy link to list" msgstr "Копіювати посилання на список" -#: src/view/com/util/forms/PostDropdownBtn.tsx:231 +#: src/view/com/util/forms/PostDropdownBtn.tsx:228 #: src/view/com/util/forms/PostDropdownBtn.tsx:237 msgid "Copy link to post" msgstr "Копіювати посилання на пост" #: src/view/com/profile/ProfileHeader.tsx:295 -msgid "Copy link to profile" -msgstr "Копіювати посилання на профіль" +#~ msgid "Copy link to profile" +#~ msgstr "Копіювати посилання на профіль" -#: src/view/com/util/forms/PostDropdownBtn.tsx:223 -#: src/view/com/util/forms/PostDropdownBtn.tsx:225 +#: src/view/com/util/forms/PostDropdownBtn.tsx:220 +#: src/view/com/util/forms/PostDropdownBtn.tsx:222 msgid "Copy post text" msgstr "Копіювати текст повідомлення" -#: src/Navigation.tsx:234 +#: src/Navigation.tsx:246 #: src/view/screens/CopyrightPolicy.tsx:29 msgid "Copyright Policy" msgstr "Політика захисту авторського права" -#: src/view/screens/ProfileFeed.tsx:97 +#: src/view/screens/ProfileFeed.tsx:102 msgid "Could not load feed" msgstr "Не вдалося завантажити стрічку" -#: src/view/screens/ProfileList.tsx:893 +#: src/view/screens/ProfileList.tsx:907 msgid "Could not load list" msgstr "Не вдалося завантажити список" @@ -973,13 +1114,13 @@ msgstr "Не вдалося завантажити список" #~ msgid "Country" #~ msgstr "" -#: src/view/com/auth/HomeLoggedOutCTA.tsx:62 -#: src/view/com/auth/SplashScreen.tsx:71 +#: src/view/com/auth/HomeLoggedOutCTA.tsx:64 +#: src/view/com/auth/SplashScreen.tsx:73 #: src/view/com/auth/SplashScreen.web.tsx:81 msgid "Create a new account" msgstr "Створити новий обліковий запис" -#: src/view/screens/Settings/index.tsx:384 +#: src/view/screens/Settings/index.tsx:399 msgid "Create a new Bluesky account" msgstr "Створити новий обліковий запис Bluesky" @@ -996,19 +1137,23 @@ msgstr "Створити пароль застосунку" msgid "Create new account" msgstr "Створити новий обліковий запис" -#: src/view/screens/AppPasswords.tsx:249 +#: src/components/ReportDialog/SelectReportOptionView.tsx:94 +msgid "Create report for {0}" +msgstr "" + +#: src/view/screens/AppPasswords.tsx:246 msgid "Created {0}" msgstr "Створено: {0}" #: src/view/screens/ProfileFeed.tsx:616 -msgid "Created by <0/>" -msgstr "Створено <0/>" +#~ msgid "Created by <0/>" +#~ msgstr "Створено <0/>" #: src/view/screens/ProfileFeed.tsx:614 -msgid "Created by you" -msgstr "Створено вами" +#~ msgid "Created by you" +#~ msgstr "Створено вами" -#: src/view/com/composer/Composer.tsx:455 +#: src/view/com/composer/Composer.tsx:468 msgid "Creates a card with a thumbnail. The card links to {url}" msgstr "Створює картку з мініатюрою. Посилання картки: {url}" @@ -1038,8 +1183,8 @@ msgstr "Налаштування медіа зі сторонніх вебсай #~ msgid "Danger Zone" #~ msgstr "" -#: src/view/screens/Settings/index.tsx:485 -#: src/view/screens/Settings/index.tsx:511 +#: src/view/screens/Settings/index.tsx:500 +#: src/view/screens/Settings/index.tsx:526 msgid "Dark" msgstr "Темна" @@ -1047,15 +1192,25 @@ msgstr "Темна" msgid "Dark mode" msgstr "Темний режим" -#: src/view/screens/Settings/index.tsx:498 +#: src/view/screens/Settings/index.tsx:513 msgid "Dark Theme" msgstr "Темна тема" +#: src/view/screens/Settings/index.tsx:837 +msgid "Debug Moderation" +msgstr "" + #: src/view/screens/Debug.tsx:83 msgid "Debug panel" msgstr "Панель налагодження" -#: src/view/screens/Settings/index.tsx:772 +#: src/view/com/util/forms/PostDropdownBtn.tsx:319 +#: src/view/screens/AppPasswords.tsx:268 +#: src/view/screens/ProfileList.tsx:613 +msgid "Delete" +msgstr "" + +#: src/view/screens/Settings/index.tsx:792 msgid "Delete account" msgstr "Видалити обліковий запис" @@ -1063,13 +1218,15 @@ msgstr "Видалити обліковий запис" msgid "Delete Account" msgstr "Видалити обліковий запис" -#: src/view/screens/AppPasswords.tsx:222 -#: src/view/screens/AppPasswords.tsx:242 +#: src/view/screens/AppPasswords.tsx:239 msgid "Delete app password" msgstr "Видалити пароль для застосунку" -#: src/view/screens/ProfileList.tsx:364 -#: src/view/screens/ProfileList.tsx:445 +#: src/view/screens/AppPasswords.tsx:263 +msgid "Delete app password?" +msgstr "" + +#: src/view/screens/ProfileList.tsx:415 msgid "Delete List" msgstr "Видалити список" @@ -1081,24 +1238,28 @@ msgstr "Видалити мій обліковий запис" #~ msgid "Delete my account…" #~ msgstr "" -#: src/view/screens/Settings/index.tsx:784 +#: src/view/screens/Settings/index.tsx:804 msgid "Delete My Account…" msgstr "Видалити мій обліковий запис..." -#: src/view/com/util/forms/PostDropdownBtn.tsx:317 -#: src/view/com/util/forms/PostDropdownBtn.tsx:326 +#: src/view/com/util/forms/PostDropdownBtn.tsx:302 +#: src/view/com/util/forms/PostDropdownBtn.tsx:304 msgid "Delete post" msgstr "Видалити пост" -#: src/view/com/util/forms/PostDropdownBtn.tsx:321 +#: src/view/screens/ProfileList.tsx:608 +msgid "Delete this list?" +msgstr "" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:314 msgid "Delete this post?" msgstr "Видалити цей пост?" -#: src/view/com/util/post-embeds/QuoteEmbed.tsx:70 +#: src/view/com/util/post-embeds/QuoteEmbed.tsx:64 msgid "Deleted" msgstr "Видалено" -#: src/view/com/post-thread/PostThread.tsx:316 +#: src/view/com/post-thread/PostThread.tsx:305 msgid "Deleted post." msgstr "Видалений пост." @@ -1113,23 +1274,35 @@ msgstr "Опис" #~ msgid "Developer Tools" #~ msgstr "" -#: src/view/com/composer/Composer.tsx:218 +#: src/view/com/composer/Composer.tsx:217 msgid "Did you want to say anything?" msgstr "Порожній пост. Ви хотіли щось написати?" -#: src/view/screens/Settings/index.tsx:504 +#: src/view/screens/Settings/index.tsx:519 msgid "Dim" msgstr "Тьмяний" -#: src/view/com/composer/Composer.tsx:151 +#: src/lib/moderation/useLabelBehaviorDescription.ts:32 +#: src/lib/moderation/useLabelBehaviorDescription.ts:42 +#: src/lib/moderation/useLabelBehaviorDescription.ts:68 +#: src/screens/Moderation/index.tsx:343 +msgid "Disabled" +msgstr "" + +#: src/view/com/composer/Composer.tsx:510 msgid "Discard" msgstr "Видалити" #: src/view/com/composer/Composer.tsx:145 -msgid "Discard draft" -msgstr "Відкинути чернетку" +#~ msgid "Discard draft" +#~ msgstr "Відкинути чернетку" + +#: src/view/com/composer/Composer.tsx:507 +msgid "Discard draft?" +msgstr "" -#: src/view/screens/Moderation.tsx:226 +#: src/screens/Moderation/index.tsx:520 +#: src/screens/Moderation/index.tsx:524 msgid "Discourage apps from showing my account to logged-out users" msgstr "Попросити застосунки не показувати мій обліковий запис без входу" @@ -1154,7 +1327,19 @@ msgstr "Ім'я" msgid "Display Name" msgstr "Ім'я" -#: src/view/com/modals/ChangeHandle.tsx:487 +#: src/view/com/modals/ChangeHandle.tsx:398 +msgid "DNS Panel" +msgstr "" + +#: src/lib/moderation/useGlobalLabelStrings.ts:39 +msgid "Does not include nudity." +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:482 +msgid "Domain Value" +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:489 msgid "Domain verified!" msgstr "Домен перевірено!" @@ -1175,19 +1360,19 @@ msgctxt "action" msgid "Done" msgstr "Готово" +#: src/components/dialogs/BirthDateSettings.tsx:119 +#: src/components/dialogs/BirthDateSettings.tsx:125 #: src/view/com/auth/server-input/index.tsx:165 #: src/view/com/auth/server-input/index.tsx:166 #: src/view/com/modals/AddAppPasswords.tsx:226 #: src/view/com/modals/AltImage.tsx:139 -#: src/view/com/modals/ContentFilteringSettings.tsx:88 -#: src/view/com/modals/ContentFilteringSettings.tsx:96 #: src/view/com/modals/crop-image/CropImage.web.tsx:152 #: src/view/com/modals/InviteCodes.tsx:80 #: src/view/com/modals/InviteCodes.tsx:123 #: src/view/com/modals/ListAddRemoveUsers.tsx:142 #: src/view/screens/PreferencesFollowingFeed.tsx:311 -#: src/view/screens/Settings/ExportCarDialog.tsx:93 #: src/view/screens/Settings/ExportCarDialog.tsx:94 +#: src/view/screens/Settings/ExportCarDialog.tsx:95 msgid "Done" msgstr "Готово" @@ -1200,8 +1385,8 @@ msgid "Double tap to sign in" msgstr "Двічі натисніть, щоб увійти" #: src/view/screens/Settings/index.tsx:755 -msgid "Download Bluesky account data (repository)" -msgstr "Завантажити дані облікового запису в Bluesky (репозиторій)" +#~ msgid "Download Bluesky account data (repository)" +#~ msgstr "Завантажити дані облікового запису в Bluesky (репозиторій)" #: src/view/screens/Settings/ExportCarDialog.tsx:59 #: src/view/screens/Settings/ExportCarDialog.tsx:63 @@ -1212,18 +1397,30 @@ msgstr "Завантажити CAR файл" msgid "Drop to add images" msgstr "Перетягніть і відпустіть, щоб додати зображення" -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:111 +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:120 msgid "Due to Apple policies, adult content can only be enabled on the web after completing sign up." msgstr "Через політику компанії Apple, перегляд вмісту для дорослих можна ввімкнути лише в інтернеті після реєстрації." +#: src/view/com/modals/ChangeHandle.tsx:257 +msgid "e.g. alice" +msgstr "" + #: src/view/com/modals/EditProfile.tsx:185 msgid "e.g. Alice Roberts" msgstr "напр. Тарас Шевченко" +#: src/view/com/modals/ChangeHandle.tsx:381 +msgid "e.g. alice.com" +msgstr "" + #: src/view/com/modals/EditProfile.tsx:203 msgid "e.g. Artist, dog-lover, and avid reader." msgstr "напр. Художниця, собачниця та завзята читачка." +#: src/lib/moderation/useGlobalLabelStrings.ts:43 +msgid "E.g. artistic nudes." +msgstr "" + #: src/view/com/modals/CreateOrEditList.tsx:283 msgid "e.g. Great Posters" msgstr "напр. Чудові писарі" @@ -1249,12 +1446,17 @@ msgctxt "action" msgid "Edit" msgstr "Редагувати" +#: src/view/com/util/UserAvatar.tsx:299 +#: src/view/com/util/UserBanner.tsx:85 +msgid "Edit avatar" +msgstr "" + #: src/view/com/composer/photos/Gallery.tsx:144 #: src/view/com/modals/EditImage.tsx:207 msgid "Edit image" msgstr "Редагувати зображення" -#: src/view/screens/ProfileList.tsx:433 +#: src/view/screens/ProfileList.tsx:403 msgid "Edit list details" msgstr "Редагувати опис списку" @@ -1262,7 +1464,7 @@ msgstr "Редагувати опис списку" msgid "Edit Moderation List" msgstr "Редагування списку" -#: src/Navigation.tsx:244 +#: src/Navigation.tsx:256 #: src/view/screens/Feeds.tsx:434 #: src/view/screens/SavedFeeds.tsx:84 msgid "Edit My Feeds" @@ -1272,11 +1474,13 @@ msgstr "Редагувати мої стрічки" msgid "Edit my profile" msgstr "Редагувати мій профіль" -#: src/view/com/profile/ProfileHeader.tsx:418 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:172 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:161 msgid "Edit profile" msgstr "Редагувати профіль" -#: src/view/com/profile/ProfileHeader.tsx:423 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:175 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:164 msgid "Edit Profile" msgstr "Редагувати профіль" @@ -1325,7 +1529,7 @@ msgstr "Ел. адресу оновлено" msgid "Email verified" msgstr "Електронну адресу перевірено" -#: src/view/screens/Settings/index.tsx:312 +#: src/view/screens/Settings/index.tsx:327 msgid "Email:" msgstr "Ел. адреса:" @@ -1333,12 +1537,16 @@ msgstr "Ел. адреса:" msgid "Enable {0} only" msgstr "Увімкнути лише {0}" -#: src/view/com/modals/ContentFilteringSettings.tsx:167 +#: src/screens/Moderation/index.tsx:331 +msgid "Enable adult content" +msgstr "" + +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:94 msgid "Enable Adult Content" msgstr "Дозволити вміст для дорослих" -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:76 -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:77 +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:78 +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:79 msgid "Enable adult content in your feeds" msgstr "Увімкнути вміст для дорослих у ваших стрічках" @@ -1354,7 +1562,11 @@ msgstr "Увімкнути медіапрогравачі для" msgid "Enable this setting to only see replies between people you follow." msgstr "Увімкніть цей параметр, щоб бачити відповіді тільки від людей, на яких ви підписані." -#: src/view/screens/Profile.tsx:455 +#: src/screens/Moderation/index.tsx:341 +msgid "Enabled" +msgstr "" + +#: src/screens/Profile/Sections/Feed.tsx:84 msgid "End of feed" msgstr "Кінець стрічки" @@ -1371,7 +1583,7 @@ msgstr "Введіть слово або тег" msgid "Enter Confirmation Code" msgstr "Введіть код підтвердження" -#: src/view/com/modals/ChangePassword.tsx:151 +#: src/view/com/modals/ChangePassword.tsx:153 msgid "Enter the code you received to change your password." msgstr "Введіть код, який ви отримали, щоб змінити пароль." @@ -1383,8 +1595,8 @@ msgstr "Введіть домен, який ви хочете використо msgid "Enter the email you used to create your account. We'll send you a \"reset code\" so you can set a new password." msgstr "Введіть адресу електронної пошти, яку ви використовували для створення облікового запису. Ми надішлемо вам код підтвердження, щоб ви могли встановити новий пароль." +#: src/components/dialogs/BirthDateSettings.tsx:108 #: src/view/com/auth/create/Step1.tsx:228 -#: src/view/com/modals/BirthDateSettings.tsx:74 msgid "Enter your birth date" msgstr "Введіть вашу дату народження" @@ -1424,16 +1636,28 @@ msgstr "Помилка:" msgid "Everybody" msgstr "Усі" +#: src/lib/moderation/useReportOptions.ts:66 +msgid "Excessive mentions or replies" +msgstr "" + +#: src/view/com/modals/DeleteAccount.tsx:231 +msgid "Exits account deletion process" +msgstr "" + #: src/view/com/modals/ChangeHandle.tsx:150 msgid "Exits handle change process" msgstr "Вихід з процесу зміни псевдоніму користувача" -#: src/view/com/lightbox/Lightbox.web.tsx:120 +#: src/view/com/modals/crop-image/CropImage.web.tsx:135 +msgid "Exits image cropping process" +msgstr "" + +#: src/view/com/lightbox/Lightbox.web.tsx:130 msgid "Exits image view" msgstr "Вийти з режиму перегляду" #: src/view/com/modals/ListAddRemoveUsers.tsx:88 -#: src/view/shell/desktop/Search.tsx:235 +#: src/view/shell/desktop/Search.tsx:236 msgid "Exits inputting search query" msgstr "Вихід із пошуку" @@ -1441,7 +1665,7 @@ msgstr "Вихід із пошуку" #~ msgid "Exits signing up for waitlist with {email}" #~ msgstr "" -#: src/view/com/lightbox/Lightbox.web.tsx:163 +#: src/view/com/lightbox/Lightbox.web.tsx:183 msgid "Expand alt text" msgstr "Розгорнути опис" @@ -1450,12 +1674,20 @@ msgstr "Розгорнути опис" msgid "Expand or collapse the full post you are replying to" msgstr "Розгорнути або згорнути весь пост, на який ви відповідаєте" -#: src/view/screens/Settings/index.tsx:753 +#: src/lib/moderation/useGlobalLabelStrings.ts:47 +msgid "Explicit or potentially disturbing media." +msgstr "" + +#: src/lib/moderation/useGlobalLabelStrings.ts:35 +msgid "Explicit sexual images." +msgstr "" + +#: src/view/screens/Settings/index.tsx:773 msgid "Export my data" msgstr "Експорт моїх даних" #: src/view/screens/Settings/ExportCarDialog.tsx:44 -#: src/view/screens/Settings/index.tsx:764 +#: src/view/screens/Settings/index.tsx:784 msgid "Export My Data" msgstr "Експорт моїх даних" @@ -1468,13 +1700,13 @@ msgstr "Зовнішні медіа" msgid "External media may allow websites to collect information about you and your device. No information is sent or requested until you press the \"play\" button." msgstr "Зовнішні медіа можуть дозволяти вебсайтам збирати інформацію про вас та ваш пристрій. Інформація не надсилається та не запитується, допоки не натиснуто кнопку «Відтворити»." -#: src/Navigation.tsx:263 +#: src/Navigation.tsx:275 #: src/view/screens/PreferencesExternalEmbeds.tsx:52 -#: src/view/screens/Settings/index.tsx:657 +#: src/view/screens/Settings/index.tsx:673 msgid "External Media Preferences" msgstr "Налаштування зовнішніх медіа" -#: src/view/screens/Settings/index.tsx:648 +#: src/view/screens/Settings/index.tsx:664 msgid "External media settings" msgstr "Налаштування зовнішніх медіа" @@ -1487,7 +1719,7 @@ msgstr "Не вдалося створити пароль застосунку." msgid "Failed to create the list. Check your internet connection and try again." msgstr "Не вдалося створити список. Перевірте інтернет-з'єднання і спробуйте ще раз." -#: src/view/com/util/forms/PostDropdownBtn.tsx:128 +#: src/view/com/util/forms/PostDropdownBtn.tsx:125 msgid "Failed to delete post, please try again" msgstr "Не вдалося видалити пост, спробуйте ще раз" @@ -1496,11 +1728,15 @@ msgstr "Не вдалося видалити пост, спробуйте ще msgid "Failed to load recommended feeds" msgstr "Не вдалося завантажити рекомендації стрічок" -#: src/Navigation.tsx:194 +#: src/view/com/lightbox/Lightbox.tsx:83 +msgid "Failed to save image: {0}" +msgstr "" + +#: src/Navigation.tsx:196 msgid "Feed" msgstr "Стрічка" -#: src/view/com/feeds/FeedSourceCard.tsx:231 +#: src/view/com/feeds/FeedSourceCard.tsx:218 msgid "Feed by {0}" msgstr "Стрічка від {0}" @@ -1513,18 +1749,18 @@ msgstr "Стрічка не працює" #~ msgstr "" #: src/view/shell/desktop/RightNav.tsx:61 -#: src/view/shell/Drawer.tsx:311 +#: src/view/shell/Drawer.tsx:314 msgid "Feedback" msgstr "Зворотний зв'язок" -#: src/Navigation.tsx:452 +#: src/Navigation.tsx:464 #: src/view/screens/Feeds.tsx:419 #: src/view/screens/Feeds.tsx:524 -#: src/view/screens/Profile.tsx:184 -#: src/view/shell/bottom-bar/BottomBar.tsx:181 -#: src/view/shell/desktop/LeftNav.tsx:342 -#: src/view/shell/Drawer.tsx:476 -#: src/view/shell/Drawer.tsx:477 +#: src/view/screens/Profile.tsx:192 +#: src/view/shell/bottom-bar/BottomBar.tsx:183 +#: src/view/shell/desktop/LeftNav.tsx:346 +#: src/view/shell/Drawer.tsx:479 +#: src/view/shell/Drawer.tsx:480 msgid "Feeds" msgstr "Стрічки" @@ -1548,6 +1784,14 @@ msgstr "Стрічки – це алгоритми, створені корис msgid "Feeds can be topical as well!" msgstr "Стрічки також можуть бути тематичними!" +#: src/view/com/modals/ChangeHandle.tsx:482 +msgid "File Contents" +msgstr "" + +#: src/lib/moderation/useLabelBehaviorDescription.ts:66 +msgid "Filter from feeds" +msgstr "" + #: src/screens/Onboarding/StepFinished.tsx:151 msgid "Finalizing" msgstr "Завершення" @@ -1558,15 +1802,15 @@ msgstr "Завершення" msgid "Find accounts to follow" msgstr "Знайдіть облікові записи для стеження" -#: src/view/screens/Search/Search.tsx:440 +#: src/view/screens/Search/Search.tsx:441 msgid "Find users on Bluesky" msgstr "Знайти користувачів у Bluesky" -#: src/view/screens/Search/Search.tsx:438 +#: src/view/screens/Search/Search.tsx:439 msgid "Find users with the search tool on the right" msgstr "Знайдіть користувачів за допомогою інструменту пошуку праворуч" -#: src/view/com/auth/onboarding/RecommendedFollowsItem.tsx:150 +#: src/view/com/auth/onboarding/RecommendedFollowsItem.tsx:155 msgid "Finding similar accounts..." msgstr "Пошук подібних облікових записів..." @@ -1600,22 +1844,29 @@ msgid "Flip vertically" msgstr "Віддзеркалити вертикально" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:181 -#: src/view/com/post-thread/PostThreadFollowBtn.tsx:136 -#: src/view/com/profile/ProfileHeader.tsx:513 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:229 +#: src/view/com/auth/onboarding/RecommendedFollowsItem.tsx:141 +#: src/view/com/post-thread/PostThreadFollowBtn.tsx:139 +#: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:246 msgid "Follow" msgstr "Підписатися" -#: src/view/com/profile/FollowButton.tsx:64 +#: src/view/com/profile/FollowButton.tsx:69 msgctxt "action" msgid "Follow" msgstr "Підписатись" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:58 -#: src/view/com/post-thread/PostThreadFollowBtn.tsx:122 -#: src/view/com/profile/ProfileHeader.tsx:504 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:214 +#: src/view/com/post-thread/PostThreadFollowBtn.tsx:125 msgid "Follow {0}" msgstr "Підписатися на {0}" +#: src/view/com/profile/ProfileMenu.tsx:242 +#: src/view/com/profile/ProfileMenu.tsx:253 +msgid "Follow Account" +msgstr "" + #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:179 msgid "Follow All" msgstr "Підписатися на всіх" @@ -1628,7 +1879,7 @@ msgstr "Підпишіться на обрані облікові записи msgid "Follow some users to get started. We can recommend you more users based on who you find interesting." msgstr "Підпишіться на кількох користувачів щоб почати їх читати. Ми зможемо порекомендувати вам більше користувачів, спираючись на те хто вас цікавить." -#: src/view/com/profile/ProfileCard.tsx:194 +#: src/view/com/profile/ProfileCard.tsx:216 msgid "Followed by {0}" msgstr "Підписані {0}" @@ -1640,33 +1891,39 @@ msgstr "Ваші підписки" msgid "Followed users only" msgstr "Тільки ваші підписки" -#: src/view/com/notifications/FeedItem.tsx:166 +#: src/view/com/notifications/FeedItem.tsx:170 msgid "followed you" msgstr "підписка на вас" +#: src/view/com/profile/ProfileFollowers.tsx:109 #: src/view/screens/ProfileFollowers.tsx:25 msgid "Followers" msgstr "Підписники" -#: src/view/com/post-thread/PostThreadFollowBtn.tsx:136 -#: src/view/com/profile/ProfileHeader.tsx:495 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:227 +#: src/view/com/post-thread/PostThreadFollowBtn.tsx:139 +#: src/view/com/profile/ProfileFollows.tsx:108 #: src/view/screens/ProfileFollows.tsx:25 msgid "Following" msgstr "Підписані" -#: src/view/com/profile/ProfileHeader.tsx:149 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:89 msgid "Following {0}" msgstr "Підписання на \"{0}\"" -#: src/Navigation.tsx:250 +#: src/view/screens/Settings/index.tsx:549 +msgid "Following feed preferences" +msgstr "" + +#: src/Navigation.tsx:262 #: src/view/com/home/HomeHeaderLayout.web.tsx:50 #: src/view/com/home/HomeHeaderLayoutMobile.tsx:84 #: src/view/screens/PreferencesFollowingFeed.tsx:104 -#: src/view/screens/Settings/index.tsx:543 +#: src/view/screens/Settings/index.tsx:558 msgid "Following Feed Preferences" msgstr "Налаштування стрічки підписок" -#: src/view/com/profile/ProfileHeader.tsx:546 +#: src/screens/Profile/Header/Handle.tsx:24 msgid "Follows you" msgstr "Підписаний(-на) на вас" @@ -1699,12 +1956,16 @@ msgstr "Забули пароль" msgid "Forgot Password" msgstr "Забули пароль" +#: src/lib/moderation/useReportOptions.ts:52 +msgid "Frequently Posts Unwanted Content" +msgstr "" + #: src/screens/Hashtag.tsx:108 #: src/screens/Hashtag.tsx:148 msgid "From @{sanitizedAuthor}" msgstr "Від @{sanitizedAuthor}" -#: src/view/com/posts/FeedItem.tsx:189 +#: src/view/com/posts/FeedItem.tsx:179 msgctxt "from-feed" msgid "From <0/>" msgstr "Зі стрічки \"<0/>\"" @@ -1718,27 +1979,46 @@ msgstr "Галерея" msgid "Get Started" msgstr "Почати" +#: src/lib/moderation/useReportOptions.ts:37 +msgid "Glaring violations of law or terms of service" +msgstr "" + +#: src/components/moderation/ScreenHider.tsx:144 +#: src/components/moderation/ScreenHider.tsx:153 #: src/view/com/auth/LoggedOut.tsx:81 #: src/view/com/auth/LoggedOut.tsx:82 -#: src/view/com/util/moderation/ScreenHider.tsx:123 -#: src/view/shell/desktop/LeftNav.tsx:104 +#: src/view/screens/NotFound.tsx:55 +#: src/view/screens/ProfileFeed.tsx:111 +#: src/view/screens/ProfileList.tsx:916 +#: src/view/shell/desktop/LeftNav.tsx:108 msgid "Go back" msgstr "Назад" -#: src/view/screens/ProfileFeed.tsx:106 -#: src/view/screens/ProfileFeed.tsx:111 -#: src/view/screens/ProfileList.tsx:902 -#: src/view/screens/ProfileList.tsx:907 +#: src/screens/Profile/ErrorState.tsx:62 +#: src/screens/Profile/ErrorState.tsx:66 +#: src/view/screens/NotFound.tsx:54 +#: src/view/screens/ProfileFeed.tsx:116 +#: src/view/screens/ProfileList.tsx:921 msgid "Go Back" msgstr "Назад" +#: src/components/ReportDialog/SelectReportOptionView.tsx:74 +#: src/components/ReportDialog/SubmitView.tsx:104 #: src/screens/Onboarding/Layout.tsx:104 #: src/screens/Onboarding/Layout.tsx:193 msgid "Go back to previous step" msgstr "Повернутися до попереднього кроку" -#: src/view/screens/Search/Search.tsx:747 -#: src/view/shell/desktop/Search.tsx:262 +#: src/view/screens/NotFound.tsx:55 +msgid "Go home" +msgstr "" + +#: src/view/screens/NotFound.tsx:54 +msgid "Go Home" +msgstr "" + +#: src/view/screens/Search/Search.tsx:748 +#: src/view/shell/desktop/Search.tsx:263 msgid "Go to @{queryMaybeHandle}" msgstr "Перейти до @{queryMaybeHandle}" @@ -1746,15 +2026,23 @@ msgstr "Перейти до @{queryMaybeHandle}" #: src/view/com/auth/login/ForgotPasswordForm.tsx:218 #: src/view/com/auth/login/LoginForm.tsx:288 #: src/view/com/auth/login/SetNewPasswordForm.tsx:195 -#: src/view/com/modals/ChangePassword.tsx:165 +#: src/view/com/modals/ChangePassword.tsx:167 msgid "Go to next" msgstr "Далі" +#: src/lib/moderation/useGlobalLabelStrings.ts:46 +msgid "Graphic Media" +msgstr "" + #: src/view/com/modals/ChangeHandle.tsx:265 msgid "Handle" msgstr "Псевдонім" -#: src/Navigation.tsx:270 +#: src/lib/moderation/useReportOptions.ts:32 +msgid "Harassment, trolling, or intolerance" +msgstr "" + +#: src/Navigation.tsx:282 msgid "Hashtag" msgstr "Хештег" @@ -1771,7 +2059,7 @@ msgid "Having trouble?" msgstr "Виникли проблеми?" #: src/view/shell/desktop/RightNav.tsx:90 -#: src/view/shell/Drawer.tsx:321 +#: src/view/shell/Drawer.tsx:324 msgid "Help" msgstr "Довідка" @@ -1791,40 +2079,45 @@ msgstr "Ось декілька тематичних стрічок на осн msgid "Here is your app password." msgstr "Це ваш пароль для застосунків." -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:41 -#: src/view/com/modals/ContentFilteringSettings.tsx:251 -#: src/view/com/util/moderation/ContentHider.tsx:105 -#: src/view/com/util/moderation/PostHider.tsx:108 +#: src/components/moderation/ContentHider.tsx:115 +#: src/components/moderation/GlobalModerationLabelPref.tsx:43 +#: src/components/moderation/PostHider.tsx:107 +#: src/lib/moderation/useLabelBehaviorDescription.ts:15 +#: src/lib/moderation/useLabelBehaviorDescription.ts:20 +#: src/lib/moderation/useLabelBehaviorDescription.ts:25 +#: src/lib/moderation/useLabelBehaviorDescription.ts:30 +#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:52 +#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:76 +#: src/view/com/util/forms/PostDropdownBtn.tsx:328 msgid "Hide" msgstr "Приховати" -#: src/view/com/modals/ContentFilteringSettings.tsx:224 -#: src/view/com/notifications/FeedItem.tsx:326 +#: src/view/com/notifications/FeedItem.tsx:329 msgctxt "action" msgid "Hide" msgstr "Сховати" #: src/view/com/util/forms/PostDropdownBtn.tsx:276 -#: src/view/com/util/forms/PostDropdownBtn.tsx:287 +#: src/view/com/util/forms/PostDropdownBtn.tsx:278 msgid "Hide post" msgstr "Сховати пост" -#: src/view/com/util/moderation/ContentHider.tsx:67 -#: src/view/com/util/moderation/PostHider.tsx:61 +#: src/components/moderation/ContentHider.tsx:67 +#: src/components/moderation/PostHider.tsx:64 msgid "Hide the content" msgstr "Приховати вміст" -#: src/view/com/util/forms/PostDropdownBtn.tsx:280 +#: src/view/com/util/forms/PostDropdownBtn.tsx:325 msgid "Hide this post?" msgstr "Сховати цей пост?" -#: src/view/com/notifications/FeedItem.tsx:316 +#: src/view/com/notifications/FeedItem.tsx:319 msgid "Hide user list" msgstr "Сховати список користувачів" #: src/view/com/profile/ProfileHeader.tsx:487 -msgid "Hides posts from {0} in your feed" -msgstr "Приховує пости з {0} у вашій стрічці" +#~ msgid "Hides posts from {0} in your feed" +#~ msgstr "Приховує пости з {0} у вашій стрічці" #: src/view/com/posts/FeedErrorMessage.tsx:111 msgid "Hmm, some kind of issue occurred when contacting the feed server. Please let the feed owner know about this issue." @@ -1846,11 +2139,19 @@ msgstr "Хм, сервер стрічки надіслав нам незрозу msgid "Hmm, we're having trouble finding this feed. It may have been deleted." msgstr "Хм, ми не можемо знайти цю стрічку. Можливо вона була видалена." -#: src/Navigation.tsx:442 -#: src/view/shell/bottom-bar/BottomBar.tsx:137 -#: src/view/shell/desktop/LeftNav.tsx:306 -#: src/view/shell/Drawer.tsx:398 -#: src/view/shell/Drawer.tsx:399 +#: src/screens/Moderation/index.tsx:61 +msgid "Hmmmm, it seems we're having trouble loading this data. See below for more details. If this issue persists, please contact us." +msgstr "" + +#: src/screens/Profile/ErrorState.tsx:31 +msgid "Hmmmm, we couldn't load that moderation service." +msgstr "" + +#: src/Navigation.tsx:454 +#: src/view/shell/bottom-bar/BottomBar.tsx:139 +#: src/view/shell/desktop/LeftNav.tsx:310 +#: src/view/shell/Drawer.tsx:401 +#: src/view/shell/Drawer.tsx:402 msgid "Home" msgstr "Головна" @@ -1861,8 +2162,13 @@ msgstr "Головна" #~ msgid "Home Feed Preferences" #~ msgstr "" +#: src/view/com/modals/ChangeHandle.tsx:421 +msgid "Host:" +msgstr "" + #: src/view/com/auth/create/Step1.tsx:75 #: src/view/com/auth/login/ForgotPasswordForm.tsx:120 +#: src/view/com/modals/ChangeHandle.tsx:280 msgid "Hosting provider" msgstr "Хостинг-провайдер" @@ -1882,7 +2188,7 @@ msgstr "У мене є код підтвердження" msgid "I have my own domain" msgstr "Я маю власний домен" -#: src/view/com/lightbox/Lightbox.web.tsx:165 +#: src/view/com/lightbox/Lightbox.web.tsx:185 msgid "If alt text is long, toggles alt text expanded state" msgstr "Розкриває альтернативний текст, якщо текст задовгий" @@ -1890,10 +2196,26 @@ msgstr "Розкриває альтернативний текст, якщо т msgid "If none are selected, suitable for all ages." msgstr "Якщо не вибрано жодного варіанту - підходить для всіх." -#: src/view/com/modals/ChangePassword.tsx:146 +#: src/view/com/auth/create/Policies.tsx:91 +msgid "If you are not yet an adult according to the laws of your country, your parent or legal guardian must read these Terms on your behalf." +msgstr "" + +#: src/view/screens/ProfileList.tsx:610 +msgid "If you delete this list, you won't be able to recover it." +msgstr "" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:316 +msgid "If you remove this post, you won't be able to recover it." +msgstr "" + +#: src/view/com/modals/ChangePassword.tsx:148 msgid "If you want to change your password, we will send you a code to verify that this is your account." msgstr "Якщо ви хочете змінити пароль, ми надішлемо вам код, щоб переконатися, що це ваш обліковий запис." +#: src/lib/moderation/useReportOptions.ts:36 +msgid "Illegal and Urgent" +msgstr "" + #: src/view/com/util/images/Gallery.tsx:38 msgid "Image" msgstr "Зображення" @@ -1904,8 +2226,12 @@ msgstr "Опис зображення" #: src/view/com/util/UserAvatar.tsx:311 #: src/view/com/util/UserBanner.tsx:118 -msgid "Image options" -msgstr "Редагування зображення" +#~ msgid "Image options" +#~ msgstr "Редагування зображення" + +#: src/lib/moderation/useReportOptions.ts:47 +msgid "Impersonation or false claims about identity or affiliation" +msgstr "" #: src/view/com/auth/login/SetNewPasswordForm.tsx:138 msgid "Input code sent to your email for password reset" @@ -1959,11 +2285,15 @@ msgstr "Введіть псевдонім або ел. адресу, які ви msgid "Input your password" msgstr "Введіть ваш пароль" +#: src/view/com/modals/ChangeHandle.tsx:390 +msgid "Input your preferred hosting provider" +msgstr "" + #: src/view/com/auth/create/Step2.tsx:80 msgid "Input your user handle" msgstr "Введіть ваш псевдонім" -#: src/view/com/post-thread/PostThreadItem.tsx:226 +#: src/view/com/post-thread/PostThreadItem.tsx:221 msgid "Invalid or unsupported post record" msgstr "Невірний або непідтримуваний пост" @@ -2004,7 +2334,7 @@ msgstr "Коди запрошення: 1" msgid "It shows posts from the people you follow as they happen." msgstr "Ми показуємо пости людей, за якими ви слідкуєте в тому порядку в якому вони публікуються." -#: src/view/com/auth/HomeLoggedOutCTA.tsx:99 +#: src/view/com/auth/HomeLoggedOutCTA.tsx:103 #: src/view/com/auth/SplashScreen.web.tsx:138 msgid "Jobs" msgstr "Вакансії" @@ -2026,20 +2356,52 @@ msgstr "Вакансії" msgid "Journalism" msgstr "Журналістика" +#: src/components/moderation/LabelsOnMe.tsx:59 +msgid "label has been placed on this {labelTarget}" +msgstr "" + +#: src/components/moderation/ContentHider.tsx:144 +msgid "Labeled by {0}." +msgstr "" + +#: src/components/moderation/ContentHider.tsx:142 +msgid "Labeled by the author." +msgstr "" + +#: src/view/screens/Profile.tsx:186 +msgid "Labels" +msgstr "" + +#: src/screens/Profile/Sections/Labels.tsx:143 +msgid "Labels are annotations on users and content. They can be used to hide, warn, and categorize the network." +msgstr "" + +#: src/components/moderation/LabelsOnMe.tsx:61 +msgid "labels have been placed on this {labelTarget}" +msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:63 +msgid "Labels on your account" +msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:65 +msgid "Labels on your content" +msgstr "" + #: src/view/com/composer/select-language/SelectLangBtn.tsx:104 msgid "Language selection" msgstr "Вибір мови" -#: src/view/screens/Settings/index.tsx:594 +#: src/view/screens/Settings/index.tsx:610 msgid "Language settings" msgstr "Налаштування мови" -#: src/Navigation.tsx:142 +#: src/Navigation.tsx:144 #: src/view/screens/LanguageSettings.tsx:89 msgid "Language Settings" msgstr "Налаштування мов" -#: src/view/screens/Settings/index.tsx:603 +#: src/view/screens/Settings/index.tsx:619 msgid "Languages" msgstr "Мови" @@ -2048,27 +2410,31 @@ msgid "Last step!" msgstr "Останній крок!" #: src/view/com/util/moderation/ContentHider.tsx:103 -msgid "Learn more" -msgstr "Дізнатися більше" +#~ msgid "Learn more" +#~ msgstr "Дізнатися більше" -#: src/view/com/util/moderation/PostAlerts.tsx:47 -#: src/view/com/util/moderation/ProfileHeaderAlerts.tsx:65 -#: src/view/com/util/moderation/ScreenHider.tsx:104 +#: src/components/moderation/ScreenHider.tsx:129 msgid "Learn More" msgstr "Дізнатися більше" -#: src/view/com/util/moderation/ContentHider.tsx:85 -#: src/view/com/util/moderation/PostAlerts.tsx:40 -#: src/view/com/util/moderation/PostHider.tsx:78 -#: src/view/com/util/moderation/ProfileHeaderAlerts.tsx:49 -#: src/view/com/util/moderation/ScreenHider.tsx:101 +#: src/components/moderation/ContentHider.tsx:65 +#: src/components/moderation/ContentHider.tsx:128 +msgid "Learn more about the moderation applied to this content." +msgstr "" + +#: src/components/moderation/PostHider.tsx:85 +#: src/components/moderation/ScreenHider.tsx:126 msgid "Learn more about this warning" msgstr "Дізнатися більше про це попередження" -#: src/view/screens/Moderation.tsx:262 +#: src/screens/Moderation/index.tsx:551 msgid "Learn more about what is public on Bluesky." msgstr "Дізнатися більше про те, що є публічним в Bluesky." +#: src/components/moderation/ContentHider.tsx:152 +msgid "Learn more." +msgstr "" + #: src/view/com/modals/lang-settings/ContentLanguagesSettings.tsx:82 msgid "Leave them all unchecked to see any language." msgstr "Залиште їх усі невідміченими, щоб бачити пости незалежно від мови." @@ -2081,7 +2447,7 @@ msgstr "Ви залишаєте Bluesky" msgid "left to go." msgstr "ще залишилося." -#: src/view/screens/Settings/index.tsx:278 +#: src/view/screens/Settings/index.tsx:292 msgid "Legacy storage cleared, you need to restart the app now." msgstr "Старе сховище очищено, тепер вам потрібно перезапустити застосунок." @@ -2096,55 +2462,65 @@ msgstr "Злітаємо!" #: src/view/com/util/UserAvatar.tsx:248 #: src/view/com/util/UserBanner.tsx:62 -msgid "Library" -msgstr "Галерея" +#~ msgid "Library" +#~ msgstr "Галерея" -#: src/view/screens/Settings/index.tsx:479 +#: src/view/screens/Settings/index.tsx:494 msgid "Light" msgstr "Світла" -#: src/view/com/util/post-ctrls/PostCtrls.tsx:182 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:185 msgid "Like" msgstr "Вподобати" -#: src/view/screens/ProfileFeed.tsx:591 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:257 +#: src/view/screens/ProfileFeed.tsx:572 msgid "Like this feed" msgstr "Вподобати цю стрічку" -#: src/Navigation.tsx:199 +#: src/components/LikesDialog.tsx:87 +#: src/Navigation.tsx:201 +#: src/Navigation.tsx:206 msgid "Liked by" msgstr "Сподобалося" +#: src/screens/Profile/ProfileLabelerLikedBy.tsx:42 #: src/view/screens/PostLikedBy.tsx:27 #: src/view/screens/ProfileFeedLikedBy.tsx:27 msgid "Liked By" msgstr "Сподобався користувачу" -#: src/view/com/feeds/FeedSourceCard.tsx:279 +#: src/view/com/feeds/FeedSourceCard.tsx:268 msgid "Liked by {0} {1}" msgstr "Вподобано {0} {1}" -#: src/view/screens/ProfileFeed.tsx:606 +#: src/components/LabelingServiceCard/index.tsx:72 +msgid "Liked by {count} {0}" +msgstr "" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:277 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:291 +#: src/view/screens/ProfileFeed.tsx:587 msgid "Liked by {likeCount} {0}" msgstr "Вподобано {likeCount} {0}" -#: src/view/com/notifications/FeedItem.tsx:170 +#: src/view/com/notifications/FeedItem.tsx:174 msgid "liked your custom feed" msgstr "вподобав(-ла) вашу стрічку" -#: src/view/com/notifications/FeedItem.tsx:155 +#: src/view/com/notifications/FeedItem.tsx:159 msgid "liked your post" msgstr "сподобався ваш пост" -#: src/view/screens/Profile.tsx:183 +#: src/view/screens/Profile.tsx:191 msgid "Likes" msgstr "Вподобання" -#: src/view/com/post-thread/PostThreadItem.tsx:183 +#: src/view/com/post-thread/PostThreadItem.tsx:182 msgid "Likes on this post" msgstr "Вподобайки цього поста" -#: src/Navigation.tsx:168 +#: src/Navigation.tsx:170 msgid "List" msgstr "Список" @@ -2152,15 +2528,15 @@ msgstr "Список" msgid "List Avatar" msgstr "Аватар списку" -#: src/view/screens/ProfileList.tsx:324 +#: src/view/screens/ProfileList.tsx:311 msgid "List blocked" msgstr "Список заблоковано" -#: src/view/com/feeds/FeedSourceCard.tsx:233 +#: src/view/com/feeds/FeedSourceCard.tsx:220 msgid "List by {0}" msgstr "Список від {0}" -#: src/view/screens/ProfileList.tsx:378 +#: src/view/screens/ProfileList.tsx:355 msgid "List deleted" msgstr "Список видалено" @@ -2172,39 +2548,40 @@ msgstr "Список ігнорується" msgid "List Name" msgstr "Назва списку" -#: src/view/screens/ProfileList.tsx:343 +#: src/view/screens/ProfileList.tsx:325 msgid "List unblocked" msgstr "Список розблоковано" -#: src/view/screens/ProfileList.tsx:302 +#: src/view/screens/ProfileList.tsx:297 msgid "List unmuted" msgstr "Список більше не ігнорується" -#: src/Navigation.tsx:112 -#: src/view/screens/Profile.tsx:185 -#: src/view/shell/desktop/LeftNav.tsx:379 -#: src/view/shell/Drawer.tsx:492 -#: src/view/shell/Drawer.tsx:493 +#: src/Navigation.tsx:114 +#: src/view/screens/Profile.tsx:187 +#: src/view/screens/Profile.tsx:193 +#: src/view/shell/desktop/LeftNav.tsx:383 +#: src/view/shell/Drawer.tsx:495 +#: src/view/shell/Drawer.tsx:496 msgid "Lists" msgstr "Списки" #: src/view/com/post-thread/PostThread.tsx:333 #: src/view/com/post-thread/PostThread.tsx:341 -msgid "Load more posts" -msgstr "Завантажити більше постів" +#~ msgid "Load more posts" +#~ msgstr "Завантажити більше постів" #: src/view/screens/Notifications.tsx:159 msgid "Load new notifications" msgstr "Завантажити нові сповіщення" -#: src/view/com/feeds/FeedPage.tsx:115 -#: src/view/screens/Profile.tsx:440 +#: src/screens/Profile/Sections/Feed.tsx:70 +#: src/view/com/feeds/FeedPage.tsx:124 #: src/view/screens/ProfileFeed.tsx:495 -#: src/view/screens/ProfileList.tsx:681 +#: src/view/screens/ProfileList.tsx:695 msgid "Load new posts" msgstr "Завантажити нові пости" -#: src/view/com/composer/text-input/mobile/Autocomplete.tsx:95 +#: src/view/com/composer/text-input/mobile/Autocomplete.tsx:99 msgid "Loading..." msgstr "Завантаження..." @@ -2212,7 +2589,7 @@ msgstr "Завантаження..." #~ msgid "Local dev server" #~ msgstr "" -#: src/Navigation.tsx:209 +#: src/Navigation.tsx:221 msgid "Log" msgstr "Звіт" @@ -2223,11 +2600,11 @@ msgstr "Звіт" msgid "Log out" msgstr "Вийти" -#: src/view/screens/Moderation.tsx:155 +#: src/screens/Moderation/index.tsx:444 msgid "Logged-out visibility" msgstr "Видимість для користувачів без облікового запису" -#: src/view/com/auth/login/ChooseAccountForm.tsx:133 +#: src/view/com/auth/login/ChooseAccountForm.tsx:137 msgid "Login to account that is not listed" msgstr "Увійти до облікового запису, якого немає в списку" @@ -2247,7 +2624,7 @@ msgstr "Не може бути довшим за 253 символи" msgid "May only contain letters and numbers" msgstr "Може містити лише літери та цифри" -#: src/view/screens/Profile.tsx:182 +#: src/view/screens/Profile.tsx:190 msgid "Media" msgstr "Медіа" @@ -2260,35 +2637,43 @@ msgid "Mentioned users" msgstr "Згадані користувачі" #: src/view/com/util/ViewHeader.tsx:87 -#: src/view/screens/Search/Search.tsx:646 +#: src/view/screens/Search/Search.tsx:647 msgid "Menu" msgstr "Меню" -#: src/view/com/posts/FeedErrorMessage.tsx:197 +#: src/view/com/posts/FeedErrorMessage.tsx:192 msgid "Message from server: {0}" msgstr "Повідомлення від сервера: {0}" -#: src/Navigation.tsx:117 -#: src/view/screens/Moderation.tsx:66 -#: src/view/screens/Settings/index.tsx:625 -#: src/view/shell/desktop/LeftNav.tsx:397 -#: src/view/shell/Drawer.tsx:511 -#: src/view/shell/Drawer.tsx:512 +#: src/lib/moderation/useReportOptions.ts:45 +msgid "Misleading Account" +msgstr "" + +#: src/Navigation.tsx:119 +#: src/screens/Moderation/index.tsx:106 +#: src/view/screens/Settings/index.tsx:641 +#: src/view/shell/desktop/LeftNav.tsx:401 +#: src/view/shell/Drawer.tsx:514 +#: src/view/shell/Drawer.tsx:515 msgid "Moderation" msgstr "Модерація" +#: src/components/moderation/ModerationDetailsDialog.tsx:113 +msgid "Moderation details" +msgstr "" + #: src/view/com/lists/ListCard.tsx:93 #: src/view/com/modals/UserAddRemoveLists.tsx:206 msgid "Moderation list by {0}" msgstr "Список модерації від {0}" -#: src/view/screens/ProfileList.tsx:775 +#: src/view/screens/ProfileList.tsx:789 msgid "Moderation list by <0/>" msgstr "Список модерації від <0/>" #: src/view/com/lists/ListCard.tsx:91 #: src/view/com/modals/UserAddRemoveLists.tsx:204 -#: src/view/screens/ProfileList.tsx:773 +#: src/view/screens/ProfileList.tsx:787 msgid "Moderation list by you" msgstr "Список модерації від вас" @@ -2300,30 +2685,41 @@ msgstr "Список модерації створено" msgid "Moderation list updated" msgstr "Список модерації оновлено" -#: src/view/screens/Moderation.tsx:114 +#: src/screens/Moderation/index.tsx:245 msgid "Moderation lists" msgstr "Списки для модерації" -#: src/Navigation.tsx:122 +#: src/Navigation.tsx:124 #: src/view/screens/ModerationModlists.tsx:58 msgid "Moderation Lists" msgstr "Списки для модерації" -#: src/view/screens/Settings/index.tsx:619 +#: src/view/screens/Settings/index.tsx:635 msgid "Moderation settings" msgstr "Налаштування модерації" -#: src/view/com/modals/ModerationDetails.tsx:35 +#: src/Navigation.tsx:216 +msgid "Moderation states" +msgstr "" + +#: src/screens/Moderation/index.tsx:217 +msgid "Moderation tools" +msgstr "" + +#: src/components/moderation/ModerationDetailsDialog.tsx:49 +#: src/lib/moderation/useModerationCauseDescription.ts:40 msgid "Moderator has chosen to set a general warning on the content." msgstr "Модератор вирішив встановити загальне попередження на вміст." +#: src/view/com/post-thread/PostThreadItem.tsx:541 +msgid "More" +msgstr "" + #: src/view/shell/desktop/Feeds.tsx:65 msgid "More feeds" msgstr "Більше стрічок" -#: src/view/com/profile/ProfileHeader.tsx:523 -#: src/view/screens/ProfileFeed.tsx:363 -#: src/view/screens/ProfileList.tsx:617 +#: src/view/screens/ProfileList.tsx:599 msgid "More options" msgstr "Додаткові опції" @@ -2347,11 +2743,12 @@ msgstr "Ігнорувати" msgid "Mute {truncatedTag}" msgstr "Ігнорувати {truncatedTag}" -#: src/view/com/profile/ProfileHeader.tsx:327 +#: src/view/com/profile/ProfileMenu.tsx:279 +#: src/view/com/profile/ProfileMenu.tsx:286 msgid "Mute Account" msgstr "Ігнорувати обліковий запис" -#: src/view/screens/ProfileList.tsx:544 +#: src/view/screens/ProfileList.tsx:518 msgid "Mute accounts" msgstr "Ігнорувати облікові записи" @@ -2371,17 +2768,18 @@ msgstr "Ігнорувати лише в тегах" msgid "Mute in text & tags" msgstr "Ігнорувати в тексті та тегах" -#: src/view/screens/ProfileList.tsx:491 +#: src/view/screens/ProfileList.tsx:461 +#: src/view/screens/ProfileList.tsx:624 msgid "Mute list" msgstr "Ігнорувати список" -#: src/view/screens/ProfileList.tsx:275 +#: src/view/screens/ProfileList.tsx:619 msgid "Mute these accounts?" msgstr "Ігнорувати ці облікові записи?" #: src/view/screens/ProfileList.tsx:279 -msgid "Mute this List" -msgstr "Ігнорувати цей список" +#~ msgid "Mute this List" +#~ msgstr "Ігнорувати цей список" #: src/components/dialogs/MutedWords.tsx:127 msgid "Mute this word in post text and tags" @@ -2405,11 +2803,11 @@ msgstr "Ігнорувати слова та теги" msgid "Muted" msgstr "Ігнорується" -#: src/view/screens/Moderation.tsx:128 +#: src/screens/Moderation/index.tsx:257 msgid "Muted accounts" msgstr "Ігноровані облікові записи" -#: src/Navigation.tsx:127 +#: src/Navigation.tsx:129 #: src/view/screens/ModerationMutedAccounts.tsx:107 msgid "Muted Accounts" msgstr "Ігноровані облікові записи" @@ -2418,15 +2816,20 @@ msgstr "Ігноровані облікові записи" msgid "Muted accounts have their posts removed from your feed and from your notifications. Mutes are completely private." msgstr "Ігноровані облікові записи автоматично вилучаються із вашої стрічки та сповіщень. Ігнорування є повністю приватним." -#: src/view/screens/Moderation.tsx:100 +#: src/lib/moderation/useModerationCauseDescription.ts:85 +msgid "Muted by \"{0}\"" +msgstr "" + +#: src/screens/Moderation/index.tsx:233 msgid "Muted words & tags" msgstr "Ігноровані слова та теги" -#: src/view/screens/ProfileList.tsx:277 +#: src/view/screens/ProfileList.tsx:621 msgid "Muting is private. Muted accounts can interact with you, but you will not see their posts or receive notifications from them." msgstr "Ігнорування є приватним. Ігноровані користувачі можуть взаємодіяти з вами, але ви не бачитимете їх пости і не отримуватимете від них сповіщень." -#: src/view/com/modals/BirthDateSettings.tsx:56 +#: src/components/dialogs/BirthDateSettings.tsx:35 +#: src/components/dialogs/BirthDateSettings.tsx:38 msgid "My Birthday" msgstr "Мій день народження" @@ -2438,13 +2841,17 @@ msgstr "Мої стрічки" msgid "My Profile" msgstr "Мій профіль" -#: src/view/screens/Settings/index.tsx:582 +#: src/view/screens/Settings/index.tsx:592 +msgid "My saved feeds" +msgstr "" + +#: src/view/screens/Settings/index.tsx:598 msgid "My Saved Feeds" msgstr "Мої збережені канали" #: src/view/com/auth/server-input/index.tsx:118 -msgid "my-server.com" -msgstr "my-server.com" +#~ msgid "my-server.com" +#~ msgstr "my-server.com" #: src/view/com/modals/AddAppPasswords.tsx:179 #: src/view/com/modals/CreateOrEditList.tsx:290 @@ -2455,6 +2862,12 @@ msgstr "Ім'я" msgid "Name is required" msgstr "Необхідна назва" +#: src/lib/moderation/useReportOptions.ts:57 +#: src/lib/moderation/useReportOptions.ts:78 +#: src/lib/moderation/useReportOptions.ts:86 +msgid "Name or Description Violates Community Standards" +msgstr "" + #: src/screens/Onboarding/index.tsx:25 msgid "Nature" msgstr "Природа" @@ -2463,7 +2876,7 @@ msgstr "Природа" #: src/view/com/auth/login/ForgotPasswordForm.tsx:219 #: src/view/com/auth/login/LoginForm.tsx:289 #: src/view/com/auth/login/SetNewPasswordForm.tsx:196 -#: src/view/com/modals/ChangePassword.tsx:166 +#: src/view/com/modals/ChangePassword.tsx:168 msgid "Navigates to the next screen" msgstr "Переходить до наступного екрана" @@ -2471,13 +2884,17 @@ msgstr "Переходить до наступного екрана" msgid "Navigates to your profile" msgstr "Переходить до вашого профілю" +#: src/components/ReportDialog/SelectReportOptionView.tsx:124 +msgid "Need to report a copyright violation?" +msgstr "" + #: src/view/com/modals/EmbedConsent.tsx:107 #: src/view/com/modals/EmbedConsent.tsx:123 msgid "Never load embeds from {0}" msgstr "Не завантажувати вбудування з {0}" #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:72 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:72 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:74 msgid "Never lose access to your followers and data." msgstr "Ніколи не втрачайте доступ до ваших даних та підписників." @@ -2486,8 +2903,12 @@ msgid "Never lose access to your followers or data." msgstr "Ніколи не втрачайте доступ до ваших підписників та даних." #: src/components/dialogs/MutedWords.tsx:293 -msgid "Nevermind" -msgstr "Скасувати" +#~ msgid "Nevermind" +#~ msgstr "Скасувати" + +#: src/view/com/modals/ChangeHandle.tsx:520 +msgid "Nevermind, create a handle for me" +msgstr "" #: src/view/screens/Lists.tsx:76 msgctxt "action" @@ -2503,29 +2924,30 @@ msgid "New Moderation List" msgstr "Новий список модерації" #: src/view/com/auth/login/SetNewPasswordForm.tsx:150 +#: src/view/com/modals/ChangePassword.tsx:212 msgid "New password" msgstr "Новий пароль" -#: src/view/com/modals/ChangePassword.tsx:215 +#: src/view/com/modals/ChangePassword.tsx:217 msgid "New Password" msgstr "Новий Пароль" -#: src/view/com/feeds/FeedPage.tsx:126 +#: src/view/com/feeds/FeedPage.tsx:135 msgctxt "action" msgid "New post" msgstr "Новий пост" #: src/view/screens/Feeds.tsx:555 #: src/view/screens/Notifications.tsx:168 -#: src/view/screens/Profile.tsx:382 +#: src/view/screens/Profile.tsx:450 #: src/view/screens/ProfileFeed.tsx:433 -#: src/view/screens/ProfileList.tsx:196 -#: src/view/screens/ProfileList.tsx:224 -#: src/view/shell/desktop/LeftNav.tsx:248 +#: src/view/screens/ProfileList.tsx:199 +#: src/view/screens/ProfileList.tsx:227 +#: src/view/shell/desktop/LeftNav.tsx:252 msgid "New post" msgstr "Новий пост" -#: src/view/shell/desktop/LeftNav.tsx:258 +#: src/view/shell/desktop/LeftNav.tsx:262 msgctxt "action" msgid "New Post" msgstr "Новий пост" @@ -2549,8 +2971,8 @@ msgstr "Новини" #: src/view/com/auth/login/SetNewPasswordForm.tsx:187 #: src/view/com/auth/login/SetNewPasswordForm.tsx:198 #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:79 -#: src/view/com/modals/ChangePassword.tsx:251 #: src/view/com/modals/ChangePassword.tsx:253 +#: src/view/com/modals/ChangePassword.tsx:255 msgid "Next" msgstr "Далі" @@ -2559,7 +2981,7 @@ msgctxt "action" msgid "Next" msgstr "Далі" -#: src/view/com/lightbox/Lightbox.web.tsx:149 +#: src/view/com/lightbox/Lightbox.web.tsx:169 msgid "Next image" msgstr "Наступне зображення" @@ -2572,12 +2994,16 @@ msgstr "Наступне зображення" msgid "No" msgstr "Ні" -#: src/view/screens/ProfileFeed.tsx:584 -#: src/view/screens/ProfileList.tsx:755 +#: src/view/screens/ProfileFeed.tsx:561 +#: src/view/screens/ProfileList.tsx:769 msgid "No description" msgstr "Опис відсутній" -#: src/view/com/profile/ProfileHeader.tsx:170 +#: src/view/com/modals/ChangeHandle.tsx:406 +msgid "No DNS Panel" +msgstr "" + +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:111 msgid "No longer following {0}" msgstr "Ви більше не підписані на {0}" @@ -2585,12 +3011,12 @@ msgstr "Ви більше не підписані на {0}" msgid "No notifications yet!" msgstr "Ще ніяких сповіщень!" -#: src/view/com/composer/text-input/mobile/Autocomplete.tsx:97 -#: src/view/com/composer/text-input/web/Autocomplete.tsx:191 +#: src/view/com/composer/text-input/mobile/Autocomplete.tsx:101 +#: src/view/com/composer/text-input/web/Autocomplete.tsx:195 msgid "No result" msgstr "Результати відсутні" -#: src/components/Lists.tsx:192 +#: src/components/Lists.tsx:189 msgid "No results found" msgstr "Нічого не знайдено" @@ -2599,8 +3025,8 @@ msgid "No results found for \"{query}\"" msgstr "Нічого не знайдено за запитом «{query}»" #: src/view/com/modals/ListAddRemoveUsers.tsx:127 -#: src/view/screens/Search/Search.tsx:281 -#: src/view/screens/Search/Search.tsx:309 +#: src/view/screens/Search/Search.tsx:282 +#: src/view/screens/Search/Search.tsx:310 msgid "No results found for {query}" msgstr "Нічого не знайдено за запитом «{query}»" @@ -2612,12 +3038,21 @@ msgstr "Ні, дякую" msgid "Nobody" msgstr "Ніхто" +#: src/components/LikedByList.tsx:102 +#: src/components/LikesDialog.tsx:99 +msgid "Nobody has liked this yet. Maybe you should be the first!" +msgstr "" + +#: src/lib/moderation/useGlobalLabelStrings.ts:42 +msgid "Non-sexual Nudity" +msgstr "" + #: src/view/com/modals/SelfLabel.tsx:135 msgid "Not Applicable." msgstr "Не застосовно." -#: src/Navigation.tsx:107 -#: src/view/screens/Profile.tsx:106 +#: src/Navigation.tsx:109 +#: src/view/screens/Profile.tsx:97 msgid "Not Found" msgstr "Не знайдено" @@ -2626,17 +3061,22 @@ msgstr "Не знайдено" msgid "Not right now" msgstr "Пізніше" -#: src/view/screens/Moderation.tsx:252 +#: src/view/com/profile/ProfileMenu.tsx:368 +#: src/view/com/util/forms/PostDropdownBtn.tsx:342 +msgid "Note about sharing" +msgstr "" + +#: src/screens/Moderation/index.tsx:542 msgid "Note: Bluesky is an open and public network. This setting only limits the visibility of your content on the Bluesky app and website, and other apps may not respect this setting. Your content may still be shown to logged-out users by other apps and websites." msgstr "Примітка: Bluesky є відкритою і публічною мережею. Цей параметр обмежує видимість вашого вмісту лише у застосунках і на сайті Bluesky, але інші застосунки можуть цього не дотримуватися. Ваш вміст все ще може бути показаний відвідувачам без облікового запису іншими застосунками і вебсайтами." -#: src/Navigation.tsx:457 +#: src/Navigation.tsx:469 #: src/view/screens/Notifications.tsx:124 #: src/view/screens/Notifications.tsx:148 -#: src/view/shell/bottom-bar/BottomBar.tsx:205 -#: src/view/shell/desktop/LeftNav.tsx:361 -#: src/view/shell/Drawer.tsx:435 -#: src/view/shell/Drawer.tsx:436 +#: src/view/shell/bottom-bar/BottomBar.tsx:207 +#: src/view/shell/desktop/LeftNav.tsx:365 +#: src/view/shell/Drawer.tsx:438 +#: src/view/shell/Drawer.tsx:439 msgid "Notifications" msgstr "Сповіщення" @@ -2644,7 +3084,15 @@ msgstr "Сповіщення" msgid "Nudity" msgstr "Оголеність" -#: src/view/com/util/ErrorBoundary.tsx:35 +#: src/lib/moderation/useReportOptions.ts:71 +msgid "Nudity or pornography not labeled as such" +msgstr "" + +#: src/lib/moderation/useLabelBehaviorDescription.ts:11 +msgid "Off" +msgstr "" + +#: src/view/com/util/ErrorBoundary.tsx:49 msgid "Oh no!" msgstr "О, ні!" @@ -2652,6 +3100,10 @@ msgstr "О, ні!" msgid "Oh no! Something went wrong." msgstr "Ой! Щось пішло не так." +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:127 +msgid "OK" +msgstr "" + #: src/view/com/auth/login/PasswordUpdatedForm.tsx:41 msgid "Okay" msgstr "Добре" @@ -2660,11 +3112,11 @@ msgstr "Добре" msgid "Oldest replies first" msgstr "Спочатку найдавніші" -#: src/view/screens/Settings/index.tsx:234 +#: src/view/screens/Settings/index.tsx:240 msgid "Onboarding reset" msgstr "Скинути ознайомлення" -#: src/view/com/composer/Composer.tsx:382 +#: src/view/com/composer/Composer.tsx:391 msgid "One or more images is missing alt text." msgstr "Для одного або кількох зображень відсутній опис." @@ -2672,13 +3124,13 @@ msgstr "Для одного або кількох зображень відсу msgid "Only {0} can reply." msgstr "Тільки {0} можуть відповідати." -#: src/components/Lists.tsx:82 +#: src/components/Lists.tsx:83 msgid "Oops, something went wrong!" msgstr "Ой, щось пішло не так!" -#: src/components/Lists.tsx:188 -#: src/view/screens/AppPasswords.tsx:65 -#: src/view/screens/Profile.tsx:106 +#: src/components/Lists.tsx:157 +#: src/view/screens/AppPasswords.tsx:67 +#: src/view/screens/Profile.tsx:97 msgid "Oops!" msgstr "Ой!" @@ -2687,34 +3139,47 @@ msgid "Open" msgstr "Відкрити" #: src/view/screens/Moderation.tsx:75 -msgid "Open content filtering settings" -msgstr "Відкрити налаштування фільтрації контенту" +#~ msgid "Open content filtering settings" +#~ msgstr "Відкрити налаштування фільтрації контенту" -#: src/view/com/composer/Composer.tsx:477 -#: src/view/com/composer/Composer.tsx:478 +#: src/view/com/composer/Composer.tsx:490 +#: src/view/com/composer/Composer.tsx:491 msgid "Open emoji picker" msgstr "Емоджі" -#: src/view/screens/Settings/index.tsx:712 -msgid "Open links with in-app browser" +#: src/view/screens/ProfileFeed.tsx:299 +msgid "Open feed options menu" +msgstr "" + +#: src/view/screens/Settings/index.tsx:730 +msgid "Open links with in-app browser" msgstr "Вбудований браузер" +#: src/screens/Moderation/index.tsx:229 +msgid "Open muted words and tags settings" +msgstr "" + #: src/view/screens/Moderation.tsx:92 -msgid "Open muted words settings" -msgstr "Відкрити налаштування ігнорування слів" +#~ msgid "Open muted words settings" +#~ msgstr "Відкрити налаштування ігнорування слів" #: src/view/com/home/HomeHeaderLayoutMobile.tsx:50 msgid "Open navigation" msgstr "Відкрити навігацію" -#: src/view/com/util/forms/PostDropdownBtn.tsx:175 +#: src/view/com/util/forms/PostDropdownBtn.tsx:183 msgid "Open post options menu" msgstr "Відкрити меню налаштувань посту" -#: src/view/screens/Settings/index.tsx:804 +#: src/view/screens/Settings/index.tsx:824 +#: src/view/screens/Settings/index.tsx:834 msgid "Open storybook page" msgstr "Відкрити storybook сторінку" +#: src/view/screens/Settings/index.tsx:812 +msgid "Open system log" +msgstr "" + #: src/view/com/util/forms/DropdownButton.tsx:154 msgid "Opens {numItems} options" msgstr "Відкриває меню з {numItems} опціями" @@ -2723,11 +3188,11 @@ msgstr "Відкриває меню з {numItems} опціями" msgid "Opens additional details for a debug entry" msgstr "Відкриває додаткову інформацію про запис для налагодження" -#: src/view/com/notifications/FeedItem.tsx:349 +#: src/view/com/notifications/FeedItem.tsx:353 msgid "Opens an expanded list of users in this notification" msgstr "Відкрити розширений список користувачів у цьому сповіщенні" -#: src/view/com/composer/photos/OpenCameraBtn.tsx:61 +#: src/view/com/composer/photos/OpenCameraBtn.tsx:78 msgid "Opens camera on device" msgstr "Відкриває камеру на пристрої" @@ -2735,7 +3200,7 @@ msgstr "Відкриває камеру на пристрої" msgid "Opens composer" msgstr "Відкрити редактор" -#: src/view/screens/Settings/index.tsx:595 +#: src/view/screens/Settings/index.tsx:611 msgid "Opens configurable language settings" msgstr "Відкриває налаштування мов" @@ -2744,20 +3209,30 @@ msgid "Opens device photo gallery" msgstr "Відкриває фотогалерею пристрою" #: src/view/com/profile/ProfileHeader.tsx:420 -msgid "Opens editor for profile display name, avatar, background image, and description" -msgstr "Відкриває редактор для назви профілю, аватара, фонового зображення та опису" +#~ msgid "Opens editor for profile display name, avatar, background image, and description" +#~ msgstr "Відкриває редактор для назви профілю, аватара, фонового зображення та опису" -#: src/view/screens/Settings/index.tsx:649 +#: src/view/screens/Settings/index.tsx:665 msgid "Opens external embeds settings" msgstr "Відкриває налаштування зовнішніх вбудувань" +#: src/view/com/auth/HomeLoggedOutCTA.tsx:56 +#: src/view/com/auth/SplashScreen.tsx:70 +msgid "Opens flow to create a new Bluesky account" +msgstr "" + +#: src/view/com/auth/HomeLoggedOutCTA.tsx:74 +#: src/view/com/auth/SplashScreen.tsx:83 +msgid "Opens flow to sign into your existing Bluesky account" +msgstr "" + #: src/view/com/profile/ProfileHeader.tsx:575 -msgid "Opens followers list" -msgstr "Відкриває список підписників" +#~ msgid "Opens followers list" +#~ msgstr "Відкриває список підписників" #: src/view/com/profile/ProfileHeader.tsx:594 -msgid "Opens following list" -msgstr "Відкриває список нижче" +#~ msgid "Opens following list" +#~ msgstr "Відкриває список нижче" #: src/view/screens/Settings.tsx:412 #~ msgid "Opens invite code list" @@ -2767,15 +3242,35 @@ msgstr "Відкриває список нижче" msgid "Opens list of invite codes" msgstr "Відкриває список кодів запрошення" +#: src/view/screens/Settings/index.tsx:794 +msgid "Opens modal for account deletion confirmation. Requires email code" +msgstr "" + #: src/view/screens/Settings/index.tsx:774 -msgid "Opens modal for account deletion confirmation. Requires email code." -msgstr "Відкриється модальне повідомлення для видалення облікового запису. Потрібен код електронної пошти." +#~ msgid "Opens modal for account deletion confirmation. Requires email code." +#~ msgstr "Відкриється модальне повідомлення для видалення облікового запису. Потрібен код електронної пошти." + +#: src/view/screens/Settings/index.tsx:752 +msgid "Opens modal for changing your Bluesky password" +msgstr "" + +#: src/view/screens/Settings/index.tsx:714 +msgid "Opens modal for choosing a new Bluesky handle" +msgstr "" + +#: src/view/screens/Settings/index.tsx:775 +msgid "Opens modal for downloading your Bluesky account data (repository)" +msgstr "" + +#: src/view/screens/Settings/index.tsx:966 +msgid "Opens modal for email verification" +msgstr "" #: src/view/com/modals/ChangeHandle.tsx:281 msgid "Opens modal for using custom domain" msgstr "Відкриває діалог налаштування власного домену як псевдоніму" -#: src/view/screens/Settings/index.tsx:620 +#: src/view/screens/Settings/index.tsx:636 msgid "Opens moderation settings" msgstr "Відкриває налаштування модерації" @@ -2788,27 +3283,40 @@ msgstr "Відкриває форму скидання пароля" msgid "Opens screen to edit Saved Feeds" msgstr "Відкриває сторінку з усіма збереженими стрічками" -#: src/view/screens/Settings/index.tsx:576 +#: src/view/screens/Settings/index.tsx:593 msgid "Opens screen with all saved feeds" msgstr "Відкриває сторінку з усіма збереженими каналами" +#: src/view/screens/Settings/index.tsx:692 +msgid "Opens the app password settings" +msgstr "" + #: src/view/screens/Settings/index.tsx:676 -msgid "Opens the app password settings page" -msgstr "Відкриває налаштування паролів для застосунків" +#~ msgid "Opens the app password settings page" +#~ msgstr "Відкриває налаштування паролів для застосунків" + +#: src/view/screens/Settings/index.tsx:550 +msgid "Opens the Following feed preferences" +msgstr "" #: src/view/screens/Settings/index.tsx:535 -msgid "Opens the home feed preferences" -msgstr "Відкриває налаштування Головного каналу" +#~ msgid "Opens the home feed preferences" +#~ msgstr "Відкриває налаштування Головного каналу" + +#: src/view/com/modals/LinkWarning.tsx:76 +msgid "Opens the linked website" +msgstr "" -#: src/view/screens/Settings/index.tsx:805 +#: src/view/screens/Settings/index.tsx:825 +#: src/view/screens/Settings/index.tsx:835 msgid "Opens the storybook page" msgstr "" -#: src/view/screens/Settings/index.tsx:793 +#: src/view/screens/Settings/index.tsx:813 msgid "Opens the system log page" msgstr "Відкриває системний журнал" -#: src/view/screens/Settings/index.tsx:556 +#: src/view/screens/Settings/index.tsx:571 msgid "Opens the threads preferences" msgstr "Відкриває налаштування гілок" @@ -2816,11 +3324,19 @@ msgstr "Відкриває налаштування гілок" msgid "Option {0} of {numItems}" msgstr "Опція {0} з {numItems}" +#: src/components/ReportDialog/SubmitView.tsx:162 +msgid "Optionally provide additional information below:" +msgstr "" + #: src/view/com/modals/Threadgate.tsx:89 msgid "Or combine these options:" msgstr "Або якісь із наступних варіантів:" -#: src/view/com/auth/login/ChooseAccountForm.tsx:138 +#: src/lib/moderation/useReportOptions.ts:25 +msgid "Other" +msgstr "" + +#: src/view/com/auth/login/ChooseAccountForm.tsx:142 msgid "Other account" msgstr "Інший обліковий запис" @@ -2832,7 +3348,7 @@ msgstr "Інший обліковий запис" msgid "Other..." msgstr "Інші..." -#: src/components/Lists.tsx:194 +#: src/components/Lists.tsx:190 #: src/view/screens/NotFound.tsx:45 msgid "Page not found" msgstr "Сторінку не знайдено" @@ -2843,12 +3359,18 @@ msgstr "Сторінку не знайдено" #: src/view/com/auth/create/Step1.tsx:191 #: src/view/com/auth/create/Step1.tsx:201 +#: src/view/com/auth/login/LoginForm.tsx:210 #: src/view/com/auth/login/LoginForm.tsx:226 #: src/view/com/auth/login/SetNewPasswordForm.tsx:161 +#: src/view/com/modals/DeleteAccount.tsx:195 #: src/view/com/modals/DeleteAccount.tsx:202 msgid "Password" msgstr "Пароль" +#: src/view/com/modals/ChangePassword.tsx:142 +msgid "Password Changed" +msgstr "" + #: src/view/com/auth/login/Login.tsx:157 msgid "Password updated" msgstr "Пароль змінено" @@ -2857,11 +3379,11 @@ msgstr "Пароль змінено" msgid "Password updated!" msgstr "Пароль змінено!" -#: src/Navigation.tsx:162 +#: src/Navigation.tsx:164 msgid "People followed by @{0}" msgstr "Люди, на яких підписаний(-на) @{0}" -#: src/Navigation.tsx:155 +#: src/Navigation.tsx:157 msgid "People following @{0}" msgstr "Люди, які підписані на @{0}" @@ -2885,11 +3407,15 @@ msgstr "Домашні улюбленці" msgid "Pictures meant for adults." msgstr "Зображення, призначені для дорослих." -#: src/view/screens/ProfileFeed.tsx:354 -#: src/view/screens/ProfileList.tsx:581 +#: src/view/screens/ProfileFeed.tsx:291 +#: src/view/screens/ProfileList.tsx:563 msgid "Pin to home" msgstr "Закріпити" +#: src/view/screens/ProfileFeed.tsx:294 +msgid "Pin to Home" +msgstr "" + #: src/view/screens/SavedFeeds.tsx:88 msgid "Pinned Feeds" msgstr "Закріплені стрічки" @@ -2955,10 +3481,14 @@ msgstr "Будь ласка, введіть адресу ел. пошти." msgid "Please enter your password as well:" msgstr "Будь ласка, також введіть ваш пароль:" +#: src/components/moderation/LabelsOnMeDialog.tsx:222 +msgid "Please explain why you think this label was incorrectly applied by {0}" +msgstr "" + #: src/view/com/modals/AppealLabel.tsx:72 #: src/view/com/modals/AppealLabel.tsx:75 -msgid "Please tell us why you think this content warning was incorrectly applied!" -msgstr "Будь ласка, вкажіть чому ви вважаєте що попередження про вміст було додано неправильно?" +#~ msgid "Please tell us why you think this content warning was incorrectly applied!" +#~ msgstr "Будь ласка, вкажіть чому ви вважаєте що попередження про вміст було додано неправильно?" #: src/view/com/modals/AppealLabel.tsx:72 #: src/view/com/modals/AppealLabel.tsx:75 @@ -2969,7 +3499,7 @@ msgstr "Будь ласка, вкажіть чому ви вважаєте що msgid "Please Verify Your Email" msgstr "Підтвердьте свою адресу електронної пошти" -#: src/view/com/composer/Composer.tsx:222 +#: src/view/com/composer/Composer.tsx:221 msgid "Please wait for your link card to finish loading" msgstr "Будь ласка, зачекайте доки завершиться створення попереднього перегляду для посилання" @@ -2981,13 +3511,17 @@ msgstr "Політика" msgid "Porn" msgstr "Порнографія" -#: src/view/com/composer/Composer.tsx:357 -#: src/view/com/composer/Composer.tsx:365 +#: src/lib/moderation/useGlobalLabelStrings.ts:34 +msgid "Pornography" +msgstr "" + +#: src/view/com/composer/Composer.tsx:366 +#: src/view/com/composer/Composer.tsx:374 msgctxt "action" msgid "Post" msgstr "Запостити" -#: src/view/com/post-thread/PostThread.tsx:303 +#: src/view/com/post-thread/PostThread.tsx:292 msgctxt "description" msgid "Post" msgstr "Пост" @@ -2996,20 +3530,30 @@ msgstr "Пост" msgid "Post by {0}" msgstr "Пост від {0}" -#: src/Navigation.tsx:174 -#: src/Navigation.tsx:181 -#: src/Navigation.tsx:188 +#: src/Navigation.tsx:176 +#: src/Navigation.tsx:183 +#: src/Navigation.tsx:190 msgid "Post by @{0}" msgstr "Пост від @{0}" -#: src/view/com/util/forms/PostDropdownBtn.tsx:108 +#: src/view/com/util/forms/PostDropdownBtn.tsx:105 msgid "Post deleted" msgstr "Пост видалено" -#: src/view/com/post-thread/PostThread.tsx:462 +#: src/view/com/post-thread/PostThread.tsx:157 msgid "Post hidden" msgstr "Пост приховано" +#: src/components/moderation/ModerationDetailsDialog.tsx:98 +#: src/lib/moderation/useModerationCauseDescription.ts:99 +msgid "Post Hidden by Muted Word" +msgstr "" + +#: src/components/moderation/ModerationDetailsDialog.tsx:101 +#: src/lib/moderation/useModerationCauseDescription.ts:108 +msgid "Post Hidden by You" +msgstr "" + #: src/view/com/composer/select-language/SelectLangBtn.tsx:87 msgid "Post language" msgstr "Мова посту" @@ -3018,7 +3562,8 @@ msgstr "Мова посту" msgid "Post Languages" msgstr "Мови посту" -#: src/view/com/post-thread/PostThread.tsx:514 +#: src/view/com/post-thread/PostThread.tsx:152 +#: src/view/com/post-thread/PostThread.tsx:164 msgid "Post not found" msgstr "Пост не знайдено" @@ -3026,7 +3571,7 @@ msgstr "Пост не знайдено" msgid "posts" msgstr "пости" -#: src/view/screens/Profile.tsx:180 +#: src/view/screens/Profile.tsx:188 msgid "Posts" msgstr "Пости" @@ -3042,7 +3587,11 @@ msgstr "Пости приховано" msgid "Potentially Misleading Link" msgstr "Потенційно оманливе посилання" -#: src/view/com/lightbox/Lightbox.web.tsx:135 +#: src/components/Lists.tsx:88 +msgid "Press to retry" +msgstr "" + +#: src/view/com/lightbox/Lightbox.web.tsx:150 msgid "Previous image" msgstr "Попереднє зображення" @@ -3054,15 +3603,16 @@ msgstr "Основна мова" msgid "Prioritize Your Follows" msgstr "Пріоритезувати ваші підписки" -#: src/view/screens/Settings/index.tsx:632 +#: src/view/screens/Settings/index.tsx:648 #: src/view/shell/desktop/RightNav.tsx:72 msgid "Privacy" msgstr "Конфіденційність" -#: src/Navigation.tsx:219 +#: src/Navigation.tsx:231 +#: src/view/com/auth/create/Policies.tsx:69 #: src/view/screens/PrivacyPolicy.tsx:29 -#: src/view/screens/Settings/index.tsx:891 -#: src/view/shell/Drawer.tsx:262 +#: src/view/screens/Settings/index.tsx:921 +#: src/view/shell/Drawer.tsx:265 msgid "Privacy Policy" msgstr "Політика конфіденційності" @@ -3070,11 +3620,16 @@ msgstr "Політика конфіденційності" msgid "Processing..." msgstr "Обробка..." -#: src/view/shell/bottom-bar/BottomBar.tsx:247 -#: src/view/shell/desktop/LeftNav.tsx:415 +#: src/view/screens/DebugMod.tsx:888 +#: src/view/screens/Profile.tsx:340 +msgid "profile" +msgstr "" + +#: src/view/shell/bottom-bar/BottomBar.tsx:251 +#: src/view/shell/desktop/LeftNav.tsx:419 #: src/view/shell/Drawer.tsx:70 -#: src/view/shell/Drawer.tsx:546 -#: src/view/shell/Drawer.tsx:547 +#: src/view/shell/Drawer.tsx:549 +#: src/view/shell/Drawer.tsx:550 msgid "Profile" msgstr "Профіль" @@ -3082,7 +3637,7 @@ msgstr "Профіль" msgid "Profile updated" msgstr "Профіль оновлено" -#: src/view/screens/Settings/index.tsx:949 +#: src/view/screens/Settings/index.tsx:979 msgid "Protect your account by verifying your email." msgstr "Захистіть свій обліковий запис, підтвердивши свою електронну адресу." @@ -3098,11 +3653,11 @@ msgstr "Публічні, поширювані списки користувач msgid "Public, shareable lists which can drive feeds." msgstr "Публічні, поширювані списки для створення стрічок." -#: src/view/com/composer/Composer.tsx:342 +#: src/view/com/composer/Composer.tsx:351 msgid "Publish post" msgstr "Опублікувати пост" -#: src/view/com/composer/Composer.tsx:342 +#: src/view/com/composer/Composer.tsx:351 msgid "Publish reply" msgstr "Опублікувати відповідь" @@ -3128,6 +3683,10 @@ msgstr "У випадковому порядку" msgid "Ratios" msgstr "Співвідношення сторін" +#: src/view/screens/Search/Search.tsx:776 +msgid "Recent Searches" +msgstr "" + #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:116 msgid "Recommended Feeds" msgstr "Рекомендовані стрічки" @@ -3136,36 +3695,50 @@ msgstr "Рекомендовані стрічки" msgid "Recommended Users" msgstr "Рекомендовані користувачі" -#: src/components/dialogs/MutedWords.tsx:298 -#: src/view/com/modals/ListAddRemoveUsers.tsx:264 +#: src/components/dialogs/MutedWords.tsx:287 +#: src/view/com/feeds/FeedSourceCard.tsx:283 +#: src/view/com/modals/ListAddRemoveUsers.tsx:268 #: src/view/com/modals/SelfLabel.tsx:83 #: src/view/com/modals/UserAddRemoveLists.tsx:219 -#: src/view/com/util/UserAvatar.tsx:285 -#: src/view/com/util/UserBanner.tsx:91 +#: src/view/com/posts/FeedErrorMessage.tsx:204 msgid "Remove" msgstr "Видалити" #: src/view/com/feeds/FeedSourceCard.tsx:108 -msgid "Remove {0} from my feeds?" -msgstr "Вилучити {0} зі збережених стрічок?" +#~ msgid "Remove {0} from my feeds?" +#~ msgstr "Вилучити {0} зі збережених стрічок?" #: src/view/com/util/AccountDropdownBtn.tsx:22 msgid "Remove account" msgstr "Видалити обліковий запис" -#: src/view/com/posts/FeedErrorMessage.tsx:131 -#: src/view/com/posts/FeedErrorMessage.tsx:166 +#: src/view/com/util/UserAvatar.tsx:358 +msgid "Remove Avatar" +msgstr "" + +#: src/view/com/util/UserBanner.tsx:148 +msgid "Remove Banner" +msgstr "" + +#: src/view/com/posts/FeedErrorMessage.tsx:160 msgid "Remove feed" msgstr "Видалити стрічку" -#: src/view/com/feeds/FeedSourceCard.tsx:107 -#: src/view/com/feeds/FeedSourceCard.tsx:169 -#: src/view/com/feeds/FeedSourceCard.tsx:174 -#: src/view/com/feeds/FeedSourceCard.tsx:245 -#: src/view/screens/ProfileFeed.tsx:273 +#: src/view/com/posts/FeedErrorMessage.tsx:201 +msgid "Remove feed?" +msgstr "" + +#: src/view/com/feeds/FeedSourceCard.tsx:173 +#: src/view/com/feeds/FeedSourceCard.tsx:233 +#: src/view/screens/ProfileFeed.tsx:334 +#: src/view/screens/ProfileFeed.tsx:340 msgid "Remove from my feeds" msgstr "Вилучити з моїх стрічок" +#: src/view/com/feeds/FeedSourceCard.tsx:278 +msgid "Remove from my feeds?" +msgstr "" + #: src/view/com/composer/photos/Gallery.tsx:167 msgid "Remove image" msgstr "Вилучити зображення" @@ -3174,7 +3747,7 @@ msgstr "Вилучити зображення" msgid "Remove image preview" msgstr "Вилучити попередній перегляд зображення" -#: src/components/dialogs/MutedWords.tsx:343 +#: src/components/dialogs/MutedWords.tsx:330 msgid "Remove mute word from your list" msgstr "Вилучити ігноровані слова з вашого списку" @@ -3183,28 +3756,35 @@ msgid "Remove repost" msgstr "Видалити репост" #: src/view/com/feeds/FeedSourceCard.tsx:175 -msgid "Remove this feed from my feeds?" -msgstr "Вилучити цю стрічку з ваших стрічок?" +#~ msgid "Remove this feed from my feeds?" +#~ msgstr "Вилучити цю стрічку з ваших стрічок?" + +#: src/view/com/posts/FeedErrorMessage.tsx:202 +msgid "Remove this feed from your saved feeds" +msgstr "" #: src/view/com/posts/FeedErrorMessage.tsx:132 -msgid "Remove this feed from your saved feeds?" -msgstr "Вилучити цю стрічку зі збережених стрічок?" +#~ msgid "Remove this feed from your saved feeds?" +#~ msgstr "Вилучити цю стрічку зі збережених стрічок?" #: src/view/com/modals/ListAddRemoveUsers.tsx:199 #: src/view/com/modals/UserAddRemoveLists.tsx:152 msgid "Removed from list" msgstr "Вилучено зі списку" -#: src/view/com/feeds/FeedSourceCard.tsx:113 -#: src/view/com/feeds/FeedSourceCard.tsx:180 +#: src/view/com/feeds/FeedSourceCard.tsx:121 msgid "Removed from my feeds" msgstr "Вилучено з моїх стрічок" +#: src/view/screens/ProfileFeed.tsx:208 +msgid "Removed from your feeds" +msgstr "" + #: src/view/com/composer/ExternalEmbed.tsx:71 msgid "Removes default thumbnail from {0}" msgstr "Видаляє мініатюру за замовчуванням з {0}" -#: src/view/screens/Profile.tsx:181 +#: src/view/screens/Profile.tsx:189 msgid "Replies" msgstr "Відповіді" @@ -3212,7 +3792,7 @@ msgstr "Відповіді" msgid "Replies to this thread are disabled" msgstr "Відповіді до цього посту вимкнено" -#: src/view/com/composer/Composer.tsx:355 +#: src/view/com/composer/Composer.tsx:364 msgctxt "action" msgid "Reply" msgstr "Відповісти" @@ -3221,34 +3801,55 @@ msgstr "Відповісти" msgid "Reply Filters" msgstr "Які відповіді показувати" -#: src/view/com/post/Post.tsx:167 -#: src/view/com/posts/FeedItem.tsx:287 +#: src/view/com/post/Post.tsx:166 +#: src/view/com/posts/FeedItem.tsx:280 msgctxt "description" msgid "Reply to <0/>" msgstr "У відповідь <0/>" #: src/view/com/modals/report/Modal.tsx:166 -msgid "Report {collectionName}" -msgstr "Поскаржитись на {collectionName}" +#~ msgid "Report {collectionName}" +#~ msgstr "Поскаржитись на {collectionName}" -#: src/view/com/profile/ProfileHeader.tsx:361 +#: src/view/com/profile/ProfileMenu.tsx:319 +#: src/view/com/profile/ProfileMenu.tsx:322 msgid "Report Account" msgstr "Поскаржитись на обліковий запис" -#: src/view/screens/ProfileFeed.tsx:293 +#: src/view/screens/ProfileFeed.tsx:351 +#: src/view/screens/ProfileFeed.tsx:353 msgid "Report feed" msgstr "Поскаржитись на стрічку" -#: src/view/screens/ProfileList.tsx:459 +#: src/view/screens/ProfileList.tsx:429 msgid "Report List" msgstr "Поскаржитись на список" -#: src/view/com/modals/report/SendReportButton.tsx:37 -#: src/view/com/util/forms/PostDropdownBtn.tsx:301 -#: src/view/com/util/forms/PostDropdownBtn.tsx:309 +#: src/view/com/util/forms/PostDropdownBtn.tsx:292 +#: src/view/com/util/forms/PostDropdownBtn.tsx:294 msgid "Report post" msgstr "Поскаржитись на пост" +#: src/components/ReportDialog/SelectReportOptionView.tsx:43 +msgid "Report this content" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:56 +msgid "Report this feed" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:53 +msgid "Report this list" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:50 +msgid "Report this post" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:47 +msgid "Report this user" +msgstr "" + #: src/view/com/modals/Repost.tsx:43 #: src/view/com/modals/Repost.tsx:48 #: src/view/com/modals/Repost.tsx:53 @@ -3270,19 +3871,19 @@ msgstr "Репостити або цитувати" msgid "Reposted By" msgstr "Зробив(-ла) репост" -#: src/view/com/posts/FeedItem.tsx:207 +#: src/view/com/posts/FeedItem.tsx:197 msgid "Reposted by {0}" msgstr "{0} зробив(-ла) репост" -#: src/view/com/posts/FeedItem.tsx:224 +#: src/view/com/posts/FeedItem.tsx:214 msgid "Reposted by <0/>" msgstr "<0/> зробив(-ла) репост" -#: src/view/com/notifications/FeedItem.tsx:162 +#: src/view/com/notifications/FeedItem.tsx:166 msgid "reposted your post" msgstr "зробив(-ла) репост вашого допису" -#: src/view/com/post-thread/PostThreadItem.tsx:188 +#: src/view/com/post-thread/PostThreadItem.tsx:187 msgid "Reposts of this post" msgstr "Репости цього поста" @@ -3295,12 +3896,12 @@ msgstr "Змінити" #~ msgid "Request code" #~ msgstr "" -#: src/view/com/modals/ChangePassword.tsx:239 #: src/view/com/modals/ChangePassword.tsx:241 +#: src/view/com/modals/ChangePassword.tsx:243 msgid "Request Code" msgstr "Надіслати запит на код" -#: src/view/screens/Settings/index.tsx:456 +#: src/view/screens/Settings/index.tsx:471 msgid "Require alt text before posting" msgstr "Вимагати опис зображень перед публікацією" @@ -3310,18 +3911,20 @@ msgstr "Вимагається цим хостинг-провайдером" #: src/view/com/auth/login/SetNewPasswordForm.tsx:124 #: src/view/com/auth/login/SetNewPasswordForm.tsx:136 +#: src/view/com/modals/ChangePassword.tsx:185 msgid "Reset code" msgstr "Код підтвердження" -#: src/view/com/modals/ChangePassword.tsx:190 +#: src/view/com/modals/ChangePassword.tsx:192 msgid "Reset Code" msgstr "Код скидання" #: src/view/screens/Settings/index.tsx:824 -msgid "Reset onboarding" -msgstr "Скинути ознайомлення" +#~ msgid "Reset onboarding" +#~ msgstr "Скинути ознайомлення" -#: src/view/screens/Settings/index.tsx:827 +#: src/view/screens/Settings/index.tsx:854 +#: src/view/screens/Settings/index.tsx:857 msgid "Reset onboarding state" msgstr "" @@ -3330,18 +3933,19 @@ msgid "Reset password" msgstr "Скинути пароль" #: src/view/screens/Settings/index.tsx:814 -msgid "Reset preferences" -msgstr "Скинути налаштування" +#~ msgid "Reset preferences" +#~ msgstr "Скинути налаштування" -#: src/view/screens/Settings/index.tsx:817 +#: src/view/screens/Settings/index.tsx:844 +#: src/view/screens/Settings/index.tsx:847 msgid "Reset preferences state" msgstr "" -#: src/view/screens/Settings/index.tsx:825 +#: src/view/screens/Settings/index.tsx:855 msgid "Resets the onboarding state" msgstr "" -#: src/view/screens/Settings/index.tsx:815 +#: src/view/screens/Settings/index.tsx:845 msgid "Resets the preferences state" msgstr "" @@ -3354,6 +3958,7 @@ msgstr "Повторити спробу" msgid "Retries the last action, which errored out" msgstr "Повторити останню дію, яка спричинила помилку" +#: src/components/Lists.tsx:98 #: src/screens/Onboarding/StepInterests/index.tsx:221 #: src/screens/Onboarding/StepInterests/index.tsx:224 #: src/view/com/auth/create/CreateAccount.tsx:181 @@ -3369,10 +3974,19 @@ msgstr "Повторити спробу" #~ msgid "Retry." #~ msgstr "" -#: src/view/screens/ProfileList.tsx:903 +#: src/view/screens/ProfileList.tsx:917 msgid "Return to previous page" msgstr "Повернутися до попередньої сторінки" +#: src/view/screens/NotFound.tsx:59 +msgid "Returns to home page" +msgstr "" + +#: src/view/screens/NotFound.tsx:58 +#: src/view/screens/ProfileFeed.tsx:112 +msgid "Returns to previous page" +msgstr "" + #: src/view/shell/desktop/RightNav.tsx:55 #~ msgid "SANDBOX. Posts and accounts are not permanent." #~ msgstr "" @@ -3383,12 +3997,10 @@ msgctxt "action" msgid "Save" msgstr "Зберегти" -#: src/view/com/modals/BirthDateSettings.tsx:94 -#: src/view/com/modals/BirthDateSettings.tsx:97 +#: src/components/dialogs/BirthDateSettings.tsx:125 #: src/view/com/modals/ChangeHandle.tsx:173 #: src/view/com/modals/CreateOrEditList.tsx:337 #: src/view/com/modals/EditProfile.tsx:224 -#: src/view/screens/ProfileFeed.tsx:346 msgid "Save" msgstr "Зберегти" @@ -3396,6 +4008,10 @@ msgstr "Зберегти" msgid "Save alt text" msgstr "Зберегти опис" +#: src/components/dialogs/BirthDateSettings.tsx:119 +msgid "Save birthday" +msgstr "" + #: src/view/com/modals/EditProfile.tsx:232 msgid "Save Changes" msgstr "Зберегти зміни" @@ -3408,10 +4024,23 @@ msgstr "Зберегти новий псевдонім" msgid "Save image crop" msgstr "Обрізати зображення" +#: src/view/screens/ProfileFeed.tsx:335 +#: src/view/screens/ProfileFeed.tsx:341 +msgid "Save to my feeds" +msgstr "" + #: src/view/screens/SavedFeeds.tsx:122 msgid "Saved Feeds" msgstr "Збережені стрічки" +#: src/view/com/lightbox/Lightbox.tsx:81 +msgid "Saved to your camera roll." +msgstr "" + +#: src/view/screens/ProfileFeed.tsx:212 +msgid "Saved to your feeds" +msgstr "" + #: src/view/com/modals/EditProfile.tsx:225 msgid "Saves any changes to your profile" msgstr "Зберігає зміни вашого профілю" @@ -3420,33 +4049,37 @@ msgstr "Зберігає зміни вашого профілю" msgid "Saves handle change to {handle}" msgstr "Зберігає зміню псевдоніму на {handle}" +#: src/view/com/modals/crop-image/CropImage.web.tsx:145 +msgid "Saves image crop settings" +msgstr "" + #: src/screens/Onboarding/index.tsx:36 msgid "Science" msgstr "Наука" -#: src/view/screens/ProfileList.tsx:859 +#: src/view/screens/ProfileList.tsx:873 msgid "Scroll to top" msgstr "Прогорнути вгору" -#: src/Navigation.tsx:447 +#: src/Navigation.tsx:459 #: src/view/com/auth/LoggedOut.tsx:122 #: src/view/com/modals/ListAddRemoveUsers.tsx:75 #: src/view/com/util/forms/SearchInput.tsx:67 #: src/view/com/util/forms/SearchInput.tsx:79 -#: src/view/screens/Search/Search.tsx:419 -#: src/view/screens/Search/Search.tsx:668 -#: src/view/screens/Search/Search.tsx:686 -#: src/view/shell/bottom-bar/BottomBar.tsx:159 -#: src/view/shell/desktop/LeftNav.tsx:324 -#: src/view/shell/desktop/Search.tsx:214 -#: src/view/shell/desktop/Search.tsx:223 -#: src/view/shell/Drawer.tsx:362 -#: src/view/shell/Drawer.tsx:363 +#: src/view/screens/Search/Search.tsx:420 +#: src/view/screens/Search/Search.tsx:669 +#: src/view/screens/Search/Search.tsx:687 +#: src/view/shell/bottom-bar/BottomBar.tsx:161 +#: src/view/shell/desktop/LeftNav.tsx:328 +#: src/view/shell/desktop/Search.tsx:215 +#: src/view/shell/desktop/Search.tsx:224 +#: src/view/shell/Drawer.tsx:365 +#: src/view/shell/Drawer.tsx:366 msgid "Search" msgstr "Пошук" -#: src/view/screens/Search/Search.tsx:735 -#: src/view/shell/desktop/Search.tsx:255 +#: src/view/screens/Search/Search.tsx:736 +#: src/view/shell/desktop/Search.tsx:256 msgid "Search for \"{query}\"" msgstr "Шукати \"{query}\"" @@ -3520,6 +4153,14 @@ msgstr "Обрати {item}" msgid "Select from an existing account" msgstr "Вибрати існуючий обліковий запис" +#: src/view/screens/LanguageSettings.tsx:299 +msgid "Select languages" +msgstr "" + +#: src/components/ReportDialog/SelectLabelerView.tsx:32 +msgid "Select moderator" +msgstr "" + #: src/view/com/util/Selector.tsx:107 msgid "Select option {i} of {numItems}" msgstr "Обрати варіант {i} із {numItems}" @@ -3533,6 +4174,10 @@ msgstr "Вибрати хостинг-провайдера" msgid "Select some accounts below to follow" msgstr "Оберіть деякі облікові записи, щоб підписатися" +#: src/components/ReportDialog/SubmitView.tsx:135 +msgid "Select the moderation service(s) to report to" +msgstr "" + #: src/view/com/auth/server-input/index.tsx:82 msgid "Select the service that hosts your data." msgstr "Виберіть хостинг-провайдера для ваших даних." @@ -3545,7 +4190,7 @@ msgstr "Виберіть хостинг-провайдера для ваших msgid "Select topical feeds to follow from the list below" msgstr "Підпишіться на тематичні стрічки зі списку нижче" -#: src/screens/Onboarding/StepModeration/index.tsx:75 +#: src/screens/Onboarding/StepModeration/index.tsx:62 msgid "Select what you want to see (or not see), and we’ll handle the rest." msgstr "Виберіть, що ви хочете бачити (або не бачити), а решту ми зробимо за вас." @@ -3554,8 +4199,12 @@ msgid "Select which languages you want your subscribed feeds to include. If none msgstr "Оберіть мови постів, які ви хочете бачити у збережених каналах. Якщо не вибрано жодної – буде показано пости всіма мовами." #: src/view/screens/LanguageSettings.tsx:98 -msgid "Select your app language for the default text to display in the app" -msgstr "Оберіть мову інтерфейсу" +#~ msgid "Select your app language for the default text to display in the app" +#~ msgstr "Оберіть мову інтерфейсу" + +#: src/view/screens/LanguageSettings.tsx:98 +msgid "Select your app language for the default text to display in the app." +msgstr "" #: src/screens/Onboarding/StepInterests/index.tsx:196 msgid "Select your interests from the options below" @@ -3591,14 +4240,23 @@ msgctxt "action" msgid "Send Email" msgstr "Надіслати ел. лист" -#: src/view/shell/Drawer.tsx:295 -#: src/view/shell/Drawer.tsx:316 +#: src/view/shell/Drawer.tsx:298 +#: src/view/shell/Drawer.tsx:319 msgid "Send feedback" msgstr "Надіслати відгук" +#: src/components/ReportDialog/SubmitView.tsx:214 +#: src/components/ReportDialog/SubmitView.tsx:218 +msgid "Send report" +msgstr "" + #: src/view/com/modals/report/SendReportButton.tsx:45 -msgid "Send Report" -msgstr "Поскаржитись" +#~ msgid "Send Report" +#~ msgstr "Поскаржитись" + +#: src/components/ReportDialog/SelectLabelerView.tsx:46 +msgid "Send report to {0}" +msgstr "" #: src/view/com/modals/DeleteAccount.tsx:133 msgid "Sends email with confirmation code for account deletion" @@ -3609,34 +4267,38 @@ msgid "Server address" msgstr "Адреса сервера" #: src/view/com/modals/ContentFilteringSettings.tsx:311 -msgid "Set {value} for {labelGroup} content moderation policy" -msgstr "Встановити {value} для політики модерації вмісту {labelGroup}" +#~ msgid "Set {value} for {labelGroup} content moderation policy" +#~ msgstr "Встановити {value} для політики модерації вмісту {labelGroup}" #: src/view/com/modals/ContentFilteringSettings.tsx:160 #: src/view/com/modals/ContentFilteringSettings.tsx:179 -msgctxt "action" -msgid "Set Age" -msgstr "Встановити вік" +#~ msgctxt "action" +#~ msgid "Set Age" +#~ msgstr "Встановити вік" + +#: src/screens/Moderation/index.tsx:306 +msgid "Set birthdate" +msgstr "" #: src/view/screens/Settings/index.tsx:488 -msgid "Set color theme to dark" -msgstr "Встановити темне оформлення" +#~ msgid "Set color theme to dark" +#~ msgstr "Встановити темне оформлення" #: src/view/screens/Settings/index.tsx:481 -msgid "Set color theme to light" -msgstr "Встановити світле оформлення" +#~ msgid "Set color theme to light" +#~ msgstr "Встановити світле оформлення" #: src/view/screens/Settings/index.tsx:475 -msgid "Set color theme to system setting" -msgstr "Встановити системне оформлення" +#~ msgid "Set color theme to system setting" +#~ msgstr "Встановити системне оформлення" #: src/view/screens/Settings/index.tsx:514 -msgid "Set dark theme to the dark theme" -msgstr "Встановити темну тему" +#~ msgid "Set dark theme to the dark theme" +#~ msgstr "Встановити темну тему" #: src/view/screens/Settings/index.tsx:507 -msgid "Set dark theme to the dim theme" -msgstr "Встановити темну тьмяну тему" +#~ msgid "Set dark theme to the dim theme" +#~ msgstr "Встановити темну тьмяну тему" #: src/view/com/auth/login/SetNewPasswordForm.tsx:104 msgid "Set new password" @@ -3678,6 +4340,26 @@ msgstr "Налаштуйте ваш обліковий запис" msgid "Sets Bluesky username" msgstr "Встановлює псевдонім Bluesky" +#: src/view/screens/Settings/index.tsx:503 +msgid "Sets color theme to dark" +msgstr "" + +#: src/view/screens/Settings/index.tsx:496 +msgid "Sets color theme to light" +msgstr "" + +#: src/view/screens/Settings/index.tsx:490 +msgid "Sets color theme to system setting" +msgstr "" + +#: src/view/screens/Settings/index.tsx:529 +msgid "Sets dark theme to the dark theme" +msgstr "" + +#: src/view/screens/Settings/index.tsx:522 +msgid "Sets dark theme to the dim theme" +msgstr "" + #: src/view/com/auth/login/ForgotPasswordForm.tsx:157 msgid "Sets email for password reset" msgstr "Встановлює ел. адресу для скидання пароля" @@ -3686,16 +4368,28 @@ msgstr "Встановлює ел. адресу для скидання паро msgid "Sets hosting provider for password reset" msgstr "Встановлює хостинг-провайдером для скидання пароля" +#: src/view/com/modals/crop-image/CropImage.web.tsx:123 +msgid "Sets image aspect ratio to square" +msgstr "" + +#: src/view/com/modals/crop-image/CropImage.web.tsx:113 +msgid "Sets image aspect ratio to tall" +msgstr "" + +#: src/view/com/modals/crop-image/CropImage.web.tsx:103 +msgid "Sets image aspect ratio to wide" +msgstr "" + #: src/view/com/auth/create/Step1.tsx:97 #: src/view/com/auth/login/LoginForm.tsx:151 msgid "Sets server for the Bluesky client" msgstr "Встановлює сервер для застосунку Bluesky" -#: src/Navigation.tsx:137 -#: src/view/screens/Settings/index.tsx:294 -#: src/view/shell/desktop/LeftNav.tsx:433 -#: src/view/shell/Drawer.tsx:567 -#: src/view/shell/Drawer.tsx:568 +#: src/Navigation.tsx:139 +#: src/view/screens/Settings/index.tsx:309 +#: src/view/shell/desktop/LeftNav.tsx:437 +#: src/view/shell/Drawer.tsx:570 +#: src/view/shell/Drawer.tsx:571 msgid "Settings" msgstr "Налаштування" @@ -3703,28 +4397,39 @@ msgstr "Налаштування" msgid "Sexual activity or erotic nudity." msgstr "Сексуальна активність або еротична оголеність." +#: src/lib/moderation/useGlobalLabelStrings.ts:38 +msgid "Sexually Suggestive" +msgstr "" + #: src/view/com/lightbox/Lightbox.tsx:141 msgctxt "action" msgid "Share" msgstr "Поширити" -#: src/view/com/profile/ProfileHeader.tsx:295 -#: src/view/com/util/forms/PostDropdownBtn.tsx:231 +#: src/view/com/profile/ProfileMenu.tsx:215 +#: src/view/com/profile/ProfileMenu.tsx:224 +#: src/view/com/util/forms/PostDropdownBtn.tsx:228 #: src/view/com/util/forms/PostDropdownBtn.tsx:237 -#: src/view/com/util/post-ctrls/PostCtrls.tsx:215 -#: src/view/screens/ProfileList.tsx:418 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:218 +#: src/view/screens/ProfileList.tsx:388 msgid "Share" msgstr "Поширити" -#: src/view/screens/ProfileFeed.tsx:305 +#: src/view/com/profile/ProfileMenu.tsx:373 +#: src/view/com/util/forms/PostDropdownBtn.tsx:347 +msgid "Share anyway" +msgstr "" + +#: src/view/screens/ProfileFeed.tsx:361 +#: src/view/screens/ProfileFeed.tsx:363 msgid "Share feed" msgstr "Поширити стрічку" -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:43 -#: src/view/com/modals/ContentFilteringSettings.tsx:266 -#: src/view/com/util/moderation/ContentHider.tsx:107 -#: src/view/com/util/moderation/PostHider.tsx:108 -#: src/view/screens/Settings/index.tsx:344 +#: src/components/moderation/ContentHider.tsx:115 +#: src/components/moderation/GlobalModerationLabelPref.tsx:45 +#: src/components/moderation/PostHider.tsx:107 +#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:54 +#: src/view/screens/Settings/index.tsx:359 msgid "Show" msgstr "Показувати" @@ -3732,21 +4437,31 @@ msgstr "Показувати" msgid "Show all replies" msgstr "Показати всі відповіді" -#: src/view/com/util/moderation/ScreenHider.tsx:132 +#: src/components/moderation/ScreenHider.tsx:162 +#: src/components/moderation/ScreenHider.tsx:165 msgid "Show anyway" msgstr "Всеодно показати" +#: src/lib/moderation/useLabelBehaviorDescription.ts:27 +#: src/lib/moderation/useLabelBehaviorDescription.ts:63 +msgid "Show badge" +msgstr "" + +#: src/lib/moderation/useLabelBehaviorDescription.ts:61 +msgid "Show badge and filter from feeds" +msgstr "" + #: src/view/com/modals/EmbedConsent.tsx:87 msgid "Show embeds from {0}" msgstr "Показати вбудування з {0}" -#: src/view/com/profile/ProfileHeader.tsx:459 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:193 msgid "Show follows similar to {0}" msgstr "Показати підписки, схожі на {0}" -#: src/view/com/post-thread/PostThreadItem.tsx:538 -#: src/view/com/post/Post.tsx:198 -#: src/view/com/posts/FeedItem.tsx:363 +#: src/view/com/post-thread/PostThreadItem.tsx:507 +#: src/view/com/post/Post.tsx:201 +#: src/view/com/posts/FeedItem.tsx:355 msgid "Show More" msgstr "Показати більше" @@ -3798,40 +4513,48 @@ msgstr "Показувати репости" msgid "Show reposts in Following" msgstr "Показувати репости у стрічці \"Following\"" -#: src/view/com/util/moderation/ContentHider.tsx:67 -#: src/view/com/util/moderation/PostHider.tsx:61 +#: src/components/moderation/ContentHider.tsx:68 +#: src/components/moderation/PostHider.tsx:64 msgid "Show the content" msgstr "Показати вміст" -#: src/view/com/notifications/FeedItem.tsx:347 +#: src/view/com/notifications/FeedItem.tsx:351 msgid "Show users" msgstr "Показати користувачів" +#: src/lib/moderation/useLabelBehaviorDescription.ts:58 +msgid "Show warning" +msgstr "" + +#: src/lib/moderation/useLabelBehaviorDescription.ts:56 +msgid "Show warning and filter from feeds" +msgstr "" + #: src/view/com/profile/ProfileHeader.tsx:462 -msgid "Shows a list of users similar to this user." -msgstr "Показує список користувачів, схожих на цього." +#~ msgid "Shows a list of users similar to this user." +#~ msgstr "Показує список користувачів, схожих на цього." -#: src/view/com/post-thread/PostThreadFollowBtn.tsx:124 -#: src/view/com/profile/ProfileHeader.tsx:506 +#: src/view/com/post-thread/PostThreadFollowBtn.tsx:127 msgid "Shows posts from {0} in your feed" msgstr "Показує дописи з {0} у вашій стрічці" -#: src/view/com/auth/HomeLoggedOutCTA.tsx:70 +#: src/view/com/auth/HomeLoggedOutCTA.tsx:72 #: src/view/com/auth/login/Login.tsx:98 -#: src/view/com/auth/SplashScreen.tsx:79 -#: src/view/shell/bottom-bar/BottomBar.tsx:285 -#: src/view/shell/bottom-bar/BottomBar.tsx:286 -#: src/view/shell/bottom-bar/BottomBar.tsx:288 +#: src/view/com/auth/SplashScreen.tsx:81 +#: src/view/shell/bottom-bar/BottomBar.tsx:289 +#: src/view/shell/bottom-bar/BottomBar.tsx:290 +#: src/view/shell/bottom-bar/BottomBar.tsx:292 #: src/view/shell/bottom-bar/BottomBarWeb.tsx:178 #: src/view/shell/bottom-bar/BottomBarWeb.tsx:179 #: src/view/shell/bottom-bar/BottomBarWeb.tsx:181 #: src/view/shell/NavSignupCard.tsx:58 #: src/view/shell/NavSignupCard.tsx:59 +#: src/view/shell/NavSignupCard.tsx:61 msgid "Sign in" msgstr "Увійти" -#: src/view/com/auth/HomeLoggedOutCTA.tsx:78 -#: src/view/com/auth/SplashScreen.tsx:82 +#: src/view/com/auth/HomeLoggedOutCTA.tsx:82 +#: src/view/com/auth/SplashScreen.tsx:86 #: src/view/com/auth/SplashScreen.web.tsx:91 msgid "Sign In" msgstr "Увійти" @@ -3840,7 +4563,7 @@ msgstr "Увійти" msgid "Sign in as {0}" msgstr "Увійти як {0}" -#: src/view/com/auth/login/ChooseAccountForm.tsx:118 +#: src/view/com/auth/login/ChooseAccountForm.tsx:122 #: src/view/com/auth/login/Login.tsx:116 msgid "Sign in as..." msgstr "Увійти як..." @@ -3849,16 +4572,16 @@ msgstr "Увійти як..." msgid "Sign into" msgstr "Увійти до" -#: src/view/com/modals/SwitchAccount.tsx:64 -#: src/view/com/modals/SwitchAccount.tsx:69 -#: src/view/screens/Settings/index.tsx:100 -#: src/view/screens/Settings/index.tsx:103 +#: src/view/com/modals/SwitchAccount.tsx:68 +#: src/view/com/modals/SwitchAccount.tsx:73 +#: src/view/screens/Settings/index.tsx:105 +#: src/view/screens/Settings/index.tsx:108 msgid "Sign out" msgstr "Вийти" -#: src/view/shell/bottom-bar/BottomBar.tsx:275 -#: src/view/shell/bottom-bar/BottomBar.tsx:276 -#: src/view/shell/bottom-bar/BottomBar.tsx:278 +#: src/view/shell/bottom-bar/BottomBar.tsx:279 +#: src/view/shell/bottom-bar/BottomBar.tsx:280 +#: src/view/shell/bottom-bar/BottomBar.tsx:282 #: src/view/shell/bottom-bar/BottomBarWeb.tsx:168 #: src/view/shell/bottom-bar/BottomBarWeb.tsx:169 #: src/view/shell/bottom-bar/BottomBarWeb.tsx:171 @@ -3872,25 +4595,26 @@ msgstr "Зареєструватися" msgid "Sign up or sign in to join the conversation" msgstr "Зареєструйтеся або увійдіть, щоб приєднатися до розмови" -#: src/view/com/util/moderation/ScreenHider.tsx:76 +#: src/components/moderation/ScreenHider.tsx:98 +#: src/lib/moderation/useGlobalLabelStrings.ts:28 msgid "Sign-in Required" msgstr "Необхідно увійти для перегляду" -#: src/view/screens/Settings/index.tsx:355 +#: src/view/screens/Settings/index.tsx:370 msgid "Signed in as" msgstr "Ви увійшли як" -#: src/view/com/auth/login/ChooseAccountForm.tsx:103 +#: src/view/com/auth/login/ChooseAccountForm.tsx:107 msgid "Signed in as @{0}" msgstr "Ви увійшли як @{0}" -#: src/view/com/modals/SwitchAccount.tsx:66 +#: src/view/com/modals/SwitchAccount.tsx:70 msgid "Signs {0} out of Bluesky" msgstr "Виходить з Bluesky облікового запису {0}" #: src/screens/Onboarding/StepInterests/index.tsx:235 #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:195 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:33 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:35 msgid "Skip" msgstr "Пропустити" @@ -3910,15 +4634,21 @@ msgstr "Розробка П/З" #~ msgid "Something went wrong and we're not sure what." #~ msgstr "" +#: src/components/ReportDialog/index.tsx:52 +#: src/screens/Moderation/index.tsx:116 +#: src/screens/Profile/Sections/Labels.tsx:77 +msgid "Something went wrong, please try again." +msgstr "" + #: src/components/Lists.tsx:203 -msgid "Something went wrong!" -msgstr "Щось пішло не так!" +#~ msgid "Something went wrong!" +#~ msgstr "Щось пішло не так!" #: src/view/com/modals/Waitlist.tsx:51 #~ msgid "Something went wrong. Check your email and try again." #~ msgstr "" -#: src/App.native.tsx:66 +#: src/App.native.tsx:71 msgid "Sorry! Your session expired. Please log in again." msgstr "Даруйте! Ваш сеанс вичерпався. Будь ласка, увійдіть знову." @@ -3930,6 +4660,18 @@ msgstr "Сортувати відповіді" msgid "Sort replies to the same post by:" msgstr "Оберіть, як сортувати відповіді до постів:" +#: src/components/moderation/LabelsOnMeDialog.tsx:147 +msgid "Source:" +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:65 +msgid "Spam" +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:53 +msgid "Spam; excessive mentions or replies" +msgstr "" + #: src/screens/Onboarding/index.tsx:30 msgid "Sports" msgstr "Спорт" @@ -3942,7 +4684,7 @@ msgstr "Квадратне" #~ msgid "Staging" #~ msgstr "" -#: src/view/screens/Settings/index.tsx:871 +#: src/view/screens/Settings/index.tsx:901 msgid "Status page" msgstr "Сторінка стану" @@ -3950,37 +4692,50 @@ msgstr "Сторінка стану" msgid "Step {0} of {numSteps}" msgstr "Крок {0} / {numSteps}" -#: src/view/screens/Settings/index.tsx:274 +#: src/view/screens/Settings/index.tsx:288 msgid "Storage cleared, you need to restart the app now." msgstr "Сховище очищено, тепер вам треба перезапустити застосунок." -#: src/Navigation.tsx:204 -#: src/view/screens/Settings/index.tsx:807 +#: src/Navigation.tsx:211 +#: src/view/screens/Settings/index.tsx:827 msgid "Storybook" msgstr "" -#: src/view/com/modals/AppealLabel.tsx:101 +#: src/components/moderation/LabelsOnMeDialog.tsx:256 +#: src/components/moderation/LabelsOnMeDialog.tsx:257 msgid "Submit" msgstr "Надіслати" -#: src/view/screens/ProfileList.tsx:608 +#: src/view/screens/ProfileList.tsx:590 msgid "Subscribe" msgstr "Підписатися" +#: src/screens/Profile/Sections/Labels.tsx:181 +msgid "Subscribe to @{0} to use these labels:" +msgstr "" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:222 +msgid "Subscribe to Labeler" +msgstr "" + #: src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx:173 #: src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx:308 msgid "Subscribe to the {0} feed" msgstr "Підписатися на {0} стрічку" -#: src/view/screens/ProfileList.tsx:604 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:185 +msgid "Subscribe to this labeler" +msgstr "" + +#: src/view/screens/ProfileList.tsx:586 msgid "Subscribe to this list" msgstr "Підписатися на цей список" -#: src/view/screens/Search/Search.tsx:374 +#: src/view/screens/Search/Search.tsx:375 msgid "Suggested Follows" msgstr "Пропоновані підписки" -#: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:64 +#: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:65 msgid "Suggested for you" msgstr "Пропозиції для вас" @@ -3988,7 +4743,7 @@ msgstr "Пропозиції для вас" msgid "Suggestive" msgstr "Непристойний" -#: src/Navigation.tsx:214 +#: src/Navigation.tsx:226 #: src/view/screens/Support.tsx:30 #: src/view/screens/Support.tsx:33 msgid "Support" @@ -3998,29 +4753,29 @@ msgstr "Підтримка" #~ msgid "Swipe up to see more" #~ msgstr "" -#: src/view/com/modals/SwitchAccount.tsx:117 +#: src/view/com/modals/SwitchAccount.tsx:121 msgid "Switch Account" msgstr "Перемикнути обліковий запис" -#: src/view/com/modals/SwitchAccount.tsx:97 -#: src/view/screens/Settings/index.tsx:130 +#: src/view/com/modals/SwitchAccount.tsx:101 +#: src/view/screens/Settings/index.tsx:135 msgid "Switch to {0}" msgstr "Переключитися на {0}" -#: src/view/com/modals/SwitchAccount.tsx:98 -#: src/view/screens/Settings/index.tsx:131 +#: src/view/com/modals/SwitchAccount.tsx:102 +#: src/view/screens/Settings/index.tsx:136 msgid "Switches the account you are logged in to" msgstr "Переключає обліковий запис" -#: src/view/screens/Settings/index.tsx:472 +#: src/view/screens/Settings/index.tsx:487 msgid "System" msgstr "Системне" -#: src/view/screens/Settings/index.tsx:795 +#: src/view/screens/Settings/index.tsx:815 msgid "System log" msgstr "Системний журнал" -#: src/components/dialogs/MutedWords.tsx:337 +#: src/components/dialogs/MutedWords.tsx:324 msgid "tag" msgstr "тег" @@ -4048,30 +4803,49 @@ msgstr "Технології" msgid "Terms" msgstr "Умови" -#: src/Navigation.tsx:224 -#: src/view/screens/Settings/index.tsx:885 +#: src/Navigation.tsx:236 +#: src/view/com/auth/create/Policies.tsx:59 +#: src/view/screens/Settings/index.tsx:915 #: src/view/screens/TermsOfService.tsx:29 -#: src/view/shell/Drawer.tsx:256 +#: src/view/shell/Drawer.tsx:259 msgid "Terms of Service" msgstr "Умови Використання" -#: src/components/dialogs/MutedWords.tsx:337 +#: src/lib/moderation/useReportOptions.ts:58 +#: src/lib/moderation/useReportOptions.ts:79 +#: src/lib/moderation/useReportOptions.ts:87 +msgid "Terms used violate community standards" +msgstr "" + +#: src/components/dialogs/MutedWords.tsx:324 msgid "text" msgstr "текст" -#: src/view/com/modals/AppealLabel.tsx:70 -#: src/view/com/modals/report/InputIssueDetails.tsx:51 +#: src/components/moderation/LabelsOnMeDialog.tsx:220 msgid "Text input field" msgstr "Поле вводу тексту" +#: src/components/ReportDialog/SubmitView.tsx:78 +msgid "Thank you. Your report has been sent." +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:466 +msgid "That contains the following:" +msgstr "" + #: src/view/com/auth/create/CreateAccount.tsx:94 msgid "That handle is already taken." msgstr "Цей псевдонім вже зайнятий." -#: src/view/com/profile/ProfileHeader.tsx:263 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:274 +#: src/view/com/profile/ProfileMenu.tsx:349 msgid "The account will be able to interact with you after unblocking." msgstr "Обліковий запис зможе взаємодіяти з вами після розблокування." +#: src/components/moderation/ModerationDetailsDialog.tsx:128 +msgid "the author" +msgstr "" + #: src/view/screens/CommunityGuidelines.tsx:36 msgid "The Community Guidelines have been moved to <0/>" msgstr "Правила Спільноти переміщено до <0/>" @@ -4080,11 +4854,20 @@ msgstr "Правила Спільноти переміщено до <0/>" msgid "The Copyright Policy has been moved to <0/>" msgstr "Політику захисту авторського права переміщено до <0/>" +#: src/components/moderation/LabelsOnMeDialog.tsx:49 +msgid "The following labels were applied to your account." +msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:50 +msgid "The following labels were applied to your content." +msgstr "" + #: src/screens/Onboarding/Layout.tsx:60 msgid "The following steps will help customize your Bluesky experience." msgstr "Наступні кроки допоможуть налаштувати Ваш досвід використання Bluesky." -#: src/view/com/post-thread/PostThread.tsx:517 +#: src/view/com/post-thread/PostThread.tsx:153 +#: src/view/com/post-thread/PostThread.tsx:165 msgid "The post may have been deleted." msgstr "Можливо цей пост було видалено." @@ -4104,20 +4887,21 @@ msgstr "Умови Використання перенесено до" msgid "There are many feeds to try:" msgstr "Також є багато інших стрічок, щоб спробувати:" -#: src/view/screens/ProfileFeed.tsx:550 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:113 +#: src/view/screens/ProfileFeed.tsx:543 msgid "There was an an issue contacting the server, please check your internet connection and try again." msgstr "Виникла проблема з доступом до сервера. Перевірте підключення до Інтернету і повторіть спробу знову." -#: src/view/com/posts/FeedErrorMessage.tsx:139 +#: src/view/com/posts/FeedErrorMessage.tsx:138 msgid "There was an an issue removing this feed. Please check your internet connection and try again." msgstr "Виникла проблема при видаленні цієї стрічки. Перевірте підключення до Інтернету і повторіть спробу." -#: src/view/screens/ProfileFeed.tsx:210 +#: src/view/screens/ProfileFeed.tsx:217 msgid "There was an an issue updating your feeds, please check your internet connection and try again." msgstr "Виникла проблема з оновленням ваших стрічок. Перевірте підключення до Інтернету і повторіть спробу." -#: src/view/screens/ProfileFeed.tsx:237 -#: src/view/screens/ProfileList.tsx:267 +#: src/view/screens/ProfileFeed.tsx:244 +#: src/view/screens/ProfileList.tsx:275 #: src/view/screens/SavedFeeds.tsx:209 #: src/view/screens/SavedFeeds.tsx:231 #: src/view/screens/SavedFeeds.tsx:252 @@ -4126,9 +4910,8 @@ msgstr "При з'єднанні з сервером виникла пробле #: src/view/com/auth/onboarding/RecommendedFeedsItem.tsx:57 #: src/view/com/auth/onboarding/RecommendedFeedsItem.tsx:66 -#: src/view/com/feeds/FeedSourceCard.tsx:115 -#: src/view/com/feeds/FeedSourceCard.tsx:129 -#: src/view/com/feeds/FeedSourceCard.tsx:183 +#: src/view/com/feeds/FeedSourceCard.tsx:110 +#: src/view/com/feeds/FeedSourceCard.tsx:123 msgid "There was an issue contacting your server" msgstr "При з'єднанні з вашим сервером виникла проблема" @@ -4136,7 +4919,7 @@ msgstr "При з'єднанні з вашим сервером виникла msgid "There was an issue fetching notifications. Tap here to try again." msgstr "Виникла проблема з завантаженням сповіщень. Натисніть тут, щоб повторити спробу." -#: src/view/com/posts/Feed.tsx:265 +#: src/view/com/posts/Feed.tsx:283 msgid "There was an issue fetching posts. Tap here to try again." msgstr "Виникла проблема з завантаженням постів. Натисніть тут, щоб повторити спробу." @@ -4149,34 +4932,40 @@ msgstr "Виникла проблема з завантаженням списк msgid "There was an issue fetching your lists. Tap here to try again." msgstr "Виникла проблема з завантаженням ваших списків. Натисніть тут, щоб повторити спробу." -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:63 -#: src/view/com/modals/ContentFilteringSettings.tsx:126 +#: src/components/ReportDialog/SubmitView.tsx:83 +msgid "There was an issue sending your report. Please check your internet connection." +msgstr "" + +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:65 msgid "There was an issue syncing your preferences with the server" msgstr "Виникла проблема під час синхронізації ваших налаштувань із сервером" -#: src/view/screens/AppPasswords.tsx:66 +#: src/view/screens/AppPasswords.tsx:68 msgid "There was an issue with fetching your app passwords" msgstr "Виникла проблема з завантаженням ваших паролів для застосунків" -#: src/view/com/post-thread/PostThreadFollowBtn.tsx:93 -#: src/view/com/post-thread/PostThreadFollowBtn.tsx:105 -#: src/view/com/profile/ProfileHeader.tsx:157 -#: src/view/com/profile/ProfileHeader.tsx:178 -#: src/view/com/profile/ProfileHeader.tsx:217 -#: src/view/com/profile/ProfileHeader.tsx:230 -#: src/view/com/profile/ProfileHeader.tsx:250 -#: src/view/com/profile/ProfileHeader.tsx:272 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:98 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:120 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:134 +#: src/view/com/post-thread/PostThreadFollowBtn.tsx:96 +#: src/view/com/post-thread/PostThreadFollowBtn.tsx:108 +#: src/view/com/profile/ProfileMenu.tsx:106 +#: src/view/com/profile/ProfileMenu.tsx:117 +#: src/view/com/profile/ProfileMenu.tsx:132 +#: src/view/com/profile/ProfileMenu.tsx:143 +#: src/view/com/profile/ProfileMenu.tsx:157 +#: src/view/com/profile/ProfileMenu.tsx:170 msgid "There was an issue! {0}" msgstr "Виникла проблема! {0}" #: src/view/screens/ProfileList.tsx:288 -#: src/view/screens/ProfileList.tsx:307 -#: src/view/screens/ProfileList.tsx:329 -#: src/view/screens/ProfileList.tsx:348 +#: src/view/screens/ProfileList.tsx:302 +#: src/view/screens/ProfileList.tsx:316 +#: src/view/screens/ProfileList.tsx:330 msgid "There was an issue. Please check your internet connection and try again." msgstr "Виникла проблема. Перевірте підключення до Інтернету і повторіть спробу." -#: src/view/com/util/ErrorBoundary.tsx:36 +#: src/view/com/util/ErrorBoundary.tsx:51 msgid "There was an unexpected issue in the application. Please let us know if this happened to you!" msgstr "У застосунку сталася неочікувана проблема. Будь ласка, повідомте нас, якщо ви отримали це повідомлення!" @@ -4192,19 +4981,32 @@ msgstr "Відбувався наплив нових користувачів у msgid "These are popular accounts you might like:" msgstr "Ці популярні користувачі можуть вам сподобатися:" -#: src/view/com/util/moderation/ScreenHider.tsx:88 +#: src/components/moderation/ScreenHider.tsx:117 msgid "This {screenDescription} has been flagged:" msgstr "Цей {screenDescription} був позначений:" -#: src/view/com/util/moderation/ScreenHider.tsx:83 +#: src/components/moderation/ScreenHider.tsx:112 msgid "This account has requested that users sign in to view their profile." msgstr "Цей користувач вказав, що не хоче, аби його профіль бачили відвідувачі без облікового запису." +#: src/components/moderation/LabelsOnMeDialog.tsx:205 +msgid "This appeal will be sent to <0>{0}." +msgstr "" + +#: src/lib/moderation/useGlobalLabelStrings.ts:19 +msgid "This content has been hidden by the moderators." +msgstr "" + +#: src/lib/moderation/useGlobalLabelStrings.ts:24 +msgid "This content has received a general warning from moderators." +msgstr "" + #: src/view/com/modals/EmbedConsent.tsx:68 msgid "This content is hosted by {0}. Do you want to enable external media?" msgstr "Цей вміст розміщено {0}. Увімкнути зовнішні медіа?" -#: src/view/com/modals/ModerationDetails.tsx:67 +#: src/components/moderation/ModerationDetailsDialog.tsx:78 +#: src/lib/moderation/useModerationCauseDescription.ts:77 msgid "This content is not available because one of the users involved has blocked the other." msgstr "Цей контент недоступний, оскільки один із залучених користувачів заблокував іншого." @@ -4213,16 +5015,20 @@ msgid "This content is not viewable without a Bluesky account." msgstr "Цей вміст не доступний для перегляду без облікового запису Bluesky." #: src/view/screens/Settings/ExportCarDialog.tsx:75 -msgid "This feature is in beta. You can read more about repository exports in <0>this blogpost." -msgstr "Ця функція знаходиться в беті. Ви можете дізнатися більше про експорт репозиторіїв в <0>у цьому блозі." +#~ msgid "This feature is in beta. You can read more about repository exports in <0>this blogpost." +#~ msgstr "Ця функція знаходиться в беті. Ви можете дізнатися більше про експорт репозиторіїв в <0>у цьому блозі." + +#: src/view/screens/Settings/ExportCarDialog.tsx:75 +msgid "This feature is in beta. You can read more about repository exports in <0>this blogpost." +msgstr "" #: src/view/com/posts/FeedErrorMessage.tsx:114 msgid "This feed is currently receiving high traffic and is temporarily unavailable. Please try again later." msgstr "Ця стрічка зараз отримує забагато запитів і тимчасово недоступна. Спробуйте ще раз пізніше." -#: src/view/screens/Profile.tsx:420 +#: src/screens/Profile/Sections/Feed.tsx:50 #: src/view/screens/ProfileFeed.tsx:476 -#: src/view/screens/ProfileList.tsx:661 +#: src/view/screens/ProfileList.tsx:675 msgid "This feed is empty!" msgstr "Стрічка порожня!" @@ -4230,7 +5036,7 @@ msgstr "Стрічка порожня!" msgid "This feed is empty! You may need to follow more users or tune your language settings." msgstr "Ця стрічка порожня! Можливо, вам треба підписатися на більшу кількість користувачів або змінити ваші налаштування мови." -#: src/view/com/modals/BirthDateSettings.tsx:61 +#: src/components/dialogs/BirthDateSettings.tsx:41 msgid "This information is not shared with other users." msgstr "Ця інформація не розкривається іншим користувачам." @@ -4238,14 +5044,26 @@ msgstr "Ця інформація не розкривається іншим к msgid "This is important in case you ever need to change your email or reset your password." msgstr "Це важливо для випадку, якщо вам коли-небудь потрібно буде змінити адресу електронної пошти або відновити пароль." +#: src/components/moderation/ModerationDetailsDialog.tsx:125 +msgid "This label was applied by {0}." +msgstr "" + +#: src/screens/Profile/Sections/Labels.tsx:168 +msgid "This labeler hasn't declared what labels it publishes, and may not be active." +msgstr "" + #: src/view/com/modals/LinkWarning.tsx:58 msgid "This link is taking you to the following website:" msgstr "Це посилання веде на сайт:" -#: src/view/screens/ProfileList.tsx:839 +#: src/view/screens/ProfileList.tsx:853 msgid "This list is empty!" msgstr "Список порожній!" +#: src/screens/Profile/ErrorState.tsx:40 +msgid "This moderation service is unavailable. See below for more details. If this issue persists, contact us." +msgstr "" + #: src/view/com/modals/AddAppPasswords.tsx:106 msgid "This name is already in use" msgstr "Це ім'я вже використовується" @@ -4254,36 +5072,81 @@ msgstr "Це ім'я вже використовується" msgid "This post has been deleted." msgstr "Цей пост було видалено." -#: src/view/com/modals/ModerationDetails.tsx:62 +#: src/view/com/util/forms/PostDropdownBtn.tsx:344 +msgid "This post is only visible to logged-in users. It won't be visible to people who aren't logged in." +msgstr "" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:326 +msgid "This post will be hidden from feeds." +msgstr "" + +#: src/view/com/profile/ProfileMenu.tsx:370 +msgid "This profile is only visible to logged-in users. It won't be visible to people who aren't logged in." +msgstr "" + +#: src/view/com/auth/create/Policies.tsx:46 +msgid "This service has not provided terms of service or a privacy policy." +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:446 +msgid "This should create a domain record at:" +msgstr "" + +#: src/view/com/profile/ProfileFollowers.tsx:95 +msgid "This user doesn't have any followers." +msgstr "" + +#: src/components/moderation/ModerationDetailsDialog.tsx:73 +#: src/lib/moderation/useModerationCauseDescription.ts:68 msgid "This user has blocked you. You cannot view their content." msgstr "Цей користувач заблокував вас. Ви не можете бачити їх пости." +#: src/lib/moderation/useGlobalLabelStrings.ts:30 +msgid "This user has requested that their content only be shown to signed-in users." +msgstr "" + #: src/view/com/modals/ModerationDetails.tsx:42 -msgid "This user is included in the <0/> list which you have blocked." -msgstr "Цей користувач в списку \"<0/>\" на який ви підписались та заблокували." +#~ msgid "This user is included in the <0/> list which you have blocked." +#~ msgstr "Цей користувач в списку \"<0/>\" на який ви підписались та заблокували." #: src/view/com/modals/ModerationDetails.tsx:74 -msgid "This user is included in the <0/> list which you have muted." -msgstr "Цей користувач в списку \"<0/>\" який ви ігноруєте." +#~ msgid "This user is included in the <0/> list which you have muted." +#~ msgstr "Цей користувач в списку \"<0/>\" який ви ігноруєте." + +#: src/components/moderation/ModerationDetailsDialog.tsx:56 +msgid "This user is included in the <0>{0} list which you have blocked." +msgstr "" + +#: src/components/moderation/ModerationDetailsDialog.tsx:85 +msgid "This user is included in the <0>{0} list which you have muted." +msgstr "" #: src/view/com/modals/ModerationDetails.tsx:74 #~ msgid "This user is included the <0/> list which you have muted." #~ msgstr "" +#: src/view/com/profile/ProfileFollows.tsx:94 +msgid "This user isn't following anyone." +msgstr "" + #: src/view/com/modals/SelfLabel.tsx:137 msgid "This warning is only available for posts with media attached." msgstr "Це попередження доступне тільки для записів з прикріпленими медіа-файлами." -#: src/components/dialogs/MutedWords.tsx:285 +#: src/components/dialogs/MutedWords.tsx:284 msgid "This will delete {0} from your muted words. You can always add it back later." msgstr "Це видалить {0} зі ваших ігнорованих слів. Ви завжди можете додати його назад." #: src/view/com/util/forms/PostDropdownBtn.tsx:282 -msgid "This will hide this post from your feeds." -msgstr "Це дія приховає цей пост із вашої стрічки." +#~ msgid "This will hide this post from your feeds." +#~ msgstr "Це дія приховає цей пост із вашої стрічки." + +#: src/view/screens/Settings/index.tsx:570 +msgid "Thread preferences" +msgstr "" #: src/view/screens/PreferencesThreads.tsx:53 -#: src/view/screens/Settings/index.tsx:565 +#: src/view/screens/Settings/index.tsx:580 msgid "Thread Preferences" msgstr "Налаштування гілок" @@ -4291,10 +5154,14 @@ msgstr "Налаштування гілок" msgid "Threaded Mode" msgstr "Режим гілок" -#: src/Navigation.tsx:257 +#: src/Navigation.tsx:269 msgid "Threads Preferences" msgstr "Налаштування обговорень" +#: src/components/ReportDialog/SelectLabelerView.tsx:35 +msgid "To whom would you like to send this report?" +msgstr "" + #: src/components/dialogs/MutedWords.tsx:113 msgid "Toggle between muted word options." msgstr "Перемикання між опціями ігнорування слів." @@ -4303,14 +5170,18 @@ msgstr "Перемикання між опціями ігнорування сл msgid "Toggle dropdown" msgstr "Розкрити/сховати" +#: src/screens/Moderation/index.tsx:334 +msgid "Toggle to enable or disable adult content" +msgstr "" + #: src/view/com/modals/EditImage.tsx:271 msgid "Transformations" msgstr "Редагування" -#: src/view/com/post-thread/PostThreadItem.tsx:685 -#: src/view/com/post-thread/PostThreadItem.tsx:687 -#: src/view/com/util/forms/PostDropdownBtn.tsx:215 -#: src/view/com/util/forms/PostDropdownBtn.tsx:217 +#: src/view/com/post-thread/PostThreadItem.tsx:644 +#: src/view/com/post-thread/PostThreadItem.tsx:646 +#: src/view/com/util/forms/PostDropdownBtn.tsx:212 +#: src/view/com/util/forms/PostDropdownBtn.tsx:214 msgid "Translate" msgstr "Перекласти" @@ -4319,11 +5190,15 @@ msgctxt "action" msgid "Try again" msgstr "Спробувати ще раз" -#: src/view/screens/ProfileList.tsx:506 +#: src/view/com/modals/ChangeHandle.tsx:429 +msgid "Type:" +msgstr "" + +#: src/view/screens/ProfileList.tsx:478 msgid "Un-block list" msgstr "Розблокувати список" -#: src/view/screens/ProfileList.tsx:491 +#: src/view/screens/ProfileList.tsx:461 msgid "Un-mute list" msgstr "Перестати ігнорувати" @@ -4335,21 +5210,28 @@ msgstr "Перестати ігнорувати" msgid "Unable to contact your service. Please check your Internet connection." msgstr "Не вдалося зв'язатися з вашим хостинг-провайдером. Перевірте ваше підключення до Інтернету." -#: src/view/com/profile/ProfileHeader.tsx:433 -#: src/view/screens/ProfileList.tsx:590 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:174 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:278 +#: src/view/com/profile/ProfileMenu.tsx:361 +#: src/view/screens/ProfileList.tsx:572 msgid "Unblock" msgstr "Розблокувати" -#: src/view/com/profile/ProfileHeader.tsx:436 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:179 msgctxt "action" msgid "Unblock" msgstr "Розблокувати" -#: src/view/com/profile/ProfileHeader.tsx:261 -#: src/view/com/profile/ProfileHeader.tsx:345 +#: src/view/com/profile/ProfileMenu.tsx:299 +#: src/view/com/profile/ProfileMenu.tsx:305 msgid "Unblock Account" msgstr "Розблокувати обліковий запис" +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:272 +#: src/view/com/profile/ProfileMenu.tsx:343 +msgid "Unblock Account?" +msgstr "" + #: src/view/com/modals/Repost.tsx:42 #: src/view/com/modals/Repost.tsx:55 #: src/view/com/util/post-ctrls/RepostButton.tsx:60 @@ -4357,25 +5239,39 @@ msgstr "Розблокувати обліковий запис" msgid "Undo repost" msgstr "Скасувати репост" -#: src/view/com/profile/FollowButton.tsx:55 +#: src/view/com/auth/onboarding/RecommendedFollowsItem.tsx:141 +#: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:246 +msgid "Unfollow" +msgstr "" + +#: src/view/com/profile/FollowButton.tsx:60 msgctxt "action" msgid "Unfollow" msgstr "Відписатись" -#: src/view/com/profile/ProfileHeader.tsx:485 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:213 msgid "Unfollow {0}" msgstr "Відписатися від {0}" +#: src/view/com/profile/ProfileMenu.tsx:241 +#: src/view/com/profile/ProfileMenu.tsx:251 +msgid "Unfollow Account" +msgstr "" + #: src/view/com/auth/create/state.ts:262 msgid "Unfortunately, you do not meet the requirements to create an account." msgstr "На жаль, ви не відповідаєте вимогам для створення облікового запису." -#: src/view/com/util/post-ctrls/PostCtrls.tsx:182 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:185 msgid "Unlike" msgstr "Прибрати вподобання" +#: src/view/screens/ProfileFeed.tsx:572 +msgid "Unlike this feed" +msgstr "" + #: src/components/TagMenu/index.tsx:249 -#: src/view/screens/ProfileList.tsx:597 +#: src/view/screens/ProfileList.tsx:579 msgid "Unmute" msgstr "Не ігнорувати" @@ -4383,7 +5279,8 @@ msgstr "Не ігнорувати" msgid "Unmute {truncatedTag}" msgstr "Не ігнорувати {truncatedTag}" -#: src/view/com/profile/ProfileHeader.tsx:326 +#: src/view/com/profile/ProfileMenu.tsx:278 +#: src/view/com/profile/ProfileMenu.tsx:284 msgid "Unmute Account" msgstr "Перестати ігнорувати" @@ -4400,26 +5297,46 @@ msgstr "Перестати ігнорувати всі пости {displayTag}" msgid "Unmute thread" msgstr "Перестати ігнорувати" -#: src/view/screens/ProfileFeed.tsx:354 -#: src/view/screens/ProfileList.tsx:581 +#: src/view/screens/ProfileFeed.tsx:294 +#: src/view/screens/ProfileList.tsx:563 msgid "Unpin" msgstr "Відкріпити" -#: src/view/screens/ProfileList.tsx:474 +#: src/view/screens/ProfileFeed.tsx:291 +msgid "Unpin from home" +msgstr "" + +#: src/view/screens/ProfileList.tsx:444 msgid "Unpin moderation list" msgstr "Відкріпити список модерації" #: src/view/screens/ProfileFeed.tsx:346 -msgid "Unsave" -msgstr "Скасувати збереження" +#~ msgid "Unsave" +#~ msgstr "Скасувати збереження" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:220 +msgid "Unsubscribe" +msgstr "" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:184 +msgid "Unsubscribe from this labeler" +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:70 +msgid "Unwanted Sexual Content" +msgstr "" #: src/view/com/modals/UserAddRemoveLists.tsx:70 msgid "Update {displayName} in Lists" msgstr "Змінити належність {displayName} до списків" #: src/lib/hooks/useOTAUpdate.ts:15 -msgid "Update Available" -msgstr "Доступне оновлення" +#~ msgid "Update Available" +#~ msgstr "Доступне оновлення" + +#: src/view/com/modals/ChangeHandle.tsx:509 +msgid "Update to {handle}" +msgstr "" #: src/view/com/auth/login/SetNewPasswordForm.tsx:204 msgid "Updating..." @@ -4429,11 +5346,38 @@ msgstr "Оновлення..." msgid "Upload a text file to:" msgstr "Завантажити текстовий файл до:" -#: src/view/screens/AppPasswords.tsx:195 +#: src/view/com/util/UserAvatar.tsx:326 +#: src/view/com/util/UserAvatar.tsx:329 +#: src/view/com/util/UserBanner.tsx:116 +#: src/view/com/util/UserBanner.tsx:119 +msgid "Upload from Camera" +msgstr "" + +#: src/view/com/util/UserAvatar.tsx:343 +#: src/view/com/util/UserBanner.tsx:133 +msgid "Upload from Files" +msgstr "" + +#: src/view/com/util/UserAvatar.tsx:337 +#: src/view/com/util/UserAvatar.tsx:341 +#: src/view/com/util/UserBanner.tsx:127 +#: src/view/com/util/UserBanner.tsx:131 +msgid "Upload from Library" +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:409 +msgid "Use a file on your server" +msgstr "" + +#: src/view/screens/AppPasswords.tsx:197 msgid "Use app passwords to login to other Bluesky clients without giving full access to your account or password." msgstr "Використовуйте паролі для застосунків для входу в інших застосунках для Bluesky. Це дозволить використовувати їх, не надаючи повний доступ до вашого облікового запису і вашого основного пароля." -#: src/view/com/modals/ChangeHandle.tsx:515 +#: src/view/com/modals/ChangeHandle.tsx:518 +msgid "Use bsky.social as hosting provider" +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:517 msgid "Use default provider" msgstr "Використовувати провайдера за замовчуванням" @@ -4447,6 +5391,10 @@ msgstr "У вбудованому браузері" msgid "Use my default browser" msgstr "У звичайному браузері" +#: src/view/com/modals/ChangeHandle.tsx:401 +msgid "Use the DNS panel" +msgstr "" + #: src/view/com/modals/AddAppPasswords.tsx:155 msgid "Use this to sign into the other app along with your handle." msgstr "Скористайтесь ним для входу в інші застосунки." @@ -4459,15 +5407,24 @@ msgstr "Скористайтесь ним для входу в інші заст msgid "Used by:" msgstr "Використано:" -#: src/view/com/modals/ModerationDetails.tsx:54 +#: src/components/moderation/ModerationDetailsDialog.tsx:65 +#: src/lib/moderation/useModerationCauseDescription.ts:56 msgid "User Blocked" msgstr "Користувача заблоковано" -#: src/view/com/modals/ModerationDetails.tsx:40 +#: src/lib/moderation/useModerationCauseDescription.ts:48 +msgid "User Blocked by \"{0}\"" +msgstr "" + +#: src/components/moderation/ModerationDetailsDialog.tsx:54 msgid "User Blocked by List" msgstr "Користувача заблоковано списком" -#: src/view/com/modals/ModerationDetails.tsx:60 +#: src/lib/moderation/useModerationCauseDescription.ts:66 +msgid "User Blocking You" +msgstr "" + +#: src/components/moderation/ModerationDetailsDialog.tsx:71 msgid "User Blocks You" msgstr "Користувач заблокував вас" @@ -4480,13 +5437,13 @@ msgstr "Псевдонім" msgid "User list by {0}" msgstr "Список користувачів від {0}" -#: src/view/screens/ProfileList.tsx:763 +#: src/view/screens/ProfileList.tsx:777 msgid "User list by <0/>" msgstr "Список користувачів від <0/>" #: src/view/com/lists/ListCard.tsx:83 #: src/view/com/modals/UserAddRemoveLists.tsx:196 -#: src/view/screens/ProfileList.tsx:761 +#: src/view/screens/ProfileList.tsx:775 msgid "User list by you" msgstr "Список користувачів від вас" @@ -4507,7 +5464,7 @@ msgstr "Списки користувачів" msgid "Username or email address" msgstr "Ім'я користувача або електронна адреса" -#: src/view/screens/ProfileList.tsx:797 +#: src/view/screens/ProfileList.tsx:811 msgid "Users" msgstr "Користувачі" @@ -4519,19 +5476,31 @@ msgstr "користувачі, на яких підписані <0/>" msgid "Users in \"{0}\"" msgstr "Користувачі в «{0}»" +#: src/components/LikesDialog.tsx:85 +msgid "Users that have liked this content or profile" +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:437 +msgid "Value:" +msgstr "" + #: src/view/com/auth/create/Step2.tsx:243 #~ msgid "Verification code" #~ msgstr "" -#: src/view/screens/Settings/index.tsx:910 +#: src/view/com/modals/ChangeHandle.tsx:510 +msgid "Verify {0}" +msgstr "" + +#: src/view/screens/Settings/index.tsx:940 msgid "Verify email" msgstr "Підтвердити електронну адресу" -#: src/view/screens/Settings/index.tsx:935 +#: src/view/screens/Settings/index.tsx:965 msgid "Verify my email" msgstr "Підтвердити мою електронну адресу" -#: src/view/screens/Settings/index.tsx:944 +#: src/view/screens/Settings/index.tsx:974 msgid "Verify My Email" msgstr "Підтвердити мою електронну адресу" @@ -4548,7 +5517,7 @@ msgstr "Підтвердьте адресу вашої електронної п msgid "Video Games" msgstr "Відеоігри" -#: src/view/com/profile/ProfileHeader.tsx:662 +#: src/screens/Profile/Header/Shell.tsx:110 msgid "View {0}'s avatar" msgstr "Переглянути аватар {0}" @@ -4556,11 +5525,23 @@ msgstr "Переглянути аватар {0}" msgid "View debug entry" msgstr "Переглянути запис для налагодження" -#: src/view/com/posts/FeedSlice.tsx:103 +#: src/components/ReportDialog/SelectReportOptionView.tsx:133 +msgid "View details" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:128 +msgid "View details for reporting a copyright violation" +msgstr "" + +#: src/view/com/posts/FeedSlice.tsx:99 msgid "View full thread" msgstr "Переглянути обговорення" -#: src/view/com/posts/FeedErrorMessage.tsx:172 +#: src/components/moderation/LabelsOnMe.tsx:51 +msgid "View information about these labels" +msgstr "" + +#: src/view/com/posts/FeedErrorMessage.tsx:166 msgid "View profile" msgstr "Переглянути профіль" @@ -4568,15 +5549,34 @@ msgstr "Переглянути профіль" msgid "View the avatar" msgstr "Переглянути аватар" +#: src/components/LabelingServiceCard/index.tsx:140 +msgid "View the labeling service provided by @{0}" +msgstr "" + +#: src/view/screens/ProfileFeed.tsx:584 +msgid "View users who like this feed" +msgstr "" + #: src/view/com/modals/LinkWarning.tsx:75 +#: src/view/com/modals/LinkWarning.tsx:77 msgid "Visit Site" msgstr "Відвідати сайт" -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:42 -#: src/view/com/modals/ContentFilteringSettings.tsx:259 +#: src/components/moderation/GlobalModerationLabelPref.tsx:44 +#: src/lib/moderation/useLabelBehaviorDescription.ts:17 +#: src/lib/moderation/useLabelBehaviorDescription.ts:22 +#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:53 msgid "Warn" msgstr "Попереджати" +#: src/lib/moderation/useLabelBehaviorDescription.ts:48 +msgid "Warn content" +msgstr "" + +#: src/lib/moderation/useLabelBehaviorDescription.ts:46 +msgid "Warn content and filter from feeds" +msgstr "" + #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:134 msgid "We also think you'll like \"For You\" by Skygaze:" msgstr "Гадаємо, вам також сподобається «For You» від Skygaze:" @@ -4609,6 +5609,14 @@ msgstr "Ми рекомендуємо уникати загальних слів msgid "We recommend our \"Discover\" feed:" msgstr "Ми рекомендуємо стрічку «Discover»:" +#: src/components/dialogs/BirthDateSettings.tsx:52 +msgid "We were unable to load your birth date preferences. Please try again." +msgstr "" + +#: src/screens/Moderation/index.tsx:387 +msgid "We were unable to load your configured labelers at this time." +msgstr "" + #: src/screens/Onboarding/StepInterests/index.tsx:133 msgid "We weren't able to connect. Please try again to continue setting up your account. If it continues to fail, you can skip this flow." msgstr "Ми не змогли під'єднатися. Будь ласка, спробуйте ще раз, щоб продовжити налаштування свого облікового запису. Якщо помилка повторюється, то ви можете пропустити цей процес." @@ -4618,8 +5626,8 @@ msgid "We will let you know when your account is ready." msgstr "Ми повідомимо вас, коли ваш обліковий запис буде готовий." #: src/view/com/modals/AppealLabel.tsx:48 -msgid "We'll look into your appeal promptly." -msgstr "Ми скоро розглянемо вашу апеляцію." +#~ msgid "We'll look into your appeal promptly." +#~ msgstr "Ми скоро розглянемо вашу апеляцію." #: src/screens/Onboarding/StepInterests/index.tsx:138 msgid "We'll use this to help customize your experience." @@ -4629,7 +5637,7 @@ msgstr "Ми скористаємося цим, щоб підлаштувати msgid "We're so excited to have you join us!" msgstr "Ми дуже раді, що ви приєдналися!" -#: src/view/screens/ProfileList.tsx:86 +#: src/view/screens/ProfileList.tsx:89 msgid "We're sorry, but we were unable to resolve this list. If this persists, please contact the list creator, @{handleOrDid}." msgstr "Дуже прикро, але нам не вдалося знайти цей список. Якщо це продовжується, будь ласка, зв'яжіться з його автором: @{handleOrDid}." @@ -4637,16 +5645,20 @@ msgstr "Дуже прикро, але нам не вдалося знайти ц msgid "We're sorry, but we weren't able to load your muted words at this time. Please try again." msgstr "На жаль, ми не змогли зараз завантажити ваші ігноровані слова. Будь ласка, спробуйте ще раз." -#: src/view/screens/Search/Search.tsx:254 +#: src/view/screens/Search/Search.tsx:255 msgid "We're sorry, but your search could not be completed. Please try again in a few minutes." msgstr "Даруйте, нам не вдалося виконати пошук за вашим запитом. Будь ласка, спробуйте ще раз через кілька хвилин." -#: src/components/Lists.tsx:211 +#: src/components/Lists.tsx:194 #: src/view/screens/NotFound.tsx:48 msgid "We're sorry! We can't find the page you were looking for." msgstr "Нам дуже прикро! Ми не можемо знайти сторінку, яку ви шукали." -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:46 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:319 +msgid "We're sorry! You can only subscribe to ten labelers, and you've reached your limit of ten." +msgstr "" + +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:48 msgid "Welcome to <0>Bluesky" msgstr "Ласкаво просимо до <0>Bluesky" @@ -4655,11 +5667,11 @@ msgid "What are your interests?" msgstr "Чим ви цікавитесь?" #: src/view/com/modals/report/Modal.tsx:169 -msgid "What is the issue with this {collectionName}?" -msgstr "Яка проблема з {collectionName}?" +#~ msgid "What is the issue with this {collectionName}?" +#~ msgstr "Яка проблема з {collectionName}?" #: src/view/com/auth/SplashScreen.tsx:59 -#: src/view/com/composer/Composer.tsx:286 +#: src/view/com/composer/Composer.tsx:295 msgid "What's up?" msgstr "Як справи?" @@ -4676,16 +5688,36 @@ msgstr "Якими мовами ви хочете бачити пости у а msgid "Who can reply" msgstr "Хто може відповідати" +#: src/components/ReportDialog/SelectReportOptionView.tsx:44 +msgid "Why should this content be reviewed?" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:57 +msgid "Why should this feed be reviewed?" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:54 +msgid "Why should this list be reviewed?" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:51 +msgid "Why should this post be reviewed?" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:48 +msgid "Why should this user be reviewed?" +msgstr "" + #: src/view/com/modals/crop-image/CropImage.web.tsx:102 msgid "Wide" msgstr "Широке" -#: src/view/com/composer/Composer.tsx:422 +#: src/view/com/composer/Composer.tsx:435 msgid "Write post" msgstr "Написати пост" -#: src/view/com/composer/Composer.tsx:285 -#: src/view/com/composer/Prompt.tsx:33 +#: src/view/com/composer/Composer.tsx:294 +#: src/view/com/composer/Prompt.tsx:37 msgid "Write your reply" msgstr "Написати відповідь" @@ -4715,6 +5747,10 @@ msgstr "Так" msgid "You are in line." msgstr "Ви в черзі." +#: src/view/com/profile/ProfileFollows.tsx:93 +msgid "You are not following anyone." +msgstr "" + #: src/view/com/posts/FollowingEmptyState.tsx:67 #: src/view/com/posts/FollowingEndOfFeed.tsx:68 msgid "You can also discover new Custom Feeds to follow." @@ -4733,6 +5769,10 @@ msgstr "Ви можете змінити ці налаштування пізн msgid "You can now sign in with your new password." msgstr "Тепер ви можете увійти за допомогою нового пароля." +#: src/view/com/profile/ProfileFollowers.tsx:94 +msgid "You do not have any followers." +msgstr "" + #: src/view/com/modals/InviteCodes.tsx:66 msgid "You don't have any invite codes yet! We'll send you some when you've been on Bluesky for a little longer." msgstr "У вас ще немає кодів запрошення! З часом ми надамо вам декілька." @@ -4749,11 +5789,13 @@ msgstr "У вас немає збережених стрічок!" msgid "You don't have any saved feeds." msgstr "У вас немає збережених стрічок." -#: src/view/com/post-thread/PostThread.tsx:465 +#: src/view/com/post-thread/PostThread.tsx:159 msgid "You have blocked the author or you have been blocked by the author." msgstr "Ви заблокували автора або автор заблокував вас." -#: src/view/com/modals/ModerationDetails.tsx:56 +#: src/components/moderation/ModerationDetailsDialog.tsx:67 +#: src/lib/moderation/useModerationCauseDescription.ts:50 +#: src/lib/moderation/useModerationCauseDescription.ts:58 msgid "You have blocked this user. You cannot view their content." msgstr "Ви заблокували цього користувача. Ви не можете бачити їх вміст." @@ -4764,9 +5806,26 @@ msgstr "Ви заблокували цього користувача. Ви не msgid "You have entered an invalid code. It should look like XXXXX-XXXXX." msgstr "Ви ввели неправильний код. Він має виглядати так: XXXXX-XXXXX." +#: src/lib/moderation/useModerationCauseDescription.ts:109 +msgid "You have hidden this post" +msgstr "" + +#: src/components/moderation/ModerationDetailsDialog.tsx:102 +msgid "You have hidden this post." +msgstr "" + +#: src/components/moderation/ModerationDetailsDialog.tsx:95 +#: src/lib/moderation/useModerationCauseDescription.ts:92 +msgid "You have muted this account." +msgstr "" + +#: src/lib/moderation/useModerationCauseDescription.ts:86 +msgid "You have muted this user" +msgstr "" + #: src/view/com/modals/ModerationDetails.tsx:87 -msgid "You have muted this user." -msgstr "Ви включили функцію ігнорування цього користувача." +#~ msgid "You have muted this user." +#~ msgstr "Ви включили функцію ігнорування цього користувача." #: src/view/com/feeds/ProfileFeedgens.tsx:136 msgid "You have no feeds." @@ -4778,34 +5837,50 @@ msgid "You have no lists." msgstr "У вас немає списків." #: src/view/screens/ModerationBlockedAccounts.tsx:132 -msgid "You have not blocked any accounts yet. To block an account, go to their profile and selected \"Block account\" from the menu on their account." -msgstr "Ви ще не заблокували жодного облікового запису. Щоб заблокувати когось, перейдіть до їх профілю та виберіть опцію \"Заблокувати\" у меню їх облікового запису." +msgid "You have not blocked any accounts yet. To block an account, go to their profile and select \"Block account\" from the menu on their account." +msgstr "" + +#: src/view/screens/ModerationBlockedAccounts.tsx:132 +#~ msgid "You have not blocked any accounts yet. To block an account, go to their profile and selected \"Block account\" from the menu on their account." +#~ msgstr "Ви ще не заблокували жодного облікового запису. Щоб заблокувати когось, перейдіть до їх профілю та виберіть опцію \"Заблокувати\" у меню їх облікового запису." -#: src/view/screens/AppPasswords.tsx:87 +#: src/view/screens/AppPasswords.tsx:89 msgid "You have not created any app passwords yet. You can create one by pressing the button below." msgstr "Ви ще не створили жодного пароля для застосунків. Ви можете створити новий пароль, натиснувши кнопку нижче." #: src/view/screens/ModerationMutedAccounts.tsx:131 -msgid "You have not muted any accounts yet. To mute an account, go to their profile and selected \"Mute account\" from the menu on their account." -msgstr "Ви ще не ігноруєте жодного облікового запису. Щоб ігнорувати когось, перейдіть до їх профілю та виберіть опцію \"Ігнорувати\" у меню їх облікового запису." +msgid "You have not muted any accounts yet. To mute an account, go to their profile and select \"Mute account\" from the menu on their account." +msgstr "" + +#: src/view/screens/ModerationMutedAccounts.tsx:131 +#~ msgid "You have not muted any accounts yet. To mute an account, go to their profile and selected \"Mute account\" from the menu on their account." +#~ msgstr "Ви ще не ігноруєте жодного облікового запису. Щоб ігнорувати когось, перейдіть до їх профілю та виберіть опцію \"Ігнорувати\" у меню їх облікового запису." #: src/components/dialogs/MutedWords.tsx:250 msgid "You haven't muted any words or tags yet" msgstr "У вас ще немає ігнорованих слів чи тегів" +#: src/components/moderation/LabelsOnMeDialog.tsx:69 +msgid "You may appeal these labels if you feel they were placed in error." +msgstr "" + #: src/view/com/modals/ContentFilteringSettings.tsx:175 -msgid "You must be 18 or older to enable adult content." -msgstr "Щоб увімкнути відображення вмісту для дорослих вам повинно бути не менше 18 років." +#~ msgid "You must be 18 or older to enable adult content." +#~ msgstr "Щоб увімкнути відображення вмісту для дорослих вам повинно бути не менше 18 років." -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:103 +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:110 msgid "You must be 18 years or older to enable adult content" msgstr "Ви повинні бути старше 18 років, щоб дозволити перегляд контенту для дорослих" -#: src/view/com/util/forms/PostDropdownBtn.tsx:147 +#: src/components/ReportDialog/SubmitView.tsx:205 +msgid "You must select at least one labeler for a report" +msgstr "" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:144 msgid "You will no longer receive notifications for this thread" msgstr "Ви більше не будете отримувати сповіщення з цього обговорення" -#: src/view/com/util/forms/PostDropdownBtn.tsx:150 +#: src/view/com/util/forms/PostDropdownBtn.tsx:147 msgid "You will now receive notifications for this thread" msgstr "Ви будете отримувати сповіщення з цього обговорення" @@ -4813,7 +5888,7 @@ msgstr "Ви будете отримувати сповіщення з цьог msgid "You will receive an email with a \"reset code.\" Enter that code here, then enter your new password." msgstr "Ви отримаєте електронний лист із кодом підтвердження. Введіть цей код тут, а потім введіть новий пароль." -#: src/screens/Onboarding/StepModeration/index.tsx:72 +#: src/screens/Onboarding/StepModeration/index.tsx:59 msgid "You're in control" msgstr "Все під вашим контролем" @@ -4827,6 +5902,11 @@ msgstr "Ви в черзі" msgid "You're ready to go!" msgstr "Все готово!" +#: src/components/moderation/ModerationDetailsDialog.tsx:99 +#: src/lib/moderation/useModerationCauseDescription.ts:101 +msgid "You've chosen to hide a word or tag within this post." +msgstr "" + #: src/view/com/posts/FollowingEndOfFeed.tsx:48 msgid "You've reached the end of your feed! Find some more accounts to follow." msgstr "Ваша домашня стрічка закінчилась! Підпишіться на більше користувачів щоб отримувати більше постів." @@ -4895,30 +5975,29 @@ msgstr "Вашим повним псевдонімом буде <0>@{0}" msgid "Your muted words" msgstr "Ваші ігноровані слова" -#: src/view/com/modals/ChangePassword.tsx:155 +#: src/view/com/modals/ChangePassword.tsx:157 msgid "Your password has been changed successfully!" msgstr "Ваш пароль успішно змінено!" -#: src/view/com/composer/Composer.tsx:274 +#: src/view/com/composer/Composer.tsx:283 msgid "Your post has been published" msgstr "Пост опубліковано" #: src/screens/Onboarding/StepFinished.tsx:105 #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:59 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:59 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:61 msgid "Your posts, likes, and blocks are public. Mutes are private." msgstr "Ваші повідомлення, вподобання і блоки є публічними. Ігнорування - приватні." -#: src/view/com/modals/SwitchAccount.tsx:84 -#: src/view/screens/Settings/index.tsx:118 +#: src/view/com/modals/SwitchAccount.tsx:88 +#: src/view/screens/Settings/index.tsx:123 msgid "Your profile" msgstr "Ваш профіль" -#: src/view/com/composer/Composer.tsx:273 +#: src/view/com/composer/Composer.tsx:282 msgid "Your reply has been published" msgstr "Відповідь опубліковано" #: src/view/com/auth/create/Step2.tsx:65 msgid "Your user handle" msgstr "Ваш псевдонім" - diff --git a/src/locale/locales/zh-CN/messages.po b/src/locale/locales/zh-CN/messages.po index d7fb15b036..ba51f5fcfb 100644 --- a/src/locale/locales/zh-CN/messages.po +++ b/src/locale/locales/zh-CN/messages.po @@ -21,7 +21,7 @@ msgstr "(没有邮件)" #~ msgid "{0, plural, one {# invite code available} other {# invite codes available}}" #~ msgstr "{0, plural, one {# 条邀请码可用} other {# 条邀请码可用}}" -#: src/view/com/profile/ProfileHeader.tsx:593 +#: src/screens/Profile/Header/Metrics.tsx:45 msgid "{following} following" msgstr "{following} 个正在关注" @@ -39,7 +39,7 @@ msgstr "{following} 个正在关注" #~ msgid "{invitesAvailable} invite codes available" #~ msgstr "{invitesAvailable} 条邀请码可用" -#: src/view/shell/Drawer.tsx:440 +#: src/view/shell/Drawer.tsx:443 msgid "{numUnreadNotifications} unread" msgstr "{numUnreadNotifications} 个未读" @@ -47,7 +47,11 @@ msgstr "{numUnreadNotifications} 个未读" msgid "<0/> members" msgstr "<0/> 个成员" -#: src/view/com/profile/ProfileHeader.tsx:595 +#: src/view/shell/Drawer.tsx:97 +msgid "<0>{0} following" +msgstr "" + +#: src/screens/Profile/Header/Metrics.tsx:46 msgid "<0>{following} <1>following" msgstr "<0>{following} <1>个正在关注" @@ -63,20 +67,20 @@ msgstr "<0>关注一些<1>推荐的<2>用户" msgid "<0>Welcome to<1>Bluesky" msgstr "<0>欢迎来到<1>Bluesky" -#: src/view/com/profile/ProfileHeader.tsx:558 +#: src/screens/Profile/Header/Handle.tsx:42 msgid "⚠Invalid Handle" msgstr "⚠无效的用户识别符" #: src/view/com/util/moderation/LabelInfo.tsx:45 -msgid "A content warning has been applied to this {0}." -msgstr "内容警告已套用到这个{0}." +#~ msgid "A content warning has been applied to this {0}." +#~ msgstr "内容警告已套用到这个{0}." #: src/lib/hooks/useOTAUpdate.ts:16 -msgid "A new version of the app is available. Please update to continue using the app." -msgstr "应用新版本已发布,请更新以继续使用。" +#~ msgid "A new version of the app is available. Please update to continue using the app." +#~ msgstr "应用新版本已发布,请更新以继续使用。" #: src/view/com/util/ViewHeader.tsx:89 -#: src/view/screens/Search/Search.tsx:647 +#: src/view/screens/Search/Search.tsx:648 msgid "Access navigation links and settings" msgstr "访问导航链接及设置" @@ -85,29 +89,38 @@ msgid "Access profile and other navigation links" msgstr "访问个人资料及其他导航链接" #: src/view/com/modals/EditImage.tsx:299 -#: src/view/screens/Settings/index.tsx:451 +#: src/view/screens/Settings/index.tsx:466 msgid "Accessibility" msgstr "无障碍" +#: src/components/moderation/LabelsOnMe.tsx:42 +msgid "account" +msgstr "" + #: src/view/com/auth/login/LoginForm.tsx:166 -#: src/view/screens/Settings/index.tsx:308 -#: src/view/screens/Settings/index.tsx:721 +#: src/view/screens/Settings/index.tsx:323 +#: src/view/screens/Settings/index.tsx:739 msgid "Account" msgstr "账户" -#: src/view/com/profile/ProfileHeader.tsx:246 +#: src/view/com/profile/ProfileMenu.tsx:139 msgid "Account blocked" msgstr "已屏蔽账户" -#: src/view/com/profile/ProfileHeader.tsx:213 +#: src/view/com/profile/ProfileMenu.tsx:153 +msgid "Account followed" +msgstr "" + +#: src/view/com/profile/ProfileMenu.tsx:113 msgid "Account muted" msgstr "已隐藏账户" -#: src/view/com/modals/ModerationDetails.tsx:86 +#: src/components/moderation/ModerationDetailsDialog.tsx:94 +#: src/lib/moderation/useModerationCauseDescription.ts:91 msgid "Account Muted" msgstr "已隐藏账户" -#: src/view/com/modals/ModerationDetails.tsx:72 +#: src/components/moderation/ModerationDetailsDialog.tsx:83 msgid "Account Muted by List" msgstr "账户已被列表隐藏" @@ -119,19 +132,24 @@ msgstr "账户选项" msgid "Account removed from quick access" msgstr "已从快速访问中移除账户" -#: src/view/com/profile/ProfileHeader.tsx:268 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:130 +#: src/view/com/profile/ProfileMenu.tsx:128 msgid "Account unblocked" msgstr "已取消屏蔽账户" -#: src/view/com/profile/ProfileHeader.tsx:226 +#: src/view/com/profile/ProfileMenu.tsx:166 +msgid "Account unfollowed" +msgstr "" + +#: src/view/com/profile/ProfileMenu.tsx:102 msgid "Account unmuted" msgstr "已取消隐藏账户" #: src/components/dialogs/MutedWords.tsx:165 #: src/view/com/auth/onboarding/RecommendedFeedsItem.tsx:150 -#: src/view/com/modals/ListAddRemoveUsers.tsx:264 +#: src/view/com/modals/ListAddRemoveUsers.tsx:268 #: src/view/com/modals/UserAddRemoveLists.tsx:219 -#: src/view/screens/ProfileList.tsx:813 +#: src/view/screens/ProfileList.tsx:827 msgid "Add" msgstr "添加" @@ -139,12 +157,12 @@ msgstr "添加" msgid "Add a content warning" msgstr "新增内容警告" -#: src/view/screens/ProfileList.tsx:803 +#: src/view/screens/ProfileList.tsx:817 msgid "Add a user to this list" msgstr "将用户添加至列表" -#: src/view/screens/Settings/index.tsx:383 -#: src/view/screens/Settings/index.tsx:392 +#: src/view/screens/Settings/index.tsx:398 +#: src/view/screens/Settings/index.tsx:407 msgid "Add account" msgstr "添加账户" @@ -154,26 +172,26 @@ msgstr "添加账户" msgid "Add alt text" msgstr "新增替代文字" -#: src/view/screens/AppPasswords.tsx:102 -#: src/view/screens/AppPasswords.tsx:143 -#: src/view/screens/AppPasswords.tsx:156 +#: src/view/screens/AppPasswords.tsx:104 +#: src/view/screens/AppPasswords.tsx:145 +#: src/view/screens/AppPasswords.tsx:158 msgid "Add App Password" msgstr "新增应用专用密码" #: src/view/com/modals/report/InputIssueDetails.tsx:41 #: src/view/com/modals/report/Modal.tsx:191 -msgid "Add details" -msgstr "新增细节" +#~ msgid "Add details" +#~ msgstr "新增细节" #: src/view/com/modals/report/Modal.tsx:194 -msgid "Add details to report" -msgstr "补充反馈详细内容" +#~ msgid "Add details to report" +#~ msgstr "补充反馈详细内容" -#: src/view/com/composer/Composer.tsx:453 +#: src/view/com/composer/Composer.tsx:466 msgid "Add link card" msgstr "添加链接卡片" -#: src/view/com/composer/Composer.tsx:458 +#: src/view/com/composer/Composer.tsx:471 msgid "Add link card:" msgstr "添加链接卡片:" @@ -189,12 +207,12 @@ msgstr "添加隐藏词和话题标签" msgid "Add the following DNS record to your domain:" msgstr "将以下 DNS 记录新增到你的域名:" -#: src/view/com/profile/ProfileHeader.tsx:310 +#: src/view/com/profile/ProfileMenu.tsx:263 +#: src/view/com/profile/ProfileMenu.tsx:266 msgid "Add to Lists" msgstr "添加至列表" -#: src/view/com/feeds/FeedSourceCard.tsx:245 -#: src/view/screens/ProfileFeed.tsx:273 +#: src/view/com/feeds/FeedSourceCard.tsx:234 msgid "Add to my feeds" msgstr "添加至自定义信息流" @@ -207,7 +225,7 @@ msgstr "已添加" msgid "Added to list" msgstr "已添加至列表" -#: src/view/com/feeds/FeedSourceCard.tsx:127 +#: src/view/com/feeds/FeedSourceCard.tsx:108 msgid "Added to my feeds" msgstr "已添加至自定义信息流" @@ -215,15 +233,21 @@ msgstr "已添加至自定义信息流" msgid "Adjust the number of likes a reply must have to be shown in your feed." msgstr "调整回复中需要具有的喜欢数才会在你的信息流中显示。" +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:117 #: src/view/com/modals/SelfLabel.tsx:75 msgid "Adult Content" msgstr "成人内容" #: src/view/com/modals/ContentFilteringSettings.tsx:141 -msgid "Adult content can only be enabled via the Web at <0/>." -msgstr "要显示成人内容,你必须访问网页端<0/>来启用。" +#~ msgid "Adult content can only be enabled via the Web at <0/>." +#~ msgstr "要显示成人内容,你必须访问网页端<0/>来启用。" -#: src/view/screens/Settings/index.tsx:664 +#: src/components/moderation/ModerationLabelPref.tsx:114 +msgid "Adult content is disabled." +msgstr "" + +#: src/screens/Moderation/index.tsx:377 +#: src/view/screens/Settings/index.tsx:680 msgid "Advanced" msgstr "详细设置" @@ -232,11 +256,11 @@ msgid "All the feeds you've saved, right in one place." msgstr "你保存的所有信息流都集中在一处。" #: src/view/com/auth/login/ForgotPasswordForm.tsx:221 -#: src/view/com/modals/ChangePassword.tsx:168 +#: src/view/com/modals/ChangePassword.tsx:170 msgid "Already have a code?" msgstr "已经有验证码了?" -#: src/view/com/auth/login/ChooseAccountForm.tsx:98 +#: src/view/com/auth/login/ChooseAccountForm.tsx:102 msgid "Already signed in as @{0}" msgstr "已以@{0}身份登录" @@ -260,12 +284,18 @@ msgstr "一封电子邮件已发送至 {0}。请查阅邮件内容并复制验 msgid "An email has been sent to your previous address, {0}. It includes a confirmation code which you can enter below." msgstr "一封电子邮件已发送至先前填写的邮箱 {0}。请查阅邮件内容并复制验证码至下方。" -#: src/view/com/profile/FollowButton.tsx:30 -#: src/view/com/profile/FollowButton.tsx:40 +#: src/lib/moderation/useReportOptions.ts:26 +msgid "An issue not included in these options" +msgstr "" + +#: src/view/com/profile/FollowButton.tsx:35 +#: src/view/com/profile/FollowButton.tsx:45 +#: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:188 +#: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:198 msgid "An issue occurred, please try again." msgstr "出现问题,请重试。" -#: src/view/com/notifications/FeedItem.tsx:237 +#: src/view/com/notifications/FeedItem.tsx:240 #: src/view/com/threadgate/WhoCanReply.tsx:178 msgid "and" msgstr "和" @@ -274,11 +304,15 @@ msgstr "和" msgid "Animals" msgstr "动物" +#: src/lib/moderation/useReportOptions.ts:31 +msgid "Anti-Social Behavior" +msgstr "" + #: src/view/screens/LanguageSettings.tsx:95 msgid "App Language" msgstr "应用语言" -#: src/view/screens/AppPasswords.tsx:228 +#: src/view/screens/AppPasswords.tsx:223 msgid "App password deleted" msgstr "应用专用密码已删除" @@ -290,7 +324,7 @@ msgstr "应用专用密码只能包含字母、数字、空格、破折号及下 msgid "App Password names must be at least 4 characters long." msgstr "应用专用密码必须至少为 4 个字符。" -#: src/view/screens/Settings/index.tsx:675 +#: src/view/screens/Settings/index.tsx:691 msgid "App password settings" msgstr "应用专用密码设置" @@ -298,49 +332,65 @@ msgstr "应用专用密码设置" #~ msgid "App passwords" #~ msgstr "应用专用密码" -#: src/Navigation.tsx:239 -#: src/view/screens/AppPasswords.tsx:187 -#: src/view/screens/Settings/index.tsx:684 +#: src/Navigation.tsx:251 +#: src/view/screens/AppPasswords.tsx:189 +#: src/view/screens/Settings/index.tsx:700 msgid "App Passwords" msgstr "应用专用密码" +#: src/components/moderation/LabelsOnMeDialog.tsx:134 +#: src/components/moderation/LabelsOnMeDialog.tsx:137 +msgid "Appeal" +msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:202 +msgid "Appeal \"{0}\" label" +msgstr "" + #: src/view/com/util/forms/PostDropdownBtn.tsx:337 #: src/view/com/util/forms/PostDropdownBtn.tsx:346 -msgid "Appeal content warning" -msgstr "申诉内容警告" +#~ msgid "Appeal content warning" +#~ msgstr "申诉内容警告" #: src/view/com/modals/AppealLabel.tsx:65 -msgid "Appeal Content Warning" -msgstr "申诉内容警告" +#~ msgid "Appeal Content Warning" +#~ msgstr "申诉内容警告" + +#: src/components/moderation/LabelsOnMeDialog.tsx:193 +msgid "Appeal submitted." +msgstr "" #: src/view/com/util/moderation/LabelInfo.tsx:52 -msgid "Appeal this decision" -msgstr "对此决定提出申诉" +#~ msgid "Appeal this decision" +#~ msgstr "对此决定提出申诉" #: src/view/com/util/moderation/LabelInfo.tsx:56 -msgid "Appeal this decision." -msgstr "对此决定提出申诉。" +#~ msgid "Appeal this decision." +#~ msgstr "对此决定提出申诉。" -#: src/view/screens/Settings/index.tsx:466 +#: src/view/screens/Settings/index.tsx:481 msgid "Appearance" msgstr "外观" -#: src/view/screens/AppPasswords.tsx:224 +#: src/view/screens/AppPasswords.tsx:265 msgid "Are you sure you want to delete the app password \"{name}\"?" msgstr "你确定要删除这条应用专用密码 \"{name}\"?" -#: src/view/com/composer/Composer.tsx:150 +#: src/view/com/feeds/FeedSourceCard.tsx:280 +msgid "Are you sure you want to remove {0} from your feeds?" +msgstr "" + +#: src/view/com/composer/Composer.tsx:508 msgid "Are you sure you'd like to discard this draft?" msgstr "你确定要丢弃此草稿吗?" #: src/components/dialogs/MutedWords.tsx:282 -#: src/view/screens/ProfileList.tsx:365 msgid "Are you sure?" msgstr "你确定吗?" #: src/view/com/util/forms/PostDropdownBtn.tsx:322 -msgid "Are you sure? This cannot be undone." -msgstr "你确定吗?此操作无法撤销。" +#~ msgid "Are you sure? This cannot be undone." +#~ msgstr "你确定吗?此操作无法撤销。" #: src/view/com/composer/select-language/SuggestedLanguage.tsx:60 msgid "Are you writing in <0>{0}?" @@ -354,78 +404,86 @@ msgstr "艺术" msgid "Artistic or non-erotic nudity." msgstr "艺术作品或非色情的裸体。" +#: src/components/moderation/LabelsOnMeDialog.tsx:247 +#: src/components/moderation/LabelsOnMeDialog.tsx:248 +#: src/screens/Profile/Header/Shell.tsx:97 #: src/view/com/auth/create/CreateAccount.tsx:158 -#: src/view/com/auth/login/ChooseAccountForm.tsx:151 +#: src/view/com/auth/login/ChooseAccountForm.tsx:155 #: src/view/com/auth/login/ForgotPasswordForm.tsx:174 #: src/view/com/auth/login/LoginForm.tsx:259 #: src/view/com/auth/login/SetNewPasswordForm.tsx:179 -#: src/view/com/modals/report/InputIssueDetails.tsx:46 -#: src/view/com/post-thread/PostThread.tsx:472 -#: src/view/com/post-thread/PostThread.tsx:522 -#: src/view/com/post-thread/PostThread.tsx:530 -#: src/view/com/profile/ProfileHeader.tsx:649 #: src/view/com/util/ViewHeader.tsx:87 msgid "Back" msgstr "返回" #: src/view/com/post-thread/PostThread.tsx:480 -msgctxt "action" -msgid "Back" -msgstr "返回" +#~ msgctxt "action" +#~ msgid "Back" +#~ msgstr "返回" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:136 msgid "Based on your interest in {interestsText}" msgstr "基于你对 {interestsText} 感兴趣" -#: src/view/screens/Settings/index.tsx:523 +#: src/view/screens/Settings/index.tsx:538 msgid "Basics" msgstr "基础信息" +#: src/components/dialogs/BirthDateSettings.tsx:107 #: src/view/com/auth/create/Step1.tsx:227 -#: src/view/com/modals/BirthDateSettings.tsx:73 msgid "Birthday" msgstr "生日" -#: src/view/screens/Settings/index.tsx:340 +#: src/view/screens/Settings/index.tsx:355 msgid "Birthday:" msgstr "生日:" -#: src/view/com/profile/ProfileHeader.tsx:239 -#: src/view/com/profile/ProfileHeader.tsx:346 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:278 +#: src/view/com/profile/ProfileMenu.tsx:361 +msgid "Block" +msgstr "" + +#: src/view/com/profile/ProfileMenu.tsx:300 +#: src/view/com/profile/ProfileMenu.tsx:307 msgid "Block Account" msgstr "屏蔽账户" -#: src/view/screens/ProfileList.tsx:556 +#: src/view/com/profile/ProfileMenu.tsx:344 +msgid "Block Account?" +msgstr "" + +#: src/view/screens/ProfileList.tsx:530 msgid "Block accounts" msgstr "屏蔽账户" -#: src/view/screens/ProfileList.tsx:506 +#: src/view/screens/ProfileList.tsx:478 +#: src/view/screens/ProfileList.tsx:634 msgid "Block list" msgstr "屏蔽列表" -#: src/view/screens/ProfileList.tsx:316 +#: src/view/screens/ProfileList.tsx:629 msgid "Block these accounts?" msgstr "屏蔽这些账户?" #: src/view/screens/ProfileList.tsx:320 -msgid "Block this List" -msgstr "屏蔽这个列表" +#~ msgid "Block this List" +#~ msgstr "屏蔽这个列表" #: src/view/com/lists/ListCard.tsx:110 -#: src/view/com/util/post-embeds/QuoteEmbed.tsx:61 +#: src/view/com/util/post-embeds/QuoteEmbed.tsx:55 msgid "Blocked" msgstr "已屏蔽" -#: src/view/screens/Moderation.tsx:142 +#: src/screens/Moderation/index.tsx:269 msgid "Blocked accounts" msgstr "已屏蔽账户" -#: src/Navigation.tsx:132 +#: src/Navigation.tsx:134 #: src/view/screens/ModerationBlockedAccounts.tsx:107 msgid "Blocked Accounts" msgstr "已屏蔽账户" -#: src/view/com/profile/ProfileHeader.tsx:241 +#: src/view/com/profile/ProfileMenu.tsx:356 msgid "Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you." msgstr "被屏蔽的账户无法在你的帖子中回复、提及你或以其他方式与你互动。" @@ -433,15 +491,23 @@ msgstr "被屏蔽的账户无法在你的帖子中回复、提及你或以其他 msgid "Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you. You will not see their content and they will be prevented from seeing yours." msgstr "被屏蔽的账户无法在你的帖子中回复、提及你或以其他方式与你互动。你将不会看到他们所发的内容,同样他们也无法查看你的内容。" -#: src/view/com/post-thread/PostThread.tsx:324 +#: src/view/com/post-thread/PostThread.tsx:313 msgid "Blocked post." msgstr "已屏蔽帖子。" -#: src/view/screens/ProfileList.tsx:318 +#: src/screens/Profile/Sections/Labels.tsx:153 +msgid "Blocking does not prevent this labeler from placing labels on your account." +msgstr "" + +#: src/view/screens/ProfileList.tsx:631 msgid "Blocking is public. Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you." msgstr "屏蔽是公开的。被屏蔽的账户无法在你的帖子中回复、提及你或以其他方式与你互动。" -#: src/view/com/auth/HomeLoggedOutCTA.tsx:93 +#: src/view/com/profile/ProfileMenu.tsx:353 +msgid "Blocking will not prevent labels from being applied on your account, but it will stop this account from replying in your threads or interacting with you." +msgstr "" + +#: src/view/com/auth/HomeLoggedOutCTA.tsx:97 #: src/view/com/auth/SplashScreen.web.tsx:133 msgid "Blog" msgstr "博客" @@ -457,17 +523,17 @@ msgid "Bluesky is an open network where you can choose your hosting provider. Cu msgstr "Bluesky 是一个开放的公共网络,你可以选择自己的托管提供商。现在,自定义托管现在已经进入开发者测试阶段。" #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:80 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:80 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:82 msgid "Bluesky is flexible." msgstr "Bluesky 非常灵活。" #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:69 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:69 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:71 msgid "Bluesky is open." msgstr "Bluesky 保持开放。" #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:56 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:56 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:58 msgid "Bluesky is public." msgstr "Bluesky 为公众而生。" @@ -475,7 +541,7 @@ msgstr "Bluesky 为公众而生。" #~ msgid "Bluesky uses invites to build a healthier community. If you don't know anybody with an invite, you can sign up for the waitlist and we'll send one soon." #~ msgstr "Bluesky 使用邀请制来打造更健康的社群环境。 如果你不认识拥有邀请码的人,你可以先填写并提交候补列表,我们会尽快审核并发送邀请码。" -#: src/view/screens/Moderation.tsx:245 +#: src/screens/Moderation/index.tsx:535 msgid "Bluesky will not show your profile and posts to logged-out users. Other apps may not honor this request. This does not make your account private." msgstr "Bluesky 不会向未登录的用户显示你的个人资料和帖子。但其他应用可能不会遵照此请求,这无法确保你的账户隐私。" @@ -483,15 +549,23 @@ msgstr "Bluesky 不会向未登录的用户显示你的个人资料和帖子。 #~ msgid "Bluesky.Social" #~ msgstr "Bluesky.Social" +#: src/lib/moderation/useLabelBehaviorDescription.ts:53 +msgid "Blur images" +msgstr "" + +#: src/lib/moderation/useLabelBehaviorDescription.ts:51 +msgid "Blur images and filter from feeds" +msgstr "" + #: src/screens/Onboarding/index.tsx:33 msgid "Books" msgstr "书籍" -#: src/view/screens/Settings/index.tsx:859 +#: src/view/screens/Settings/index.tsx:889 msgid "Build version {0} {1}" msgstr "构建版本号 {0} {1}" -#: src/view/com/auth/HomeLoggedOutCTA.tsx:87 +#: src/view/com/auth/HomeLoggedOutCTA.tsx:91 #: src/view/com/auth/SplashScreen.web.tsx:128 msgid "Business" msgstr "商务" @@ -508,17 +582,23 @@ msgstr "来自 —" msgid "by {0}" msgstr "来自 {0}" +#: src/components/LabelingServiceCard/index.tsx:57 +msgid "By {0}" +msgstr "" + #: src/view/com/profile/ProfileSubpageHeader.tsx:161 msgid "by <0/>" msgstr "来自 <0/>" +#: src/view/com/auth/create/Policies.tsx:87 +msgid "By creating an account you agree to the {els}." +msgstr "" + #: src/view/com/profile/ProfileSubpageHeader.tsx:159 msgid "by you" msgstr "来自你" -#: src/view/com/composer/photos/OpenCameraBtn.tsx:60 -#: src/view/com/util/UserAvatar.tsx:224 -#: src/view/com/util/UserBanner.tsx:40 +#: src/view/com/composer/photos/OpenCameraBtn.tsx:77 msgid "Camera" msgstr "相机" @@ -526,28 +606,33 @@ msgstr "相机" msgid "Can only contain letters, numbers, spaces, dashes, and underscores. Must be at least 4 characters long, but no more than 32 characters long." msgstr "只能包含字母、数字、空格、破折号及下划线。 长度必须至少 4 个字符,但不超过 32 个字符。" -#: src/components/Prompt.tsx:101 -#: src/view/com/composer/Composer.tsx:307 -#: src/view/com/composer/Composer.tsx:312 +#: src/components/Menu/index.tsx:213 +#: src/components/Prompt.tsx:116 +#: src/components/Prompt.tsx:118 +#: src/components/TagMenu/index.tsx:268 +#: src/view/com/composer/Composer.tsx:316 +#: src/view/com/composer/Composer.tsx:321 #: src/view/com/modals/ChangeEmail.tsx:218 #: src/view/com/modals/ChangeEmail.tsx:220 -#: src/view/com/modals/ChangePassword.tsx:265 -#: src/view/com/modals/ChangePassword.tsx:268 +#: src/view/com/modals/ChangeHandle.tsx:153 +#: src/view/com/modals/ChangePassword.tsx:267 +#: src/view/com/modals/ChangePassword.tsx:270 #: src/view/com/modals/CreateOrEditList.tsx:355 +#: src/view/com/modals/crop-image/CropImage.web.tsx:137 #: src/view/com/modals/EditImage.tsx:323 #: src/view/com/modals/EditProfile.tsx:249 #: src/view/com/modals/InAppBrowserConsent.tsx:78 +#: src/view/com/modals/InAppBrowserConsent.tsx:80 #: src/view/com/modals/LinkWarning.tsx:87 +#: src/view/com/modals/LinkWarning.tsx:89 #: src/view/com/modals/Repost.tsx:87 #: src/view/com/modals/VerifyEmail.tsx:247 #: src/view/com/modals/VerifyEmail.tsx:253 -#: src/view/screens/Search/Search.tsx:716 -#: src/view/shell/desktop/Search.tsx:238 +#: src/view/screens/Search/Search.tsx:717 +#: src/view/shell/desktop/Search.tsx:239 msgid "Cancel" msgstr "取消" -#: src/view/com/modals/Confirm.tsx:88 -#: src/view/com/modals/Confirm.tsx:91 #: src/view/com/modals/CreateOrEditList.tsx:360 #: src/view/com/modals/DeleteAccount.tsx:156 #: src/view/com/modals/DeleteAccount.tsx:234 @@ -577,25 +662,33 @@ msgid "Cancel quote post" msgstr "取消引用帖子" #: src/view/com/modals/ListAddRemoveUsers.tsx:87 -#: src/view/shell/desktop/Search.tsx:234 +#: src/view/shell/desktop/Search.tsx:235 msgid "Cancel search" msgstr "取消搜索" #: src/view/com/modals/Waitlist.tsx:136 -msgid "Cancel waitlist signup" -msgstr "取消候补列表申请" +#~ msgid "Cancel waitlist signup" +#~ msgstr "取消候补列表申请" + +#: src/view/com/modals/LinkWarning.tsx:88 +msgid "Cancels opening the linked website" +msgstr "" + +#: src/view/com/modals/VerifyEmail.tsx:152 +msgid "Change" +msgstr "" -#: src/view/screens/Settings/index.tsx:334 +#: src/view/screens/Settings/index.tsx:349 msgctxt "action" msgid "Change" msgstr "更改" -#: src/view/screens/Settings/index.tsx:696 +#: src/view/screens/Settings/index.tsx:712 msgid "Change handle" msgstr "更改用户识别符" #: src/view/com/modals/ChangeHandle.tsx:161 -#: src/view/screens/Settings/index.tsx:705 +#: src/view/screens/Settings/index.tsx:723 msgid "Change Handle" msgstr "更改用户识别符" @@ -603,11 +696,12 @@ msgstr "更改用户识别符" msgid "Change my email" msgstr "更改我的邮箱地址" -#: src/view/screens/Settings/index.tsx:732 +#: src/view/screens/Settings/index.tsx:750 msgid "Change password" msgstr "更改密码" -#: src/view/screens/Settings/index.tsx:741 +#: src/view/com/modals/ChangePassword.tsx:141 +#: src/view/screens/Settings/index.tsx:761 msgid "Change Password" msgstr "更改密码" @@ -616,8 +710,8 @@ msgid "Change post language to {0}" msgstr "更改帖子的发布语言至 {0}" #: src/view/screens/Settings/index.tsx:733 -msgid "Change your Bluesky password" -msgstr "更改你的 Bluesky 密码" +#~ msgid "Change your Bluesky password" +#~ msgstr "更改你的 Bluesky 密码" #: src/view/com/modals/ChangeEmail.tsx:109 msgid "Change Your Email" @@ -645,8 +739,8 @@ msgid "Choose \"Everybody\" or \"Nobody\"" msgstr "选择 \"所有人\" 或是 \"没有人\"" #: src/view/screens/Settings/index.tsx:697 -msgid "Choose a new Bluesky username or create" -msgstr "选择一个新的 Bluesky 用户名或重新创建" +#~ msgid "Choose a new Bluesky username or create" +#~ msgstr "选择一个新的 Bluesky 用户名或重新创建" #: src/view/com/auth/server-input/index.tsx:79 msgid "Choose Service" @@ -657,7 +751,7 @@ msgid "Choose the algorithms that power your custom feeds." msgstr "选择支持你的自定义信息流的算法。" #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:83 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:83 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:85 msgid "Choose the algorithms that power your experience with custom feeds." msgstr "选择可改进你自定义信息流的算法。" @@ -669,29 +763,35 @@ msgstr "选择你的主要信息流" msgid "Choose your password" msgstr "选择你的密码" -#: src/view/screens/Settings/index.tsx:834 -#: src/view/screens/Settings/index.tsx:835 +#: src/view/screens/Settings/index.tsx:864 msgid "Clear all legacy storage data" msgstr "清除所有旧存储数据" -#: src/view/screens/Settings/index.tsx:837 +#: src/view/screens/Settings/index.tsx:867 msgid "Clear all legacy storage data (restart after this)" msgstr "清除所有旧存储数据(并重启)" -#: src/view/screens/Settings/index.tsx:846 -#: src/view/screens/Settings/index.tsx:847 +#: src/view/screens/Settings/index.tsx:876 msgid "Clear all storage data" msgstr "清除所有数据" -#: src/view/screens/Settings/index.tsx:849 +#: src/view/screens/Settings/index.tsx:879 msgid "Clear all storage data (restart after this)" msgstr "清除所有数据(并重启)" #: src/view/com/util/forms/SearchInput.tsx:88 -#: src/view/screens/Search/Search.tsx:697 +#: src/view/screens/Search/Search.tsx:698 msgid "Clear search query" msgstr "清除搜索历史记录" +#: src/view/screens/Settings/index.tsx:865 +msgid "Clears all legacy storage data" +msgstr "" + +#: src/view/screens/Settings/index.tsx:877 +msgid "Clears all storage data" +msgstr "" + #: src/view/screens/Support.tsx:40 msgid "click here" msgstr "点击这里" @@ -708,8 +808,8 @@ msgstr "" msgid "Climate" msgstr "气象" -#: src/view/com/modals/ChangePassword.tsx:265 -#: src/view/com/modals/ChangePassword.tsx:268 +#: src/view/com/modals/ChangePassword.tsx:267 +#: src/view/com/modals/ChangePassword.tsx:270 msgid "Close" msgstr "关闭" @@ -722,27 +822,28 @@ msgstr "关闭活动对话框" msgid "Close alert" msgstr "关闭警告" -#: src/view/com/util/BottomSheetCustomBackdrop.tsx:33 +#: src/view/com/util/BottomSheetCustomBackdrop.tsx:36 msgid "Close bottom drawer" msgstr "关闭底部抽屉" -#: src/view/com/lightbox/ImageViewing/components/ImageDefaultHeader.tsx:26 +#: src/view/com/lightbox/ImageViewing/components/ImageDefaultHeader.tsx:36 msgid "Close image" msgstr "关闭图片" -#: src/view/com/lightbox/Lightbox.web.tsx:119 +#: src/view/com/lightbox/Lightbox.web.tsx:129 msgid "Close image viewer" msgstr "关闭图片查看器" -#: src/view/shell/index.web.tsx:51 +#: src/view/shell/index.web.tsx:55 msgid "Close navigation footer" msgstr "关闭导航页脚" +#: src/components/Menu/index.tsx:207 #: src/components/TagMenu/index.tsx:262 msgid "Close this dialog" msgstr "关闭该窗口" -#: src/view/shell/index.web.tsx:52 +#: src/view/shell/index.web.tsx:56 msgid "Closes bottom navigation bar" msgstr "关闭底部导航栏" @@ -750,15 +851,15 @@ msgstr "关闭底部导航栏" msgid "Closes password update alert" msgstr "关闭密码更新警告" -#: src/view/com/composer/Composer.tsx:309 +#: src/view/com/composer/Composer.tsx:318 msgid "Closes post composer and discards post draft" msgstr "关闭帖子编辑页并丢弃草稿" -#: src/view/com/lightbox/ImageViewing/components/ImageDefaultHeader.tsx:27 +#: src/view/com/lightbox/ImageViewing/components/ImageDefaultHeader.tsx:37 msgid "Closes viewer for header image" msgstr "关闭标题图片查看器" -#: src/view/com/notifications/FeedItem.tsx:318 +#: src/view/com/notifications/FeedItem.tsx:321 msgid "Collapses list of users for a given notification" msgstr "折叠给定通知的用户列表" @@ -770,7 +871,7 @@ msgstr "喜剧" msgid "Comics" msgstr "漫画" -#: src/Navigation.tsx:229 +#: src/Navigation.tsx:241 #: src/view/screens/CommunityGuidelines.tsx:32 msgid "Community Guidelines" msgstr "社群准则" @@ -783,7 +884,7 @@ msgstr "完成引导并开始使用你的账户" msgid "Complete the challenge" msgstr "完成验证" -#: src/view/com/composer/Composer.tsx:424 +#: src/view/com/composer/Composer.tsx:437 msgid "Compose posts up to {MAX_GRAPHEME_LENGTH} characters in length" msgstr "撰写帖子的长度最多为 {MAX_GRAPHEME_LENGTH} 个字符" @@ -791,12 +892,18 @@ msgstr "撰写帖子的长度最多为 {MAX_GRAPHEME_LENGTH} 个字符" msgid "Compose reply" msgstr "撰写回复" -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:67 +#: src/components/moderation/GlobalModerationLabelPref.tsx:69 +#: src/components/moderation/ModerationLabelPref.tsx:149 +#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:81 msgid "Configure content filtering setting for category: {0}" msgstr "配置类别的内容过滤设置:{0}" -#: src/components/Prompt.tsx:124 -#: src/view/com/modals/AppealLabel.tsx:98 +#: src/components/moderation/ModerationLabelPref.tsx:116 +msgid "Configured in <0>moderation settings." +msgstr "" + +#: src/components/Prompt.tsx:152 +#: src/components/Prompt.tsx:155 #: src/view/com/modals/SelfLabel.tsx:154 #: src/view/com/modals/VerifyEmail.tsx:231 #: src/view/com/modals/VerifyEmail.tsx:233 @@ -807,9 +914,9 @@ msgstr "确认" #: src/view/com/modals/Confirm.tsx:75 #: src/view/com/modals/Confirm.tsx:78 -msgctxt "action" -msgid "Confirm" -msgstr "确认" +#~ msgctxt "action" +#~ msgid "Confirm" +#~ msgstr "确认" #: src/view/com/modals/ChangeEmail.tsx:193 #: src/view/com/modals/ChangeEmail.tsx:195 @@ -825,10 +932,19 @@ msgid "Confirm delete account" msgstr "确认删除账户" #: src/view/com/modals/ContentFilteringSettings.tsx:156 -msgid "Confirm your age to enable adult content." -msgstr "确认你的年龄以启用成人内容。" +#~ msgid "Confirm your age to enable adult content." +#~ msgstr "确认你的年龄以启用成人内容。" + +#: src/screens/Moderation/index.tsx:303 +msgid "Confirm your age:" +msgstr "" + +#: src/screens/Moderation/index.tsx:294 +msgid "Confirm your birthdate" +msgstr "" #: src/view/com/modals/ChangeEmail.tsx:157 +#: src/view/com/modals/DeleteAccount.tsx:176 #: src/view/com/modals/DeleteAccount.tsx:182 #: src/view/com/modals/VerifyEmail.tsx:165 msgid "Confirmation code" @@ -847,25 +963,40 @@ msgstr "连接中..." msgid "Contact support" msgstr "联系支持" +#: src/components/moderation/LabelsOnMe.tsx:42 +msgid "content" +msgstr "" + +#: src/lib/moderation/useGlobalLabelStrings.ts:18 +msgid "Content Blocked" +msgstr "" + #: src/view/screens/Moderation.tsx:83 -msgid "Content filtering" -msgstr "内容过滤" +#~ msgid "Content filtering" +#~ msgstr "内容过滤" #: src/view/com/modals/ContentFilteringSettings.tsx:44 -msgid "Content Filtering" -msgstr "内容过滤" +#~ msgid "Content Filtering" +#~ msgstr "内容过滤" + +#: src/screens/Moderation/index.tsx:287 +msgid "Content filters" +msgstr "" #: src/view/com/modals/lang-settings/ContentLanguagesSettings.tsx:74 #: src/view/screens/LanguageSettings.tsx:278 msgid "Content Languages" msgstr "内容语言" -#: src/view/com/modals/ModerationDetails.tsx:65 +#: src/components/moderation/ModerationDetailsDialog.tsx:76 +#: src/lib/moderation/useModerationCauseDescription.ts:75 msgid "Content Not Available" msgstr "内容不可用" -#: src/view/com/modals/ModerationDetails.tsx:33 -#: src/view/com/util/moderation/ScreenHider.tsx:78 +#: src/components/moderation/ModerationDetailsDialog.tsx:47 +#: src/components/moderation/ScreenHider.tsx:100 +#: src/lib/moderation/useGlobalLabelStrings.ts:22 +#: src/lib/moderation/useModerationCauseDescription.ts:38 msgid "Content Warning" msgstr "内容警告" @@ -873,19 +1004,24 @@ msgstr "内容警告" msgid "Content warnings" msgstr "内容警告" +#: src/components/Menu/index.web.tsx:84 +msgid "Context menu backdrop, click to close the menu." +msgstr "" + #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:170 #: src/screens/Onboarding/StepFollowingFeed.tsx:153 #: src/screens/Onboarding/StepInterests/index.tsx:248 -#: src/screens/Onboarding/StepModeration/index.tsx:118 +#: src/screens/Onboarding/StepModeration/index.tsx:102 #: src/screens/Onboarding/StepTopicalFeeds.tsx:114 #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:148 #: src/view/com/auth/onboarding/RecommendedFollows.tsx:209 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:96 msgid "Continue" msgstr "继续" #: src/screens/Onboarding/StepFollowingFeed.tsx:150 #: src/screens/Onboarding/StepInterests/index.tsx:245 -#: src/screens/Onboarding/StepModeration/index.tsx:115 +#: src/screens/Onboarding/StepModeration/index.tsx:99 #: src/screens/Onboarding/StepTopicalFeeds.tsx:111 msgid "Continue to next step" msgstr "继续下一步" @@ -907,13 +1043,14 @@ msgstr "烹饪" msgid "Copied" msgstr "已复制" -#: src/view/screens/Settings/index.tsx:241 +#: src/view/screens/Settings/index.tsx:247 msgid "Copied build version to clipboard" msgstr "已复制构建版本号至剪贴板" #: src/view/com/modals/AddAppPasswords.tsx:76 +#: src/view/com/modals/ChangeHandle.tsx:327 #: src/view/com/modals/InviteCodes.tsx:152 -#: src/view/com/util/forms/PostDropdownBtn.tsx:161 +#: src/view/com/util/forms/PostDropdownBtn.tsx:158 msgid "Copied to clipboard" msgstr "已复制至剪贴板" @@ -925,34 +1062,38 @@ msgstr "已复制应用专用密码" msgid "Copy" msgstr "复制" -#: src/view/screens/ProfileList.tsx:418 +#: src/view/com/modals/ChangeHandle.tsx:481 +msgid "Copy {0}" +msgstr "" + +#: src/view/screens/ProfileList.tsx:388 msgid "Copy link to list" msgstr "复制列表链接" -#: src/view/com/util/forms/PostDropdownBtn.tsx:231 +#: src/view/com/util/forms/PostDropdownBtn.tsx:228 #: src/view/com/util/forms/PostDropdownBtn.tsx:237 msgid "Copy link to post" msgstr "复制帖子链接" #: src/view/com/profile/ProfileHeader.tsx:295 -msgid "Copy link to profile" -msgstr "复制个人资料链接" +#~ msgid "Copy link to profile" +#~ msgstr "复制个人资料链接" -#: src/view/com/util/forms/PostDropdownBtn.tsx:223 -#: src/view/com/util/forms/PostDropdownBtn.tsx:225 +#: src/view/com/util/forms/PostDropdownBtn.tsx:220 +#: src/view/com/util/forms/PostDropdownBtn.tsx:222 msgid "Copy post text" msgstr "复制帖子文字" -#: src/Navigation.tsx:234 +#: src/Navigation.tsx:246 #: src/view/screens/CopyrightPolicy.tsx:29 msgid "Copyright Policy" msgstr "版权许可" -#: src/view/screens/ProfileFeed.tsx:97 +#: src/view/screens/ProfileFeed.tsx:102 msgid "Could not load feed" msgstr "无法加载信息流" -#: src/view/screens/ProfileList.tsx:893 +#: src/view/screens/ProfileList.tsx:907 msgid "Could not load list" msgstr "无法加载列表" @@ -960,13 +1101,13 @@ msgstr "无法加载列表" #~ msgid "Country" #~ msgstr "国家" -#: src/view/com/auth/HomeLoggedOutCTA.tsx:62 -#: src/view/com/auth/SplashScreen.tsx:71 +#: src/view/com/auth/HomeLoggedOutCTA.tsx:64 +#: src/view/com/auth/SplashScreen.tsx:73 #: src/view/com/auth/SplashScreen.web.tsx:81 msgid "Create a new account" msgstr "创建新的账户" -#: src/view/screens/Settings/index.tsx:384 +#: src/view/screens/Settings/index.tsx:399 msgid "Create a new Bluesky account" msgstr "创建新的 Bluesky 账户" @@ -983,19 +1124,23 @@ msgstr "创建应用专用密码" msgid "Create new account" msgstr "创建新的账户" -#: src/view/screens/AppPasswords.tsx:249 +#: src/components/ReportDialog/SelectReportOptionView.tsx:94 +msgid "Create report for {0}" +msgstr "" + +#: src/view/screens/AppPasswords.tsx:246 msgid "Created {0}" msgstr "{0} 已创建" #: src/view/screens/ProfileFeed.tsx:616 -msgid "Created by <0/>" -msgstr "由 <0/> 创建" +#~ msgid "Created by <0/>" +#~ msgstr "由 <0/> 创建" #: src/view/screens/ProfileFeed.tsx:614 -msgid "Created by you" -msgstr "由你创建" +#~ msgid "Created by you" +#~ msgstr "由你创建" -#: src/view/com/composer/Composer.tsx:455 +#: src/view/com/composer/Composer.tsx:468 msgid "Creates a card with a thumbnail. The card links to {url}" msgstr "创建带有缩略图的卡片。该卡片链接到 {url}" @@ -1025,8 +1170,8 @@ msgstr "自定义外部站点的媒体。" #~ msgid "Danger Zone" #~ msgstr "实验室" -#: src/view/screens/Settings/index.tsx:485 -#: src/view/screens/Settings/index.tsx:511 +#: src/view/screens/Settings/index.tsx:500 +#: src/view/screens/Settings/index.tsx:526 msgid "Dark" msgstr "深黑" @@ -1034,15 +1179,25 @@ msgstr "深黑" msgid "Dark mode" msgstr "深色模式" -#: src/view/screens/Settings/index.tsx:498 +#: src/view/screens/Settings/index.tsx:513 msgid "Dark Theme" msgstr "深色模式" +#: src/view/screens/Settings/index.tsx:837 +msgid "Debug Moderation" +msgstr "" + #: src/view/screens/Debug.tsx:83 msgid "Debug panel" msgstr "调试面板" -#: src/view/screens/Settings/index.tsx:772 +#: src/view/com/util/forms/PostDropdownBtn.tsx:319 +#: src/view/screens/AppPasswords.tsx:268 +#: src/view/screens/ProfileList.tsx:613 +msgid "Delete" +msgstr "" + +#: src/view/screens/Settings/index.tsx:792 msgid "Delete account" msgstr "删除账号" @@ -1050,13 +1205,15 @@ msgstr "删除账号" msgid "Delete Account" msgstr "删除账号" -#: src/view/screens/AppPasswords.tsx:222 -#: src/view/screens/AppPasswords.tsx:242 +#: src/view/screens/AppPasswords.tsx:239 msgid "Delete app password" msgstr "删除应用专用密码" -#: src/view/screens/ProfileList.tsx:364 -#: src/view/screens/ProfileList.tsx:445 +#: src/view/screens/AppPasswords.tsx:263 +msgid "Delete app password?" +msgstr "" + +#: src/view/screens/ProfileList.tsx:415 msgid "Delete List" msgstr "删除列表" @@ -1068,24 +1225,28 @@ msgstr "删除我的账户" #~ msgid "Delete my account…" #~ msgstr "删除我的账户…" -#: src/view/screens/Settings/index.tsx:784 +#: src/view/screens/Settings/index.tsx:804 msgid "Delete My Account…" msgstr "删除我的账户…" -#: src/view/com/util/forms/PostDropdownBtn.tsx:317 -#: src/view/com/util/forms/PostDropdownBtn.tsx:326 +#: src/view/com/util/forms/PostDropdownBtn.tsx:302 +#: src/view/com/util/forms/PostDropdownBtn.tsx:304 msgid "Delete post" msgstr "删除帖子" -#: src/view/com/util/forms/PostDropdownBtn.tsx:321 +#: src/view/screens/ProfileList.tsx:608 +msgid "Delete this list?" +msgstr "" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:314 msgid "Delete this post?" msgstr "删除这条帖子?" -#: src/view/com/util/post-embeds/QuoteEmbed.tsx:70 +#: src/view/com/util/post-embeds/QuoteEmbed.tsx:64 msgid "Deleted" msgstr "已删除" -#: src/view/com/post-thread/PostThread.tsx:316 +#: src/view/com/post-thread/PostThread.tsx:305 msgid "Deleted post." msgstr "已删除帖子。" @@ -1100,23 +1261,35 @@ msgstr "描述" #~ msgid "Developer Tools" #~ msgstr "开发者工具" -#: src/view/com/composer/Composer.tsx:218 +#: src/view/com/composer/Composer.tsx:217 msgid "Did you want to say anything?" msgstr "有什么想说的吗?" -#: src/view/screens/Settings/index.tsx:504 +#: src/view/screens/Settings/index.tsx:519 msgid "Dim" msgstr "暗淡" -#: src/view/com/composer/Composer.tsx:151 +#: src/lib/moderation/useLabelBehaviorDescription.ts:32 +#: src/lib/moderation/useLabelBehaviorDescription.ts:42 +#: src/lib/moderation/useLabelBehaviorDescription.ts:68 +#: src/screens/Moderation/index.tsx:343 +msgid "Disabled" +msgstr "" + +#: src/view/com/composer/Composer.tsx:510 msgid "Discard" msgstr "丢弃" #: src/view/com/composer/Composer.tsx:145 -msgid "Discard draft" -msgstr "丢弃草稿" +#~ msgid "Discard draft" +#~ msgstr "丢弃草稿" + +#: src/view/com/composer/Composer.tsx:507 +msgid "Discard draft?" +msgstr "" -#: src/view/screens/Moderation.tsx:226 +#: src/screens/Moderation/index.tsx:520 +#: src/screens/Moderation/index.tsx:524 msgid "Discourage apps from showing my account to logged-out users" msgstr "阻止应用向未登录用户显示我的账户" @@ -1141,7 +1314,19 @@ msgstr "显示名称" msgid "Display Name" msgstr "显示名称" -#: src/view/com/modals/ChangeHandle.tsx:487 +#: src/view/com/modals/ChangeHandle.tsx:398 +msgid "DNS Panel" +msgstr "" + +#: src/lib/moderation/useGlobalLabelStrings.ts:39 +msgid "Does not include nudity." +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:482 +msgid "Domain Value" +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:489 msgid "Domain verified!" msgstr "域名已认证!" @@ -1162,19 +1347,19 @@ msgctxt "action" msgid "Done" msgstr "完成" +#: src/components/dialogs/BirthDateSettings.tsx:119 +#: src/components/dialogs/BirthDateSettings.tsx:125 #: src/view/com/auth/server-input/index.tsx:165 #: src/view/com/auth/server-input/index.tsx:166 #: src/view/com/modals/AddAppPasswords.tsx:226 #: src/view/com/modals/AltImage.tsx:139 -#: src/view/com/modals/ContentFilteringSettings.tsx:88 -#: src/view/com/modals/ContentFilteringSettings.tsx:96 #: src/view/com/modals/crop-image/CropImage.web.tsx:152 #: src/view/com/modals/InviteCodes.tsx:80 #: src/view/com/modals/InviteCodes.tsx:123 #: src/view/com/modals/ListAddRemoveUsers.tsx:142 #: src/view/screens/PreferencesFollowingFeed.tsx:311 -#: src/view/screens/Settings/ExportCarDialog.tsx:93 #: src/view/screens/Settings/ExportCarDialog.tsx:94 +#: src/view/screens/Settings/ExportCarDialog.tsx:95 msgid "Done" msgstr "完成" @@ -1187,8 +1372,8 @@ msgid "Double tap to sign in" msgstr "双击以登录" #: src/view/screens/Settings/index.tsx:755 -msgid "Download Bluesky account data (repository)" -msgstr "下载你的 Bluesky 账户数据(数据库)" +#~ msgid "Download Bluesky account data (repository)" +#~ msgstr "下载你的 Bluesky 账户数据(数据库)" #: src/view/screens/Settings/ExportCarDialog.tsx:59 #: src/view/screens/Settings/ExportCarDialog.tsx:63 @@ -1199,18 +1384,30 @@ msgstr "下载 CAR 文件" msgid "Drop to add images" msgstr "拖放即可新增图片" -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:111 +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:120 msgid "Due to Apple policies, adult content can only be enabled on the web after completing sign up." msgstr "受 Apple 政策限制,显示成人内容只能在完成注册后在网页端设置中启用。" +#: src/view/com/modals/ChangeHandle.tsx:257 +msgid "e.g. alice" +msgstr "" + #: src/view/com/modals/EditProfile.tsx:185 msgid "e.g. Alice Roberts" msgstr "例如:张蓝天" +#: src/view/com/modals/ChangeHandle.tsx:381 +msgid "e.g. alice.com" +msgstr "" + #: src/view/com/modals/EditProfile.tsx:203 msgid "e.g. Artist, dog-lover, and avid reader." msgstr "例如:艺术家、爱狗人士和狂热读者。" +#: src/lib/moderation/useGlobalLabelStrings.ts:43 +msgid "E.g. artistic nudes." +msgstr "" + #: src/view/com/modals/CreateOrEditList.tsx:283 msgid "e.g. Great Posters" msgstr "例如:优秀的发帖者" @@ -1236,12 +1433,17 @@ msgctxt "action" msgid "Edit" msgstr "编辑" +#: src/view/com/util/UserAvatar.tsx:299 +#: src/view/com/util/UserBanner.tsx:85 +msgid "Edit avatar" +msgstr "" + #: src/view/com/composer/photos/Gallery.tsx:144 #: src/view/com/modals/EditImage.tsx:207 msgid "Edit image" msgstr "编辑图片" -#: src/view/screens/ProfileList.tsx:433 +#: src/view/screens/ProfileList.tsx:403 msgid "Edit list details" msgstr "编辑列表详情" @@ -1249,7 +1451,7 @@ msgstr "编辑列表详情" msgid "Edit Moderation List" msgstr "编辑限制列表" -#: src/Navigation.tsx:244 +#: src/Navigation.tsx:256 #: src/view/screens/Feeds.tsx:434 #: src/view/screens/SavedFeeds.tsx:84 msgid "Edit My Feeds" @@ -1259,11 +1461,13 @@ msgstr "编辑自定义信息流" msgid "Edit my profile" msgstr "编辑个人资料" -#: src/view/com/profile/ProfileHeader.tsx:418 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:172 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:161 msgid "Edit profile" msgstr "编辑个人资料" -#: src/view/com/profile/ProfileHeader.tsx:423 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:175 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:164 msgid "Edit Profile" msgstr "编辑个人资料" @@ -1312,7 +1516,7 @@ msgstr "电子邮箱已更新" msgid "Email verified" msgstr "电子邮箱已验证" -#: src/view/screens/Settings/index.tsx:312 +#: src/view/screens/Settings/index.tsx:327 msgid "Email:" msgstr "电子邮箱:" @@ -1320,12 +1524,16 @@ msgstr "电子邮箱:" msgid "Enable {0} only" msgstr "仅启用 {0}" -#: src/view/com/modals/ContentFilteringSettings.tsx:167 +#: src/screens/Moderation/index.tsx:331 +msgid "Enable adult content" +msgstr "" + +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:94 msgid "Enable Adult Content" msgstr "启用成人内容" -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:76 -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:77 +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:78 +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:79 msgid "Enable adult content in your feeds" msgstr "在你的信息流中启用成人内容" @@ -1341,7 +1549,11 @@ msgstr "启用媒体播放器" msgid "Enable this setting to only see replies between people you follow." msgstr "启用此设置以仅查看你关注的人之间的回复。" -#: src/view/screens/Profile.tsx:455 +#: src/screens/Moderation/index.tsx:341 +msgid "Enabled" +msgstr "" + +#: src/screens/Profile/Sections/Feed.tsx:84 msgid "End of feed" msgstr "信息流的末尾" @@ -1358,7 +1570,7 @@ msgstr "输入一个词或标签" msgid "Enter Confirmation Code" msgstr "输入验证码" -#: src/view/com/modals/ChangePassword.tsx:151 +#: src/view/com/modals/ChangePassword.tsx:153 msgid "Enter the code you received to change your password." msgstr "输入你收到的确认码以更改密码。" @@ -1370,8 +1582,8 @@ msgstr "输入你想使用的域名" msgid "Enter the email you used to create your account. We'll send you a \"reset code\" so you can set a new password." msgstr "输入你用于创建账户的电子邮箱。我们将向你发送用于密码重设的确认码。" +#: src/components/dialogs/BirthDateSettings.tsx:108 #: src/view/com/auth/create/Step1.tsx:228 -#: src/view/com/modals/BirthDateSettings.tsx:74 msgid "Enter your birth date" msgstr "输入你的出生日期" @@ -1411,16 +1623,28 @@ msgstr "错误:" msgid "Everybody" msgstr "所有人" +#: src/lib/moderation/useReportOptions.ts:66 +msgid "Excessive mentions or replies" +msgstr "" + +#: src/view/com/modals/DeleteAccount.tsx:231 +msgid "Exits account deletion process" +msgstr "" + #: src/view/com/modals/ChangeHandle.tsx:150 msgid "Exits handle change process" msgstr "退出修改用户识别符流程" -#: src/view/com/lightbox/Lightbox.web.tsx:120 +#: src/view/com/modals/crop-image/CropImage.web.tsx:135 +msgid "Exits image cropping process" +msgstr "" + +#: src/view/com/lightbox/Lightbox.web.tsx:130 msgid "Exits image view" msgstr "退出图片查看器" #: src/view/com/modals/ListAddRemoveUsers.tsx:88 -#: src/view/shell/desktop/Search.tsx:235 +#: src/view/shell/desktop/Search.tsx:236 msgid "Exits inputting search query" msgstr "退出搜索查询输入" @@ -1428,7 +1652,7 @@ msgstr "退出搜索查询输入" #~ msgid "Exits signing up for waitlist with {email}" #~ msgstr "将 {email} 从候补列表中移除" -#: src/view/com/lightbox/Lightbox.web.tsx:163 +#: src/view/com/lightbox/Lightbox.web.tsx:183 msgid "Expand alt text" msgstr "展开替代文本" @@ -1437,12 +1661,20 @@ msgstr "展开替代文本" msgid "Expand or collapse the full post you are replying to" msgstr "展开或折叠你要回复的完整帖子" -#: src/view/screens/Settings/index.tsx:753 +#: src/lib/moderation/useGlobalLabelStrings.ts:47 +msgid "Explicit or potentially disturbing media." +msgstr "" + +#: src/lib/moderation/useGlobalLabelStrings.ts:35 +msgid "Explicit sexual images." +msgstr "" + +#: src/view/screens/Settings/index.tsx:773 msgid "Export my data" msgstr "导出账号数据" #: src/view/screens/Settings/ExportCarDialog.tsx:44 -#: src/view/screens/Settings/index.tsx:764 +#: src/view/screens/Settings/index.tsx:784 msgid "Export My Data" msgstr "导出账号数据" @@ -1455,13 +1687,13 @@ msgstr "外部媒体" msgid "External media may allow websites to collect information about you and your device. No information is sent or requested until you press the \"play\" button." msgstr "外部媒体可能允许网站收集有关你和你设备的有关信息。在你按下\"查看\"按钮之前,将不会发送或请求任何外部信息。" -#: src/Navigation.tsx:263 +#: src/Navigation.tsx:275 #: src/view/screens/PreferencesExternalEmbeds.tsx:52 -#: src/view/screens/Settings/index.tsx:657 +#: src/view/screens/Settings/index.tsx:673 msgid "External Media Preferences" msgstr "外部媒体首选项" -#: src/view/screens/Settings/index.tsx:648 +#: src/view/screens/Settings/index.tsx:664 msgid "External media settings" msgstr "外部媒体设置" @@ -1474,7 +1706,7 @@ msgstr "创建应用专用密码失败。" msgid "Failed to create the list. Check your internet connection and try again." msgstr "无法创建列表。请检查你的互联网连接并重试。" -#: src/view/com/util/forms/PostDropdownBtn.tsx:128 +#: src/view/com/util/forms/PostDropdownBtn.tsx:125 msgid "Failed to delete post, please try again" msgstr "无法删除帖子,请重试" @@ -1483,11 +1715,15 @@ msgstr "无法删除帖子,请重试" msgid "Failed to load recommended feeds" msgstr "无法加载推荐信息流" -#: src/Navigation.tsx:194 +#: src/view/com/lightbox/Lightbox.tsx:83 +msgid "Failed to save image: {0}" +msgstr "" + +#: src/Navigation.tsx:196 msgid "Feed" msgstr "信息流" -#: src/view/com/feeds/FeedSourceCard.tsx:231 +#: src/view/com/feeds/FeedSourceCard.tsx:218 msgid "Feed by {0}" msgstr "由 {0} 创建的信息流" @@ -1500,18 +1736,18 @@ msgstr "信息流已离线" #~ msgstr "信息流首选项" #: src/view/shell/desktop/RightNav.tsx:61 -#: src/view/shell/Drawer.tsx:311 +#: src/view/shell/Drawer.tsx:314 msgid "Feedback" msgstr "反馈" -#: src/Navigation.tsx:452 +#: src/Navigation.tsx:464 #: src/view/screens/Feeds.tsx:419 #: src/view/screens/Feeds.tsx:524 -#: src/view/screens/Profile.tsx:184 -#: src/view/shell/bottom-bar/BottomBar.tsx:181 -#: src/view/shell/desktop/LeftNav.tsx:342 -#: src/view/shell/Drawer.tsx:476 -#: src/view/shell/Drawer.tsx:477 +#: src/view/screens/Profile.tsx:192 +#: src/view/shell/bottom-bar/BottomBar.tsx:183 +#: src/view/shell/desktop/LeftNav.tsx:346 +#: src/view/shell/Drawer.tsx:479 +#: src/view/shell/Drawer.tsx:480 msgid "Feeds" msgstr "信息流" @@ -1531,6 +1767,14 @@ msgstr "创建信息流要求一些编程基础。查看 <0/> 以获取详情。 msgid "Feeds can be topical as well!" msgstr "信息流也可以围绕某些话题!" +#: src/view/com/modals/ChangeHandle.tsx:482 +msgid "File Contents" +msgstr "" + +#: src/lib/moderation/useLabelBehaviorDescription.ts:66 +msgid "Filter from feeds" +msgstr "" + #: src/screens/Onboarding/StepFinished.tsx:151 msgid "Finalizing" msgstr "最终确定" @@ -1541,15 +1785,15 @@ msgstr "最终确定" msgid "Find accounts to follow" msgstr "寻找一些账户关注" -#: src/view/screens/Search/Search.tsx:440 +#: src/view/screens/Search/Search.tsx:441 msgid "Find users on Bluesky" msgstr "寻找一些正在使用 Bluesky 的用户" -#: src/view/screens/Search/Search.tsx:438 +#: src/view/screens/Search/Search.tsx:439 msgid "Find users with the search tool on the right" msgstr "使用右侧的搜索工具来查找用户" -#: src/view/com/auth/onboarding/RecommendedFollowsItem.tsx:150 +#: src/view/com/auth/onboarding/RecommendedFollowsItem.tsx:155 msgid "Finding similar accounts..." msgstr "正在寻找类似的账户..." @@ -1583,22 +1827,29 @@ msgid "Flip vertically" msgstr "垂直翻转" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:181 -#: src/view/com/post-thread/PostThreadFollowBtn.tsx:136 -#: src/view/com/profile/ProfileHeader.tsx:513 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:229 +#: src/view/com/auth/onboarding/RecommendedFollowsItem.tsx:141 +#: src/view/com/post-thread/PostThreadFollowBtn.tsx:139 +#: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:246 msgid "Follow" msgstr "关注" -#: src/view/com/profile/FollowButton.tsx:64 +#: src/view/com/profile/FollowButton.tsx:69 msgctxt "action" msgid "Follow" msgstr "关注" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:58 -#: src/view/com/post-thread/PostThreadFollowBtn.tsx:122 -#: src/view/com/profile/ProfileHeader.tsx:504 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:214 +#: src/view/com/post-thread/PostThreadFollowBtn.tsx:125 msgid "Follow {0}" msgstr "关注 {0}" +#: src/view/com/profile/ProfileMenu.tsx:242 +#: src/view/com/profile/ProfileMenu.tsx:253 +msgid "Follow Account" +msgstr "" + #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:179 msgid "Follow All" msgstr "关注所有" @@ -1611,7 +1862,7 @@ msgstr "关注选择的用户并继续下一步" msgid "Follow some users to get started. We can recommend you more users based on who you find interesting." msgstr "关注一些用户以开始,我们可以根据你感兴趣的用户向你推荐更多类似用户。" -#: src/view/com/profile/ProfileCard.tsx:194 +#: src/view/com/profile/ProfileCard.tsx:216 msgid "Followed by {0}" msgstr "由 {0} 关注" @@ -1623,33 +1874,39 @@ msgstr "已关注的用户" msgid "Followed users only" msgstr "仅限已关注的用户" -#: src/view/com/notifications/FeedItem.tsx:166 +#: src/view/com/notifications/FeedItem.tsx:170 msgid "followed you" msgstr "关注了你" +#: src/view/com/profile/ProfileFollowers.tsx:109 #: src/view/screens/ProfileFollowers.tsx:25 msgid "Followers" msgstr "关注者" -#: src/view/com/post-thread/PostThreadFollowBtn.tsx:136 -#: src/view/com/profile/ProfileHeader.tsx:495 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:227 +#: src/view/com/post-thread/PostThreadFollowBtn.tsx:139 +#: src/view/com/profile/ProfileFollows.tsx:108 #: src/view/screens/ProfileFollows.tsx:25 msgid "Following" msgstr "正在关注" -#: src/view/com/profile/ProfileHeader.tsx:149 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:89 msgid "Following {0}" msgstr "正在关注 {0}" -#: src/Navigation.tsx:250 +#: src/view/screens/Settings/index.tsx:549 +msgid "Following feed preferences" +msgstr "" + +#: src/Navigation.tsx:262 #: src/view/com/home/HomeHeaderLayout.web.tsx:50 #: src/view/com/home/HomeHeaderLayoutMobile.tsx:84 #: src/view/screens/PreferencesFollowingFeed.tsx:104 -#: src/view/screens/Settings/index.tsx:543 +#: src/view/screens/Settings/index.tsx:558 msgid "Following Feed Preferences" msgstr "关注信息流首选项" -#: src/view/com/profile/ProfileHeader.tsx:546 +#: src/screens/Profile/Header/Handle.tsx:24 msgid "Follows you" msgstr "关注了你" @@ -1682,12 +1939,16 @@ msgstr "忘记密码" msgid "Forgot Password" msgstr "忘记密码" +#: src/lib/moderation/useReportOptions.ts:52 +msgid "Frequently Posts Unwanted Content" +msgstr "" + #: src/screens/Hashtag.tsx:108 #: src/screens/Hashtag.tsx:148 msgid "From @{sanitizedAuthor}" msgstr "来自 @{sanitizedAuthor}" -#: src/view/com/posts/FeedItem.tsx:189 +#: src/view/com/posts/FeedItem.tsx:179 msgctxt "from-feed" msgid "From <0/>" msgstr "来自 <0/>" @@ -1701,27 +1962,46 @@ msgstr "相册" msgid "Get Started" msgstr "开始" +#: src/lib/moderation/useReportOptions.ts:37 +msgid "Glaring violations of law or terms of service" +msgstr "" + +#: src/components/moderation/ScreenHider.tsx:144 +#: src/components/moderation/ScreenHider.tsx:153 #: src/view/com/auth/LoggedOut.tsx:81 #: src/view/com/auth/LoggedOut.tsx:82 -#: src/view/com/util/moderation/ScreenHider.tsx:123 -#: src/view/shell/desktop/LeftNav.tsx:104 +#: src/view/screens/NotFound.tsx:55 +#: src/view/screens/ProfileFeed.tsx:111 +#: src/view/screens/ProfileList.tsx:916 +#: src/view/shell/desktop/LeftNav.tsx:108 msgid "Go back" msgstr "返回" -#: src/view/screens/ProfileFeed.tsx:106 -#: src/view/screens/ProfileFeed.tsx:111 -#: src/view/screens/ProfileList.tsx:902 -#: src/view/screens/ProfileList.tsx:907 +#: src/screens/Profile/ErrorState.tsx:62 +#: src/screens/Profile/ErrorState.tsx:66 +#: src/view/screens/NotFound.tsx:54 +#: src/view/screens/ProfileFeed.tsx:116 +#: src/view/screens/ProfileList.tsx:921 msgid "Go Back" msgstr "返回" +#: src/components/ReportDialog/SelectReportOptionView.tsx:74 +#: src/components/ReportDialog/SubmitView.tsx:104 #: src/screens/Onboarding/Layout.tsx:104 #: src/screens/Onboarding/Layout.tsx:193 msgid "Go back to previous step" msgstr "返回上一步" -#: src/view/screens/Search/Search.tsx:747 -#: src/view/shell/desktop/Search.tsx:262 +#: src/view/screens/NotFound.tsx:55 +msgid "Go home" +msgstr "" + +#: src/view/screens/NotFound.tsx:54 +msgid "Go Home" +msgstr "" + +#: src/view/screens/Search/Search.tsx:748 +#: src/view/shell/desktop/Search.tsx:263 msgid "Go to @{queryMaybeHandle}" msgstr "前往 @{queryMaybeHandle}" @@ -1729,15 +2009,23 @@ msgstr "前往 @{queryMaybeHandle}" #: src/view/com/auth/login/ForgotPasswordForm.tsx:218 #: src/view/com/auth/login/LoginForm.tsx:288 #: src/view/com/auth/login/SetNewPasswordForm.tsx:195 -#: src/view/com/modals/ChangePassword.tsx:165 +#: src/view/com/modals/ChangePassword.tsx:167 msgid "Go to next" msgstr "前往下一步" +#: src/lib/moderation/useGlobalLabelStrings.ts:46 +msgid "Graphic Media" +msgstr "" + #: src/view/com/modals/ChangeHandle.tsx:265 msgid "Handle" msgstr "用户识别符" -#: src/Navigation.tsx:270 +#: src/lib/moderation/useReportOptions.ts:32 +msgid "Harassment, trolling, or intolerance" +msgstr "" + +#: src/Navigation.tsx:282 msgid "Hashtag" msgstr "话题标签" @@ -1754,7 +2042,7 @@ msgid "Having trouble?" msgstr "任何疑问?" #: src/view/shell/desktop/RightNav.tsx:90 -#: src/view/shell/Drawer.tsx:321 +#: src/view/shell/Drawer.tsx:324 msgid "Help" msgstr "帮助" @@ -1774,40 +2062,45 @@ msgstr "这里有一些基于你兴趣所推荐的信息流供你挑选:{inter msgid "Here is your app password." msgstr "这里是你的应用专用密码。" -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:41 -#: src/view/com/modals/ContentFilteringSettings.tsx:251 -#: src/view/com/util/moderation/ContentHider.tsx:105 -#: src/view/com/util/moderation/PostHider.tsx:108 +#: src/components/moderation/ContentHider.tsx:115 +#: src/components/moderation/GlobalModerationLabelPref.tsx:43 +#: src/components/moderation/PostHider.tsx:107 +#: src/lib/moderation/useLabelBehaviorDescription.ts:15 +#: src/lib/moderation/useLabelBehaviorDescription.ts:20 +#: src/lib/moderation/useLabelBehaviorDescription.ts:25 +#: src/lib/moderation/useLabelBehaviorDescription.ts:30 +#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:52 +#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:76 +#: src/view/com/util/forms/PostDropdownBtn.tsx:328 msgid "Hide" msgstr "隐藏" -#: src/view/com/modals/ContentFilteringSettings.tsx:224 -#: src/view/com/notifications/FeedItem.tsx:326 +#: src/view/com/notifications/FeedItem.tsx:329 msgctxt "action" msgid "Hide" msgstr "隐藏" #: src/view/com/util/forms/PostDropdownBtn.tsx:276 -#: src/view/com/util/forms/PostDropdownBtn.tsx:287 +#: src/view/com/util/forms/PostDropdownBtn.tsx:278 msgid "Hide post" msgstr "隐藏帖子" -#: src/view/com/util/moderation/ContentHider.tsx:67 -#: src/view/com/util/moderation/PostHider.tsx:61 +#: src/components/moderation/ContentHider.tsx:67 +#: src/components/moderation/PostHider.tsx:64 msgid "Hide the content" msgstr "隐藏内容" -#: src/view/com/util/forms/PostDropdownBtn.tsx:280 +#: src/view/com/util/forms/PostDropdownBtn.tsx:325 msgid "Hide this post?" msgstr "隐藏这条帖子?" -#: src/view/com/notifications/FeedItem.tsx:316 +#: src/view/com/notifications/FeedItem.tsx:319 msgid "Hide user list" msgstr "隐藏用户列表" #: src/view/com/profile/ProfileHeader.tsx:487 -msgid "Hides posts from {0} in your feed" -msgstr "在你的信息流中隐藏来自 {0} 的帖子" +#~ msgid "Hides posts from {0} in your feed" +#~ msgstr "在你的信息流中隐藏来自 {0} 的帖子" #: src/view/com/posts/FeedErrorMessage.tsx:111 msgid "Hmm, some kind of issue occurred when contacting the feed server. Please let the feed owner know about this issue." @@ -1829,11 +2122,19 @@ msgstr "信息流服务器返回错误的响应,请联系信息流的维护者 msgid "Hmm, we're having trouble finding this feed. It may have been deleted." msgstr "我们无法找到该信息流,似乎已被删除。" -#: src/Navigation.tsx:442 -#: src/view/shell/bottom-bar/BottomBar.tsx:137 -#: src/view/shell/desktop/LeftNav.tsx:306 -#: src/view/shell/Drawer.tsx:398 -#: src/view/shell/Drawer.tsx:399 +#: src/screens/Moderation/index.tsx:61 +msgid "Hmmmm, it seems we're having trouble loading this data. See below for more details. If this issue persists, please contact us." +msgstr "" + +#: src/screens/Profile/ErrorState.tsx:31 +msgid "Hmmmm, we couldn't load that moderation service." +msgstr "" + +#: src/Navigation.tsx:454 +#: src/view/shell/bottom-bar/BottomBar.tsx:139 +#: src/view/shell/desktop/LeftNav.tsx:310 +#: src/view/shell/Drawer.tsx:401 +#: src/view/shell/Drawer.tsx:402 msgid "Home" msgstr "主页" @@ -1844,8 +2145,13 @@ msgstr "主页" #~ msgid "Home Feed Preferences" #~ msgstr "主页信息流首选项" +#: src/view/com/modals/ChangeHandle.tsx:421 +msgid "Host:" +msgstr "" + #: src/view/com/auth/create/Step1.tsx:75 #: src/view/com/auth/login/ForgotPasswordForm.tsx:120 +#: src/view/com/modals/ChangeHandle.tsx:280 msgid "Hosting provider" msgstr "托管服务提供商" @@ -1865,7 +2171,7 @@ msgstr "我有验证码" msgid "I have my own domain" msgstr "我拥有自己的域名" -#: src/view/com/lightbox/Lightbox.web.tsx:165 +#: src/view/com/lightbox/Lightbox.web.tsx:185 msgid "If alt text is long, toggles alt text expanded state" msgstr "若替代文本过长,则切换替代文本的展开状态" @@ -1873,10 +2179,26 @@ msgstr "若替代文本过长,则切换替代文本的展开状态" msgid "If none are selected, suitable for all ages." msgstr "若不勾选,则默认为全年龄向。" -#: src/view/com/modals/ChangePassword.tsx:146 +#: src/view/com/auth/create/Policies.tsx:91 +msgid "If you are not yet an adult according to the laws of your country, your parent or legal guardian must read these Terms on your behalf." +msgstr "" + +#: src/view/screens/ProfileList.tsx:610 +msgid "If you delete this list, you won't be able to recover it." +msgstr "" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:316 +msgid "If you remove this post, you won't be able to recover it." +msgstr "" + +#: src/view/com/modals/ChangePassword.tsx:148 msgid "If you want to change your password, we will send you a code to verify that this is your account." msgstr "如果你想要更改密码,我们将向你发送一个验证码以验证这是你的账户。" +#: src/lib/moderation/useReportOptions.ts:36 +msgid "Illegal and Urgent" +msgstr "" + #: src/view/com/util/images/Gallery.tsx:38 msgid "Image" msgstr "图片" @@ -1887,8 +2209,12 @@ msgstr "图片替代文本" #: src/view/com/util/UserAvatar.tsx:311 #: src/view/com/util/UserBanner.tsx:118 -msgid "Image options" -msgstr "图片选项" +#~ msgid "Image options" +#~ msgstr "图片选项" + +#: src/lib/moderation/useReportOptions.ts:47 +msgid "Impersonation or false claims about identity or affiliation" +msgstr "" #: src/view/com/auth/login/SetNewPasswordForm.tsx:138 msgid "Input code sent to your email for password reset" @@ -1942,11 +2268,15 @@ msgstr "输入注册时使用的用户名或电子邮箱" msgid "Input your password" msgstr "输入你的密码" +#: src/view/com/modals/ChangeHandle.tsx:390 +msgid "Input your preferred hosting provider" +msgstr "" + #: src/view/com/auth/create/Step2.tsx:80 msgid "Input your user handle" msgstr "输入你的用户识别符" -#: src/view/com/post-thread/PostThreadItem.tsx:226 +#: src/view/com/post-thread/PostThreadItem.tsx:221 msgid "Invalid or unsupported post record" msgstr "帖子记录无效或不受支持" @@ -1987,7 +2317,7 @@ msgstr "邀请码:1 个可用" msgid "It shows posts from the people you follow as they happen." msgstr "他会显示你所关注的人发布的帖子。" -#: src/view/com/auth/HomeLoggedOutCTA.tsx:99 +#: src/view/com/auth/HomeLoggedOutCTA.tsx:103 #: src/view/com/auth/SplashScreen.web.tsx:138 msgid "Jobs" msgstr "工作" @@ -2009,20 +2339,52 @@ msgstr "工作" msgid "Journalism" msgstr "新闻学" +#: src/components/moderation/LabelsOnMe.tsx:59 +msgid "label has been placed on this {labelTarget}" +msgstr "" + +#: src/components/moderation/ContentHider.tsx:144 +msgid "Labeled by {0}." +msgstr "" + +#: src/components/moderation/ContentHider.tsx:142 +msgid "Labeled by the author." +msgstr "" + +#: src/view/screens/Profile.tsx:186 +msgid "Labels" +msgstr "" + +#: src/screens/Profile/Sections/Labels.tsx:143 +msgid "Labels are annotations on users and content. They can be used to hide, warn, and categorize the network." +msgstr "" + +#: src/components/moderation/LabelsOnMe.tsx:61 +msgid "labels have been placed on this {labelTarget}" +msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:63 +msgid "Labels on your account" +msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:65 +msgid "Labels on your content" +msgstr "" + #: src/view/com/composer/select-language/SelectLangBtn.tsx:104 msgid "Language selection" msgstr "选择语言" -#: src/view/screens/Settings/index.tsx:594 +#: src/view/screens/Settings/index.tsx:610 msgid "Language settings" msgstr "语言设置" -#: src/Navigation.tsx:142 +#: src/Navigation.tsx:144 #: src/view/screens/LanguageSettings.tsx:89 msgid "Language Settings" msgstr "语言设置" -#: src/view/screens/Settings/index.tsx:603 +#: src/view/screens/Settings/index.tsx:619 msgid "Languages" msgstr "语言" @@ -2031,27 +2393,31 @@ msgid "Last step!" msgstr "最后一步!" #: src/view/com/util/moderation/ContentHider.tsx:103 -msgid "Learn more" -msgstr "了解详情" +#~ msgid "Learn more" +#~ msgstr "了解详情" -#: src/view/com/util/moderation/PostAlerts.tsx:47 -#: src/view/com/util/moderation/ProfileHeaderAlerts.tsx:65 -#: src/view/com/util/moderation/ScreenHider.tsx:104 +#: src/components/moderation/ScreenHider.tsx:129 msgid "Learn More" msgstr "了解详情" -#: src/view/com/util/moderation/ContentHider.tsx:85 -#: src/view/com/util/moderation/PostAlerts.tsx:40 -#: src/view/com/util/moderation/PostHider.tsx:78 -#: src/view/com/util/moderation/ProfileHeaderAlerts.tsx:49 -#: src/view/com/util/moderation/ScreenHider.tsx:101 +#: src/components/moderation/ContentHider.tsx:65 +#: src/components/moderation/ContentHider.tsx:128 +msgid "Learn more about the moderation applied to this content." +msgstr "" + +#: src/components/moderation/PostHider.tsx:85 +#: src/components/moderation/ScreenHider.tsx:126 msgid "Learn more about this warning" msgstr "了解关于这个警告的更多详情" -#: src/view/screens/Moderation.tsx:262 +#: src/screens/Moderation/index.tsx:551 msgid "Learn more about what is public on Bluesky." msgstr "了解有关 Bluesky 公开内容的更多详情。" +#: src/components/moderation/ContentHider.tsx:152 +msgid "Learn more." +msgstr "" + #: src/view/com/modals/lang-settings/ContentLanguagesSettings.tsx:82 msgid "Leave them all unchecked to see any language." msgstr "全部留空以查看所有语言的帖子。" @@ -2064,7 +2430,7 @@ msgstr "离开 Bluesky" msgid "left to go." msgstr "尚未完成。" -#: src/view/screens/Settings/index.tsx:278 +#: src/view/screens/Settings/index.tsx:292 msgid "Legacy storage cleared, you need to restart the app now." msgstr "旧存储数据已清除,你需要立即重新启动应用。" @@ -2079,55 +2445,65 @@ msgstr "让我们开始!" #: src/view/com/util/UserAvatar.tsx:248 #: src/view/com/util/UserBanner.tsx:62 -msgid "Library" -msgstr "图书馆" +#~ msgid "Library" +#~ msgstr "图书馆" -#: src/view/screens/Settings/index.tsx:479 +#: src/view/screens/Settings/index.tsx:494 msgid "Light" msgstr "亮色" -#: src/view/com/util/post-ctrls/PostCtrls.tsx:182 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:185 msgid "Like" msgstr "喜欢" -#: src/view/screens/ProfileFeed.tsx:591 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:257 +#: src/view/screens/ProfileFeed.tsx:572 msgid "Like this feed" msgstr "喜欢这个信息流" -#: src/Navigation.tsx:199 +#: src/components/LikesDialog.tsx:87 +#: src/Navigation.tsx:201 +#: src/Navigation.tsx:206 msgid "Liked by" msgstr "喜欢" +#: src/screens/Profile/ProfileLabelerLikedBy.tsx:42 #: src/view/screens/PostLikedBy.tsx:27 #: src/view/screens/ProfileFeedLikedBy.tsx:27 msgid "Liked By" msgstr "喜欢" -#: src/view/com/feeds/FeedSourceCard.tsx:279 +#: src/view/com/feeds/FeedSourceCard.tsx:268 msgid "Liked by {0} {1}" msgstr "{0} 个 {1} 喜欢" -#: src/view/screens/ProfileFeed.tsx:606 +#: src/components/LabelingServiceCard/index.tsx:72 +msgid "Liked by {count} {0}" +msgstr "" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:277 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:291 +#: src/view/screens/ProfileFeed.tsx:587 msgid "Liked by {likeCount} {0}" msgstr "{likeCount} 个 {0} 喜欢" -#: src/view/com/notifications/FeedItem.tsx:170 +#: src/view/com/notifications/FeedItem.tsx:174 msgid "liked your custom feed" msgstr "赞了你的自定义信息流" -#: src/view/com/notifications/FeedItem.tsx:155 +#: src/view/com/notifications/FeedItem.tsx:159 msgid "liked your post" msgstr "赞了你的帖子" -#: src/view/screens/Profile.tsx:183 +#: src/view/screens/Profile.tsx:191 msgid "Likes" msgstr "喜欢" -#: src/view/com/post-thread/PostThreadItem.tsx:183 +#: src/view/com/post-thread/PostThreadItem.tsx:182 msgid "Likes on this post" msgstr "这条帖子的喜欢数" -#: src/Navigation.tsx:168 +#: src/Navigation.tsx:170 msgid "List" msgstr "列表" @@ -2135,15 +2511,15 @@ msgstr "列表" msgid "List Avatar" msgstr "列表头像" -#: src/view/screens/ProfileList.tsx:324 +#: src/view/screens/ProfileList.tsx:311 msgid "List blocked" msgstr "列表已屏蔽" -#: src/view/com/feeds/FeedSourceCard.tsx:233 +#: src/view/com/feeds/FeedSourceCard.tsx:220 msgid "List by {0}" msgstr "列表由 {0} 创建" -#: src/view/screens/ProfileList.tsx:378 +#: src/view/screens/ProfileList.tsx:355 msgid "List deleted" msgstr "列表已删除" @@ -2155,39 +2531,40 @@ msgstr "列表已隐藏" msgid "List Name" msgstr "列表名称" -#: src/view/screens/ProfileList.tsx:343 +#: src/view/screens/ProfileList.tsx:325 msgid "List unblocked" msgstr "解除对列表的屏蔽" -#: src/view/screens/ProfileList.tsx:302 +#: src/view/screens/ProfileList.tsx:297 msgid "List unmuted" msgstr "解除对列表的隐藏" -#: src/Navigation.tsx:112 -#: src/view/screens/Profile.tsx:185 -#: src/view/shell/desktop/LeftNav.tsx:379 -#: src/view/shell/Drawer.tsx:492 -#: src/view/shell/Drawer.tsx:493 +#: src/Navigation.tsx:114 +#: src/view/screens/Profile.tsx:187 +#: src/view/screens/Profile.tsx:193 +#: src/view/shell/desktop/LeftNav.tsx:383 +#: src/view/shell/Drawer.tsx:495 +#: src/view/shell/Drawer.tsx:496 msgid "Lists" msgstr "列表" #: src/view/com/post-thread/PostThread.tsx:333 #: src/view/com/post-thread/PostThread.tsx:341 -msgid "Load more posts" -msgstr "加载更多帖子" +#~ msgid "Load more posts" +#~ msgstr "加载更多帖子" #: src/view/screens/Notifications.tsx:159 msgid "Load new notifications" msgstr "加载新的通知" -#: src/view/com/feeds/FeedPage.tsx:115 -#: src/view/screens/Profile.tsx:440 +#: src/screens/Profile/Sections/Feed.tsx:70 +#: src/view/com/feeds/FeedPage.tsx:124 #: src/view/screens/ProfileFeed.tsx:495 -#: src/view/screens/ProfileList.tsx:681 +#: src/view/screens/ProfileList.tsx:695 msgid "Load new posts" msgstr "加载新的帖子" -#: src/view/com/composer/text-input/mobile/Autocomplete.tsx:95 +#: src/view/com/composer/text-input/mobile/Autocomplete.tsx:99 msgid "Loading..." msgstr "加载中..." @@ -2195,7 +2572,7 @@ msgstr "加载中..." #~ msgid "Local dev server" #~ msgstr "本地开发服务器" -#: src/Navigation.tsx:209 +#: src/Navigation.tsx:221 msgid "Log" msgstr "日志" @@ -2206,11 +2583,11 @@ msgstr "日志" msgid "Log out" msgstr "登出" -#: src/view/screens/Moderation.tsx:155 +#: src/screens/Moderation/index.tsx:444 msgid "Logged-out visibility" msgstr "未登录用户可见性" -#: src/view/com/auth/login/ChooseAccountForm.tsx:133 +#: src/view/com/auth/login/ChooseAccountForm.tsx:137 msgid "Login to account that is not listed" msgstr "登录未列出的账户" @@ -2230,7 +2607,7 @@ msgstr "不能长于 253 个字符" msgid "May only contain letters and numbers" msgstr "只能包含字母和数字" -#: src/view/screens/Profile.tsx:182 +#: src/view/screens/Profile.tsx:190 msgid "Media" msgstr "媒体" @@ -2243,35 +2620,43 @@ msgid "Mentioned users" msgstr "提到的用户" #: src/view/com/util/ViewHeader.tsx:87 -#: src/view/screens/Search/Search.tsx:646 +#: src/view/screens/Search/Search.tsx:647 msgid "Menu" msgstr "菜单" -#: src/view/com/posts/FeedErrorMessage.tsx:197 +#: src/view/com/posts/FeedErrorMessage.tsx:192 msgid "Message from server: {0}" msgstr "来自服务器的信息:{0}" -#: src/Navigation.tsx:117 -#: src/view/screens/Moderation.tsx:66 -#: src/view/screens/Settings/index.tsx:625 -#: src/view/shell/desktop/LeftNav.tsx:397 -#: src/view/shell/Drawer.tsx:511 -#: src/view/shell/Drawer.tsx:512 +#: src/lib/moderation/useReportOptions.ts:45 +msgid "Misleading Account" +msgstr "" + +#: src/Navigation.tsx:119 +#: src/screens/Moderation/index.tsx:106 +#: src/view/screens/Settings/index.tsx:641 +#: src/view/shell/desktop/LeftNav.tsx:401 +#: src/view/shell/Drawer.tsx:514 +#: src/view/shell/Drawer.tsx:515 msgid "Moderation" msgstr "限制" +#: src/components/moderation/ModerationDetailsDialog.tsx:113 +msgid "Moderation details" +msgstr "" + #: src/view/com/lists/ListCard.tsx:93 #: src/view/com/modals/UserAddRemoveLists.tsx:206 msgid "Moderation list by {0}" msgstr "由 {0} 创建的限制列表" -#: src/view/screens/ProfileList.tsx:775 +#: src/view/screens/ProfileList.tsx:789 msgid "Moderation list by <0/>" msgstr "由 创建的限制列表" #: src/view/com/lists/ListCard.tsx:91 #: src/view/com/modals/UserAddRemoveLists.tsx:204 -#: src/view/screens/ProfileList.tsx:773 +#: src/view/screens/ProfileList.tsx:787 msgid "Moderation list by you" msgstr "你创建的限制列表" @@ -2283,30 +2668,41 @@ msgstr "限制列表已创建" msgid "Moderation list updated" msgstr "限制列表已更新" -#: src/view/screens/Moderation.tsx:114 +#: src/screens/Moderation/index.tsx:245 msgid "Moderation lists" msgstr "限制列表" -#: src/Navigation.tsx:122 +#: src/Navigation.tsx:124 #: src/view/screens/ModerationModlists.tsx:58 msgid "Moderation Lists" msgstr "限制列表" -#: src/view/screens/Settings/index.tsx:619 +#: src/view/screens/Settings/index.tsx:635 msgid "Moderation settings" msgstr "限制设置" -#: src/view/com/modals/ModerationDetails.tsx:35 +#: src/Navigation.tsx:216 +msgid "Moderation states" +msgstr "" + +#: src/screens/Moderation/index.tsx:217 +msgid "Moderation tools" +msgstr "" + +#: src/components/moderation/ModerationDetailsDialog.tsx:49 +#: src/lib/moderation/useModerationCauseDescription.ts:40 msgid "Moderator has chosen to set a general warning on the content." msgstr "限制选择对内容设置一般警告。" +#: src/view/com/post-thread/PostThreadItem.tsx:541 +msgid "More" +msgstr "" + #: src/view/shell/desktop/Feeds.tsx:65 msgid "More feeds" msgstr "更多信息流" -#: src/view/com/profile/ProfileHeader.tsx:523 -#: src/view/screens/ProfileFeed.tsx:363 -#: src/view/screens/ProfileList.tsx:617 +#: src/view/screens/ProfileList.tsx:599 msgid "More options" msgstr "更多选项" @@ -2330,11 +2726,12 @@ msgstr "隐藏" msgid "Mute {truncatedTag}" msgstr "隐藏 {truncatedTag}" -#: src/view/com/profile/ProfileHeader.tsx:327 +#: src/view/com/profile/ProfileMenu.tsx:279 +#: src/view/com/profile/ProfileMenu.tsx:286 msgid "Mute Account" msgstr "隐藏账户" -#: src/view/screens/ProfileList.tsx:544 +#: src/view/screens/ProfileList.tsx:518 msgid "Mute accounts" msgstr "隐藏账户" @@ -2354,17 +2751,18 @@ msgstr "仅隐藏话题标签" msgid "Mute in text & tags" msgstr "隐藏文本和话题标签" -#: src/view/screens/ProfileList.tsx:491 +#: src/view/screens/ProfileList.tsx:461 +#: src/view/screens/ProfileList.tsx:624 msgid "Mute list" msgstr "隐藏列表" -#: src/view/screens/ProfileList.tsx:275 +#: src/view/screens/ProfileList.tsx:619 msgid "Mute these accounts?" msgstr "隐藏这些账户?" #: src/view/screens/ProfileList.tsx:279 -msgid "Mute this List" -msgstr "隐藏这个列表" +#~ msgid "Mute this List" +#~ msgstr "隐藏这个列表" #: src/components/dialogs/MutedWords.tsx:127 msgid "Mute this word in post text and tags" @@ -2388,11 +2786,11 @@ msgstr "隐藏词和话题标签" msgid "Muted" msgstr "已隐藏" -#: src/view/screens/Moderation.tsx:128 +#: src/screens/Moderation/index.tsx:257 msgid "Muted accounts" msgstr "已隐藏账户" -#: src/Navigation.tsx:127 +#: src/Navigation.tsx:129 #: src/view/screens/ModerationMutedAccounts.tsx:107 msgid "Muted Accounts" msgstr "已隐藏账户" @@ -2401,15 +2799,20 @@ msgstr "已隐藏账户" msgid "Muted accounts have their posts removed from your feed and from your notifications. Mutes are completely private." msgstr "已隐藏的账户将不会在你的通知或时间线中显示,被隐藏账户将不会收到通知。" -#: src/view/screens/Moderation.tsx:100 +#: src/lib/moderation/useModerationCauseDescription.ts:85 +msgid "Muted by \"{0}\"" +msgstr "" + +#: src/screens/Moderation/index.tsx:233 msgid "Muted words & tags" msgstr "已隐藏词和话题标签" -#: src/view/screens/ProfileList.tsx:277 +#: src/view/screens/ProfileList.tsx:621 msgid "Muting is private. Muted accounts can interact with you, but you will not see their posts or receive notifications from them." msgstr "被隐藏的账户将不会得知你已将他隐藏,已隐藏的账户将不会在你的通知或时间线中显示。" -#: src/view/com/modals/BirthDateSettings.tsx:56 +#: src/components/dialogs/BirthDateSettings.tsx:35 +#: src/components/dialogs/BirthDateSettings.tsx:38 msgid "My Birthday" msgstr "我的生日" @@ -2421,13 +2824,17 @@ msgstr "自定义信息流" msgid "My Profile" msgstr "我的个人资料" -#: src/view/screens/Settings/index.tsx:582 +#: src/view/screens/Settings/index.tsx:592 +msgid "My saved feeds" +msgstr "" + +#: src/view/screens/Settings/index.tsx:598 msgid "My Saved Feeds" msgstr "我保存的信息流" #: src/view/com/auth/server-input/index.tsx:118 -msgid "my-server.com" -msgstr "my-server.com" +#~ msgid "my-server.com" +#~ msgstr "my-server.com" #: src/view/com/modals/AddAppPasswords.tsx:179 #: src/view/com/modals/CreateOrEditList.tsx:290 @@ -2438,6 +2845,12 @@ msgstr "名称" msgid "Name is required" msgstr "名称是必填项" +#: src/lib/moderation/useReportOptions.ts:57 +#: src/lib/moderation/useReportOptions.ts:78 +#: src/lib/moderation/useReportOptions.ts:86 +msgid "Name or Description Violates Community Standards" +msgstr "" + #: src/screens/Onboarding/index.tsx:25 msgid "Nature" msgstr "自然" @@ -2446,7 +2859,7 @@ msgstr "自然" #: src/view/com/auth/login/ForgotPasswordForm.tsx:219 #: src/view/com/auth/login/LoginForm.tsx:289 #: src/view/com/auth/login/SetNewPasswordForm.tsx:196 -#: src/view/com/modals/ChangePassword.tsx:166 +#: src/view/com/modals/ChangePassword.tsx:168 msgid "Navigates to the next screen" msgstr "转到下一页" @@ -2454,13 +2867,17 @@ msgstr "转到下一页" msgid "Navigates to your profile" msgstr "转到个人资料" +#: src/components/ReportDialog/SelectReportOptionView.tsx:124 +msgid "Need to report a copyright violation?" +msgstr "" + #: src/view/com/modals/EmbedConsent.tsx:107 #: src/view/com/modals/EmbedConsent.tsx:123 msgid "Never load embeds from {0}" msgstr "请勿加载来自 {0} 的嵌入内容" #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:72 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:72 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:74 msgid "Never lose access to your followers and data." msgstr "永远不会失去对你的关注者和数据的访问。" @@ -2469,8 +2886,12 @@ msgid "Never lose access to your followers or data." msgstr "永远不会失去对你的关注者或数据的访问。" #: src/components/dialogs/MutedWords.tsx:293 -msgid "Nevermind" -msgstr "放弃" +#~ msgid "Nevermind" +#~ msgstr "放弃" + +#: src/view/com/modals/ChangeHandle.tsx:520 +msgid "Nevermind, create a handle for me" +msgstr "" #: src/view/screens/Lists.tsx:76 msgctxt "action" @@ -2486,29 +2907,30 @@ msgid "New Moderation List" msgstr "新的限制列表" #: src/view/com/auth/login/SetNewPasswordForm.tsx:150 +#: src/view/com/modals/ChangePassword.tsx:212 msgid "New password" msgstr "新密码" -#: src/view/com/modals/ChangePassword.tsx:215 +#: src/view/com/modals/ChangePassword.tsx:217 msgid "New Password" msgstr "新密码" -#: src/view/com/feeds/FeedPage.tsx:126 +#: src/view/com/feeds/FeedPage.tsx:135 msgctxt "action" msgid "New post" msgstr "新帖子" #: src/view/screens/Feeds.tsx:555 #: src/view/screens/Notifications.tsx:168 -#: src/view/screens/Profile.tsx:382 +#: src/view/screens/Profile.tsx:450 #: src/view/screens/ProfileFeed.tsx:433 -#: src/view/screens/ProfileList.tsx:196 -#: src/view/screens/ProfileList.tsx:224 -#: src/view/shell/desktop/LeftNav.tsx:248 +#: src/view/screens/ProfileList.tsx:199 +#: src/view/screens/ProfileList.tsx:227 +#: src/view/shell/desktop/LeftNav.tsx:252 msgid "New post" msgstr "新帖子" -#: src/view/shell/desktop/LeftNav.tsx:258 +#: src/view/shell/desktop/LeftNav.tsx:262 msgctxt "action" msgid "New Post" msgstr "新帖子" @@ -2532,8 +2954,8 @@ msgstr "新闻" #: src/view/com/auth/login/SetNewPasswordForm.tsx:187 #: src/view/com/auth/login/SetNewPasswordForm.tsx:198 #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:79 -#: src/view/com/modals/ChangePassword.tsx:251 #: src/view/com/modals/ChangePassword.tsx:253 +#: src/view/com/modals/ChangePassword.tsx:255 msgid "Next" msgstr "下一步" @@ -2542,7 +2964,7 @@ msgctxt "action" msgid "Next" msgstr "下一步" -#: src/view/com/lightbox/Lightbox.web.tsx:149 +#: src/view/com/lightbox/Lightbox.web.tsx:169 msgid "Next image" msgstr "下一张图片" @@ -2555,12 +2977,16 @@ msgstr "下一张图片" msgid "No" msgstr "停用" -#: src/view/screens/ProfileFeed.tsx:584 -#: src/view/screens/ProfileList.tsx:755 +#: src/view/screens/ProfileFeed.tsx:561 +#: src/view/screens/ProfileList.tsx:769 msgid "No description" msgstr "没有描述" -#: src/view/com/profile/ProfileHeader.tsx:170 +#: src/view/com/modals/ChangeHandle.tsx:406 +msgid "No DNS Panel" +msgstr "" + +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:111 msgid "No longer following {0}" msgstr "不再关注 {0}" @@ -2568,12 +2994,12 @@ msgstr "不再关注 {0}" msgid "No notifications yet!" msgstr "还没有通知!" -#: src/view/com/composer/text-input/mobile/Autocomplete.tsx:97 -#: src/view/com/composer/text-input/web/Autocomplete.tsx:191 +#: src/view/com/composer/text-input/mobile/Autocomplete.tsx:101 +#: src/view/com/composer/text-input/web/Autocomplete.tsx:195 msgid "No result" msgstr "没有结果" -#: src/components/Lists.tsx:192 +#: src/components/Lists.tsx:189 msgid "No results found" msgstr "未找到结果" @@ -2582,8 +3008,8 @@ msgid "No results found for \"{query}\"" msgstr "未找到\"{query}\"的结果" #: src/view/com/modals/ListAddRemoveUsers.tsx:127 -#: src/view/screens/Search/Search.tsx:281 -#: src/view/screens/Search/Search.tsx:309 +#: src/view/screens/Search/Search.tsx:282 +#: src/view/screens/Search/Search.tsx:310 msgid "No results found for {query}" msgstr "未找到 {query} 的结果" @@ -2595,12 +3021,21 @@ msgstr "不,谢谢" msgid "Nobody" msgstr "没有人" +#: src/components/LikedByList.tsx:102 +#: src/components/LikesDialog.tsx:99 +msgid "Nobody has liked this yet. Maybe you should be the first!" +msgstr "" + +#: src/lib/moderation/useGlobalLabelStrings.ts:42 +msgid "Non-sexual Nudity" +msgstr "" + #: src/view/com/modals/SelfLabel.tsx:135 msgid "Not Applicable." msgstr "不适用。" -#: src/Navigation.tsx:107 -#: src/view/screens/Profile.tsx:106 +#: src/Navigation.tsx:109 +#: src/view/screens/Profile.tsx:97 msgid "Not Found" msgstr "未找到" @@ -2609,17 +3044,22 @@ msgstr "未找到" msgid "Not right now" msgstr "暂时不需要" -#: src/view/screens/Moderation.tsx:252 +#: src/view/com/profile/ProfileMenu.tsx:368 +#: src/view/com/util/forms/PostDropdownBtn.tsx:342 +msgid "Note about sharing" +msgstr "" + +#: src/screens/Moderation/index.tsx:542 msgid "Note: Bluesky is an open and public network. This setting only limits the visibility of your content on the Bluesky app and website, and other apps may not respect this setting. Your content may still be shown to logged-out users by other apps and websites." msgstr "注意:Bluesky 是一个开放的公共网络。此设置项仅限制你的内容在 Bluesky 应用和网站上的可见性,其他应用可能不尊从此设置项,仍可能会向未登录的用户显示你的动态。" -#: src/Navigation.tsx:457 +#: src/Navigation.tsx:469 #: src/view/screens/Notifications.tsx:124 #: src/view/screens/Notifications.tsx:148 -#: src/view/shell/bottom-bar/BottomBar.tsx:205 -#: src/view/shell/desktop/LeftNav.tsx:361 -#: src/view/shell/Drawer.tsx:435 -#: src/view/shell/Drawer.tsx:436 +#: src/view/shell/bottom-bar/BottomBar.tsx:207 +#: src/view/shell/desktop/LeftNav.tsx:365 +#: src/view/shell/Drawer.tsx:438 +#: src/view/shell/Drawer.tsx:439 msgid "Notifications" msgstr "通知" @@ -2627,7 +3067,15 @@ msgstr "通知" msgid "Nudity" msgstr "裸露" -#: src/view/com/util/ErrorBoundary.tsx:35 +#: src/lib/moderation/useReportOptions.ts:71 +msgid "Nudity or pornography not labeled as such" +msgstr "" + +#: src/lib/moderation/useLabelBehaviorDescription.ts:11 +msgid "Off" +msgstr "" + +#: src/view/com/util/ErrorBoundary.tsx:49 msgid "Oh no!" msgstr "糟糕!" @@ -2635,6 +3083,10 @@ msgstr "糟糕!" msgid "Oh no! Something went wrong." msgstr "糟糕!发生了一些错误。" +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:127 +msgid "OK" +msgstr "" + #: src/view/com/auth/login/PasswordUpdatedForm.tsx:41 msgid "Okay" msgstr "好的" @@ -2643,11 +3095,11 @@ msgstr "好的" msgid "Oldest replies first" msgstr "优先显示最旧的回复" -#: src/view/screens/Settings/index.tsx:234 +#: src/view/screens/Settings/index.tsx:240 msgid "Onboarding reset" msgstr "重新开始引导流程" -#: src/view/com/composer/Composer.tsx:382 +#: src/view/com/composer/Composer.tsx:391 msgid "One or more images is missing alt text." msgstr "至少有一张图片缺失了替代文字。" @@ -2655,13 +3107,13 @@ msgstr "至少有一张图片缺失了替代文字。" msgid "Only {0} can reply." msgstr "只有 {0} 可以回复。" -#: src/components/Lists.tsx:82 +#: src/components/Lists.tsx:83 msgid "Oops, something went wrong!" msgstr "糟糕,发生了一些错误!" -#: src/components/Lists.tsx:188 -#: src/view/screens/AppPasswords.tsx:65 -#: src/view/screens/Profile.tsx:106 +#: src/components/Lists.tsx:157 +#: src/view/screens/AppPasswords.tsx:67 +#: src/view/screens/Profile.tsx:97 msgid "Oops!" msgstr "Oops!" @@ -2670,34 +3122,47 @@ msgid "Open" msgstr "开启" #: src/view/screens/Moderation.tsx:75 -msgid "Open content filtering settings" -msgstr "打开内容过滤设置" +#~ msgid "Open content filtering settings" +#~ msgstr "打开内容过滤设置" -#: src/view/com/composer/Composer.tsx:477 -#: src/view/com/composer/Composer.tsx:478 +#: src/view/com/composer/Composer.tsx:490 +#: src/view/com/composer/Composer.tsx:491 msgid "Open emoji picker" msgstr "打开表情符号选择器" -#: src/view/screens/Settings/index.tsx:712 +#: src/view/screens/ProfileFeed.tsx:299 +msgid "Open feed options menu" +msgstr "" + +#: src/view/screens/Settings/index.tsx:730 msgid "Open links with in-app browser" msgstr "在内置浏览器中打开链接" +#: src/screens/Moderation/index.tsx:229 +msgid "Open muted words and tags settings" +msgstr "" + #: src/view/screens/Moderation.tsx:92 -msgid "Open muted words settings" -msgstr "打开隐藏词设置" +#~ msgid "Open muted words settings" +#~ msgstr "打开隐藏词设置" #: src/view/com/home/HomeHeaderLayoutMobile.tsx:50 msgid "Open navigation" msgstr "开启导航" -#: src/view/com/util/forms/PostDropdownBtn.tsx:175 +#: src/view/com/util/forms/PostDropdownBtn.tsx:183 msgid "Open post options menu" msgstr "打开帖子选项菜单" -#: src/view/screens/Settings/index.tsx:804 +#: src/view/screens/Settings/index.tsx:824 +#: src/view/screens/Settings/index.tsx:834 msgid "Open storybook page" msgstr "开启 Storybook 界面" +#: src/view/screens/Settings/index.tsx:812 +msgid "Open system log" +msgstr "" + #: src/view/com/util/forms/DropdownButton.tsx:154 msgid "Opens {numItems} options" msgstr "开启 {numItems} 个选项" @@ -2706,11 +3171,11 @@ msgstr "开启 {numItems} 个选项" msgid "Opens additional details for a debug entry" msgstr "开启调试记录的额外详细信息" -#: src/view/com/notifications/FeedItem.tsx:349 +#: src/view/com/notifications/FeedItem.tsx:353 msgid "Opens an expanded list of users in this notification" msgstr "展开此通知中的扩展用户列表" -#: src/view/com/composer/photos/OpenCameraBtn.tsx:61 +#: src/view/com/composer/photos/OpenCameraBtn.tsx:78 msgid "Opens camera on device" msgstr "开启设备相机" @@ -2718,7 +3183,7 @@ msgstr "开启设备相机" msgid "Opens composer" msgstr "开启编辑器" -#: src/view/screens/Settings/index.tsx:595 +#: src/view/screens/Settings/index.tsx:611 msgid "Opens configurable language settings" msgstr "开启可配置的语言设置" @@ -2727,20 +3192,30 @@ msgid "Opens device photo gallery" msgstr "开启设备相册" #: src/view/com/profile/ProfileHeader.tsx:420 -msgid "Opens editor for profile display name, avatar, background image, and description" -msgstr "开启个人资料(如名称、头像、背景图片、描述等)编辑器" +#~ msgid "Opens editor for profile display name, avatar, background image, and description" +#~ msgstr "开启个人资料(如名称、头像、背景图片、描述等)编辑器" -#: src/view/screens/Settings/index.tsx:649 +#: src/view/screens/Settings/index.tsx:665 msgid "Opens external embeds settings" msgstr "开启外部嵌入设置" +#: src/view/com/auth/HomeLoggedOutCTA.tsx:56 +#: src/view/com/auth/SplashScreen.tsx:70 +msgid "Opens flow to create a new Bluesky account" +msgstr "" + +#: src/view/com/auth/HomeLoggedOutCTA.tsx:74 +#: src/view/com/auth/SplashScreen.tsx:83 +msgid "Opens flow to sign into your existing Bluesky account" +msgstr "" + #: src/view/com/profile/ProfileHeader.tsx:575 -msgid "Opens followers list" -msgstr "开启关注者列表" +#~ msgid "Opens followers list" +#~ msgstr "开启关注者列表" #: src/view/com/profile/ProfileHeader.tsx:594 -msgid "Opens following list" -msgstr "开启正在关注列表" +#~ msgid "Opens following list" +#~ msgstr "开启正在关注列表" #: src/view/screens/Settings.tsx:412 #~ msgid "Opens invite code list" @@ -2750,15 +3225,35 @@ msgstr "开启正在关注列表" msgid "Opens list of invite codes" msgstr "开启邀请码列表" +#: src/view/screens/Settings/index.tsx:794 +msgid "Opens modal for account deletion confirmation. Requires email code" +msgstr "" + #: src/view/screens/Settings/index.tsx:774 -msgid "Opens modal for account deletion confirmation. Requires email code." -msgstr "开启用户删除确认界面,需要电子邮箱接收验证码。" +#~ msgid "Opens modal for account deletion confirmation. Requires email code." +#~ msgstr "开启用户删除确认界面,需要电子邮箱接收验证码。" + +#: src/view/screens/Settings/index.tsx:752 +msgid "Opens modal for changing your Bluesky password" +msgstr "" + +#: src/view/screens/Settings/index.tsx:714 +msgid "Opens modal for choosing a new Bluesky handle" +msgstr "" + +#: src/view/screens/Settings/index.tsx:775 +msgid "Opens modal for downloading your Bluesky account data (repository)" +msgstr "" + +#: src/view/screens/Settings/index.tsx:966 +msgid "Opens modal for email verification" +msgstr "" #: src/view/com/modals/ChangeHandle.tsx:281 msgid "Opens modal for using custom domain" msgstr "开启使用自定义域名的模式" -#: src/view/screens/Settings/index.tsx:620 +#: src/view/screens/Settings/index.tsx:636 msgid "Opens moderation settings" msgstr "开启限制设置" @@ -2771,27 +3266,40 @@ msgstr "开启密码重置申请" msgid "Opens screen to edit Saved Feeds" msgstr "开启用于编辑已保存信息流的界面" -#: src/view/screens/Settings/index.tsx:576 +#: src/view/screens/Settings/index.tsx:593 msgid "Opens screen with all saved feeds" msgstr "开启包含所有已保存信息流的界面" +#: src/view/screens/Settings/index.tsx:692 +msgid "Opens the app password settings" +msgstr "" + #: src/view/screens/Settings/index.tsx:676 -msgid "Opens the app password settings page" -msgstr "开启应用专用密码设置页" +#~ msgid "Opens the app password settings page" +#~ msgstr "开启应用专用密码设置页" + +#: src/view/screens/Settings/index.tsx:550 +msgid "Opens the Following feed preferences" +msgstr "" #: src/view/screens/Settings/index.tsx:535 -msgid "Opens the home feed preferences" -msgstr "开启主页信息流首选项" +#~ msgid "Opens the home feed preferences" +#~ msgstr "开启主页信息流首选项" + +#: src/view/com/modals/LinkWarning.tsx:76 +msgid "Opens the linked website" +msgstr "" -#: src/view/screens/Settings/index.tsx:805 +#: src/view/screens/Settings/index.tsx:825 +#: src/view/screens/Settings/index.tsx:835 msgid "Opens the storybook page" msgstr "开启 Storybook 界面" -#: src/view/screens/Settings/index.tsx:793 +#: src/view/screens/Settings/index.tsx:813 msgid "Opens the system log page" msgstr "开启系统日志界面" -#: src/view/screens/Settings/index.tsx:556 +#: src/view/screens/Settings/index.tsx:571 msgid "Opens the threads preferences" msgstr "开启讨论串首选项" @@ -2799,11 +3307,19 @@ msgstr "开启讨论串首选项" msgid "Option {0} of {numItems}" msgstr "第 {0} 个选项,共 {numItems} 个" +#: src/components/ReportDialog/SubmitView.tsx:162 +msgid "Optionally provide additional information below:" +msgstr "" + #: src/view/com/modals/Threadgate.tsx:89 msgid "Or combine these options:" msgstr "或者选择组合这些选项:" -#: src/view/com/auth/login/ChooseAccountForm.tsx:138 +#: src/lib/moderation/useReportOptions.ts:25 +msgid "Other" +msgstr "" + +#: src/view/com/auth/login/ChooseAccountForm.tsx:142 msgid "Other account" msgstr "其他账户" @@ -2815,7 +3331,7 @@ msgstr "其他账户" msgid "Other..." msgstr "其他..." -#: src/components/Lists.tsx:194 +#: src/components/Lists.tsx:190 #: src/view/screens/NotFound.tsx:45 msgid "Page not found" msgstr "无法找到此页面" @@ -2826,12 +3342,18 @@ msgstr "无法找到此页面" #: src/view/com/auth/create/Step1.tsx:191 #: src/view/com/auth/create/Step1.tsx:201 +#: src/view/com/auth/login/LoginForm.tsx:210 #: src/view/com/auth/login/LoginForm.tsx:226 #: src/view/com/auth/login/SetNewPasswordForm.tsx:161 +#: src/view/com/modals/DeleteAccount.tsx:195 #: src/view/com/modals/DeleteAccount.tsx:202 msgid "Password" msgstr "密码" +#: src/view/com/modals/ChangePassword.tsx:142 +msgid "Password Changed" +msgstr "" + #: src/view/com/auth/login/Login.tsx:157 msgid "Password updated" msgstr "密码已更新" @@ -2840,11 +3362,11 @@ msgstr "密码已更新" msgid "Password updated!" msgstr "密码已更新!" -#: src/Navigation.tsx:162 +#: src/Navigation.tsx:164 msgid "People followed by @{0}" msgstr "@{0} 关注的人" -#: src/Navigation.tsx:155 +#: src/Navigation.tsx:157 msgid "People following @{0}" msgstr "关注 @{0} 的人" @@ -2868,11 +3390,15 @@ msgstr "宠物" msgid "Pictures meant for adults." msgstr "适合成年人的图像。" -#: src/view/screens/ProfileFeed.tsx:354 -#: src/view/screens/ProfileList.tsx:581 +#: src/view/screens/ProfileFeed.tsx:291 +#: src/view/screens/ProfileList.tsx:563 msgid "Pin to home" msgstr "固定到主页" +#: src/view/screens/ProfileFeed.tsx:294 +msgid "Pin to Home" +msgstr "" + #: src/view/screens/SavedFeeds.tsx:88 msgid "Pinned Feeds" msgstr "固定信息流列表" @@ -2938,16 +3464,20 @@ msgstr "请输入你的电子邮箱。" msgid "Please enter your password as well:" msgstr "请输入你的密码:" +#: src/components/moderation/LabelsOnMeDialog.tsx:222 +msgid "Please explain why you think this label was incorrectly applied by {0}" +msgstr "" + #: src/view/com/modals/AppealLabel.tsx:72 #: src/view/com/modals/AppealLabel.tsx:75 -msgid "Please tell us why you think this content warning was incorrectly applied!" -msgstr "请告诉我们你认为此内容警告被错误设置的原因!" +#~ msgid "Please tell us why you think this content warning was incorrectly applied!" +#~ msgstr "请告诉我们你认为此内容警告被错误设置的原因!" #: src/view/com/modals/VerifyEmail.tsx:101 msgid "Please Verify Your Email" msgstr "请验证你的电子邮箱" -#: src/view/com/composer/Composer.tsx:222 +#: src/view/com/composer/Composer.tsx:221 msgid "Please wait for your link card to finish loading" msgstr "请等待你的链接卡片加载完毕" @@ -2959,13 +3489,17 @@ msgstr "政治" msgid "Porn" msgstr "色情内容" -#: src/view/com/composer/Composer.tsx:357 -#: src/view/com/composer/Composer.tsx:365 +#: src/lib/moderation/useGlobalLabelStrings.ts:34 +msgid "Pornography" +msgstr "" + +#: src/view/com/composer/Composer.tsx:366 +#: src/view/com/composer/Composer.tsx:374 msgctxt "action" msgid "Post" msgstr "发布" -#: src/view/com/post-thread/PostThread.tsx:303 +#: src/view/com/post-thread/PostThread.tsx:292 msgctxt "description" msgid "Post" msgstr "发布" @@ -2974,20 +3508,30 @@ msgstr "发布" msgid "Post by {0}" msgstr "{0} 的帖子" -#: src/Navigation.tsx:174 -#: src/Navigation.tsx:181 -#: src/Navigation.tsx:188 +#: src/Navigation.tsx:176 +#: src/Navigation.tsx:183 +#: src/Navigation.tsx:190 msgid "Post by @{0}" msgstr "@{0} 的帖子" -#: src/view/com/util/forms/PostDropdownBtn.tsx:108 +#: src/view/com/util/forms/PostDropdownBtn.tsx:105 msgid "Post deleted" msgstr "已删除帖子" -#: src/view/com/post-thread/PostThread.tsx:462 +#: src/view/com/post-thread/PostThread.tsx:157 msgid "Post hidden" msgstr "已隐藏帖子" +#: src/components/moderation/ModerationDetailsDialog.tsx:98 +#: src/lib/moderation/useModerationCauseDescription.ts:99 +msgid "Post Hidden by Muted Word" +msgstr "" + +#: src/components/moderation/ModerationDetailsDialog.tsx:101 +#: src/lib/moderation/useModerationCauseDescription.ts:108 +msgid "Post Hidden by You" +msgstr "" + #: src/view/com/composer/select-language/SelectLangBtn.tsx:87 msgid "Post language" msgstr "帖子语言" @@ -2996,7 +3540,8 @@ msgstr "帖子语言" msgid "Post Languages" msgstr "帖子语言" -#: src/view/com/post-thread/PostThread.tsx:514 +#: src/view/com/post-thread/PostThread.tsx:152 +#: src/view/com/post-thread/PostThread.tsx:164 msgid "Post not found" msgstr "无法找到帖子" @@ -3004,7 +3549,7 @@ msgstr "无法找到帖子" msgid "posts" msgstr "帖子" -#: src/view/screens/Profile.tsx:180 +#: src/view/screens/Profile.tsx:188 msgid "Posts" msgstr "帖子" @@ -3020,7 +3565,11 @@ msgstr "帖子已隐藏" msgid "Potentially Misleading Link" msgstr "潜在误导性链接" -#: src/view/com/lightbox/Lightbox.web.tsx:135 +#: src/components/Lists.tsx:88 +msgid "Press to retry" +msgstr "" + +#: src/view/com/lightbox/Lightbox.web.tsx:150 msgid "Previous image" msgstr "上一张图片" @@ -3032,15 +3581,16 @@ msgstr "首选语言" msgid "Prioritize Your Follows" msgstr "优先显示关注者" -#: src/view/screens/Settings/index.tsx:632 +#: src/view/screens/Settings/index.tsx:648 #: src/view/shell/desktop/RightNav.tsx:72 msgid "Privacy" msgstr "隐私" -#: src/Navigation.tsx:219 +#: src/Navigation.tsx:231 +#: src/view/com/auth/create/Policies.tsx:69 #: src/view/screens/PrivacyPolicy.tsx:29 -#: src/view/screens/Settings/index.tsx:891 -#: src/view/shell/Drawer.tsx:262 +#: src/view/screens/Settings/index.tsx:921 +#: src/view/shell/Drawer.tsx:265 msgid "Privacy Policy" msgstr "隐私政策" @@ -3048,11 +3598,16 @@ msgstr "隐私政策" msgid "Processing..." msgstr "处理中..." -#: src/view/shell/bottom-bar/BottomBar.tsx:247 -#: src/view/shell/desktop/LeftNav.tsx:415 +#: src/view/screens/DebugMod.tsx:888 +#: src/view/screens/Profile.tsx:340 +msgid "profile" +msgstr "" + +#: src/view/shell/bottom-bar/BottomBar.tsx:251 +#: src/view/shell/desktop/LeftNav.tsx:419 #: src/view/shell/Drawer.tsx:70 -#: src/view/shell/Drawer.tsx:546 -#: src/view/shell/Drawer.tsx:547 +#: src/view/shell/Drawer.tsx:549 +#: src/view/shell/Drawer.tsx:550 msgid "Profile" msgstr "个人资料" @@ -3060,7 +3615,7 @@ msgstr "个人资料" msgid "Profile updated" msgstr "个人资料已更新" -#: src/view/screens/Settings/index.tsx:949 +#: src/view/screens/Settings/index.tsx:979 msgid "Protect your account by verifying your email." msgstr "通过验证电子邮箱来保护你的账户。" @@ -3076,11 +3631,11 @@ msgstr "公开且可共享的批量隐藏或屏蔽列表。" msgid "Public, shareable lists which can drive feeds." msgstr "公开且可共享的列表,可作为信息流使用。" -#: src/view/com/composer/Composer.tsx:342 +#: src/view/com/composer/Composer.tsx:351 msgid "Publish post" msgstr "发布帖子" -#: src/view/com/composer/Composer.tsx:342 +#: src/view/com/composer/Composer.tsx:351 msgid "Publish reply" msgstr "发布回复" @@ -3106,6 +3661,10 @@ msgstr "随机显示 (手气不错)" msgid "Ratios" msgstr "比率" +#: src/view/screens/Search/Search.tsx:776 +msgid "Recent Searches" +msgstr "" + #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:116 msgid "Recommended Feeds" msgstr "推荐信息流" @@ -3114,36 +3673,50 @@ msgstr "推荐信息流" msgid "Recommended Users" msgstr "推荐的用户" -#: src/components/dialogs/MutedWords.tsx:298 -#: src/view/com/modals/ListAddRemoveUsers.tsx:264 +#: src/components/dialogs/MutedWords.tsx:287 +#: src/view/com/feeds/FeedSourceCard.tsx:283 +#: src/view/com/modals/ListAddRemoveUsers.tsx:268 #: src/view/com/modals/SelfLabel.tsx:83 #: src/view/com/modals/UserAddRemoveLists.tsx:219 -#: src/view/com/util/UserAvatar.tsx:285 -#: src/view/com/util/UserBanner.tsx:91 +#: src/view/com/posts/FeedErrorMessage.tsx:204 msgid "Remove" msgstr "移除" #: src/view/com/feeds/FeedSourceCard.tsx:108 -msgid "Remove {0} from my feeds?" -msgstr "将 {0} 从自定义信息流中移除?" +#~ msgid "Remove {0} from my feeds?" +#~ msgstr "将 {0} 从自定义信息流中移除?" #: src/view/com/util/AccountDropdownBtn.tsx:22 msgid "Remove account" msgstr "删除账号" -#: src/view/com/posts/FeedErrorMessage.tsx:131 -#: src/view/com/posts/FeedErrorMessage.tsx:166 +#: src/view/com/util/UserAvatar.tsx:358 +msgid "Remove Avatar" +msgstr "" + +#: src/view/com/util/UserBanner.tsx:148 +msgid "Remove Banner" +msgstr "" + +#: src/view/com/posts/FeedErrorMessage.tsx:160 msgid "Remove feed" msgstr "删除信息流" -#: src/view/com/feeds/FeedSourceCard.tsx:107 -#: src/view/com/feeds/FeedSourceCard.tsx:169 -#: src/view/com/feeds/FeedSourceCard.tsx:174 -#: src/view/com/feeds/FeedSourceCard.tsx:245 -#: src/view/screens/ProfileFeed.tsx:273 +#: src/view/com/posts/FeedErrorMessage.tsx:201 +msgid "Remove feed?" +msgstr "" + +#: src/view/com/feeds/FeedSourceCard.tsx:173 +#: src/view/com/feeds/FeedSourceCard.tsx:233 +#: src/view/screens/ProfileFeed.tsx:334 +#: src/view/screens/ProfileFeed.tsx:340 msgid "Remove from my feeds" msgstr "从自定义信息流中删除" +#: src/view/com/feeds/FeedSourceCard.tsx:278 +msgid "Remove from my feeds?" +msgstr "" + #: src/view/com/composer/photos/Gallery.tsx:167 msgid "Remove image" msgstr "删除图片" @@ -3152,7 +3725,7 @@ msgstr "删除图片" msgid "Remove image preview" msgstr "删除图片预览" -#: src/components/dialogs/MutedWords.tsx:343 +#: src/components/dialogs/MutedWords.tsx:330 msgid "Remove mute word from your list" msgstr "从你的隐藏词列表中删除" @@ -3161,28 +3734,35 @@ msgid "Remove repost" msgstr "删除转发" #: src/view/com/feeds/FeedSourceCard.tsx:175 -msgid "Remove this feed from my feeds?" -msgstr "将这个信息流从自定义信息流列表中删除?" +#~ msgid "Remove this feed from my feeds?" +#~ msgstr "将这个信息流从自定义信息流列表中删除?" + +#: src/view/com/posts/FeedErrorMessage.tsx:202 +msgid "Remove this feed from your saved feeds" +msgstr "" #: src/view/com/posts/FeedErrorMessage.tsx:132 -msgid "Remove this feed from your saved feeds?" -msgstr "将这个信息流从保存的信息流列表中删除?" +#~ msgid "Remove this feed from your saved feeds?" +#~ msgstr "将这个信息流从保存的信息流列表中删除?" #: src/view/com/modals/ListAddRemoveUsers.tsx:199 #: src/view/com/modals/UserAddRemoveLists.tsx:152 msgid "Removed from list" msgstr "从列表中删除" -#: src/view/com/feeds/FeedSourceCard.tsx:113 -#: src/view/com/feeds/FeedSourceCard.tsx:180 +#: src/view/com/feeds/FeedSourceCard.tsx:121 msgid "Removed from my feeds" msgstr "从自定义信息流中删除" +#: src/view/screens/ProfileFeed.tsx:208 +msgid "Removed from your feeds" +msgstr "" + #: src/view/com/composer/ExternalEmbed.tsx:71 msgid "Removes default thumbnail from {0}" msgstr "从 {0} 中删除默认缩略图" -#: src/view/screens/Profile.tsx:181 +#: src/view/screens/Profile.tsx:189 msgid "Replies" msgstr "回复" @@ -3190,7 +3770,7 @@ msgstr "回复" msgid "Replies to this thread are disabled" msgstr "对此讨论串的回复已被禁用" -#: src/view/com/composer/Composer.tsx:355 +#: src/view/com/composer/Composer.tsx:364 msgctxt "action" msgid "Reply" msgstr "回复" @@ -3199,34 +3779,55 @@ msgstr "回复" msgid "Reply Filters" msgstr "回复过滤器" -#: src/view/com/post/Post.tsx:167 -#: src/view/com/posts/FeedItem.tsx:287 +#: src/view/com/post/Post.tsx:166 +#: src/view/com/posts/FeedItem.tsx:280 msgctxt "description" msgid "Reply to <0/>" msgstr "回复 <0/>" #: src/view/com/modals/report/Modal.tsx:166 -msgid "Report {collectionName}" -msgstr "举报 {collectionName}" +#~ msgid "Report {collectionName}" +#~ msgstr "举报 {collectionName}" -#: src/view/com/profile/ProfileHeader.tsx:361 +#: src/view/com/profile/ProfileMenu.tsx:319 +#: src/view/com/profile/ProfileMenu.tsx:322 msgid "Report Account" msgstr "举报账户" -#: src/view/screens/ProfileFeed.tsx:293 +#: src/view/screens/ProfileFeed.tsx:351 +#: src/view/screens/ProfileFeed.tsx:353 msgid "Report feed" msgstr "举报信息流" -#: src/view/screens/ProfileList.tsx:459 +#: src/view/screens/ProfileList.tsx:429 msgid "Report List" msgstr "举报列表" -#: src/view/com/modals/report/SendReportButton.tsx:37 -#: src/view/com/util/forms/PostDropdownBtn.tsx:301 -#: src/view/com/util/forms/PostDropdownBtn.tsx:309 +#: src/view/com/util/forms/PostDropdownBtn.tsx:292 +#: src/view/com/util/forms/PostDropdownBtn.tsx:294 msgid "Report post" msgstr "举报帖子" +#: src/components/ReportDialog/SelectReportOptionView.tsx:43 +msgid "Report this content" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:56 +msgid "Report this feed" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:53 +msgid "Report this list" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:50 +msgid "Report this post" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:47 +msgid "Report this user" +msgstr "" + #: src/view/com/modals/Repost.tsx:43 #: src/view/com/modals/Repost.tsx:48 #: src/view/com/modals/Repost.tsx:53 @@ -3248,19 +3849,19 @@ msgstr "转发或引用帖子" msgid "Reposted By" msgstr "转发" -#: src/view/com/posts/FeedItem.tsx:207 +#: src/view/com/posts/FeedItem.tsx:197 msgid "Reposted by {0}" msgstr "由 {0} 转发" -#: src/view/com/posts/FeedItem.tsx:224 +#: src/view/com/posts/FeedItem.tsx:214 msgid "Reposted by <0/>" msgstr "由 <0/> 转发" -#: src/view/com/notifications/FeedItem.tsx:162 +#: src/view/com/notifications/FeedItem.tsx:166 msgid "reposted your post" msgstr "转发你的帖子" -#: src/view/com/post-thread/PostThreadItem.tsx:188 +#: src/view/com/post-thread/PostThreadItem.tsx:187 msgid "Reposts of this post" msgstr "转发这条帖子" @@ -3273,12 +3874,12 @@ msgstr "请求变更" #~ msgid "Request code" #~ msgstr "请求码" -#: src/view/com/modals/ChangePassword.tsx:239 #: src/view/com/modals/ChangePassword.tsx:241 +#: src/view/com/modals/ChangePassword.tsx:243 msgid "Request Code" msgstr "确认码" -#: src/view/screens/Settings/index.tsx:456 +#: src/view/screens/Settings/index.tsx:471 msgid "Require alt text before posting" msgstr "发布时检查媒体是否存在替代文本" @@ -3288,18 +3889,20 @@ msgstr "服务提供者要求" #: src/view/com/auth/login/SetNewPasswordForm.tsx:124 #: src/view/com/auth/login/SetNewPasswordForm.tsx:136 +#: src/view/com/modals/ChangePassword.tsx:185 msgid "Reset code" msgstr "确认码" -#: src/view/com/modals/ChangePassword.tsx:190 +#: src/view/com/modals/ChangePassword.tsx:192 msgid "Reset Code" msgstr "确认码" #: src/view/screens/Settings/index.tsx:824 -msgid "Reset onboarding" -msgstr "重置引导流程" +#~ msgid "Reset onboarding" +#~ msgstr "重置引导流程" -#: src/view/screens/Settings/index.tsx:827 +#: src/view/screens/Settings/index.tsx:854 +#: src/view/screens/Settings/index.tsx:857 msgid "Reset onboarding state" msgstr "重置引导流程状态" @@ -3308,18 +3911,19 @@ msgid "Reset password" msgstr "重置密码" #: src/view/screens/Settings/index.tsx:814 -msgid "Reset preferences" -msgstr "重置首选项" +#~ msgid "Reset preferences" +#~ msgstr "重置首选项" -#: src/view/screens/Settings/index.tsx:817 +#: src/view/screens/Settings/index.tsx:844 +#: src/view/screens/Settings/index.tsx:847 msgid "Reset preferences state" msgstr "重置首选项状态" -#: src/view/screens/Settings/index.tsx:825 +#: src/view/screens/Settings/index.tsx:855 msgid "Resets the onboarding state" msgstr "重置引导流程状态" -#: src/view/screens/Settings/index.tsx:815 +#: src/view/screens/Settings/index.tsx:845 msgid "Resets the preferences state" msgstr "重置首选项状态" @@ -3332,6 +3936,7 @@ msgstr "重试登录" msgid "Retries the last action, which errored out" msgstr "重试上次出错的操作" +#: src/components/Lists.tsx:98 #: src/screens/Onboarding/StepInterests/index.tsx:221 #: src/screens/Onboarding/StepInterests/index.tsx:224 #: src/view/com/auth/create/CreateAccount.tsx:181 @@ -3347,10 +3952,19 @@ msgstr "重试" #~ msgid "Retry." #~ msgstr "重试。" -#: src/view/screens/ProfileList.tsx:903 +#: src/view/screens/ProfileList.tsx:917 msgid "Return to previous page" msgstr "回到上一页" +#: src/view/screens/NotFound.tsx:59 +msgid "Returns to home page" +msgstr "" + +#: src/view/screens/NotFound.tsx:58 +#: src/view/screens/ProfileFeed.tsx:112 +msgid "Returns to previous page" +msgstr "" + #: src/view/shell/desktop/RightNav.tsx:55 #~ msgid "SANDBOX. Posts and accounts are not permanent." #~ msgstr "沙盒模式。帖子和账户不会永久保存。" @@ -3361,12 +3975,10 @@ msgctxt "action" msgid "Save" msgstr "保存" -#: src/view/com/modals/BirthDateSettings.tsx:94 -#: src/view/com/modals/BirthDateSettings.tsx:97 +#: src/components/dialogs/BirthDateSettings.tsx:125 #: src/view/com/modals/ChangeHandle.tsx:173 #: src/view/com/modals/CreateOrEditList.tsx:337 #: src/view/com/modals/EditProfile.tsx:224 -#: src/view/screens/ProfileFeed.tsx:346 msgid "Save" msgstr "保存" @@ -3374,6 +3986,10 @@ msgstr "保存" msgid "Save alt text" msgstr "保存替代文字" +#: src/components/dialogs/BirthDateSettings.tsx:119 +msgid "Save birthday" +msgstr "" + #: src/view/com/modals/EditProfile.tsx:232 msgid "Save Changes" msgstr "保存更改" @@ -3386,10 +4002,23 @@ msgstr "保存用户识别符更改" msgid "Save image crop" msgstr "保存图片裁切" +#: src/view/screens/ProfileFeed.tsx:335 +#: src/view/screens/ProfileFeed.tsx:341 +msgid "Save to my feeds" +msgstr "" + #: src/view/screens/SavedFeeds.tsx:122 msgid "Saved Feeds" msgstr "已保存信息流" +#: src/view/com/lightbox/Lightbox.tsx:81 +msgid "Saved to your camera roll." +msgstr "" + +#: src/view/screens/ProfileFeed.tsx:212 +msgid "Saved to your feeds" +msgstr "" + #: src/view/com/modals/EditProfile.tsx:225 msgid "Saves any changes to your profile" msgstr "保存个人资料中所做的变更" @@ -3398,33 +4027,37 @@ msgstr "保存个人资料中所做的变更" msgid "Saves handle change to {handle}" msgstr "保存用户识别符更改至 {handle}" +#: src/view/com/modals/crop-image/CropImage.web.tsx:145 +msgid "Saves image crop settings" +msgstr "" + #: src/screens/Onboarding/index.tsx:36 msgid "Science" msgstr "科学" -#: src/view/screens/ProfileList.tsx:859 +#: src/view/screens/ProfileList.tsx:873 msgid "Scroll to top" msgstr "滚动到顶部" -#: src/Navigation.tsx:447 +#: src/Navigation.tsx:459 #: src/view/com/auth/LoggedOut.tsx:122 #: src/view/com/modals/ListAddRemoveUsers.tsx:75 #: src/view/com/util/forms/SearchInput.tsx:67 #: src/view/com/util/forms/SearchInput.tsx:79 -#: src/view/screens/Search/Search.tsx:419 -#: src/view/screens/Search/Search.tsx:668 -#: src/view/screens/Search/Search.tsx:686 -#: src/view/shell/bottom-bar/BottomBar.tsx:159 -#: src/view/shell/desktop/LeftNav.tsx:324 -#: src/view/shell/desktop/Search.tsx:214 -#: src/view/shell/desktop/Search.tsx:223 -#: src/view/shell/Drawer.tsx:362 -#: src/view/shell/Drawer.tsx:363 +#: src/view/screens/Search/Search.tsx:420 +#: src/view/screens/Search/Search.tsx:669 +#: src/view/screens/Search/Search.tsx:687 +#: src/view/shell/bottom-bar/BottomBar.tsx:161 +#: src/view/shell/desktop/LeftNav.tsx:328 +#: src/view/shell/desktop/Search.tsx:215 +#: src/view/shell/desktop/Search.tsx:224 +#: src/view/shell/Drawer.tsx:365 +#: src/view/shell/Drawer.tsx:366 msgid "Search" msgstr "搜索" -#: src/view/screens/Search/Search.tsx:735 -#: src/view/shell/desktop/Search.tsx:255 +#: src/view/screens/Search/Search.tsx:736 +#: src/view/shell/desktop/Search.tsx:256 msgid "Search for \"{query}\"" msgstr "搜索 \"{query}\"" @@ -3498,6 +4131,14 @@ msgstr "选择 {item}" msgid "Select from an existing account" msgstr "从现有账户中选择" +#: src/view/screens/LanguageSettings.tsx:299 +msgid "Select languages" +msgstr "" + +#: src/components/ReportDialog/SelectLabelerView.tsx:32 +msgid "Select moderator" +msgstr "" + #: src/view/com/util/Selector.tsx:107 msgid "Select option {i} of {numItems}" msgstr "选择 {numItems} 项中的第 {i} 项" @@ -3511,6 +4152,10 @@ msgstr "选择服务" msgid "Select some accounts below to follow" msgstr "选择以下一些账户进行关注" +#: src/components/ReportDialog/SubmitView.tsx:135 +msgid "Select the moderation service(s) to report to" +msgstr "" + #: src/view/com/auth/server-input/index.tsx:82 msgid "Select the service that hosts your data." msgstr "选择托管你数据的服务器。" @@ -3519,7 +4164,7 @@ msgstr "选择托管你数据的服务器。" msgid "Select topical feeds to follow from the list below" msgstr "从下面的列表中选择要关注的专题信息流" -#: src/screens/Onboarding/StepModeration/index.tsx:75 +#: src/screens/Onboarding/StepModeration/index.tsx:62 msgid "Select what you want to see (or not see), and we’ll handle the rest." msgstr "选择你想看到(或不想看到)的内容,剩下的由我们来处理。" @@ -3528,8 +4173,12 @@ msgid "Select which languages you want your subscribed feeds to include. If none msgstr "选择你希望订阅信息流中所包含的语言。如果未选择任何语言,将默认显示所有语言。" #: src/view/screens/LanguageSettings.tsx:98 -msgid "Select your app language for the default text to display in the app" -msgstr "选择应用中显示默认文本的语言" +#~ msgid "Select your app language for the default text to display in the app" +#~ msgstr "选择应用中显示默认文本的语言" + +#: src/view/screens/LanguageSettings.tsx:98 +msgid "Select your app language for the default text to display in the app." +msgstr "" #: src/screens/Onboarding/StepInterests/index.tsx:196 msgid "Select your interests from the options below" @@ -3565,14 +4214,23 @@ msgctxt "action" msgid "Send Email" msgstr "发送电子邮件" -#: src/view/shell/Drawer.tsx:295 -#: src/view/shell/Drawer.tsx:316 +#: src/view/shell/Drawer.tsx:298 +#: src/view/shell/Drawer.tsx:319 msgid "Send feedback" msgstr "提交反馈" +#: src/components/ReportDialog/SubmitView.tsx:214 +#: src/components/ReportDialog/SubmitView.tsx:218 +msgid "Send report" +msgstr "" + #: src/view/com/modals/report/SendReportButton.tsx:45 -msgid "Send Report" -msgstr "提交举报" +#~ msgid "Send Report" +#~ msgstr "提交举报" + +#: src/components/ReportDialog/SelectLabelerView.tsx:46 +msgid "Send report to {0}" +msgstr "" #: src/view/com/modals/DeleteAccount.tsx:133 msgid "Sends email with confirmation code for account deletion" @@ -3583,34 +4241,38 @@ msgid "Server address" msgstr "服务器地址" #: src/view/com/modals/ContentFilteringSettings.tsx:311 -msgid "Set {value} for {labelGroup} content moderation policy" -msgstr "为 {labelGroup} 内容审核政策设置 {value}" +#~ msgid "Set {value} for {labelGroup} content moderation policy" +#~ msgstr "为 {labelGroup} 内容审核政策设置 {value}" #: src/view/com/modals/ContentFilteringSettings.tsx:160 #: src/view/com/modals/ContentFilteringSettings.tsx:179 -msgctxt "action" -msgid "Set Age" -msgstr "设置年龄" +#~ msgctxt "action" +#~ msgid "Set Age" +#~ msgstr "设置年龄" + +#: src/screens/Moderation/index.tsx:306 +msgid "Set birthdate" +msgstr "" #: src/view/screens/Settings/index.tsx:488 -msgid "Set color theme to dark" -msgstr "设置主题为深色模式" +#~ msgid "Set color theme to dark" +#~ msgstr "设置主题为深色模式" #: src/view/screens/Settings/index.tsx:481 -msgid "Set color theme to light" -msgstr "设置主题为亮色模式" +#~ msgid "Set color theme to light" +#~ msgstr "设置主题为亮色模式" #: src/view/screens/Settings/index.tsx:475 -msgid "Set color theme to system setting" -msgstr "设置主题跟随系统设置" +#~ msgid "Set color theme to system setting" +#~ msgstr "设置主题跟随系统设置" #: src/view/screens/Settings/index.tsx:514 -msgid "Set dark theme to the dark theme" -msgstr "设置深色模式至深黑" +#~ msgid "Set dark theme to the dark theme" +#~ msgstr "设置深色模式至深黑" #: src/view/screens/Settings/index.tsx:507 -msgid "Set dark theme to the dim theme" -msgstr "设置深色模式至暗淡" +#~ msgid "Set dark theme to the dim theme" +#~ msgstr "设置深色模式至暗淡" #: src/view/com/auth/login/SetNewPasswordForm.tsx:104 msgid "Set new password" @@ -3652,6 +4314,26 @@ msgstr "设置你的账户" msgid "Sets Bluesky username" msgstr "设置 Bluesky 用户名" +#: src/view/screens/Settings/index.tsx:503 +msgid "Sets color theme to dark" +msgstr "" + +#: src/view/screens/Settings/index.tsx:496 +msgid "Sets color theme to light" +msgstr "" + +#: src/view/screens/Settings/index.tsx:490 +msgid "Sets color theme to system setting" +msgstr "" + +#: src/view/screens/Settings/index.tsx:529 +msgid "Sets dark theme to the dark theme" +msgstr "" + +#: src/view/screens/Settings/index.tsx:522 +msgid "Sets dark theme to the dim theme" +msgstr "" + #: src/view/com/auth/login/ForgotPasswordForm.tsx:157 msgid "Sets email for password reset" msgstr "设置用于重置密码的电子邮箱" @@ -3660,16 +4342,28 @@ msgstr "设置用于重置密码的电子邮箱" msgid "Sets hosting provider for password reset" msgstr "设置用于密码重置的托管提供商信息" +#: src/view/com/modals/crop-image/CropImage.web.tsx:123 +msgid "Sets image aspect ratio to square" +msgstr "" + +#: src/view/com/modals/crop-image/CropImage.web.tsx:113 +msgid "Sets image aspect ratio to tall" +msgstr "" + +#: src/view/com/modals/crop-image/CropImage.web.tsx:103 +msgid "Sets image aspect ratio to wide" +msgstr "" + #: src/view/com/auth/create/Step1.tsx:97 #: src/view/com/auth/login/LoginForm.tsx:151 msgid "Sets server for the Bluesky client" msgstr "设置 Bluesky 客户端的服务器" -#: src/Navigation.tsx:137 -#: src/view/screens/Settings/index.tsx:294 -#: src/view/shell/desktop/LeftNav.tsx:433 -#: src/view/shell/Drawer.tsx:567 -#: src/view/shell/Drawer.tsx:568 +#: src/Navigation.tsx:139 +#: src/view/screens/Settings/index.tsx:309 +#: src/view/shell/desktop/LeftNav.tsx:437 +#: src/view/shell/Drawer.tsx:570 +#: src/view/shell/Drawer.tsx:571 msgid "Settings" msgstr "设置" @@ -3677,28 +4371,39 @@ msgstr "设置" msgid "Sexual activity or erotic nudity." msgstr "性行为或性暗示裸露。" +#: src/lib/moderation/useGlobalLabelStrings.ts:38 +msgid "Sexually Suggestive" +msgstr "" + #: src/view/com/lightbox/Lightbox.tsx:141 msgctxt "action" msgid "Share" msgstr "分享" -#: src/view/com/profile/ProfileHeader.tsx:295 -#: src/view/com/util/forms/PostDropdownBtn.tsx:231 +#: src/view/com/profile/ProfileMenu.tsx:215 +#: src/view/com/profile/ProfileMenu.tsx:224 +#: src/view/com/util/forms/PostDropdownBtn.tsx:228 #: src/view/com/util/forms/PostDropdownBtn.tsx:237 -#: src/view/com/util/post-ctrls/PostCtrls.tsx:215 -#: src/view/screens/ProfileList.tsx:418 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:218 +#: src/view/screens/ProfileList.tsx:388 msgid "Share" msgstr "分享" -#: src/view/screens/ProfileFeed.tsx:305 +#: src/view/com/profile/ProfileMenu.tsx:373 +#: src/view/com/util/forms/PostDropdownBtn.tsx:347 +msgid "Share anyway" +msgstr "" + +#: src/view/screens/ProfileFeed.tsx:361 +#: src/view/screens/ProfileFeed.tsx:363 msgid "Share feed" msgstr "分享信息流" -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:43 -#: src/view/com/modals/ContentFilteringSettings.tsx:266 -#: src/view/com/util/moderation/ContentHider.tsx:107 -#: src/view/com/util/moderation/PostHider.tsx:108 -#: src/view/screens/Settings/index.tsx:344 +#: src/components/moderation/ContentHider.tsx:115 +#: src/components/moderation/GlobalModerationLabelPref.tsx:45 +#: src/components/moderation/PostHider.tsx:107 +#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:54 +#: src/view/screens/Settings/index.tsx:359 msgid "Show" msgstr "显示" @@ -3706,21 +4411,31 @@ msgstr "显示" msgid "Show all replies" msgstr "显示所有回复" -#: src/view/com/util/moderation/ScreenHider.tsx:132 +#: src/components/moderation/ScreenHider.tsx:162 +#: src/components/moderation/ScreenHider.tsx:165 msgid "Show anyway" msgstr "仍然显示" +#: src/lib/moderation/useLabelBehaviorDescription.ts:27 +#: src/lib/moderation/useLabelBehaviorDescription.ts:63 +msgid "Show badge" +msgstr "" + +#: src/lib/moderation/useLabelBehaviorDescription.ts:61 +msgid "Show badge and filter from feeds" +msgstr "" + #: src/view/com/modals/EmbedConsent.tsx:87 msgid "Show embeds from {0}" msgstr "显示来自 {0} 的嵌入内容" -#: src/view/com/profile/ProfileHeader.tsx:459 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:193 msgid "Show follows similar to {0}" msgstr "显示类似于 {0} 的关注者" -#: src/view/com/post-thread/PostThreadItem.tsx:538 -#: src/view/com/post/Post.tsx:198 -#: src/view/com/posts/FeedItem.tsx:363 +#: src/view/com/post-thread/PostThreadItem.tsx:507 +#: src/view/com/post/Post.tsx:201 +#: src/view/com/posts/FeedItem.tsx:355 msgid "Show More" msgstr "显示更多" @@ -3772,40 +4487,48 @@ msgstr "显示转发" msgid "Show reposts in Following" msgstr "在关注中显示转发" -#: src/view/com/util/moderation/ContentHider.tsx:67 -#: src/view/com/util/moderation/PostHider.tsx:61 +#: src/components/moderation/ContentHider.tsx:68 +#: src/components/moderation/PostHider.tsx:64 msgid "Show the content" msgstr "显示内容" -#: src/view/com/notifications/FeedItem.tsx:347 +#: src/view/com/notifications/FeedItem.tsx:351 msgid "Show users" msgstr "显示用户" +#: src/lib/moderation/useLabelBehaviorDescription.ts:58 +msgid "Show warning" +msgstr "" + +#: src/lib/moderation/useLabelBehaviorDescription.ts:56 +msgid "Show warning and filter from feeds" +msgstr "" + #: src/view/com/profile/ProfileHeader.tsx:462 -msgid "Shows a list of users similar to this user." -msgstr "显示与该用户相似的用户列表。" +#~ msgid "Shows a list of users similar to this user." +#~ msgstr "显示与该用户相似的用户列表。" -#: src/view/com/post-thread/PostThreadFollowBtn.tsx:124 -#: src/view/com/profile/ProfileHeader.tsx:506 +#: src/view/com/post-thread/PostThreadFollowBtn.tsx:127 msgid "Shows posts from {0} in your feed" msgstr "在你的信息流中显示来自 {0} 的帖子" -#: src/view/com/auth/HomeLoggedOutCTA.tsx:70 +#: src/view/com/auth/HomeLoggedOutCTA.tsx:72 #: src/view/com/auth/login/Login.tsx:98 -#: src/view/com/auth/SplashScreen.tsx:79 -#: src/view/shell/bottom-bar/BottomBar.tsx:285 -#: src/view/shell/bottom-bar/BottomBar.tsx:286 -#: src/view/shell/bottom-bar/BottomBar.tsx:288 +#: src/view/com/auth/SplashScreen.tsx:81 +#: src/view/shell/bottom-bar/BottomBar.tsx:289 +#: src/view/shell/bottom-bar/BottomBar.tsx:290 +#: src/view/shell/bottom-bar/BottomBar.tsx:292 #: src/view/shell/bottom-bar/BottomBarWeb.tsx:178 #: src/view/shell/bottom-bar/BottomBarWeb.tsx:179 #: src/view/shell/bottom-bar/BottomBarWeb.tsx:181 #: src/view/shell/NavSignupCard.tsx:58 #: src/view/shell/NavSignupCard.tsx:59 +#: src/view/shell/NavSignupCard.tsx:61 msgid "Sign in" msgstr "登录" -#: src/view/com/auth/HomeLoggedOutCTA.tsx:78 -#: src/view/com/auth/SplashScreen.tsx:82 +#: src/view/com/auth/HomeLoggedOutCTA.tsx:82 +#: src/view/com/auth/SplashScreen.tsx:86 #: src/view/com/auth/SplashScreen.web.tsx:91 msgid "Sign In" msgstr "登录" @@ -3814,7 +4537,7 @@ msgstr "登录" msgid "Sign in as {0}" msgstr "以 {0} 登录" -#: src/view/com/auth/login/ChooseAccountForm.tsx:118 +#: src/view/com/auth/login/ChooseAccountForm.tsx:122 #: src/view/com/auth/login/Login.tsx:116 msgid "Sign in as..." msgstr "登录为..." @@ -3823,16 +4546,16 @@ msgstr "登录为..." msgid "Sign into" msgstr "登录到" -#: src/view/com/modals/SwitchAccount.tsx:64 -#: src/view/com/modals/SwitchAccount.tsx:69 -#: src/view/screens/Settings/index.tsx:100 -#: src/view/screens/Settings/index.tsx:103 +#: src/view/com/modals/SwitchAccount.tsx:68 +#: src/view/com/modals/SwitchAccount.tsx:73 +#: src/view/screens/Settings/index.tsx:105 +#: src/view/screens/Settings/index.tsx:108 msgid "Sign out" msgstr "登出" -#: src/view/shell/bottom-bar/BottomBar.tsx:275 -#: src/view/shell/bottom-bar/BottomBar.tsx:276 -#: src/view/shell/bottom-bar/BottomBar.tsx:278 +#: src/view/shell/bottom-bar/BottomBar.tsx:279 +#: src/view/shell/bottom-bar/BottomBar.tsx:280 +#: src/view/shell/bottom-bar/BottomBar.tsx:282 #: src/view/shell/bottom-bar/BottomBarWeb.tsx:168 #: src/view/shell/bottom-bar/BottomBarWeb.tsx:169 #: src/view/shell/bottom-bar/BottomBarWeb.tsx:171 @@ -3846,25 +4569,26 @@ msgstr "注册" msgid "Sign up or sign in to join the conversation" msgstr "注册或登录以加入对话" -#: src/view/com/util/moderation/ScreenHider.tsx:76 +#: src/components/moderation/ScreenHider.tsx:98 +#: src/lib/moderation/useGlobalLabelStrings.ts:28 msgid "Sign-in Required" msgstr "需要登录" -#: src/view/screens/Settings/index.tsx:355 +#: src/view/screens/Settings/index.tsx:370 msgid "Signed in as" msgstr "登录身份" -#: src/view/com/auth/login/ChooseAccountForm.tsx:103 +#: src/view/com/auth/login/ChooseAccountForm.tsx:107 msgid "Signed in as @{0}" msgstr "以 @{0} 身份登录" -#: src/view/com/modals/SwitchAccount.tsx:66 +#: src/view/com/modals/SwitchAccount.tsx:70 msgid "Signs {0} out of Bluesky" msgstr "从 {0} 登出 Bluesky" #: src/screens/Onboarding/StepInterests/index.tsx:235 #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:195 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:33 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:35 msgid "Skip" msgstr "跳过" @@ -3884,15 +4608,21 @@ msgstr "程序开发" #~ msgid "Something went wrong and we're not sure what." #~ msgstr "出了点问题,原因不明。" +#: src/components/ReportDialog/index.tsx:52 +#: src/screens/Moderation/index.tsx:116 +#: src/screens/Profile/Sections/Labels.tsx:77 +msgid "Something went wrong, please try again." +msgstr "" + #: src/components/Lists.tsx:203 -msgid "Something went wrong!" -msgstr "出了点问题!" +#~ msgid "Something went wrong!" +#~ msgstr "出了点问题!" #: src/view/com/modals/Waitlist.tsx:51 #~ msgid "Something went wrong. Check your email and try again." #~ msgstr "出了点问题,请检查你的电子邮箱并重试。" -#: src/App.native.tsx:66 +#: src/App.native.tsx:71 msgid "Sorry! Your session expired. Please log in again." msgstr "很抱歉,你的登录会话已过期,请重新登录。" @@ -3904,6 +4634,18 @@ msgstr "回复排序" msgid "Sort replies to the same post by:" msgstr "对同一帖子的回复进行排序:" +#: src/components/moderation/LabelsOnMeDialog.tsx:147 +msgid "Source:" +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:65 +msgid "Spam" +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:53 +msgid "Spam; excessive mentions or replies" +msgstr "" + #: src/screens/Onboarding/index.tsx:30 msgid "Sports" msgstr "运动" @@ -3916,7 +4658,7 @@ msgstr "方块" #~ msgid "Staging" #~ msgstr "暂存" -#: src/view/screens/Settings/index.tsx:871 +#: src/view/screens/Settings/index.tsx:901 msgid "Status page" msgstr "状态页" @@ -3924,37 +4666,50 @@ msgstr "状态页" msgid "Step {0} of {numSteps}" msgstr "第 {0} 步,共 {numSteps} 步" -#: src/view/screens/Settings/index.tsx:274 +#: src/view/screens/Settings/index.tsx:288 msgid "Storage cleared, you need to restart the app now." msgstr "已清除存储,请立即重启应用。" -#: src/Navigation.tsx:204 -#: src/view/screens/Settings/index.tsx:807 +#: src/Navigation.tsx:211 +#: src/view/screens/Settings/index.tsx:827 msgid "Storybook" msgstr "Storybook" -#: src/view/com/modals/AppealLabel.tsx:101 +#: src/components/moderation/LabelsOnMeDialog.tsx:256 +#: src/components/moderation/LabelsOnMeDialog.tsx:257 msgid "Submit" msgstr "提交" -#: src/view/screens/ProfileList.tsx:608 +#: src/view/screens/ProfileList.tsx:590 msgid "Subscribe" msgstr "订阅" +#: src/screens/Profile/Sections/Labels.tsx:181 +msgid "Subscribe to @{0} to use these labels:" +msgstr "" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:222 +msgid "Subscribe to Labeler" +msgstr "" + #: src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx:173 #: src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx:308 msgid "Subscribe to the {0} feed" msgstr "订阅 {0} 信息流" -#: src/view/screens/ProfileList.tsx:604 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:185 +msgid "Subscribe to this labeler" +msgstr "" + +#: src/view/screens/ProfileList.tsx:586 msgid "Subscribe to this list" msgstr "订阅这个列表" -#: src/view/screens/Search/Search.tsx:374 +#: src/view/screens/Search/Search.tsx:375 msgid "Suggested Follows" msgstr "推荐的关注者" -#: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:64 +#: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:65 msgid "Suggested for you" msgstr "为你推荐" @@ -3962,7 +4717,7 @@ msgstr "为你推荐" msgid "Suggestive" msgstr "建议" -#: src/Navigation.tsx:214 +#: src/Navigation.tsx:226 #: src/view/screens/Support.tsx:30 #: src/view/screens/Support.tsx:33 msgid "Support" @@ -3972,29 +4727,29 @@ msgstr "支持" #~ msgid "Swipe up to see more" #~ msgstr "向上滑动查看更多" -#: src/view/com/modals/SwitchAccount.tsx:117 +#: src/view/com/modals/SwitchAccount.tsx:121 msgid "Switch Account" msgstr "切换账户" -#: src/view/com/modals/SwitchAccount.tsx:97 -#: src/view/screens/Settings/index.tsx:130 +#: src/view/com/modals/SwitchAccount.tsx:101 +#: src/view/screens/Settings/index.tsx:135 msgid "Switch to {0}" msgstr "切换到 {0}" -#: src/view/com/modals/SwitchAccount.tsx:98 -#: src/view/screens/Settings/index.tsx:131 +#: src/view/com/modals/SwitchAccount.tsx:102 +#: src/view/screens/Settings/index.tsx:136 msgid "Switches the account you are logged in to" msgstr "切换你登录的账户" -#: src/view/screens/Settings/index.tsx:472 +#: src/view/screens/Settings/index.tsx:487 msgid "System" msgstr "系统" -#: src/view/screens/Settings/index.tsx:795 +#: src/view/screens/Settings/index.tsx:815 msgid "System log" msgstr "系统日志" -#: src/components/dialogs/MutedWords.tsx:337 +#: src/components/dialogs/MutedWords.tsx:324 msgid "tag" msgstr "话题标签" @@ -4022,30 +4777,49 @@ msgstr "科技" msgid "Terms" msgstr "条款" -#: src/Navigation.tsx:224 -#: src/view/screens/Settings/index.tsx:885 +#: src/Navigation.tsx:236 +#: src/view/com/auth/create/Policies.tsx:59 +#: src/view/screens/Settings/index.tsx:915 #: src/view/screens/TermsOfService.tsx:29 -#: src/view/shell/Drawer.tsx:256 +#: src/view/shell/Drawer.tsx:259 msgid "Terms of Service" msgstr "服务条款" -#: src/components/dialogs/MutedWords.tsx:337 +#: src/lib/moderation/useReportOptions.ts:58 +#: src/lib/moderation/useReportOptions.ts:79 +#: src/lib/moderation/useReportOptions.ts:87 +msgid "Terms used violate community standards" +msgstr "" + +#: src/components/dialogs/MutedWords.tsx:324 msgid "text" msgstr "文本" -#: src/view/com/modals/AppealLabel.tsx:70 -#: src/view/com/modals/report/InputIssueDetails.tsx:51 +#: src/components/moderation/LabelsOnMeDialog.tsx:220 msgid "Text input field" msgstr "文本输入框" +#: src/components/ReportDialog/SubmitView.tsx:78 +msgid "Thank you. Your report has been sent." +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:466 +msgid "That contains the following:" +msgstr "" + #: src/view/com/auth/create/CreateAccount.tsx:94 msgid "That handle is already taken." msgstr "该用户识别符已被占用" -#: src/view/com/profile/ProfileHeader.tsx:263 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:274 +#: src/view/com/profile/ProfileMenu.tsx:349 msgid "The account will be able to interact with you after unblocking." msgstr "解除屏蔽后,该账户将能够与你互动。" +#: src/components/moderation/ModerationDetailsDialog.tsx:128 +msgid "the author" +msgstr "" + #: src/view/screens/CommunityGuidelines.tsx:36 msgid "The Community Guidelines have been moved to <0/>" msgstr "社群准则已迁移至 <0/>" @@ -4054,11 +4828,20 @@ msgstr "社群准则已迁移至 <0/>" msgid "The Copyright Policy has been moved to <0/>" msgstr "版权许可已迁移至 <0/>" +#: src/components/moderation/LabelsOnMeDialog.tsx:49 +msgid "The following labels were applied to your account." +msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:50 +msgid "The following labels were applied to your content." +msgstr "" + #: src/screens/Onboarding/Layout.tsx:60 msgid "The following steps will help customize your Bluesky experience." msgstr "以下步骤将帮助定制你的 Bluesky 体验。" -#: src/view/com/post-thread/PostThread.tsx:517 +#: src/view/com/post-thread/PostThread.tsx:153 +#: src/view/com/post-thread/PostThread.tsx:165 msgid "The post may have been deleted." msgstr "此帖子可能已被删除。" @@ -4078,20 +4861,21 @@ msgstr "服务条款已迁移至" msgid "There are many feeds to try:" msgstr "这里有些信息流你可以尝试:" -#: src/view/screens/ProfileFeed.tsx:550 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:113 +#: src/view/screens/ProfileFeed.tsx:543 msgid "There was an an issue contacting the server, please check your internet connection and try again." msgstr "连接至服务器时出现问题,请检查你的互联网连接并重试。" -#: src/view/com/posts/FeedErrorMessage.tsx:139 +#: src/view/com/posts/FeedErrorMessage.tsx:138 msgid "There was an an issue removing this feed. Please check your internet connection and try again." msgstr "删除信息流时出现问题,请检查你的互联网连接并重试。" -#: src/view/screens/ProfileFeed.tsx:210 +#: src/view/screens/ProfileFeed.tsx:217 msgid "There was an an issue updating your feeds, please check your internet connection and try again." msgstr "更新信息流时出现问题,请检查你的互联网连接并重试。" -#: src/view/screens/ProfileFeed.tsx:237 -#: src/view/screens/ProfileList.tsx:267 +#: src/view/screens/ProfileFeed.tsx:244 +#: src/view/screens/ProfileList.tsx:275 #: src/view/screens/SavedFeeds.tsx:209 #: src/view/screens/SavedFeeds.tsx:231 #: src/view/screens/SavedFeeds.tsx:252 @@ -4100,9 +4884,8 @@ msgstr "连接服务器时出现问题" #: src/view/com/auth/onboarding/RecommendedFeedsItem.tsx:57 #: src/view/com/auth/onboarding/RecommendedFeedsItem.tsx:66 -#: src/view/com/feeds/FeedSourceCard.tsx:115 -#: src/view/com/feeds/FeedSourceCard.tsx:129 -#: src/view/com/feeds/FeedSourceCard.tsx:183 +#: src/view/com/feeds/FeedSourceCard.tsx:110 +#: src/view/com/feeds/FeedSourceCard.tsx:123 msgid "There was an issue contacting your server" msgstr "连接服务器时出现问题" @@ -4110,7 +4893,7 @@ msgstr "连接服务器时出现问题" msgid "There was an issue fetching notifications. Tap here to try again." msgstr "刷新通知时出现问题,点击重试。" -#: src/view/com/posts/Feed.tsx:265 +#: src/view/com/posts/Feed.tsx:283 msgid "There was an issue fetching posts. Tap here to try again." msgstr "刷新帖子时出现问题,点击重试。" @@ -4123,34 +4906,40 @@ msgstr "刷新列表时出现问题,点击重试。" msgid "There was an issue fetching your lists. Tap here to try again." msgstr "刷新列表时出现问题,点击重试。" -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:63 -#: src/view/com/modals/ContentFilteringSettings.tsx:126 +#: src/components/ReportDialog/SubmitView.tsx:83 +msgid "There was an issue sending your report. Please check your internet connection." +msgstr "" + +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:65 msgid "There was an issue syncing your preferences with the server" msgstr "与服务器同步首选项时出现问题" -#: src/view/screens/AppPasswords.tsx:66 +#: src/view/screens/AppPasswords.tsx:68 msgid "There was an issue with fetching your app passwords" msgstr "获取应用专用密码时出现问题" -#: src/view/com/post-thread/PostThreadFollowBtn.tsx:93 -#: src/view/com/post-thread/PostThreadFollowBtn.tsx:105 -#: src/view/com/profile/ProfileHeader.tsx:157 -#: src/view/com/profile/ProfileHeader.tsx:178 -#: src/view/com/profile/ProfileHeader.tsx:217 -#: src/view/com/profile/ProfileHeader.tsx:230 -#: src/view/com/profile/ProfileHeader.tsx:250 -#: src/view/com/profile/ProfileHeader.tsx:272 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:98 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:120 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:134 +#: src/view/com/post-thread/PostThreadFollowBtn.tsx:96 +#: src/view/com/post-thread/PostThreadFollowBtn.tsx:108 +#: src/view/com/profile/ProfileMenu.tsx:106 +#: src/view/com/profile/ProfileMenu.tsx:117 +#: src/view/com/profile/ProfileMenu.tsx:132 +#: src/view/com/profile/ProfileMenu.tsx:143 +#: src/view/com/profile/ProfileMenu.tsx:157 +#: src/view/com/profile/ProfileMenu.tsx:170 msgid "There was an issue! {0}" msgstr "出现问题了!{0}" #: src/view/screens/ProfileList.tsx:288 -#: src/view/screens/ProfileList.tsx:307 -#: src/view/screens/ProfileList.tsx:329 -#: src/view/screens/ProfileList.tsx:348 +#: src/view/screens/ProfileList.tsx:302 +#: src/view/screens/ProfileList.tsx:316 +#: src/view/screens/ProfileList.tsx:330 msgid "There was an issue. Please check your internet connection and try again." msgstr "出现问题了,请检查你的互联网连接并重试。" -#: src/view/com/util/ErrorBoundary.tsx:36 +#: src/view/com/util/ErrorBoundary.tsx:51 msgid "There was an unexpected issue in the application. Please let us know if this happened to you!" msgstr "应用发生意外错误,请联系我们进行错误反馈!" @@ -4166,19 +4955,32 @@ msgstr "Bluesky 迎来了大量新用户!我们将尽快激活你的账户。" msgid "These are popular accounts you might like:" msgstr "这里是一些受欢迎的账号,你可能会喜欢:" -#: src/view/com/util/moderation/ScreenHider.tsx:88 +#: src/components/moderation/ScreenHider.tsx:117 msgid "This {screenDescription} has been flagged:" msgstr "{screenDescription} 已被标记:" -#: src/view/com/util/moderation/ScreenHider.tsx:83 +#: src/components/moderation/ScreenHider.tsx:112 msgid "This account has requested that users sign in to view their profile." msgstr "此账号要求用户登录后才能查看其个人资料。" +#: src/components/moderation/LabelsOnMeDialog.tsx:205 +msgid "This appeal will be sent to <0>{0}." +msgstr "" + +#: src/lib/moderation/useGlobalLabelStrings.ts:19 +msgid "This content has been hidden by the moderators." +msgstr "" + +#: src/lib/moderation/useGlobalLabelStrings.ts:24 +msgid "This content has received a general warning from moderators." +msgstr "" + #: src/view/com/modals/EmbedConsent.tsx:68 msgid "This content is hosted by {0}. Do you want to enable external media?" msgstr "此内容由 {0} 托管。是否要启用外部媒体?" -#: src/view/com/modals/ModerationDetails.tsx:67 +#: src/components/moderation/ModerationDetailsDialog.tsx:78 +#: src/lib/moderation/useModerationCauseDescription.ts:77 msgid "This content is not available because one of the users involved has blocked the other." msgstr "由于其中一个用户屏蔽了另一个用户,此内容不可用。" @@ -4187,16 +4989,20 @@ msgid "This content is not viewable without a Bluesky account." msgstr "没有 Bluesky 账户,无法查看此内容。" #: src/view/screens/Settings/ExportCarDialog.tsx:75 -msgid "This feature is in beta. You can read more about repository exports in <0>this blogpost." -msgstr "该功能正在测试。你可以在<0>这篇博客文章中获得关于导出数据的更多信息。" +#~ msgid "This feature is in beta. You can read more about repository exports in <0>this blogpost." +#~ msgstr "该功能正在测试。你可以在<0>这篇博客文章中获得关于导出数据的更多信息。" + +#: src/view/screens/Settings/ExportCarDialog.tsx:75 +msgid "This feature is in beta. You can read more about repository exports in <0>this blogpost." +msgstr "" #: src/view/com/posts/FeedErrorMessage.tsx:114 msgid "This feed is currently receiving high traffic and is temporarily unavailable. Please try again later." msgstr "该信息流当前使用人数较多,服务暂时不可用。请稍后再试。" -#: src/view/screens/Profile.tsx:420 +#: src/screens/Profile/Sections/Feed.tsx:50 #: src/view/screens/ProfileFeed.tsx:476 -#: src/view/screens/ProfileList.tsx:661 +#: src/view/screens/ProfileList.tsx:675 msgid "This feed is empty!" msgstr "该信息流为空!" @@ -4204,7 +5010,7 @@ msgstr "该信息流为空!" msgid "This feed is empty! You may need to follow more users or tune your language settings." msgstr "该信息流为空!你或许需要先关注更多的人或检查你的语言设置。" -#: src/view/com/modals/BirthDateSettings.tsx:61 +#: src/components/dialogs/BirthDateSettings.tsx:41 msgid "This information is not shared with other users." msgstr "此信息不会分享给其他用户。" @@ -4212,14 +5018,26 @@ msgstr "此信息不会分享给其他用户。" msgid "This is important in case you ever need to change your email or reset your password." msgstr "这很重要,以防你将来需要更改电子邮箱或重置密码。" +#: src/components/moderation/ModerationDetailsDialog.tsx:125 +msgid "This label was applied by {0}." +msgstr "" + +#: src/screens/Profile/Sections/Labels.tsx:168 +msgid "This labeler hasn't declared what labels it publishes, and may not be active." +msgstr "" + #: src/view/com/modals/LinkWarning.tsx:58 msgid "This link is taking you to the following website:" msgstr "此链接将带你到以下网站:" -#: src/view/screens/ProfileList.tsx:839 +#: src/view/screens/ProfileList.tsx:853 msgid "This list is empty!" msgstr "此列表为空!" +#: src/screens/Profile/ErrorState.tsx:40 +msgid "This moderation service is unavailable. See below for more details. If this issue persists, contact us." +msgstr "" + #: src/view/com/modals/AddAppPasswords.tsx:106 msgid "This name is already in use" msgstr "该名称已被使用" @@ -4228,36 +5046,81 @@ msgstr "该名称已被使用" msgid "This post has been deleted." msgstr "此帖子已被删除。" -#: src/view/com/modals/ModerationDetails.tsx:62 +#: src/view/com/util/forms/PostDropdownBtn.tsx:344 +msgid "This post is only visible to logged-in users. It won't be visible to people who aren't logged in." +msgstr "" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:326 +msgid "This post will be hidden from feeds." +msgstr "" + +#: src/view/com/profile/ProfileMenu.tsx:370 +msgid "This profile is only visible to logged-in users. It won't be visible to people who aren't logged in." +msgstr "" + +#: src/view/com/auth/create/Policies.tsx:46 +msgid "This service has not provided terms of service or a privacy policy." +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:446 +msgid "This should create a domain record at:" +msgstr "" + +#: src/view/com/profile/ProfileFollowers.tsx:95 +msgid "This user doesn't have any followers." +msgstr "" + +#: src/components/moderation/ModerationDetailsDialog.tsx:73 +#: src/lib/moderation/useModerationCauseDescription.ts:68 msgid "This user has blocked you. You cannot view their content." msgstr "此用户已将你屏蔽,你将无法看到他所发布的内容。" +#: src/lib/moderation/useGlobalLabelStrings.ts:30 +msgid "This user has requested that their content only be shown to signed-in users." +msgstr "" + #: src/view/com/modals/ModerationDetails.tsx:42 -msgid "This user is included in the <0/> list which you have blocked." -msgstr "此用户包含在你已屏蔽的 <0/> 列表中。" +#~ msgid "This user is included in the <0/> list which you have blocked." +#~ msgstr "此用户包含在你已屏蔽的 <0/> 列表中。" #: src/view/com/modals/ModerationDetails.tsx:74 -msgid "This user is included in the <0/> list which you have muted." -msgstr "此用户包含在你已隐藏的 <0/> 列表中。" +#~ msgid "This user is included in the <0/> list which you have muted." +#~ msgstr "此用户包含在你已隐藏的 <0/> 列表中。" + +#: src/components/moderation/ModerationDetailsDialog.tsx:56 +msgid "This user is included in the <0>{0} list which you have blocked." +msgstr "" + +#: src/components/moderation/ModerationDetailsDialog.tsx:85 +msgid "This user is included in the <0>{0} list which you have muted." +msgstr "" #: src/view/com/modals/ModerationDetails.tsx:74 #~ msgid "This user is included the <0/> list which you have muted." #~ msgstr "此用户包含在你已隐藏的 <0/> 列表中。" +#: src/view/com/profile/ProfileFollows.tsx:94 +msgid "This user isn't following anyone." +msgstr "" + #: src/view/com/modals/SelfLabel.tsx:137 msgid "This warning is only available for posts with media attached." msgstr "此警告仅适用于附带媒体的帖子。" -#: src/components/dialogs/MutedWords.tsx:285 +#: src/components/dialogs/MutedWords.tsx:284 msgid "This will delete {0} from your muted words. You can always add it back later." msgstr "这将从你的隐藏词中删除 {0}。你随时可以重新添加。" #: src/view/com/util/forms/PostDropdownBtn.tsx:282 -msgid "This will hide this post from your feeds." -msgstr "这将在你的信息流中隐藏此帖子。" +#~ msgid "This will hide this post from your feeds." +#~ msgstr "这将在你的信息流中隐藏此帖子。" + +#: src/view/screens/Settings/index.tsx:570 +msgid "Thread preferences" +msgstr "" #: src/view/screens/PreferencesThreads.tsx:53 -#: src/view/screens/Settings/index.tsx:565 +#: src/view/screens/Settings/index.tsx:580 msgid "Thread Preferences" msgstr "讨论串首选项" @@ -4265,10 +5128,14 @@ msgstr "讨论串首选项" msgid "Threaded Mode" msgstr "讨论串模式" -#: src/Navigation.tsx:257 +#: src/Navigation.tsx:269 msgid "Threads Preferences" msgstr "讨论串首选项" +#: src/components/ReportDialog/SelectLabelerView.tsx:35 +msgid "To whom would you like to send this report?" +msgstr "" + #: src/components/dialogs/MutedWords.tsx:113 msgid "Toggle between muted word options." msgstr "在隐藏词选项之间切换。" @@ -4277,14 +5144,18 @@ msgstr "在隐藏词选项之间切换。" msgid "Toggle dropdown" msgstr "切换下拉式菜单" +#: src/screens/Moderation/index.tsx:334 +msgid "Toggle to enable or disable adult content" +msgstr "" + #: src/view/com/modals/EditImage.tsx:271 msgid "Transformations" msgstr "转换" -#: src/view/com/post-thread/PostThreadItem.tsx:685 -#: src/view/com/post-thread/PostThreadItem.tsx:687 -#: src/view/com/util/forms/PostDropdownBtn.tsx:215 -#: src/view/com/util/forms/PostDropdownBtn.tsx:217 +#: src/view/com/post-thread/PostThreadItem.tsx:644 +#: src/view/com/post-thread/PostThreadItem.tsx:646 +#: src/view/com/util/forms/PostDropdownBtn.tsx:212 +#: src/view/com/util/forms/PostDropdownBtn.tsx:214 msgid "Translate" msgstr "翻译" @@ -4293,11 +5164,15 @@ msgctxt "action" msgid "Try again" msgstr "重试" -#: src/view/screens/ProfileList.tsx:506 +#: src/view/com/modals/ChangeHandle.tsx:429 +msgid "Type:" +msgstr "" + +#: src/view/screens/ProfileList.tsx:478 msgid "Un-block list" msgstr "取消屏蔽列表" -#: src/view/screens/ProfileList.tsx:491 +#: src/view/screens/ProfileList.tsx:461 msgid "Un-mute list" msgstr "取消隐藏列表" @@ -4309,21 +5184,28 @@ msgstr "取消隐藏列表" msgid "Unable to contact your service. Please check your Internet connection." msgstr "无法连接到服务,请检查互联网连接。" -#: src/view/com/profile/ProfileHeader.tsx:433 -#: src/view/screens/ProfileList.tsx:590 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:174 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:278 +#: src/view/com/profile/ProfileMenu.tsx:361 +#: src/view/screens/ProfileList.tsx:572 msgid "Unblock" msgstr "取消屏蔽" -#: src/view/com/profile/ProfileHeader.tsx:436 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:179 msgctxt "action" msgid "Unblock" msgstr "取消屏蔽" -#: src/view/com/profile/ProfileHeader.tsx:261 -#: src/view/com/profile/ProfileHeader.tsx:345 +#: src/view/com/profile/ProfileMenu.tsx:299 +#: src/view/com/profile/ProfileMenu.tsx:305 msgid "Unblock Account" msgstr "取消屏蔽" +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:272 +#: src/view/com/profile/ProfileMenu.tsx:343 +msgid "Unblock Account?" +msgstr "" + #: src/view/com/modals/Repost.tsx:42 #: src/view/com/modals/Repost.tsx:55 #: src/view/com/util/post-ctrls/RepostButton.tsx:60 @@ -4331,25 +5213,39 @@ msgstr "取消屏蔽" msgid "Undo repost" msgstr "取消转发" -#: src/view/com/profile/FollowButton.tsx:55 +#: src/view/com/auth/onboarding/RecommendedFollowsItem.tsx:141 +#: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:246 +msgid "Unfollow" +msgstr "" + +#: src/view/com/profile/FollowButton.tsx:60 msgctxt "action" msgid "Unfollow" msgstr "取消关注" -#: src/view/com/profile/ProfileHeader.tsx:485 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:213 msgid "Unfollow {0}" msgstr "取消关注 {0}" +#: src/view/com/profile/ProfileMenu.tsx:241 +#: src/view/com/profile/ProfileMenu.tsx:251 +msgid "Unfollow Account" +msgstr "" + #: src/view/com/auth/create/state.ts:262 msgid "Unfortunately, you do not meet the requirements to create an account." msgstr "很遗憾,你不符合创建账户的要求。" -#: src/view/com/util/post-ctrls/PostCtrls.tsx:182 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:185 msgid "Unlike" msgstr "取消喜欢" +#: src/view/screens/ProfileFeed.tsx:572 +msgid "Unlike this feed" +msgstr "" + #: src/components/TagMenu/index.tsx:249 -#: src/view/screens/ProfileList.tsx:597 +#: src/view/screens/ProfileList.tsx:579 msgid "Unmute" msgstr "取消隐藏" @@ -4357,7 +5253,8 @@ msgstr "取消隐藏" msgid "Unmute {truncatedTag}" msgstr "取消隐藏 {truncatedTag}" -#: src/view/com/profile/ProfileHeader.tsx:326 +#: src/view/com/profile/ProfileMenu.tsx:278 +#: src/view/com/profile/ProfileMenu.tsx:284 msgid "Unmute Account" msgstr "取消隐藏账户" @@ -4374,26 +5271,46 @@ msgstr "取消隐藏所有 {displayTag} 帖子" msgid "Unmute thread" msgstr "取消隐藏讨论串" -#: src/view/screens/ProfileFeed.tsx:354 -#: src/view/screens/ProfileList.tsx:581 +#: src/view/screens/ProfileFeed.tsx:294 +#: src/view/screens/ProfileList.tsx:563 msgid "Unpin" msgstr "取消固定" -#: src/view/screens/ProfileList.tsx:474 +#: src/view/screens/ProfileFeed.tsx:291 +msgid "Unpin from home" +msgstr "" + +#: src/view/screens/ProfileList.tsx:444 msgid "Unpin moderation list" msgstr "取消固定限制列表" #: src/view/screens/ProfileFeed.tsx:346 -msgid "Unsave" -msgstr "取消保存" +#~ msgid "Unsave" +#~ msgstr "取消保存" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:220 +msgid "Unsubscribe" +msgstr "" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:184 +msgid "Unsubscribe from this labeler" +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:70 +msgid "Unwanted Sexual Content" +msgstr "" #: src/view/com/modals/UserAddRemoveLists.tsx:70 msgid "Update {displayName} in Lists" msgstr "更新列表中的 {displayName}" #: src/lib/hooks/useOTAUpdate.ts:15 -msgid "Update Available" -msgstr "更新可用" +#~ msgid "Update Available" +#~ msgstr "更新可用" + +#: src/view/com/modals/ChangeHandle.tsx:509 +msgid "Update to {handle}" +msgstr "" #: src/view/com/auth/login/SetNewPasswordForm.tsx:204 msgid "Updating..." @@ -4403,11 +5320,38 @@ msgstr "更新中..." msgid "Upload a text file to:" msgstr "将文本文件上传至:" -#: src/view/screens/AppPasswords.tsx:195 +#: src/view/com/util/UserAvatar.tsx:326 +#: src/view/com/util/UserAvatar.tsx:329 +#: src/view/com/util/UserBanner.tsx:116 +#: src/view/com/util/UserBanner.tsx:119 +msgid "Upload from Camera" +msgstr "" + +#: src/view/com/util/UserAvatar.tsx:343 +#: src/view/com/util/UserBanner.tsx:133 +msgid "Upload from Files" +msgstr "" + +#: src/view/com/util/UserAvatar.tsx:337 +#: src/view/com/util/UserAvatar.tsx:341 +#: src/view/com/util/UserBanner.tsx:127 +#: src/view/com/util/UserBanner.tsx:131 +msgid "Upload from Library" +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:409 +msgid "Use a file on your server" +msgstr "" + +#: src/view/screens/AppPasswords.tsx:197 msgid "Use app passwords to login to other Bluesky clients without giving full access to your account or password." msgstr "使用应用专用密码登录到其他 Bluesky 客户端,而无需对其授予你账户或密码的完全访问权限。" -#: src/view/com/modals/ChangeHandle.tsx:515 +#: src/view/com/modals/ChangeHandle.tsx:518 +msgid "Use bsky.social as hosting provider" +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:517 msgid "Use default provider" msgstr "使用默认提供商" @@ -4421,6 +5365,10 @@ msgstr "使用内置浏览器" msgid "Use my default browser" msgstr "使用系统默认浏览器" +#: src/view/com/modals/ChangeHandle.tsx:401 +msgid "Use the DNS panel" +msgstr "" + #: src/view/com/modals/AddAppPasswords.tsx:155 msgid "Use this to sign into the other app along with your handle." msgstr "使用这个和你的用户识别符一起登录其他应用。" @@ -4433,15 +5381,24 @@ msgstr "使用这个和你的用户识别符一起登录其他应用。" msgid "Used by:" msgstr "使用者:" -#: src/view/com/modals/ModerationDetails.tsx:54 +#: src/components/moderation/ModerationDetailsDialog.tsx:65 +#: src/lib/moderation/useModerationCauseDescription.ts:56 msgid "User Blocked" msgstr "用户被屏蔽" -#: src/view/com/modals/ModerationDetails.tsx:40 +#: src/lib/moderation/useModerationCauseDescription.ts:48 +msgid "User Blocked by \"{0}\"" +msgstr "" + +#: src/components/moderation/ModerationDetailsDialog.tsx:54 msgid "User Blocked by List" msgstr "用户被列表屏蔽" -#: src/view/com/modals/ModerationDetails.tsx:60 +#: src/lib/moderation/useModerationCauseDescription.ts:66 +msgid "User Blocking You" +msgstr "" + +#: src/components/moderation/ModerationDetailsDialog.tsx:71 msgid "User Blocks You" msgstr "用户屏蔽了你" @@ -4454,13 +5411,13 @@ msgstr "用户识别符" msgid "User list by {0}" msgstr "{0} 的用户列表" -#: src/view/screens/ProfileList.tsx:763 +#: src/view/screens/ProfileList.tsx:777 msgid "User list by <0/>" msgstr "<0/> 的用户列表" #: src/view/com/lists/ListCard.tsx:83 #: src/view/com/modals/UserAddRemoveLists.tsx:196 -#: src/view/screens/ProfileList.tsx:761 +#: src/view/screens/ProfileList.tsx:775 msgid "User list by you" msgstr "你的用户列表" @@ -4481,7 +5438,7 @@ msgstr "用户列表" msgid "Username or email address" msgstr "用户名或电子邮箱" -#: src/view/screens/ProfileList.tsx:797 +#: src/view/screens/ProfileList.tsx:811 msgid "Users" msgstr "用户" @@ -4493,19 +5450,31 @@ msgstr "关注 <0/> 的用户" msgid "Users in \"{0}\"" msgstr "\"{0}\"中的用户" +#: src/components/LikesDialog.tsx:85 +msgid "Users that have liked this content or profile" +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:437 +msgid "Value:" +msgstr "" + #: src/view/com/auth/create/Step2.tsx:243 #~ msgid "Verification code" #~ msgstr "验证码" -#: src/view/screens/Settings/index.tsx:910 +#: src/view/com/modals/ChangeHandle.tsx:510 +msgid "Verify {0}" +msgstr "" + +#: src/view/screens/Settings/index.tsx:940 msgid "Verify email" msgstr "验证邮箱" -#: src/view/screens/Settings/index.tsx:935 +#: src/view/screens/Settings/index.tsx:965 msgid "Verify my email" msgstr "验证我的邮箱" -#: src/view/screens/Settings/index.tsx:944 +#: src/view/screens/Settings/index.tsx:974 msgid "Verify My Email" msgstr "验证我的邮箱" @@ -4522,7 +5491,7 @@ msgstr "验证你的邮箱" msgid "Video Games" msgstr "电子游戏" -#: src/view/com/profile/ProfileHeader.tsx:662 +#: src/screens/Profile/Header/Shell.tsx:110 msgid "View {0}'s avatar" msgstr "查看{0}的头像" @@ -4530,11 +5499,23 @@ msgstr "查看{0}的头像" msgid "View debug entry" msgstr "查看调试入口" -#: src/view/com/posts/FeedSlice.tsx:103 +#: src/components/ReportDialog/SelectReportOptionView.tsx:133 +msgid "View details" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:128 +msgid "View details for reporting a copyright violation" +msgstr "" + +#: src/view/com/posts/FeedSlice.tsx:99 msgid "View full thread" msgstr "查看整个讨论串" -#: src/view/com/posts/FeedErrorMessage.tsx:172 +#: src/components/moderation/LabelsOnMe.tsx:51 +msgid "View information about these labels" +msgstr "" + +#: src/view/com/posts/FeedErrorMessage.tsx:166 msgid "View profile" msgstr "查看个人资料" @@ -4542,15 +5523,34 @@ msgstr "查看个人资料" msgid "View the avatar" msgstr "查看头像" +#: src/components/LabelingServiceCard/index.tsx:140 +msgid "View the labeling service provided by @{0}" +msgstr "" + +#: src/view/screens/ProfileFeed.tsx:584 +msgid "View users who like this feed" +msgstr "" + #: src/view/com/modals/LinkWarning.tsx:75 +#: src/view/com/modals/LinkWarning.tsx:77 msgid "Visit Site" msgstr "访问网站" -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:42 -#: src/view/com/modals/ContentFilteringSettings.tsx:259 +#: src/components/moderation/GlobalModerationLabelPref.tsx:44 +#: src/lib/moderation/useLabelBehaviorDescription.ts:17 +#: src/lib/moderation/useLabelBehaviorDescription.ts:22 +#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:53 msgid "Warn" msgstr "警告" +#: src/lib/moderation/useLabelBehaviorDescription.ts:48 +msgid "Warn content" +msgstr "" + +#: src/lib/moderation/useLabelBehaviorDescription.ts:46 +msgid "Warn content and filter from feeds" +msgstr "" + #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:134 msgid "We also think you'll like \"For You\" by Skygaze:" msgstr "我们认为还你会喜欢 Skygaze 所维护的 \"For You\":" @@ -4579,6 +5579,14 @@ msgstr "不建议您使用会出现在许多帖子中的常见词汇,这可能 msgid "We recommend our \"Discover\" feed:" msgstr "我们推荐我们的 \"Discover\" 信息流:" +#: src/components/dialogs/BirthDateSettings.tsx:52 +msgid "We were unable to load your birth date preferences. Please try again." +msgstr "" + +#: src/screens/Moderation/index.tsx:387 +msgid "We were unable to load your configured labelers at this time." +msgstr "" + #: src/screens/Onboarding/StepInterests/index.tsx:133 msgid "We weren't able to connect. Please try again to continue setting up your account. If it continues to fail, you can skip this flow." msgstr "我们无法连接到互联网,请重试以继续设置你的账户。如果仍继续失败,你可以选择跳过此流程。" @@ -4588,8 +5596,8 @@ msgid "We will let you know when your account is ready." msgstr "我们会在你的账户准备好时通知你。" #: src/view/com/modals/AppealLabel.tsx:48 -msgid "We'll look into your appeal promptly." -msgstr "我们将迅速审查你的申诉。" +#~ msgid "We'll look into your appeal promptly." +#~ msgstr "我们将迅速审查你的申诉。" #: src/screens/Onboarding/StepInterests/index.tsx:138 msgid "We'll use this to help customize your experience." @@ -4599,7 +5607,7 @@ msgstr "我们将使用这些信息来帮助定制你的体验。" msgid "We're so excited to have you join us!" msgstr "我们非常高兴你加入我们!" -#: src/view/screens/ProfileList.tsx:86 +#: src/view/screens/ProfileList.tsx:89 msgid "We're sorry, but we were unable to resolve this list. If this persists, please contact the list creator, @{handleOrDid}." msgstr "很抱歉,我们无法解析此列表。如果问题持续发生,请联系列表创建者,@{handleOrDid}。" @@ -4607,16 +5615,20 @@ msgstr "很抱歉,我们无法解析此列表。如果问题持续发生,请 msgid "We're sorry, but we weren't able to load your muted words at this time. Please try again." msgstr "很抱歉,我们无法加载你的隐藏词列表。请重试。" -#: src/view/screens/Search/Search.tsx:254 +#: src/view/screens/Search/Search.tsx:255 msgid "We're sorry, but your search could not be completed. Please try again in a few minutes." msgstr "很抱歉,无法完成你的搜索。请稍后再试。" -#: src/components/Lists.tsx:211 +#: src/components/Lists.tsx:194 #: src/view/screens/NotFound.tsx:48 msgid "We're sorry! We can't find the page you were looking for." msgstr "很抱歉!我们找不到你正在寻找的页面。" -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:46 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:319 +msgid "We're sorry! You can only subscribe to ten labelers, and you've reached your limit of ten." +msgstr "" + +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:48 msgid "Welcome to <0>Bluesky" msgstr "欢迎来到 <0>Bluesky" @@ -4625,11 +5637,11 @@ msgid "What are your interests?" msgstr "你感兴趣的是什么?" #: src/view/com/modals/report/Modal.tsx:169 -msgid "What is the issue with this {collectionName}?" -msgstr "这个 {collectionName} 有什么问题?" +#~ msgid "What is the issue with this {collectionName}?" +#~ msgstr "这个 {collectionName} 有什么问题?" #: src/view/com/auth/SplashScreen.tsx:59 -#: src/view/com/composer/Composer.tsx:286 +#: src/view/com/composer/Composer.tsx:295 msgid "What's up?" msgstr "发生了什么新鲜事?" @@ -4646,16 +5658,36 @@ msgstr "你想在算法信息流中看到哪些语言?" msgid "Who can reply" msgstr "谁可以回复" +#: src/components/ReportDialog/SelectReportOptionView.tsx:44 +msgid "Why should this content be reviewed?" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:57 +msgid "Why should this feed be reviewed?" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:54 +msgid "Why should this list be reviewed?" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:51 +msgid "Why should this post be reviewed?" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:48 +msgid "Why should this user be reviewed?" +msgstr "" + #: src/view/com/modals/crop-image/CropImage.web.tsx:102 msgid "Wide" msgstr "宽" -#: src/view/com/composer/Composer.tsx:422 +#: src/view/com/composer/Composer.tsx:435 msgid "Write post" msgstr "撰写帖子" -#: src/view/com/composer/Composer.tsx:285 -#: src/view/com/composer/Prompt.tsx:33 +#: src/view/com/composer/Composer.tsx:294 +#: src/view/com/composer/Prompt.tsx:37 msgid "Write your reply" msgstr "撰写你的回复" @@ -4681,6 +5713,10 @@ msgstr "启用" msgid "You are in line." msgstr "轮到你了。" +#: src/view/com/profile/ProfileFollows.tsx:93 +msgid "You are not following anyone." +msgstr "" + #: src/view/com/posts/FollowingEmptyState.tsx:67 #: src/view/com/posts/FollowingEndOfFeed.tsx:68 msgid "You can also discover new Custom Feeds to follow." @@ -4695,6 +5731,10 @@ msgstr "你可以稍后在设置中更改。" msgid "You can now sign in with your new password." msgstr "你现在可以使用新密码登录。" +#: src/view/com/profile/ProfileFollowers.tsx:94 +msgid "You do not have any followers." +msgstr "" + #: src/view/com/modals/InviteCodes.tsx:66 msgid "You don't have any invite codes yet! We'll send you some when you've been on Bluesky for a little longer." msgstr "你目前还没有邀请码!当你持续使用 Bluesky 一段时间后,我们将提供一些新的邀请码给你。" @@ -4711,11 +5751,13 @@ msgstr "你目前还没有任何保存的信息流!" msgid "You don't have any saved feeds." msgstr "你目前还没有任何保存的信息流。" -#: src/view/com/post-thread/PostThread.tsx:465 +#: src/view/com/post-thread/PostThread.tsx:159 msgid "You have blocked the author or you have been blocked by the author." msgstr "你已屏蔽该帖子作者,或你已被该作者屏蔽。" -#: src/view/com/modals/ModerationDetails.tsx:56 +#: src/components/moderation/ModerationDetailsDialog.tsx:67 +#: src/lib/moderation/useModerationCauseDescription.ts:50 +#: src/lib/moderation/useModerationCauseDescription.ts:58 msgid "You have blocked this user. You cannot view their content." msgstr "你已屏蔽了此用户,你将无法查看他们发布的内容。" @@ -4726,9 +5768,26 @@ msgstr "你已屏蔽了此用户,你将无法查看他们发布的内容。" msgid "You have entered an invalid code. It should look like XXXXX-XXXXX." msgstr "你输入的确认码无效。它应该长得像这样 XXXXX-XXXXX。" +#: src/lib/moderation/useModerationCauseDescription.ts:109 +msgid "You have hidden this post" +msgstr "" + +#: src/components/moderation/ModerationDetailsDialog.tsx:102 +msgid "You have hidden this post." +msgstr "" + +#: src/components/moderation/ModerationDetailsDialog.tsx:95 +#: src/lib/moderation/useModerationCauseDescription.ts:92 +msgid "You have muted this account." +msgstr "" + +#: src/lib/moderation/useModerationCauseDescription.ts:86 +msgid "You have muted this user" +msgstr "" + #: src/view/com/modals/ModerationDetails.tsx:87 -msgid "You have muted this user." -msgstr "你已隐藏这个用户。" +#~ msgid "You have muted this user." +#~ msgstr "你已隐藏这个用户。" #: src/view/com/feeds/ProfileFeedgens.tsx:136 msgid "You have no feeds." @@ -4740,34 +5799,50 @@ msgid "You have no lists." msgstr "你没有列表。" #: src/view/screens/ModerationBlockedAccounts.tsx:132 -msgid "You have not blocked any accounts yet. To block an account, go to their profile and selected \"Block account\" from the menu on their account." -msgstr "你还没有屏蔽任何账号。要屏蔽账号,请转到其个人资料并在其账号上的菜单中选择 \"屏蔽账号\"。" +msgid "You have not blocked any accounts yet. To block an account, go to their profile and select \"Block account\" from the menu on their account." +msgstr "" -#: src/view/screens/AppPasswords.tsx:87 +#: src/view/screens/ModerationBlockedAccounts.tsx:132 +#~ msgid "You have not blocked any accounts yet. To block an account, go to their profile and selected \"Block account\" from the menu on their account." +#~ msgstr "你还没有屏蔽任何账号。要屏蔽账号,请转到其个人资料并在其账号上的菜单中选择 \"屏蔽账号\"。" + +#: src/view/screens/AppPasswords.tsx:89 msgid "You have not created any app passwords yet. You can create one by pressing the button below." msgstr "你尚未创建任何应用专用密码,可以通过点击下面的按钮来创建一个。" #: src/view/screens/ModerationMutedAccounts.tsx:131 -msgid "You have not muted any accounts yet. To mute an account, go to their profile and selected \"Mute account\" from the menu on their account." -msgstr "你还没有隐藏任何账号。要隐藏账号,请转到其个人资料并在其账号上的菜单中选择 \"隐藏账号\"。" +msgid "You have not muted any accounts yet. To mute an account, go to their profile and select \"Mute account\" from the menu on their account." +msgstr "" + +#: src/view/screens/ModerationMutedAccounts.tsx:131 +#~ msgid "You have not muted any accounts yet. To mute an account, go to their profile and selected \"Mute account\" from the menu on their account." +#~ msgstr "你还没有隐藏任何账号。要隐藏账号,请转到其个人资料并在其账号上的菜单中选择 \"隐藏账号\"。" #: src/components/dialogs/MutedWords.tsx:250 msgid "You haven't muted any words or tags yet" msgstr "你还没有隐藏任何词或话题标签" +#: src/components/moderation/LabelsOnMeDialog.tsx:69 +msgid "You may appeal these labels if you feel they were placed in error." +msgstr "" + #: src/view/com/modals/ContentFilteringSettings.tsx:175 -msgid "You must be 18 or older to enable adult content." -msgstr "你必须年满18岁及以上才能启用成人内容。" +#~ msgid "You must be 18 or older to enable adult content." +#~ msgstr "你必须年满18岁及以上才能启用成人内容。" -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:103 +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:110 msgid "You must be 18 years or older to enable adult content" msgstr "你必须年满18岁及以上才能启用成人内容" -#: src/view/com/util/forms/PostDropdownBtn.tsx:147 +#: src/components/ReportDialog/SubmitView.tsx:205 +msgid "You must select at least one labeler for a report" +msgstr "" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:144 msgid "You will no longer receive notifications for this thread" msgstr "你将不再收到这条讨论串的通知" -#: src/view/com/util/forms/PostDropdownBtn.tsx:150 +#: src/view/com/util/forms/PostDropdownBtn.tsx:147 msgid "You will now receive notifications for this thread" msgstr "你将收到这条讨论串的通知" @@ -4775,7 +5850,7 @@ msgstr "你将收到这条讨论串的通知" msgid "You will receive an email with a \"reset code.\" Enter that code here, then enter your new password." msgstr "你将收到一封带有确认码的电子邮件。请在此输入该确认码,然后输入你的新密码。" -#: src/screens/Onboarding/StepModeration/index.tsx:72 +#: src/screens/Onboarding/StepModeration/index.tsx:59 msgid "You're in control" msgstr "你尽在掌控" @@ -4789,6 +5864,11 @@ msgstr "轮到你了" msgid "You're ready to go!" msgstr "你已设置完成!" +#: src/components/moderation/ModerationDetailsDialog.tsx:99 +#: src/lib/moderation/useModerationCauseDescription.ts:101 +msgid "You've chosen to hide a word or tag within this post." +msgstr "" + #: src/view/com/posts/FollowingEndOfFeed.tsx:48 msgid "You've reached the end of your feed! Find some more accounts to follow." msgstr "你已经浏览完你的订阅信息流啦!寻找一些更多的账号关注吧。" @@ -4857,26 +5937,26 @@ msgstr "你的完整用户识别符将修改为 <0>@{0}" msgid "Your muted words" msgstr "你的隐藏词" -#: src/view/com/modals/ChangePassword.tsx:155 +#: src/view/com/modals/ChangePassword.tsx:157 msgid "Your password has been changed successfully!" msgstr "你的密码已成功更改!" -#: src/view/com/composer/Composer.tsx:274 +#: src/view/com/composer/Composer.tsx:283 msgid "Your post has been published" msgstr "你的帖子已发布" #: src/screens/Onboarding/StepFinished.tsx:105 #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:59 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:59 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:61 msgid "Your posts, likes, and blocks are public. Mutes are private." msgstr "你的帖子、喜欢和屏蔽是公开可见的,而隐藏不可见。" -#: src/view/com/modals/SwitchAccount.tsx:84 -#: src/view/screens/Settings/index.tsx:118 +#: src/view/com/modals/SwitchAccount.tsx:88 +#: src/view/screens/Settings/index.tsx:123 msgid "Your profile" msgstr "你的个人资料" -#: src/view/com/composer/Composer.tsx:273 +#: src/view/com/composer/Composer.tsx:282 msgid "Your reply has been published" msgstr "你的回复已发布" From 3d8d1dd1737c11d924bec7d51ae4deb6cb6336b0 Mon Sep 17 00:00:00 2001 From: dan Date: Wed, 20 Mar 2024 03:24:05 +0000 Subject: [PATCH 041/222] [Statsig] Track login/logout (#3286) * [Statsig] Track login/logout * Fix missing attribution --- src/Navigation.tsx | 6 +- src/lib/hooks/useAccountSwitcher.ts | 8 ++- src/lib/statsig/events.ts | 7 +++ src/screens/Deactivated.tsx | 4 +- src/state/session/index.tsx | 61 ++++++++++++------- src/view/com/auth/login/ChooseAccountForm.tsx | 5 ++ src/view/com/auth/login/LoginForm.tsx | 13 ++-- src/view/com/modals/SwitchAccount.tsx | 6 +- src/view/com/testing/TestCtrls.e2e.tsx | 28 +++++---- src/view/screens/Settings/index.tsx | 8 ++- 10 files changed, 98 insertions(+), 48 deletions(-) diff --git a/src/Navigation.tsx b/src/Navigation.tsx index 3d6a15c4eb..83aede722b 100644 --- a/src/Navigation.tsx +++ b/src/Navigation.tsx @@ -565,7 +565,11 @@ function RoutesContainer({children}: React.PropsWithChildren<{}>) { } function getCurrentRouteName() { - return navigationRef.getCurrentRoute()?.name + if (navigationRef.isReady()) { + return navigationRef.getCurrentRoute()?.name + } else { + return undefined + } } /** diff --git a/src/lib/hooks/useAccountSwitcher.ts b/src/lib/hooks/useAccountSwitcher.ts index 74b5674d5a..eb1685a0ae 100644 --- a/src/lib/hooks/useAccountSwitcher.ts +++ b/src/lib/hooks/useAccountSwitcher.ts @@ -6,6 +6,7 @@ import {useSessionApi, SessionAccount} from '#/state/session' import * as Toast from '#/view/com/util/Toast' import {useCloseAllActiveElements} from '#/state/util' import {useLoggedOutViewControls} from '#/state/shell/logged-out' +import {LogEvents} from '../statsig/statsig' export function useAccountSwitcher() { const {track} = useAnalytics() @@ -14,7 +15,10 @@ export function useAccountSwitcher() { const {requestSwitchToAccount} = useLoggedOutViewControls() const onPressSwitchAccount = useCallback( - async (account: SessionAccount) => { + async ( + account: SessionAccount, + logContext: LogEvents['account:loggedIn']['logContext'], + ) => { track('Settings:SwitchAccountButtonClicked') try { @@ -28,7 +32,7 @@ export function useAccountSwitcher() { // So we change the URL ourselves. The navigator will pick it up on remount. history.pushState(null, '', '/') } - await selectAccount(account) + await selectAccount(account, logContext) setTimeout(() => { Toast.show(`Signed in as @${account.handle}`) }, 100) diff --git a/src/lib/statsig/events.ts b/src/lib/statsig/events.ts index 420c58ed29..f57c8d4162 100644 --- a/src/lib/statsig/events.ts +++ b/src/lib/statsig/events.ts @@ -2,6 +2,13 @@ export type LogEvents = { init: { initMs: number } + 'account:loggedIn': { + logContext: 'LoginForm' | 'SwitchAccount' | 'ChooseAccountForm' | 'Settings' + withPassword: boolean + } + 'account:loggedOut': { + logContext: 'SwitchAccount' | 'Settings' | 'Deactivated' + } 'notifications:openApp': {} 'state:background': {} 'state:foreground': {} diff --git a/src/screens/Deactivated.tsx b/src/screens/Deactivated.tsx index f4c2014750..7e87973cb4 100644 --- a/src/screens/Deactivated.tsx +++ b/src/screens/Deactivated.tsx @@ -147,7 +147,7 @@ export function Deactivated() { variant="ghost" size="large" label={_(msg`Log out`)} - onPress={logout}> + onPress={() => logout('Deactivated')}> Log out @@ -176,7 +176,7 @@ export function Deactivated() { variant="ghost" size="large" label={_(msg`Log out`)} - onPress={logout}> + onPress={() => logout('Deactivated')}> Log out diff --git a/src/state/session/index.tsx b/src/state/session/index.tsx index 6b14748393..b6748bfad5 100644 --- a/src/state/session/index.tsx +++ b/src/state/session/index.tsx @@ -20,6 +20,7 @@ import {useCloseAllActiveElements} from '#/state/util' import {track} from '#/lib/analytics/analytics' import {hasProp} from '#/lib/type-guards' import {readLabelers} from './agent-config' +import {logEvent, LogEvents} from '#/lib/statsig/statsig' let __globalAgent: BskyAgent = PUBLIC_BSKY_AGENT @@ -54,17 +55,22 @@ export type ApiContext = { verificationPhone?: string verificationCode?: string }) => Promise - login: (props: { - service: string - identifier: string - password: string - }) => Promise + login: ( + props: { + service: string + identifier: string + password: string + }, + logContext: LogEvents['account:loggedIn']['logContext'], + ) => Promise /** * A full logout. Clears the `currentAccount` from session, AND removes * access tokens from all accounts, so that returning as any user will * require a full login. */ - logout: () => Promise + logout: ( + logContext: LogEvents['account:loggedOut']['logContext'], + ) => Promise /** * A partial logout. Clears the `currentAccount` from session, but DOES NOT * clear access tokens from accounts, allowing the user to return to their @@ -76,7 +82,10 @@ export type ApiContext = { initSession: (account: SessionAccount) => Promise resumeSession: (account?: SessionAccount) => Promise removeAccount: (account: SessionAccount) => void - selectAccount: (account: SessionAccount) => Promise + selectAccount: ( + account: SessionAccount, + logContext: LogEvents['account:loggedIn']['logContext'], + ) => Promise updateCurrentAccount: ( account: Partial< Pick @@ -286,7 +295,7 @@ export function Provider({children}: React.PropsWithChildren<{}>) { ) const login = React.useCallback( - async ({service, identifier, password}) => { + async ({service, identifier, password}, logContext) => { logger.debug(`session: login`, {}, logger.DebugContext.session) const agent = new BskyAgent({service}) @@ -329,24 +338,29 @@ export function Provider({children}: React.PropsWithChildren<{}>) { logger.debug(`session: logged in`, {}, logger.DebugContext.session) track('Sign In', {resumedSession: false}) + logEvent('account:loggedIn', {logContext, withPassword: true}) }, [upsertAccount, queryClient, clearCurrentAccount], ) - const logout = React.useCallback(async () => { - logger.debug(`session: logout`) - clearCurrentAccount() - setStateAndPersist(s => { - return { - ...s, - accounts: s.accounts.map(a => ({ - ...a, - refreshJwt: undefined, - accessJwt: undefined, - })), - } - }) - }, [clearCurrentAccount, setStateAndPersist]) + const logout = React.useCallback( + async logContext => { + logger.debug(`session: logout`) + clearCurrentAccount() + setStateAndPersist(s => { + return { + ...s, + accounts: s.accounts.map(a => ({ + ...a, + refreshJwt: undefined, + accessJwt: undefined, + })), + } + }) + logEvent('account:loggedOut', {logContext}) + }, + [clearCurrentAccount, setStateAndPersist], + ) const initSession = React.useCallback( async account => { @@ -540,11 +554,12 @@ export function Provider({children}: React.PropsWithChildren<{}>) { ) const selectAccount = React.useCallback( - async account => { + async (account, logContext) => { setState(s => ({...s, isSwitchingAccounts: true})) try { await initSession(account) setState(s => ({...s, isSwitchingAccounts: false})) + logEvent('account:loggedIn', {logContext, withPassword: false}) } catch (e) { // reset this in case of error setState(s => ({...s, isSwitchingAccounts: false})) diff --git a/src/view/com/auth/login/ChooseAccountForm.tsx b/src/view/com/auth/login/ChooseAccountForm.tsx index d3b075fdb4..e754c84834 100644 --- a/src/view/com/auth/login/ChooseAccountForm.tsx +++ b/src/view/com/auth/login/ChooseAccountForm.tsx @@ -16,6 +16,7 @@ import {useSession, useSessionApi, SessionAccount} from '#/state/session' import {useProfileQuery} from '#/state/queries/profile' import {useLoggedOutViewControls} from '#/state/shell/logged-out' import * as Toast from '#/view/com/util/Toast' +import {logEvent} from '#/lib/statsig/statsig' function AccountItem({ account, @@ -102,6 +103,10 @@ export const ChooseAccountForm = ({ Toast.show(_(msg`Already signed in as @${account.handle}`)) } else { await initSession(account) + logEvent('account:loggedIn', { + logContext: 'ChooseAccountForm', + withPassword: false, + }) track('Sign In', {resumedSession: true}) setTimeout(() => { Toast.show(_(msg`Signed in as @${account.handle}`)) diff --git a/src/view/com/auth/login/LoginForm.tsx b/src/view/com/auth/login/LoginForm.tsx index 3202d69c55..92f4955756 100644 --- a/src/view/com/auth/login/LoginForm.tsx +++ b/src/view/com/auth/login/LoginForm.tsx @@ -98,11 +98,14 @@ export const LoginForm = ({ } // TODO remove double login - await login({ - service: serviceUrl, - identifier: fullIdent, - password, - }) + await login( + { + service: serviceUrl, + identifier: fullIdent, + password, + }, + 'LoginForm', + ) } catch (e: any) { const errMsg = e.toString() setIsProcessing(false) diff --git a/src/view/com/modals/SwitchAccount.tsx b/src/view/com/modals/SwitchAccount.tsx index 0658805bda..892b07c9a2 100644 --- a/src/view/com/modals/SwitchAccount.tsx +++ b/src/view/com/modals/SwitchAccount.tsx @@ -39,7 +39,7 @@ function SwitchAccountCard({account}: {account: SessionAccount}) { track('Settings:SignOutButtonClicked') closeAllActiveElements() // needs to be in timeout or the modal re-opens - setTimeout(() => logout(), 0) + setTimeout(() => logout('SwitchAccount'), 0) }, [track, logout, closeAllActiveElements]) const contents = ( @@ -95,7 +95,9 @@ function SwitchAccountCard({account}: {account: SessionAccount}) { key={account.did} style={[isSwitchingAccounts && styles.dimmed]} onPress={ - isSwitchingAccounts ? undefined : () => onPressSwitchAccount(account) + isSwitchingAccounts + ? undefined + : () => onPressSwitchAccount(account, 'SwitchAccount') } accessibilityRole="button" accessibilityLabel={_(msg`Switch to ${account.handle}`)} diff --git a/src/view/com/testing/TestCtrls.e2e.tsx b/src/view/com/testing/TestCtrls.e2e.tsx index e1e8994882..1eb99c4f5e 100644 --- a/src/view/com/testing/TestCtrls.e2e.tsx +++ b/src/view/com/testing/TestCtrls.e2e.tsx @@ -22,18 +22,24 @@ export function TestCtrls() { const {mutate: setFeedViewPref} = useSetFeedViewPreferencesMutation() const {setShowLoggedOut} = useLoggedOutViewControls() const onPressSignInAlice = async () => { - await login({ - service: 'http://localhost:3000', - identifier: 'alice.test', - password: 'hunter2', - }) + await login( + { + service: 'http://localhost:3000', + identifier: 'alice.test', + password: 'hunter2', + }, + 'LoginForm', + ) } const onPressSignInBob = async () => { - await login({ - service: 'http://localhost:3000', - identifier: 'bob.test', - password: 'hunter2', - }) + await login( + { + service: 'http://localhost:3000', + identifier: 'bob.test', + password: 'hunter2', + }, + 'LoginForm', + ) } return ( @@ -51,7 +57,7 @@ export function TestCtrls() { /> logout()} + onPress={() => logout('Settings')} accessibilityRole="button" style={BTN} /> diff --git a/src/view/screens/Settings/index.tsx b/src/view/screens/Settings/index.tsx index 7e808f9100..3967678b48 100644 --- a/src/view/screens/Settings/index.tsx +++ b/src/view/screens/Settings/index.tsx @@ -100,7 +100,9 @@ function SettingsAccountCard({account}: {account: SessionAccount}) { {isCurrentAccount ? ( { + logout('Settings') + }} accessibilityRole="button" accessibilityLabel={_(msg`Sign out`)} accessibilityHint={`Signs ${profile?.displayName} out of Bluesky`}> @@ -129,7 +131,9 @@ function SettingsAccountCard({account}: {account: SessionAccount}) { testID={`switchToAccountBtn-${account.handle}`} key={account.did} onPress={ - isSwitchingAccounts ? undefined : () => onPressSwitchAccount(account) + isSwitchingAccounts + ? undefined + : () => onPressSwitchAccount(account, 'Settings') } accessibilityRole="button" accessibilityLabel={_(msg`Switch to ${account.handle}`)} From 20337ceef1bf86d5190bc240cf11ecf9bfa88042 Mon Sep 17 00:00:00 2001 From: dan Date: Wed, 20 Mar 2024 03:25:37 +0000 Subject: [PATCH 042/222] [Statsig] Track active time (#3289) --- src/lib/statsig/events.ts | 4 +++- src/lib/statsig/statsig.tsx | 11 ++++++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/lib/statsig/events.ts b/src/lib/statsig/events.ts index f57c8d4162..b830959767 100644 --- a/src/lib/statsig/events.ts +++ b/src/lib/statsig/events.ts @@ -10,7 +10,9 @@ export type LogEvents = { logContext: 'SwitchAccount' | 'Settings' | 'Deactivated' } 'notifications:openApp': {} - 'state:background': {} + 'state:background': { + secondsActive: number + } 'state:foreground': {} 'feed:endReached': { feedType: string diff --git a/src/lib/statsig/statsig.tsx b/src/lib/statsig/statsig.tsx index 3abec5c4f9..9fa6cce2d9 100644 --- a/src/lib/statsig/statsig.tsx +++ b/src/lib/statsig/statsig.tsx @@ -67,15 +67,24 @@ function toStatsigUser(did: string | undefined) { } let lastState: AppStateStatus = AppState.currentState +let lastActive = lastState === 'active' ? performance.now() : null AppState.addEventListener('change', (state: AppStateStatus) => { if (state === lastState) { return } lastState = state if (state === 'active') { + lastActive = performance.now() logEvent('state:foreground', {}) } else { - logEvent('state:background', {}) + let secondsActive = 0 + if (lastActive != null) { + secondsActive = Math.round((performance.now() - lastActive) / 1e3) + } + lastActive = null + logEvent('state:background', { + secondsActive, + }) } }) From 023e12bb4ec1dade373c810a13d8bba6d96a22be Mon Sep 17 00:00:00 2001 From: Paul Frazee Date: Tue, 19 Mar 2024 20:30:03 -0700 Subject: [PATCH 043/222] Run intl:extract (again) --- src/locale/locales/ca/messages.po | 312 +++++++++++++-------------- src/locale/locales/de/messages.po | 308 +++++++++++++------------- src/locale/locales/en/messages.po | 308 +++++++++++++------------- src/locale/locales/es/messages.po | 308 +++++++++++++------------- src/locale/locales/fi/messages.po | 308 +++++++++++++------------- src/locale/locales/fr/messages.po | 308 +++++++++++++------------- src/locale/locales/hi/messages.po | 308 +++++++++++++------------- src/locale/locales/id/messages.po | 312 +++++++++++++-------------- src/locale/locales/it/messages.po | 312 +++++++++++++-------------- src/locale/locales/ja/messages.po | 312 +++++++++++++-------------- src/locale/locales/ko/messages.po | 270 +++++++++++------------ src/locale/locales/pt-BR/messages.po | 308 +++++++++++++------------- src/locale/locales/uk/messages.po | 308 +++++++++++++------------- src/locale/locales/zh-CN/messages.po | 308 +++++++++++++------------- 14 files changed, 2145 insertions(+), 2145 deletions(-) diff --git a/src/locale/locales/ca/messages.po b/src/locale/locales/ca/messages.po index a173614898..9f723fd71f 100644 --- a/src/locale/locales/ca/messages.po +++ b/src/locale/locales/ca/messages.po @@ -104,7 +104,7 @@ msgid "Access profile and other navigation links" msgstr "Accedeix al perfil i altres enllaços de navegació" #: src/view/com/modals/EditImage.tsx:299 -#: src/view/screens/Settings/index.tsx:466 +#: src/view/screens/Settings/index.tsx:470 msgid "Accessibility" msgstr "Accessibilitat" @@ -112,9 +112,9 @@ msgstr "Accessibilitat" msgid "account" msgstr "" -#: src/view/com/auth/login/LoginForm.tsx:166 -#: src/view/screens/Settings/index.tsx:323 -#: src/view/screens/Settings/index.tsx:739 +#: src/view/com/auth/login/LoginForm.tsx:169 +#: src/view/screens/Settings/index.tsx:327 +#: src/view/screens/Settings/index.tsx:743 msgid "Account" msgstr "Compte" @@ -176,8 +176,8 @@ msgstr "Afegeix una advertència de contingut" msgid "Add a user to this list" msgstr "Afegeix un usuari a aquesta llista" -#: src/view/screens/Settings/index.tsx:398 -#: src/view/screens/Settings/index.tsx:407 +#: src/view/screens/Settings/index.tsx:402 +#: src/view/screens/Settings/index.tsx:411 msgid "Add account" msgstr "Afegeix un compte" @@ -262,7 +262,7 @@ msgid "Adult content is disabled." msgstr "" #: src/screens/Moderation/index.tsx:377 -#: src/view/screens/Settings/index.tsx:680 +#: src/view/screens/Settings/index.tsx:684 msgid "Advanced" msgstr "Avançat" @@ -275,7 +275,7 @@ msgstr "Tots els canals que has desat, en un sol lloc." msgid "Already have a code?" msgstr "Ja tens un codi?" -#: src/view/com/auth/login/ChooseAccountForm.tsx:102 +#: src/view/com/auth/login/ChooseAccountForm.tsx:103 msgid "Already signed in as @{0}" msgstr "Ja estàs registrat com a @{0}" @@ -339,7 +339,7 @@ msgstr "La contrasenya de l'aplicació només pot estar formada per lletres, nú msgid "App Password names must be at least 4 characters long." msgstr "La contrasenya de l'aplicació ha de ser d'almenys 4 caràcters" -#: src/view/screens/Settings/index.tsx:691 +#: src/view/screens/Settings/index.tsx:695 msgid "App password settings" msgstr "Configuració de la contrasenya d'aplicació" @@ -349,7 +349,7 @@ msgstr "Configuració de la contrasenya d'aplicació" #: src/Navigation.tsx:251 #: src/view/screens/AppPasswords.tsx:189 -#: src/view/screens/Settings/index.tsx:700 +#: src/view/screens/Settings/index.tsx:704 msgid "App Passwords" msgstr "Contrasenyes de l'aplicació" @@ -386,7 +386,7 @@ msgstr "" #~ msgid "Appeal this decision." #~ msgstr "Apel·la aquesta decisió." -#: src/view/screens/Settings/index.tsx:481 +#: src/view/screens/Settings/index.tsx:485 msgid "Appearance" msgstr "Aparença" @@ -426,9 +426,9 @@ msgstr "Nuesa artística o no eròtica." #: src/components/moderation/LabelsOnMeDialog.tsx:248 #: src/screens/Profile/Header/Shell.tsx:97 #: src/view/com/auth/create/CreateAccount.tsx:158 -#: src/view/com/auth/login/ChooseAccountForm.tsx:155 +#: src/view/com/auth/login/ChooseAccountForm.tsx:160 #: src/view/com/auth/login/ForgotPasswordForm.tsx:174 -#: src/view/com/auth/login/LoginForm.tsx:259 +#: src/view/com/auth/login/LoginForm.tsx:262 #: src/view/com/auth/login/SetNewPasswordForm.tsx:179 #: src/view/com/util/ViewHeader.tsx:87 msgid "Back" @@ -443,7 +443,7 @@ msgstr "Endarrere" msgid "Based on your interest in {interestsText}" msgstr "Segons els teus interessos en {interestsText}" -#: src/view/screens/Settings/index.tsx:538 +#: src/view/screens/Settings/index.tsx:542 msgid "Basics" msgstr "Conceptes bàsics" @@ -452,7 +452,7 @@ msgstr "Conceptes bàsics" msgid "Birthday" msgstr "Aniversari" -#: src/view/screens/Settings/index.tsx:355 +#: src/view/screens/Settings/index.tsx:359 msgid "Birthday:" msgstr "Aniversari:" @@ -579,7 +579,7 @@ msgstr "" msgid "Books" msgstr "Llibres" -#: src/view/screens/Settings/index.tsx:889 +#: src/view/screens/Settings/index.tsx:893 msgid "Build version {0} {1}" msgstr "Versió {0} {1}" @@ -696,21 +696,21 @@ msgstr "Cancel·la la cerca" msgid "Cancels opening the linked website" msgstr "" -#: src/view/screens/Settings/index.tsx:349 -msgctxt "action" +#: src/view/com/modals/VerifyEmail.tsx:152 msgid "Change" msgstr "Canvia" -#: src/view/com/modals/VerifyEmail.tsx:152 +#: src/view/screens/Settings/index.tsx:353 +msgctxt "action" msgid "Change" msgstr "Canvia" -#: src/view/screens/Settings/index.tsx:712 +#: src/view/screens/Settings/index.tsx:716 msgid "Change handle" msgstr "Canvia l'identificador" #: src/view/com/modals/ChangeHandle.tsx:161 -#: src/view/screens/Settings/index.tsx:723 +#: src/view/screens/Settings/index.tsx:727 msgid "Change Handle" msgstr "Canvia l'identificador" @@ -718,12 +718,12 @@ msgstr "Canvia l'identificador" msgid "Change my email" msgstr "Canvia el meu correu" -#: src/view/screens/Settings/index.tsx:750 +#: src/view/screens/Settings/index.tsx:754 msgid "Change password" msgstr "Canvia la contrasenya" #: src/view/com/modals/ChangePassword.tsx:141 -#: src/view/screens/Settings/index.tsx:761 +#: src/view/screens/Settings/index.tsx:765 msgid "Change Password" msgstr "Canvia la contrasenya" @@ -785,19 +785,19 @@ msgstr "Tria els teus canals principals" msgid "Choose your password" msgstr "Tria la teva contrasenya" -#: src/view/screens/Settings/index.tsx:864 +#: src/view/screens/Settings/index.tsx:868 msgid "Clear all legacy storage data" msgstr "Esborra totes les dades antigues emmagatzemades" -#: src/view/screens/Settings/index.tsx:867 +#: src/view/screens/Settings/index.tsx:871 msgid "Clear all legacy storage data (restart after this)" msgstr "Esborra totes les dades antigues emmagatzemades (i després reinicia)" -#: src/view/screens/Settings/index.tsx:876 +#: src/view/screens/Settings/index.tsx:880 msgid "Clear all storage data" msgstr "Esborra totes les dades emmagatzemades" -#: src/view/screens/Settings/index.tsx:879 +#: src/view/screens/Settings/index.tsx:883 msgid "Clear all storage data (restart after this)" msgstr "Esborra totes les dades emmagatzemades (i després reinicia)" @@ -806,11 +806,11 @@ msgstr "Esborra totes les dades emmagatzemades (i després reinicia)" msgid "Clear search query" msgstr "Esborra la cerca" -#: src/view/screens/Settings/index.tsx:865 +#: src/view/screens/Settings/index.tsx:869 msgid "Clears all legacy storage data" msgstr "" -#: src/view/screens/Settings/index.tsx:877 +#: src/view/screens/Settings/index.tsx:881 msgid "Clears all storage data" msgstr "" @@ -977,7 +977,7 @@ msgstr "Codi de confirmació" #~ msgstr "Confirma afegir {email} a la llista d'espera" #: src/view/com/auth/create/CreateAccount.tsx:193 -#: src/view/com/auth/login/LoginForm.tsx:278 +#: src/view/com/auth/login/LoginForm.tsx:281 msgid "Connecting..." msgstr "Connectant…" @@ -1065,7 +1065,7 @@ msgstr "Cuina" msgid "Copied" msgstr "Copiat" -#: src/view/screens/Settings/index.tsx:247 +#: src/view/screens/Settings/index.tsx:251 msgid "Copied build version to clipboard" msgstr "Número de versió copiat en memòria" @@ -1129,7 +1129,7 @@ msgstr "No es pot carregar la llista" msgid "Create a new account" msgstr "Crea un nou compte" -#: src/view/screens/Settings/index.tsx:399 +#: src/view/screens/Settings/index.tsx:403 msgid "Create a new Bluesky account" msgstr "Crea un nou compte de Bluesky" @@ -1192,8 +1192,8 @@ msgstr "Personalitza el contingut dels llocs externs" #~ msgid "Danger Zone" #~ msgstr "Zona de perill" -#: src/view/screens/Settings/index.tsx:500 -#: src/view/screens/Settings/index.tsx:526 +#: src/view/screens/Settings/index.tsx:504 +#: src/view/screens/Settings/index.tsx:530 msgid "Dark" msgstr "Fosc" @@ -1201,11 +1201,11 @@ msgstr "Fosc" msgid "Dark mode" msgstr "Mode fosc" -#: src/view/screens/Settings/index.tsx:513 +#: src/view/screens/Settings/index.tsx:517 msgid "Dark Theme" msgstr "Tema fosc" -#: src/view/screens/Settings/index.tsx:837 +#: src/view/screens/Settings/index.tsx:841 msgid "Debug Moderation" msgstr "" @@ -1219,7 +1219,7 @@ msgstr "Panell de depuració" msgid "Delete" msgstr "" -#: src/view/screens/Settings/index.tsx:792 +#: src/view/screens/Settings/index.tsx:796 msgid "Delete account" msgstr "Elimina el compte" @@ -1247,7 +1247,7 @@ msgstr "Elimina el meu compte" #~ msgid "Delete my account…" #~ msgstr "Elimina el meu compte…" -#: src/view/screens/Settings/index.tsx:804 +#: src/view/screens/Settings/index.tsx:808 msgid "Delete My Account…" msgstr "Elimina el meu compte…" @@ -1291,7 +1291,7 @@ msgstr "Descripció" msgid "Did you want to say anything?" msgstr "Vols dir alguna cosa?" -#: src/view/screens/Settings/index.tsx:519 +#: src/view/screens/Settings/index.tsx:523 msgid "Dim" msgstr "Tènue" @@ -1360,19 +1360,6 @@ msgstr "Domini verificat!" #~ msgid "Don't have an invite code?" #~ msgstr "No tens un codi d'invitació?" -#: src/view/com/auth/onboarding/RecommendedFollows.tsx:86 -#: src/view/com/modals/EditImage.tsx:333 -#: src/view/com/modals/ListAddRemoveUsers.tsx:144 -#: src/view/com/modals/SelfLabel.tsx:157 -#: src/view/com/modals/Threadgate.tsx:129 -#: src/view/com/modals/Threadgate.tsx:132 -#: src/view/com/modals/UserAddRemoveLists.tsx:95 -#: src/view/com/modals/UserAddRemoveLists.tsx:98 -#: src/view/screens/PreferencesThreads.tsx:162 -msgctxt "action" -msgid "Done" -msgstr "Fet" - #: src/components/dialogs/BirthDateSettings.tsx:119 #: src/components/dialogs/BirthDateSettings.tsx:125 #: src/view/com/auth/server-input/index.tsx:165 @@ -1389,11 +1376,24 @@ msgstr "Fet" msgid "Done" msgstr "Fet" +#: src/view/com/auth/onboarding/RecommendedFollows.tsx:86 +#: src/view/com/modals/EditImage.tsx:333 +#: src/view/com/modals/ListAddRemoveUsers.tsx:144 +#: src/view/com/modals/SelfLabel.tsx:157 +#: src/view/com/modals/Threadgate.tsx:129 +#: src/view/com/modals/Threadgate.tsx:132 +#: src/view/com/modals/UserAddRemoveLists.tsx:95 +#: src/view/com/modals/UserAddRemoveLists.tsx:98 +#: src/view/screens/PreferencesThreads.tsx:162 +msgctxt "action" +msgid "Done" +msgstr "Fet" + #: src/view/com/modals/lang-settings/ConfirmLanguagesButton.tsx:42 msgid "Done{extraText}" msgstr "Fet{extraText}" -#: src/view/com/auth/login/ChooseAccountForm.tsx:45 +#: src/view/com/auth/login/ChooseAccountForm.tsx:46 msgid "Double tap to sign in" msgstr "Fes doble toc per iniciar la sessió" @@ -1542,7 +1542,7 @@ msgstr "Correu actualitzat" msgid "Email verified" msgstr "Correu verificat" -#: src/view/screens/Settings/index.tsx:327 +#: src/view/screens/Settings/index.tsx:331 msgid "Email:" msgstr "Correu:" @@ -1699,12 +1699,12 @@ msgstr "" msgid "Explicit sexual images." msgstr "" -#: src/view/screens/Settings/index.tsx:773 +#: src/view/screens/Settings/index.tsx:777 msgid "Export my data" msgstr "Exporta les meves dades" #: src/view/screens/Settings/ExportCarDialog.tsx:44 -#: src/view/screens/Settings/index.tsx:784 +#: src/view/screens/Settings/index.tsx:788 msgid "Export My Data" msgstr "Exporta les meves dades" @@ -1719,11 +1719,11 @@ msgstr "El contingut extern pot permetre que algunes webs recullin informació s #: src/Navigation.tsx:275 #: src/view/screens/PreferencesExternalEmbeds.tsx:52 -#: src/view/screens/Settings/index.tsx:673 +#: src/view/screens/Settings/index.tsx:677 msgid "External Media Preferences" msgstr "Preferència del contingut extern" -#: src/view/screens/Settings/index.tsx:664 +#: src/view/screens/Settings/index.tsx:668 msgid "External media settings" msgstr "Configuració del contingut extern" @@ -1924,7 +1924,7 @@ msgstr "Seguint" msgid "Following {0}" msgstr "Seguint {0}" -#: src/view/screens/Settings/index.tsx:549 +#: src/view/screens/Settings/index.tsx:553 msgid "Following feed preferences" msgstr "" @@ -1932,7 +1932,7 @@ msgstr "" #: src/view/com/home/HomeHeaderLayout.web.tsx:50 #: src/view/com/home/HomeHeaderLayoutMobile.tsx:84 #: src/view/screens/PreferencesFollowingFeed.tsx:104 -#: src/view/screens/Settings/index.tsx:558 +#: src/view/screens/Settings/index.tsx:562 msgid "Following Feed Preferences" msgstr "" @@ -1956,11 +1956,11 @@ msgstr "Per motius de seguretat necessitem enviar-te un codi de confirmació al msgid "For security reasons, you won't be able to view this again. If you lose this password, you'll need to generate a new one." msgstr "Per motius de seguretat no podràs tornar-la a veure. Si perds aquesta contrasenya necessitaràs generar-ne una de nova." -#: src/view/com/auth/login/LoginForm.tsx:241 +#: src/view/com/auth/login/LoginForm.tsx:244 msgid "Forgot" msgstr "L'he oblidat" -#: src/view/com/auth/login/LoginForm.tsx:238 +#: src/view/com/auth/login/LoginForm.tsx:241 msgid "Forgot password" msgstr "He oblidat la contrasenya" @@ -2037,7 +2037,7 @@ msgstr "Vés a @{queryMaybeHandle}" #: src/view/com/auth/login/ForgotPasswordForm.tsx:189 #: src/view/com/auth/login/ForgotPasswordForm.tsx:218 -#: src/view/com/auth/login/LoginForm.tsx:288 +#: src/view/com/auth/login/LoginForm.tsx:291 #: src/view/com/auth/login/SetNewPasswordForm.tsx:195 #: src/view/com/modals/ChangePassword.tsx:167 msgid "Go to next" @@ -2283,11 +2283,11 @@ msgstr "Introdueix la contrasenya per elimiar el compte" #~ msgid "Input phone number for SMS verification" #~ msgstr "Introdueix el telèfon per la verificació per SMS" -#: src/view/com/auth/login/LoginForm.tsx:230 +#: src/view/com/auth/login/LoginForm.tsx:233 msgid "Input the password tied to {identifier}" msgstr "Introdueix la contrasenya lligada a {identifier}" -#: src/view/com/auth/login/LoginForm.tsx:197 +#: src/view/com/auth/login/LoginForm.tsx:200 msgid "Input the username or email address you used at signup" msgstr "Introdueix el nom d'usuari o correu que vas utilitzar per registrar-te" @@ -2299,7 +2299,7 @@ msgstr "Introdueix el nom d'usuari o correu que vas utilitzar per registrar-te" #~ msgid "Input your email to get on the Bluesky waitlist" #~ msgstr "Introdueix el teu correu per afegir-te a la llista d'espera de Bluesky" -#: src/view/com/auth/login/LoginForm.tsx:229 +#: src/view/com/auth/login/LoginForm.tsx:232 msgid "Input your password" msgstr "Introdueix la teva contrasenya" @@ -2315,7 +2315,7 @@ msgstr "Introdueix el teu identificador d'usuari" msgid "Invalid or unsupported post record" msgstr "Registre de publicació no vàlid o no admès" -#: src/view/com/auth/login/LoginForm.tsx:113 +#: src/view/com/auth/login/LoginForm.tsx:116 msgid "Invalid username or password" msgstr "Nom d'usuari o contrasenya incorrectes" @@ -2410,7 +2410,7 @@ msgstr "" msgid "Language selection" msgstr "Tria l'idioma" -#: src/view/screens/Settings/index.tsx:610 +#: src/view/screens/Settings/index.tsx:614 msgid "Language settings" msgstr "Configuració d'idioma" @@ -2419,7 +2419,7 @@ msgstr "Configuració d'idioma" msgid "Language Settings" msgstr "Configuració d'idioma" -#: src/view/screens/Settings/index.tsx:619 +#: src/view/screens/Settings/index.tsx:623 msgid "Languages" msgstr "Idiomes" @@ -2465,7 +2465,7 @@ msgstr "Sortint de Bluesky" msgid "left to go." msgstr "queda." -#: src/view/screens/Settings/index.tsx:292 +#: src/view/screens/Settings/index.tsx:296 msgid "Legacy storage cleared, you need to restart the app now." msgstr "L'emmagatzematge heretat s'ha esborrat, cal que reinicieu l'aplicació ara." @@ -2483,7 +2483,7 @@ msgstr "Som-hi!" #~ msgid "Library" #~ msgstr "Biblioteca" -#: src/view/screens/Settings/index.tsx:494 +#: src/view/screens/Settings/index.tsx:498 msgid "Light" msgstr "Clar" @@ -2626,7 +2626,7 @@ msgstr "Desconnecta" msgid "Logged-out visibility" msgstr "Visibilitat pels usuaris no connectats" -#: src/view/com/auth/login/ChooseAccountForm.tsx:137 +#: src/view/com/auth/login/ChooseAccountForm.tsx:142 msgid "Login to account that is not listed" msgstr "Accedeix a un compte que no està llistat" @@ -2680,7 +2680,7 @@ msgstr "" #: src/Navigation.tsx:119 #: src/screens/Moderation/index.tsx:106 -#: src/view/screens/Settings/index.tsx:641 +#: src/view/screens/Settings/index.tsx:645 #: src/view/shell/desktop/LeftNav.tsx:401 #: src/view/shell/Drawer.tsx:514 #: src/view/shell/Drawer.tsx:515 @@ -2723,7 +2723,7 @@ msgstr "Llistes de moderació" msgid "Moderation Lists" msgstr "Llistes de moderació" -#: src/view/screens/Settings/index.tsx:635 +#: src/view/screens/Settings/index.tsx:639 msgid "Moderation settings" msgstr "Configuració de moderació" @@ -2870,11 +2870,11 @@ msgstr "Els meus canals" msgid "My Profile" msgstr "El meu perfil" -#: src/view/screens/Settings/index.tsx:592 +#: src/view/screens/Settings/index.tsx:596 msgid "My saved feeds" msgstr "" -#: src/view/screens/Settings/index.tsx:598 +#: src/view/screens/Settings/index.tsx:602 msgid "My Saved Feeds" msgstr "Els meus canals desats" @@ -2903,7 +2903,7 @@ msgstr "Natura" #: src/view/com/auth/login/ForgotPasswordForm.tsx:190 #: src/view/com/auth/login/ForgotPasswordForm.tsx:219 -#: src/view/com/auth/login/LoginForm.tsx:289 +#: src/view/com/auth/login/LoginForm.tsx:292 #: src/view/com/auth/login/SetNewPasswordForm.tsx:196 #: src/view/com/modals/ChangePassword.tsx:168 msgid "Navigates to the next screen" @@ -3000,7 +3000,7 @@ msgstr "Notícies" #: src/view/com/auth/create/CreateAccount.tsx:172 #: src/view/com/auth/login/ForgotPasswordForm.tsx:182 #: src/view/com/auth/login/ForgotPasswordForm.tsx:192 -#: src/view/com/auth/login/LoginForm.tsx:291 +#: src/view/com/auth/login/LoginForm.tsx:294 #: src/view/com/auth/login/SetNewPasswordForm.tsx:187 #: src/view/com/auth/login/SetNewPasswordForm.tsx:198 #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:79 @@ -3145,7 +3145,7 @@ msgstr "D'acord" msgid "Oldest replies first" msgstr "Respostes més antigues primer" -#: src/view/screens/Settings/index.tsx:240 +#: src/view/screens/Settings/index.tsx:244 msgid "Onboarding reset" msgstr "Restableix la incorporació" @@ -3184,7 +3184,7 @@ msgstr "Obre el selector d'emojis" msgid "Open feed options menu" msgstr "" -#: src/view/screens/Settings/index.tsx:730 +#: src/view/screens/Settings/index.tsx:734 msgid "Open links with in-app browser" msgstr "Obre els enllaços al navegador de l'aplicació" @@ -3204,12 +3204,12 @@ msgstr "Obre la navegació" msgid "Open post options menu" msgstr "" -#: src/view/screens/Settings/index.tsx:824 -#: src/view/screens/Settings/index.tsx:834 +#: src/view/screens/Settings/index.tsx:828 +#: src/view/screens/Settings/index.tsx:838 msgid "Open storybook page" msgstr "Obre la pàgina d'historial" -#: src/view/screens/Settings/index.tsx:812 +#: src/view/screens/Settings/index.tsx:816 msgid "Open system log" msgstr "" @@ -3233,7 +3233,7 @@ msgstr "Obre la càmera del dispositiu" msgid "Opens composer" msgstr "Obre el compositor" -#: src/view/screens/Settings/index.tsx:611 +#: src/view/screens/Settings/index.tsx:615 msgid "Opens configurable language settings" msgstr "Obre la configuració d'idioma" @@ -3245,7 +3245,7 @@ msgstr "Obre la galeria fotogràfica del dispositiu" #~ msgid "Opens editor for profile display name, avatar, background image, and description" #~ msgstr "Obre l'editor del perfil per editar el nom, avatar, imatge de fons i descripció" -#: src/view/screens/Settings/index.tsx:665 +#: src/view/screens/Settings/index.tsx:669 msgid "Opens external embeds settings" msgstr "Obre la configuració per les incrustacions externes" @@ -3275,7 +3275,7 @@ msgstr "" msgid "Opens list of invite codes" msgstr "Obre la llista de codis d'invitació" -#: src/view/screens/Settings/index.tsx:794 +#: src/view/screens/Settings/index.tsx:798 msgid "Opens modal for account deletion confirmation. Requires email code" msgstr "" @@ -3283,19 +3283,19 @@ msgstr "" #~ msgid "Opens modal for account deletion confirmation. Requires email code." #~ msgstr "Obre el modal per confirmar l'eliminació del compte. Requereix un codi de correu" -#: src/view/screens/Settings/index.tsx:752 +#: src/view/screens/Settings/index.tsx:756 msgid "Opens modal for changing your Bluesky password" msgstr "" -#: src/view/screens/Settings/index.tsx:714 +#: src/view/screens/Settings/index.tsx:718 msgid "Opens modal for choosing a new Bluesky handle" msgstr "" -#: src/view/screens/Settings/index.tsx:775 +#: src/view/screens/Settings/index.tsx:779 msgid "Opens modal for downloading your Bluesky account data (repository)" msgstr "" -#: src/view/screens/Settings/index.tsx:966 +#: src/view/screens/Settings/index.tsx:970 msgid "Opens modal for email verification" msgstr "" @@ -3303,11 +3303,11 @@ msgstr "" msgid "Opens modal for using custom domain" msgstr "Obre el modal per a utilitzar un domini personalitzat" -#: src/view/screens/Settings/index.tsx:636 +#: src/view/screens/Settings/index.tsx:640 msgid "Opens moderation settings" msgstr "Obre la configuració de la moderació" -#: src/view/com/auth/login/LoginForm.tsx:239 +#: src/view/com/auth/login/LoginForm.tsx:242 msgid "Opens password reset form" msgstr "Obre el formulari de restabliment de la contrasenya" @@ -3316,11 +3316,11 @@ msgstr "Obre el formulari de restabliment de la contrasenya" msgid "Opens screen to edit Saved Feeds" msgstr "Obre pantalla per editar els canals desats" -#: src/view/screens/Settings/index.tsx:593 +#: src/view/screens/Settings/index.tsx:597 msgid "Opens screen with all saved feeds" msgstr "Obre la pantalla amb tots els canals desats" -#: src/view/screens/Settings/index.tsx:692 +#: src/view/screens/Settings/index.tsx:696 msgid "Opens the app password settings" msgstr "" @@ -3328,7 +3328,7 @@ msgstr "" #~ msgid "Opens the app password settings page" #~ msgstr "Obre la pàgina de configuració de les contrasenyes d'aplicació" -#: src/view/screens/Settings/index.tsx:550 +#: src/view/screens/Settings/index.tsx:554 msgid "Opens the Following feed preferences" msgstr "" @@ -3340,16 +3340,16 @@ msgstr "" msgid "Opens the linked website" msgstr "" -#: src/view/screens/Settings/index.tsx:825 -#: src/view/screens/Settings/index.tsx:835 +#: src/view/screens/Settings/index.tsx:829 +#: src/view/screens/Settings/index.tsx:839 msgid "Opens the storybook page" msgstr "Obre la pàgina de l'historial" -#: src/view/screens/Settings/index.tsx:813 +#: src/view/screens/Settings/index.tsx:817 msgid "Opens the system log page" msgstr "Obre la pàgina de registres del sistema" -#: src/view/screens/Settings/index.tsx:571 +#: src/view/screens/Settings/index.tsx:575 msgid "Opens the threads preferences" msgstr "Obre les preferències dels fils de debat" @@ -3369,7 +3369,7 @@ msgstr "O combina aquestes opcions:" msgid "Other" msgstr "" -#: src/view/com/auth/login/ChooseAccountForm.tsx:142 +#: src/view/com/auth/login/ChooseAccountForm.tsx:147 msgid "Other account" msgstr "Un altre compte" @@ -3392,8 +3392,8 @@ msgstr "Pàgina no trobada" #: src/view/com/auth/create/Step1.tsx:191 #: src/view/com/auth/create/Step1.tsx:201 -#: src/view/com/auth/login/LoginForm.tsx:210 -#: src/view/com/auth/login/LoginForm.tsx:226 +#: src/view/com/auth/login/LoginForm.tsx:213 +#: src/view/com/auth/login/LoginForm.tsx:229 #: src/view/com/auth/login/SetNewPasswordForm.tsx:161 #: src/view/com/modals/DeleteAccount.tsx:195 #: src/view/com/modals/DeleteAccount.tsx:202 @@ -3640,7 +3640,7 @@ msgstr "Idioma principal" msgid "Prioritize Your Follows" msgstr "Prioritza els usuaris que segueixes" -#: src/view/screens/Settings/index.tsx:648 +#: src/view/screens/Settings/index.tsx:652 #: src/view/shell/desktop/RightNav.tsx:72 msgid "Privacy" msgstr "Privacitat" @@ -3648,7 +3648,7 @@ msgstr "Privacitat" #: src/Navigation.tsx:231 #: src/view/com/auth/create/Policies.tsx:69 #: src/view/screens/PrivacyPolicy.tsx:29 -#: src/view/screens/Settings/index.tsx:921 +#: src/view/screens/Settings/index.tsx:925 #: src/view/shell/Drawer.tsx:265 msgid "Privacy Policy" msgstr "Política de privacitat" @@ -3674,7 +3674,7 @@ msgstr "Perfil" msgid "Profile updated" msgstr "Perfil actualitzat" -#: src/view/screens/Settings/index.tsx:979 +#: src/view/screens/Settings/index.tsx:983 msgid "Protect your account by verifying your email." msgstr "Protegeix el teu compte verificant el teu correu." @@ -3950,7 +3950,7 @@ msgstr "Demana un canvi" msgid "Request Code" msgstr "Demana un codi" -#: src/view/screens/Settings/index.tsx:471 +#: src/view/screens/Settings/index.tsx:475 msgid "Require alt text before posting" msgstr "Requereix un text alternatiu abans de publicar" @@ -3972,8 +3972,8 @@ msgstr "Codi de restabliment" #~ msgid "Reset onboarding" #~ msgstr "Restableix la incorporació" -#: src/view/screens/Settings/index.tsx:854 -#: src/view/screens/Settings/index.tsx:857 +#: src/view/screens/Settings/index.tsx:858 +#: src/view/screens/Settings/index.tsx:861 msgid "Reset onboarding state" msgstr "Restableix l'estat de la incorporació" @@ -3985,20 +3985,20 @@ msgstr "Restableix la contrasenya" #~ msgid "Reset preferences" #~ msgstr "Restableix les preferències" -#: src/view/screens/Settings/index.tsx:844 -#: src/view/screens/Settings/index.tsx:847 +#: src/view/screens/Settings/index.tsx:848 +#: src/view/screens/Settings/index.tsx:851 msgid "Reset preferences state" msgstr "Restableix l'estat de les preferències" -#: src/view/screens/Settings/index.tsx:855 +#: src/view/screens/Settings/index.tsx:859 msgid "Resets the onboarding state" msgstr "Restableix l'estat de la incorporació" -#: src/view/screens/Settings/index.tsx:845 +#: src/view/screens/Settings/index.tsx:849 msgid "Resets the preferences state" msgstr "Restableix l'estat de les preferències" -#: src/view/com/auth/login/LoginForm.tsx:269 +#: src/view/com/auth/login/LoginForm.tsx:272 msgid "Retries login" msgstr "Torna a intentar iniciar sessió" @@ -4012,8 +4012,8 @@ msgstr "Torna a intentar l'última acció, que ha donat error" #: src/screens/Onboarding/StepInterests/index.tsx:224 #: src/view/com/auth/create/CreateAccount.tsx:181 #: src/view/com/auth/create/CreateAccount.tsx:186 -#: src/view/com/auth/login/LoginForm.tsx:268 #: src/view/com/auth/login/LoginForm.tsx:271 +#: src/view/com/auth/login/LoginForm.tsx:274 #: src/view/com/util/error/ErrorMessage.tsx:55 #: src/view/com/util/error/ErrorScreen.tsx:72 msgid "Retry" @@ -4040,12 +4040,6 @@ msgstr "" #~ msgid "SANDBOX. Posts and accounts are not permanent." #~ msgstr "ENTORN DE PROVES. Les publicacions i els comptes no són permanents." -#: src/view/com/lightbox/Lightbox.tsx:132 -#: src/view/com/modals/CreateOrEditList.tsx:345 -msgctxt "action" -msgid "Save" -msgstr "Desa" - #: src/components/dialogs/BirthDateSettings.tsx:125 #: src/view/com/modals/ChangeHandle.tsx:173 #: src/view/com/modals/CreateOrEditList.tsx:337 @@ -4053,6 +4047,12 @@ msgstr "Desa" msgid "Save" msgstr "Desa" +#: src/view/com/lightbox/Lightbox.tsx:132 +#: src/view/com/modals/CreateOrEditList.tsx:345 +msgctxt "action" +msgid "Save" +msgstr "Desa" + #: src/view/com/modals/AltImage.tsx:130 msgid "Save alt text" msgstr "Desa el text alternatiu" @@ -4215,7 +4215,7 @@ msgid "Select option {i} of {numItems}" msgstr "Selecciona l'opció {i} de {numItems}" #: src/view/com/auth/create/Step1.tsx:96 -#: src/view/com/auth/login/LoginForm.tsx:150 +#: src/view/com/auth/login/LoginForm.tsx:153 msgid "Select service" msgstr "Selecciona el servei" @@ -4389,23 +4389,23 @@ msgstr "Configura el teu compte" msgid "Sets Bluesky username" msgstr "Estableix un nom d'usuari de Bluesky" -#: src/view/screens/Settings/index.tsx:503 +#: src/view/screens/Settings/index.tsx:507 msgid "Sets color theme to dark" msgstr "" -#: src/view/screens/Settings/index.tsx:496 +#: src/view/screens/Settings/index.tsx:500 msgid "Sets color theme to light" msgstr "" -#: src/view/screens/Settings/index.tsx:490 +#: src/view/screens/Settings/index.tsx:494 msgid "Sets color theme to system setting" msgstr "" -#: src/view/screens/Settings/index.tsx:529 +#: src/view/screens/Settings/index.tsx:533 msgid "Sets dark theme to the dark theme" msgstr "" -#: src/view/screens/Settings/index.tsx:522 +#: src/view/screens/Settings/index.tsx:526 msgid "Sets dark theme to the dim theme" msgstr "" @@ -4430,12 +4430,12 @@ msgid "Sets image aspect ratio to wide" msgstr "" #: src/view/com/auth/create/Step1.tsx:97 -#: src/view/com/auth/login/LoginForm.tsx:151 +#: src/view/com/auth/login/LoginForm.tsx:154 msgid "Sets server for the Bluesky client" msgstr "Estableix el servidor pel cient de Bluesky" #: src/Navigation.tsx:139 -#: src/view/screens/Settings/index.tsx:309 +#: src/view/screens/Settings/index.tsx:313 #: src/view/shell/desktop/LeftNav.tsx:437 #: src/view/shell/Drawer.tsx:570 #: src/view/shell/Drawer.tsx:571 @@ -4478,7 +4478,7 @@ msgstr "Comparteix el canal" #: src/components/moderation/GlobalModerationLabelPref.tsx:45 #: src/components/moderation/PostHider.tsx:107 #: src/screens/Onboarding/StepModeration/ModerationOption.tsx:54 -#: src/view/screens/Settings/index.tsx:359 +#: src/view/screens/Settings/index.tsx:363 msgid "Show" msgstr "Mostra" @@ -4608,23 +4608,23 @@ msgstr "Inicia sessió" msgid "Sign In" msgstr "Inicia sessió" -#: src/view/com/auth/login/ChooseAccountForm.tsx:44 +#: src/view/com/auth/login/ChooseAccountForm.tsx:45 msgid "Sign in as {0}" msgstr "Inicia sessió com a {0}" -#: src/view/com/auth/login/ChooseAccountForm.tsx:122 +#: src/view/com/auth/login/ChooseAccountForm.tsx:127 #: src/view/com/auth/login/Login.tsx:116 msgid "Sign in as..." msgstr "Inicia sessió com a …" -#: src/view/com/auth/login/LoginForm.tsx:137 +#: src/view/com/auth/login/LoginForm.tsx:140 msgid "Sign into" msgstr "Inicia sessió en" #: src/view/com/modals/SwitchAccount.tsx:68 #: src/view/com/modals/SwitchAccount.tsx:73 -#: src/view/screens/Settings/index.tsx:105 -#: src/view/screens/Settings/index.tsx:108 +#: src/view/screens/Settings/index.tsx:107 +#: src/view/screens/Settings/index.tsx:110 msgid "Sign out" msgstr "Tanca sessió" @@ -4649,11 +4649,11 @@ msgstr "Registra't o inicia sessió per unir-te a la conversa" msgid "Sign-in Required" msgstr "Es requereix iniciar sessió" -#: src/view/screens/Settings/index.tsx:370 +#: src/view/screens/Settings/index.tsx:374 msgid "Signed in as" msgstr "S'ha iniciat sessió com a" -#: src/view/com/auth/login/ChooseAccountForm.tsx:107 +#: src/view/com/auth/login/ChooseAccountForm.tsx:112 msgid "Signed in as @{0}" msgstr "Sha iniciat sessió com a @{0}" @@ -4733,7 +4733,7 @@ msgstr "Quadrat" #~ msgid "Staging" #~ msgstr "Posada en escena" -#: src/view/screens/Settings/index.tsx:901 +#: src/view/screens/Settings/index.tsx:905 msgid "Status page" msgstr "Pàgina d'estat" @@ -4741,12 +4741,12 @@ msgstr "Pàgina d'estat" msgid "Step {0} of {numSteps}" msgstr "Pas {0} de {numSteps}" -#: src/view/screens/Settings/index.tsx:288 +#: src/view/screens/Settings/index.tsx:292 msgid "Storage cleared, you need to restart the app now." msgstr "L'emmagatzematge s'ha esborrat, cal que reinicieu l'aplicació ara." #: src/Navigation.tsx:211 -#: src/view/screens/Settings/index.tsx:827 +#: src/view/screens/Settings/index.tsx:831 msgid "Storybook" msgstr "Historial" @@ -4802,25 +4802,25 @@ msgstr "Suport" #~ msgid "Swipe up to see more" #~ msgstr "Llisca cap amunt per veure'n més" -#: src/view/com/modals/SwitchAccount.tsx:121 +#: src/view/com/modals/SwitchAccount.tsx:123 msgid "Switch Account" msgstr "Canvia el compte" -#: src/view/com/modals/SwitchAccount.tsx:101 -#: src/view/screens/Settings/index.tsx:135 +#: src/view/com/modals/SwitchAccount.tsx:103 +#: src/view/screens/Settings/index.tsx:139 msgid "Switch to {0}" msgstr "Canvia a {0}" -#: src/view/com/modals/SwitchAccount.tsx:102 -#: src/view/screens/Settings/index.tsx:136 +#: src/view/com/modals/SwitchAccount.tsx:104 +#: src/view/screens/Settings/index.tsx:140 msgid "Switches the account you are logged in to" msgstr "Canvia en compte amb el que tens iniciada la sessió" -#: src/view/screens/Settings/index.tsx:487 +#: src/view/screens/Settings/index.tsx:491 msgid "System" msgstr "Sistema" -#: src/view/screens/Settings/index.tsx:815 +#: src/view/screens/Settings/index.tsx:819 msgid "System log" msgstr "Registres del sistema" @@ -4854,7 +4854,7 @@ msgstr "Condicions" #: src/Navigation.tsx:236 #: src/view/com/auth/create/Policies.tsx:59 -#: src/view/screens/Settings/index.tsx:915 +#: src/view/screens/Settings/index.tsx:919 #: src/view/screens/TermsOfService.tsx:29 #: src/view/shell/Drawer.tsx:259 msgid "Terms of Service" @@ -5201,12 +5201,12 @@ msgstr "" #~ msgid "This will hide this post from your feeds." #~ msgstr "Això amagarà aquesta publicació dels teus canals." -#: src/view/screens/Settings/index.tsx:570 +#: src/view/screens/Settings/index.tsx:574 msgid "Thread preferences" msgstr "" #: src/view/screens/PreferencesThreads.tsx:53 -#: src/view/screens/Settings/index.tsx:580 +#: src/view/screens/Settings/index.tsx:584 msgid "Thread Preferences" msgstr "Preferències dels fils de debat" @@ -5269,7 +5269,7 @@ msgstr "Deixa de silenciar la llista" #: src/view/com/auth/create/CreateAccount.tsx:58 #: src/view/com/auth/login/ForgotPasswordForm.tsx:87 #: src/view/com/auth/login/Login.tsx:76 -#: src/view/com/auth/login/LoginForm.tsx:118 +#: src/view/com/auth/login/LoginForm.tsx:121 #: src/view/com/modals/ChangePassword.tsx:70 msgid "Unable to contact your service. Please check your Internet connection." msgstr "No es pot contactar amb el teu servei. Comprova la teva connexió a internet." @@ -5523,8 +5523,8 @@ msgstr "Llista d'usuaris actualitzada" msgid "User Lists" msgstr "Llistes d'usuaris" -#: src/view/com/auth/login/LoginForm.tsx:177 -#: src/view/com/auth/login/LoginForm.tsx:195 +#: src/view/com/auth/login/LoginForm.tsx:180 +#: src/view/com/auth/login/LoginForm.tsx:198 msgid "Username or email address" msgstr "Nom d'usuari o correu" @@ -5556,15 +5556,15 @@ msgstr "" msgid "Verify {0}" msgstr "" -#: src/view/screens/Settings/index.tsx:940 +#: src/view/screens/Settings/index.tsx:944 msgid "Verify email" msgstr "Verifica el correu" -#: src/view/screens/Settings/index.tsx:965 +#: src/view/screens/Settings/index.tsx:969 msgid "Verify my email" msgstr "Verifica el meu correu" -#: src/view/screens/Settings/index.tsx:974 +#: src/view/screens/Settings/index.tsx:978 msgid "Verify My Email" msgstr "Verifica el meu correu" @@ -6053,7 +6053,7 @@ msgid "Your posts, likes, and blocks are public. Mutes are private." msgstr "Les teves publicacions, m'agrades i bloquejos són públics. Els comptes silenciats són privats." #: src/view/com/modals/SwitchAccount.tsx:88 -#: src/view/screens/Settings/index.tsx:123 +#: src/view/screens/Settings/index.tsx:125 msgid "Your profile" msgstr "El teu perfil" diff --git a/src/locale/locales/de/messages.po b/src/locale/locales/de/messages.po index 408e2aeda8..67dd235f74 100644 --- a/src/locale/locales/de/messages.po +++ b/src/locale/locales/de/messages.po @@ -71,7 +71,7 @@ msgid "Access profile and other navigation links" msgstr "Zugang zum Profil und anderen Navigationslinks" #: src/view/com/modals/EditImage.tsx:299 -#: src/view/screens/Settings/index.tsx:466 +#: src/view/screens/Settings/index.tsx:470 msgid "Accessibility" msgstr "Barrierefreiheit" @@ -79,9 +79,9 @@ msgstr "Barrierefreiheit" msgid "account" msgstr "" -#: src/view/com/auth/login/LoginForm.tsx:166 -#: src/view/screens/Settings/index.tsx:323 -#: src/view/screens/Settings/index.tsx:739 +#: src/view/com/auth/login/LoginForm.tsx:169 +#: src/view/screens/Settings/index.tsx:327 +#: src/view/screens/Settings/index.tsx:743 msgid "Account" msgstr "Konto" @@ -143,8 +143,8 @@ msgstr "Eine Inhaltswarnung hinzufügen" msgid "Add a user to this list" msgstr "Einen Nutzer zu dieser Liste hinzufügen" -#: src/view/screens/Settings/index.tsx:398 -#: src/view/screens/Settings/index.tsx:407 +#: src/view/screens/Settings/index.tsx:402 +#: src/view/screens/Settings/index.tsx:411 msgid "Add account" msgstr "Konto hinzufügen" @@ -229,7 +229,7 @@ msgid "Adult content is disabled." msgstr "" #: src/screens/Moderation/index.tsx:377 -#: src/view/screens/Settings/index.tsx:680 +#: src/view/screens/Settings/index.tsx:684 msgid "Advanced" msgstr "Erweitert" @@ -242,7 +242,7 @@ msgstr "All deine gespeicherten Feeds an einem Ort." msgid "Already have a code?" msgstr "Hast du bereits einen Code?" -#: src/view/com/auth/login/ChooseAccountForm.tsx:102 +#: src/view/com/auth/login/ChooseAccountForm.tsx:103 msgid "Already signed in as @{0}" msgstr "Bereits angemeldet als @{0}" @@ -306,13 +306,13 @@ msgstr "App-Passwortnamen dürfen nur Buchstaben, Zahlen, Leerzeichen, Bindestri msgid "App Password names must be at least 4 characters long." msgstr "App-Passwortnamen müssen mindestens 4 Zeichen lang sein." -#: src/view/screens/Settings/index.tsx:691 +#: src/view/screens/Settings/index.tsx:695 msgid "App password settings" msgstr "App-Passwort-Einstellungen" #: src/Navigation.tsx:251 #: src/view/screens/AppPasswords.tsx:189 -#: src/view/screens/Settings/index.tsx:700 +#: src/view/screens/Settings/index.tsx:704 msgid "App Passwords" msgstr "App-Passwörter" @@ -346,7 +346,7 @@ msgstr "" #~ msgid "Appeal this decision." #~ msgstr "Einspruch gegen diese Entscheidung." -#: src/view/screens/Settings/index.tsx:481 +#: src/view/screens/Settings/index.tsx:485 msgid "Appearance" msgstr "Erscheinungsbild" @@ -386,9 +386,9 @@ msgstr "Künstlerische oder nicht-erotische Nacktheit." #: src/components/moderation/LabelsOnMeDialog.tsx:248 #: src/screens/Profile/Header/Shell.tsx:97 #: src/view/com/auth/create/CreateAccount.tsx:158 -#: src/view/com/auth/login/ChooseAccountForm.tsx:155 +#: src/view/com/auth/login/ChooseAccountForm.tsx:160 #: src/view/com/auth/login/ForgotPasswordForm.tsx:174 -#: src/view/com/auth/login/LoginForm.tsx:259 +#: src/view/com/auth/login/LoginForm.tsx:262 #: src/view/com/auth/login/SetNewPasswordForm.tsx:179 #: src/view/com/util/ViewHeader.tsx:87 msgid "Back" @@ -403,7 +403,7 @@ msgstr "Zurück" msgid "Based on your interest in {interestsText}" msgstr "Ausgehend von deinem Interesse an {interestsText}" -#: src/view/screens/Settings/index.tsx:538 +#: src/view/screens/Settings/index.tsx:542 msgid "Basics" msgstr "Grundlagen" @@ -412,7 +412,7 @@ msgstr "Grundlagen" msgid "Birthday" msgstr "Geburtstag" -#: src/view/screens/Settings/index.tsx:355 +#: src/view/screens/Settings/index.tsx:359 msgid "Birthday:" msgstr "Geburtstag:" @@ -531,7 +531,7 @@ msgstr "" msgid "Books" msgstr "Bücher" -#: src/view/screens/Settings/index.tsx:889 +#: src/view/screens/Settings/index.tsx:893 msgid "Build version {0} {1}" msgstr "Build-Version {0} {1}" @@ -640,17 +640,17 @@ msgstr "" msgid "Change" msgstr "" -#: src/view/screens/Settings/index.tsx:349 +#: src/view/screens/Settings/index.tsx:353 msgctxt "action" msgid "Change" msgstr "Ändern" -#: src/view/screens/Settings/index.tsx:712 +#: src/view/screens/Settings/index.tsx:716 msgid "Change handle" msgstr "Handle ändern" #: src/view/com/modals/ChangeHandle.tsx:161 -#: src/view/screens/Settings/index.tsx:723 +#: src/view/screens/Settings/index.tsx:727 msgid "Change Handle" msgstr "Handle ändern" @@ -658,12 +658,12 @@ msgstr "Handle ändern" msgid "Change my email" msgstr "Meine E-Mail ändern" -#: src/view/screens/Settings/index.tsx:750 +#: src/view/screens/Settings/index.tsx:754 msgid "Change password" msgstr "Passwort ändern" #: src/view/com/modals/ChangePassword.tsx:141 -#: src/view/screens/Settings/index.tsx:761 +#: src/view/screens/Settings/index.tsx:765 msgid "Change Password" msgstr "Passwort Ändern" @@ -725,19 +725,19 @@ msgstr "Wähle deine Haupt-Feeds" msgid "Choose your password" msgstr "Wähle dein Passwort" -#: src/view/screens/Settings/index.tsx:864 +#: src/view/screens/Settings/index.tsx:868 msgid "Clear all legacy storage data" msgstr "Alle alten Speicherdaten löschen" -#: src/view/screens/Settings/index.tsx:867 +#: src/view/screens/Settings/index.tsx:871 msgid "Clear all legacy storage data (restart after this)" msgstr "Alle alten Speicherdaten löschen (danach neu starten)" -#: src/view/screens/Settings/index.tsx:876 +#: src/view/screens/Settings/index.tsx:880 msgid "Clear all storage data" msgstr "Alle Speicherdaten löschen" -#: src/view/screens/Settings/index.tsx:879 +#: src/view/screens/Settings/index.tsx:883 msgid "Clear all storage data (restart after this)" msgstr "Alle Speicherdaten löschen (danach neu starten)" @@ -746,11 +746,11 @@ msgstr "Alle Speicherdaten löschen (danach neu starten)" msgid "Clear search query" msgstr "Suchanfrage löschen" -#: src/view/screens/Settings/index.tsx:865 +#: src/view/screens/Settings/index.tsx:869 msgid "Clears all legacy storage data" msgstr "" -#: src/view/screens/Settings/index.tsx:877 +#: src/view/screens/Settings/index.tsx:881 msgid "Clears all storage data" msgstr "" @@ -913,7 +913,7 @@ msgid "Confirmation code" msgstr "Bestätigungscode" #: src/view/com/auth/create/CreateAccount.tsx:193 -#: src/view/com/auth/login/LoginForm.tsx:278 +#: src/view/com/auth/login/LoginForm.tsx:281 msgid "Connecting..." msgstr "Verbinden..." @@ -1001,7 +1001,7 @@ msgstr "Kochen" msgid "Copied" msgstr "Kopiert" -#: src/view/screens/Settings/index.tsx:247 +#: src/view/screens/Settings/index.tsx:251 msgid "Copied build version to clipboard" msgstr "Die Build-Version wurde in die Zwischenablage kopiert" @@ -1061,7 +1061,7 @@ msgstr "Liste konnte nicht geladen werden" msgid "Create a new account" msgstr "Ein neues Konto erstellen" -#: src/view/screens/Settings/index.tsx:399 +#: src/view/screens/Settings/index.tsx:403 msgid "Create a new Bluesky account" msgstr "Erstelle ein neues Bluesky-Konto" @@ -1120,8 +1120,8 @@ msgstr "Benutzerdefinierte Feeds, die von der Community erstellt wurden, bringen msgid "Customize media from external sites." msgstr "Passe die Einstellungen für Medien von externen Websites an." -#: src/view/screens/Settings/index.tsx:500 -#: src/view/screens/Settings/index.tsx:526 +#: src/view/screens/Settings/index.tsx:504 +#: src/view/screens/Settings/index.tsx:530 msgid "Dark" msgstr "Dunkel" @@ -1129,11 +1129,11 @@ msgstr "Dunkel" msgid "Dark mode" msgstr "Dunkelmodus" -#: src/view/screens/Settings/index.tsx:513 +#: src/view/screens/Settings/index.tsx:517 msgid "Dark Theme" msgstr "Dunkles Thema" -#: src/view/screens/Settings/index.tsx:837 +#: src/view/screens/Settings/index.tsx:841 msgid "Debug Moderation" msgstr "" @@ -1147,7 +1147,7 @@ msgstr "Debug-Panel" msgid "Delete" msgstr "" -#: src/view/screens/Settings/index.tsx:792 +#: src/view/screens/Settings/index.tsx:796 msgid "Delete account" msgstr "Konto löschen" @@ -1171,7 +1171,7 @@ msgstr "Liste löschen" msgid "Delete my account" msgstr "Mein Konto löschen" -#: src/view/screens/Settings/index.tsx:804 +#: src/view/screens/Settings/index.tsx:808 msgid "Delete My Account…" msgstr "Mein Konto Löschen…" @@ -1207,7 +1207,7 @@ msgstr "Beschreibung" msgid "Did you want to say anything?" msgstr "Wolltest du etwas sagen?" -#: src/view/screens/Settings/index.tsx:519 +#: src/view/screens/Settings/index.tsx:523 msgid "Dim" msgstr "Dimmen" @@ -1268,19 +1268,6 @@ msgstr "" msgid "Domain verified!" msgstr "Domain verifiziert!" -#: src/view/com/auth/onboarding/RecommendedFollows.tsx:86 -#: src/view/com/modals/EditImage.tsx:333 -#: src/view/com/modals/ListAddRemoveUsers.tsx:144 -#: src/view/com/modals/SelfLabel.tsx:157 -#: src/view/com/modals/Threadgate.tsx:129 -#: src/view/com/modals/Threadgate.tsx:132 -#: src/view/com/modals/UserAddRemoveLists.tsx:95 -#: src/view/com/modals/UserAddRemoveLists.tsx:98 -#: src/view/screens/PreferencesThreads.tsx:162 -msgctxt "action" -msgid "Done" -msgstr "Erledigt" - #: src/components/dialogs/BirthDateSettings.tsx:119 #: src/components/dialogs/BirthDateSettings.tsx:125 #: src/view/com/auth/server-input/index.tsx:165 @@ -1297,11 +1284,24 @@ msgstr "Erledigt" msgid "Done" msgstr "Erledigt" +#: src/view/com/auth/onboarding/RecommendedFollows.tsx:86 +#: src/view/com/modals/EditImage.tsx:333 +#: src/view/com/modals/ListAddRemoveUsers.tsx:144 +#: src/view/com/modals/SelfLabel.tsx:157 +#: src/view/com/modals/Threadgate.tsx:129 +#: src/view/com/modals/Threadgate.tsx:132 +#: src/view/com/modals/UserAddRemoveLists.tsx:95 +#: src/view/com/modals/UserAddRemoveLists.tsx:98 +#: src/view/screens/PreferencesThreads.tsx:162 +msgctxt "action" +msgid "Done" +msgstr "Erledigt" + #: src/view/com/modals/lang-settings/ConfirmLanguagesButton.tsx:42 msgid "Done{extraText}" msgstr "Erledigt{extraText}" -#: src/view/com/auth/login/ChooseAccountForm.tsx:45 +#: src/view/com/auth/login/ChooseAccountForm.tsx:46 msgid "Double tap to sign in" msgstr "Doppeltippen zum Anmelden" @@ -1450,7 +1450,7 @@ msgstr "E-Mail aktualisiert" msgid "Email verified" msgstr "E-Mail verifiziert" -#: src/view/screens/Settings/index.tsx:327 +#: src/view/screens/Settings/index.tsx:331 msgid "Email:" msgstr "E-Mail:" @@ -1591,12 +1591,12 @@ msgstr "" msgid "Explicit sexual images." msgstr "" -#: src/view/screens/Settings/index.tsx:773 +#: src/view/screens/Settings/index.tsx:777 msgid "Export my data" msgstr "Exportiere meine Daten" #: src/view/screens/Settings/ExportCarDialog.tsx:44 -#: src/view/screens/Settings/index.tsx:784 +#: src/view/screens/Settings/index.tsx:788 msgid "Export My Data" msgstr "Exportiere meine Daten" @@ -1611,11 +1611,11 @@ msgstr "Externe Medien können es Websites ermöglichen, Informationen über dic #: src/Navigation.tsx:275 #: src/view/screens/PreferencesExternalEmbeds.tsx:52 -#: src/view/screens/Settings/index.tsx:673 +#: src/view/screens/Settings/index.tsx:677 msgid "External Media Preferences" msgstr "Externe Medienpräferenzen" -#: src/view/screens/Settings/index.tsx:664 +#: src/view/screens/Settings/index.tsx:668 msgid "External media settings" msgstr "Externe Medienpräferenzen" @@ -1804,7 +1804,7 @@ msgstr "Folge ich" msgid "Following {0}" msgstr "ich folge {0}" -#: src/view/screens/Settings/index.tsx:549 +#: src/view/screens/Settings/index.tsx:553 msgid "Following feed preferences" msgstr "" @@ -1812,7 +1812,7 @@ msgstr "" #: src/view/com/home/HomeHeaderLayout.web.tsx:50 #: src/view/com/home/HomeHeaderLayoutMobile.tsx:84 #: src/view/screens/PreferencesFollowingFeed.tsx:104 -#: src/view/screens/Settings/index.tsx:558 +#: src/view/screens/Settings/index.tsx:562 msgid "Following Feed Preferences" msgstr "Following-Feed-Einstellungen" @@ -1836,11 +1836,11 @@ msgstr "Aus Sicherheitsgründen müssen wir dir einen Bestätigungscode an deine msgid "For security reasons, you won't be able to view this again. If you lose this password, you'll need to generate a new one." msgstr "Aus Sicherheitsgründen kannst du dies nicht erneut ansehen. Wenn du dieses Passwort verlierst, musst du ein neues generieren." -#: src/view/com/auth/login/LoginForm.tsx:241 +#: src/view/com/auth/login/LoginForm.tsx:244 msgid "Forgot" msgstr "Vergessen" -#: src/view/com/auth/login/LoginForm.tsx:238 +#: src/view/com/auth/login/LoginForm.tsx:241 msgid "Forgot password" msgstr "Passwort vergessen" @@ -1917,7 +1917,7 @@ msgstr "Gehe zu @{queryMaybeHandle}" #: src/view/com/auth/login/ForgotPasswordForm.tsx:189 #: src/view/com/auth/login/ForgotPasswordForm.tsx:218 -#: src/view/com/auth/login/LoginForm.tsx:288 +#: src/view/com/auth/login/LoginForm.tsx:291 #: src/view/com/auth/login/SetNewPasswordForm.tsx:195 #: src/view/com/modals/ChangePassword.tsx:167 msgid "Go to next" @@ -2143,15 +2143,15 @@ msgstr "Neues Passwort eingeben" msgid "Input password for account deletion" msgstr "Passwort für die Kontolöschung eingeben" -#: src/view/com/auth/login/LoginForm.tsx:230 +#: src/view/com/auth/login/LoginForm.tsx:233 msgid "Input the password tied to {identifier}" msgstr "Passwort, das an {identifier} gebunden ist, eingeben" -#: src/view/com/auth/login/LoginForm.tsx:197 +#: src/view/com/auth/login/LoginForm.tsx:200 msgid "Input the username or email address you used at signup" msgstr "Benutzernamen oder E-Mail-Adresse eingeben, die du bei der Anmeldung verwendet hast" -#: src/view/com/auth/login/LoginForm.tsx:229 +#: src/view/com/auth/login/LoginForm.tsx:232 msgid "Input your password" msgstr "Gib dein Passwort ein" @@ -2167,7 +2167,7 @@ msgstr "Gib deinen Handle ein" msgid "Invalid or unsupported post record" msgstr "Ungültiger oder nicht unterstützter Beitragrekord" -#: src/view/com/auth/login/LoginForm.tsx:113 +#: src/view/com/auth/login/LoginForm.tsx:116 msgid "Invalid username or password" msgstr "Ungültiger Benutzername oder Passwort" @@ -2241,7 +2241,7 @@ msgstr "" msgid "Language selection" msgstr "Sprachauswahl" -#: src/view/screens/Settings/index.tsx:610 +#: src/view/screens/Settings/index.tsx:614 msgid "Language settings" msgstr "Spracheinstellungen" @@ -2250,7 +2250,7 @@ msgstr "Spracheinstellungen" msgid "Language Settings" msgstr "Spracheinstellungen" -#: src/view/screens/Settings/index.tsx:619 +#: src/view/screens/Settings/index.tsx:623 msgid "Languages" msgstr "Sprachen" @@ -2296,7 +2296,7 @@ msgstr "Bluesky verlassen" msgid "left to go." msgstr "noch übrig." -#: src/view/screens/Settings/index.tsx:292 +#: src/view/screens/Settings/index.tsx:296 msgid "Legacy storage cleared, you need to restart the app now." msgstr "Der Legacy-Speicher wurde gelöscht, du musst die App jetzt neu starten." @@ -2314,7 +2314,7 @@ msgstr "Los geht's!" #~ msgid "Library" #~ msgstr "Bibliothek" -#: src/view/screens/Settings/index.tsx:494 +#: src/view/screens/Settings/index.tsx:498 msgid "Light" msgstr "Licht" @@ -2449,7 +2449,7 @@ msgstr "Abmelden" msgid "Logged-out visibility" msgstr "Sichtbarkeit für abgemeldete Benutzer" -#: src/view/com/auth/login/ChooseAccountForm.tsx:137 +#: src/view/com/auth/login/ChooseAccountForm.tsx:142 msgid "Login to account that is not listed" msgstr "Anmeldung bei einem Konto, das nicht aufgelistet ist" @@ -2496,7 +2496,7 @@ msgstr "" #: src/Navigation.tsx:119 #: src/screens/Moderation/index.tsx:106 -#: src/view/screens/Settings/index.tsx:641 +#: src/view/screens/Settings/index.tsx:645 #: src/view/shell/desktop/LeftNav.tsx:401 #: src/view/shell/Drawer.tsx:514 #: src/view/shell/Drawer.tsx:515 @@ -2539,7 +2539,7 @@ msgstr "Moderationslisten" msgid "Moderation Lists" msgstr "Moderationslisten" -#: src/view/screens/Settings/index.tsx:635 +#: src/view/screens/Settings/index.tsx:639 msgid "Moderation settings" msgstr "Moderationseinstellungen" @@ -2678,11 +2678,11 @@ msgstr "Meine Feeds" msgid "My Profile" msgstr "Mein Profil" -#: src/view/screens/Settings/index.tsx:592 +#: src/view/screens/Settings/index.tsx:596 msgid "My saved feeds" msgstr "" -#: src/view/screens/Settings/index.tsx:598 +#: src/view/screens/Settings/index.tsx:602 msgid "My Saved Feeds" msgstr "Meine gespeicherten Feeds" @@ -2711,7 +2711,7 @@ msgstr "Natur" #: src/view/com/auth/login/ForgotPasswordForm.tsx:190 #: src/view/com/auth/login/ForgotPasswordForm.tsx:219 -#: src/view/com/auth/login/LoginForm.tsx:289 +#: src/view/com/auth/login/LoginForm.tsx:292 #: src/view/com/auth/login/SetNewPasswordForm.tsx:196 #: src/view/com/modals/ChangePassword.tsx:168 msgid "Navigates to the next screen" @@ -2804,7 +2804,7 @@ msgstr "Aktuelles" #: src/view/com/auth/create/CreateAccount.tsx:172 #: src/view/com/auth/login/ForgotPasswordForm.tsx:182 #: src/view/com/auth/login/ForgotPasswordForm.tsx:192 -#: src/view/com/auth/login/LoginForm.tsx:291 +#: src/view/com/auth/login/LoginForm.tsx:294 #: src/view/com/auth/login/SetNewPasswordForm.tsx:187 #: src/view/com/auth/login/SetNewPasswordForm.tsx:198 #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:79 @@ -2949,7 +2949,7 @@ msgstr "Okay" msgid "Oldest replies first" msgstr "Älteste Antworten zuerst" -#: src/view/screens/Settings/index.tsx:240 +#: src/view/screens/Settings/index.tsx:244 msgid "Onboarding reset" msgstr "Onboarding zurücksetzen" @@ -2988,7 +2988,7 @@ msgstr "Emoji-Picker öffnen" msgid "Open feed options menu" msgstr "" -#: src/view/screens/Settings/index.tsx:730 +#: src/view/screens/Settings/index.tsx:734 msgid "Open links with in-app browser" msgstr "Links mit In-App-Browser öffnen" @@ -3008,12 +3008,12 @@ msgstr "Navigation öffnen" msgid "Open post options menu" msgstr "Beitragsoptionsmenü öffnen" -#: src/view/screens/Settings/index.tsx:824 -#: src/view/screens/Settings/index.tsx:834 +#: src/view/screens/Settings/index.tsx:828 +#: src/view/screens/Settings/index.tsx:838 msgid "Open storybook page" msgstr "Geschichtenbuch öffnen" -#: src/view/screens/Settings/index.tsx:812 +#: src/view/screens/Settings/index.tsx:816 msgid "Open system log" msgstr "" @@ -3037,7 +3037,7 @@ msgstr "Öffnet die Kamera auf dem Gerät" msgid "Opens composer" msgstr "Öffnet den Beitragsverfasser" -#: src/view/screens/Settings/index.tsx:611 +#: src/view/screens/Settings/index.tsx:615 msgid "Opens configurable language settings" msgstr "Öffnet die konfigurierbaren Spracheinstellungen" @@ -3049,7 +3049,7 @@ msgstr "Öffnet die Gerätefotogalerie" #~ msgid "Opens editor for profile display name, avatar, background image, and description" #~ msgstr "Öffnet den Editor für Profilanzeige, Avatar, Hintergrundbild und Beschreibung" -#: src/view/screens/Settings/index.tsx:665 +#: src/view/screens/Settings/index.tsx:669 msgid "Opens external embeds settings" msgstr "Öffnet die Einstellungen für externe eingebettete Medien" @@ -3075,7 +3075,7 @@ msgstr "" msgid "Opens list of invite codes" msgstr "Öffnet die Liste der Einladungscodes" -#: src/view/screens/Settings/index.tsx:794 +#: src/view/screens/Settings/index.tsx:798 msgid "Opens modal for account deletion confirmation. Requires email code" msgstr "" @@ -3083,19 +3083,19 @@ msgstr "" #~ msgid "Opens modal for account deletion confirmation. Requires email code." #~ msgstr "Öffnet ein Modal, um die Löschung des Kontos zu bestätigen. Erfordert einen E-Mail-Code." -#: src/view/screens/Settings/index.tsx:752 +#: src/view/screens/Settings/index.tsx:756 msgid "Opens modal for changing your Bluesky password" msgstr "" -#: src/view/screens/Settings/index.tsx:714 +#: src/view/screens/Settings/index.tsx:718 msgid "Opens modal for choosing a new Bluesky handle" msgstr "" -#: src/view/screens/Settings/index.tsx:775 +#: src/view/screens/Settings/index.tsx:779 msgid "Opens modal for downloading your Bluesky account data (repository)" msgstr "" -#: src/view/screens/Settings/index.tsx:966 +#: src/view/screens/Settings/index.tsx:970 msgid "Opens modal for email verification" msgstr "" @@ -3103,11 +3103,11 @@ msgstr "" msgid "Opens modal for using custom domain" msgstr "Öffnet das Modal für die Verwendung einer benutzerdefinierten Domain" -#: src/view/screens/Settings/index.tsx:636 +#: src/view/screens/Settings/index.tsx:640 msgid "Opens moderation settings" msgstr "Öffnet die Moderationseinstellungen" -#: src/view/com/auth/login/LoginForm.tsx:239 +#: src/view/com/auth/login/LoginForm.tsx:242 msgid "Opens password reset form" msgstr "Öffnet das Formular zum Zurücksetzen des Passworts" @@ -3116,11 +3116,11 @@ msgstr "Öffnet das Formular zum Zurücksetzen des Passworts" msgid "Opens screen to edit Saved Feeds" msgstr "Öffnet den Bildschirm zum Bearbeiten gespeicherten Feeds" -#: src/view/screens/Settings/index.tsx:593 +#: src/view/screens/Settings/index.tsx:597 msgid "Opens screen with all saved feeds" msgstr "Öffnet den Bildschirm mit allen gespeicherten Feeds" -#: src/view/screens/Settings/index.tsx:692 +#: src/view/screens/Settings/index.tsx:696 msgid "Opens the app password settings" msgstr "" @@ -3128,7 +3128,7 @@ msgstr "" #~ msgid "Opens the app password settings page" #~ msgstr "Öffnet die Einstellungsseite für das App-Passwort" -#: src/view/screens/Settings/index.tsx:550 +#: src/view/screens/Settings/index.tsx:554 msgid "Opens the Following feed preferences" msgstr "" @@ -3140,16 +3140,16 @@ msgstr "" msgid "Opens the linked website" msgstr "" -#: src/view/screens/Settings/index.tsx:825 -#: src/view/screens/Settings/index.tsx:835 +#: src/view/screens/Settings/index.tsx:829 +#: src/view/screens/Settings/index.tsx:839 msgid "Opens the storybook page" msgstr "Öffnet die Geschichtenbuch" -#: src/view/screens/Settings/index.tsx:813 +#: src/view/screens/Settings/index.tsx:817 msgid "Opens the system log page" msgstr "Öffnet die Systemprotokollseite" -#: src/view/screens/Settings/index.tsx:571 +#: src/view/screens/Settings/index.tsx:575 msgid "Opens the threads preferences" msgstr "Öffnet die Thread-Einstellungen" @@ -3169,7 +3169,7 @@ msgstr "Oder kombiniere diese Optionen:" msgid "Other" msgstr "" -#: src/view/com/auth/login/ChooseAccountForm.tsx:142 +#: src/view/com/auth/login/ChooseAccountForm.tsx:147 msgid "Other account" msgstr "Anderes Konto" @@ -3188,8 +3188,8 @@ msgstr "Seite nicht gefunden" #: src/view/com/auth/create/Step1.tsx:191 #: src/view/com/auth/create/Step1.tsx:201 -#: src/view/com/auth/login/LoginForm.tsx:210 -#: src/view/com/auth/login/LoginForm.tsx:226 +#: src/view/com/auth/login/LoginForm.tsx:213 +#: src/view/com/auth/login/LoginForm.tsx:229 #: src/view/com/auth/login/SetNewPasswordForm.tsx:161 #: src/view/com/modals/DeleteAccount.tsx:195 #: src/view/com/modals/DeleteAccount.tsx:202 @@ -3411,7 +3411,7 @@ msgstr "Primäre Sprache" msgid "Prioritize Your Follows" msgstr "Priorisiere deine Follower" -#: src/view/screens/Settings/index.tsx:648 +#: src/view/screens/Settings/index.tsx:652 #: src/view/shell/desktop/RightNav.tsx:72 msgid "Privacy" msgstr "Privatsphäre" @@ -3419,7 +3419,7 @@ msgstr "Privatsphäre" #: src/Navigation.tsx:231 #: src/view/com/auth/create/Policies.tsx:69 #: src/view/screens/PrivacyPolicy.tsx:29 -#: src/view/screens/Settings/index.tsx:921 +#: src/view/screens/Settings/index.tsx:925 #: src/view/shell/Drawer.tsx:265 msgid "Privacy Policy" msgstr "Datenschutzerklärung" @@ -3445,7 +3445,7 @@ msgstr "Profil" msgid "Profile updated" msgstr "Profil aktualisiert" -#: src/view/screens/Settings/index.tsx:979 +#: src/view/screens/Settings/index.tsx:983 msgid "Protect your account by verifying your email." msgstr "Schütze dein Konto, indem du deine E-Mail bestätigst." @@ -3705,7 +3705,7 @@ msgstr "Änderung anfordern" msgid "Request Code" msgstr "Einen Code anfordern" -#: src/view/screens/Settings/index.tsx:471 +#: src/view/screens/Settings/index.tsx:475 msgid "Require alt text before posting" msgstr "Alt-Text vor der Veröffentlichung erforderlich machen" @@ -3727,8 +3727,8 @@ msgstr "Code zurücksetzen" #~ msgid "Reset onboarding" #~ msgstr "Onboarding zurücksetzen" -#: src/view/screens/Settings/index.tsx:854 -#: src/view/screens/Settings/index.tsx:857 +#: src/view/screens/Settings/index.tsx:858 +#: src/view/screens/Settings/index.tsx:861 msgid "Reset onboarding state" msgstr "Onboarding-Status zurücksetzen" @@ -3740,20 +3740,20 @@ msgstr "Passwort zurücksetzen" #~ msgid "Reset preferences" #~ msgstr "Einstellungen zurücksetzen" -#: src/view/screens/Settings/index.tsx:844 -#: src/view/screens/Settings/index.tsx:847 +#: src/view/screens/Settings/index.tsx:848 +#: src/view/screens/Settings/index.tsx:851 msgid "Reset preferences state" msgstr "Einstellungen zurücksetzen" -#: src/view/screens/Settings/index.tsx:855 +#: src/view/screens/Settings/index.tsx:859 msgid "Resets the onboarding state" msgstr "Setzt den Onboarding-Status zurück" -#: src/view/screens/Settings/index.tsx:845 +#: src/view/screens/Settings/index.tsx:849 msgid "Resets the preferences state" msgstr "Einstellungen zurücksetzen" -#: src/view/com/auth/login/LoginForm.tsx:269 +#: src/view/com/auth/login/LoginForm.tsx:272 msgid "Retries login" msgstr "Versucht die Anmeldung erneut" @@ -3767,8 +3767,8 @@ msgstr "Wiederholung der letzten Aktion, bei der ein Fehler aufgetreten ist" #: src/screens/Onboarding/StepInterests/index.tsx:224 #: src/view/com/auth/create/CreateAccount.tsx:181 #: src/view/com/auth/create/CreateAccount.tsx:186 -#: src/view/com/auth/login/LoginForm.tsx:268 #: src/view/com/auth/login/LoginForm.tsx:271 +#: src/view/com/auth/login/LoginForm.tsx:274 #: src/view/com/util/error/ErrorMessage.tsx:55 #: src/view/com/util/error/ErrorScreen.tsx:72 msgid "Retry" @@ -3787,12 +3787,6 @@ msgstr "" msgid "Returns to previous page" msgstr "" -#: src/view/com/lightbox/Lightbox.tsx:132 -#: src/view/com/modals/CreateOrEditList.tsx:345 -msgctxt "action" -msgid "Save" -msgstr "Speichern" - #: src/components/dialogs/BirthDateSettings.tsx:125 #: src/view/com/modals/ChangeHandle.tsx:173 #: src/view/com/modals/CreateOrEditList.tsx:337 @@ -3800,6 +3794,12 @@ msgstr "Speichern" msgid "Save" msgstr "Speichern" +#: src/view/com/lightbox/Lightbox.tsx:132 +#: src/view/com/modals/CreateOrEditList.tsx:345 +msgctxt "action" +msgid "Save" +msgstr "Speichern" + #: src/view/com/modals/AltImage.tsx:130 msgid "Save alt text" msgstr "Alt-Text speichern" @@ -3942,7 +3942,7 @@ msgid "Select option {i} of {numItems}" msgstr "Wähle Option {i} von {numItems}" #: src/view/com/auth/create/Step1.tsx:96 -#: src/view/com/auth/login/LoginForm.tsx:150 +#: src/view/com/auth/login/LoginForm.tsx:153 msgid "Select service" msgstr "Service auswählen" @@ -4104,23 +4104,23 @@ msgstr "Dein Konto einrichten" msgid "Sets Bluesky username" msgstr "Legt deinen Bluesky-Benutzernamen fest" -#: src/view/screens/Settings/index.tsx:503 +#: src/view/screens/Settings/index.tsx:507 msgid "Sets color theme to dark" msgstr "" -#: src/view/screens/Settings/index.tsx:496 +#: src/view/screens/Settings/index.tsx:500 msgid "Sets color theme to light" msgstr "" -#: src/view/screens/Settings/index.tsx:490 +#: src/view/screens/Settings/index.tsx:494 msgid "Sets color theme to system setting" msgstr "" -#: src/view/screens/Settings/index.tsx:529 +#: src/view/screens/Settings/index.tsx:533 msgid "Sets dark theme to the dark theme" msgstr "" -#: src/view/screens/Settings/index.tsx:522 +#: src/view/screens/Settings/index.tsx:526 msgid "Sets dark theme to the dim theme" msgstr "" @@ -4145,12 +4145,12 @@ msgid "Sets image aspect ratio to wide" msgstr "" #: src/view/com/auth/create/Step1.tsx:97 -#: src/view/com/auth/login/LoginForm.tsx:151 +#: src/view/com/auth/login/LoginForm.tsx:154 msgid "Sets server for the Bluesky client" msgstr "Setzt den Server für den Bluesky-Client" #: src/Navigation.tsx:139 -#: src/view/screens/Settings/index.tsx:309 +#: src/view/screens/Settings/index.tsx:313 #: src/view/shell/desktop/LeftNav.tsx:437 #: src/view/shell/Drawer.tsx:570 #: src/view/shell/Drawer.tsx:571 @@ -4193,7 +4193,7 @@ msgstr "Feed teilen" #: src/components/moderation/GlobalModerationLabelPref.tsx:45 #: src/components/moderation/PostHider.tsx:107 #: src/screens/Onboarding/StepModeration/ModerationOption.tsx:54 -#: src/view/screens/Settings/index.tsx:359 +#: src/view/screens/Settings/index.tsx:363 msgid "Show" msgstr "Anzeigen" @@ -4323,23 +4323,23 @@ msgstr "Anmelden" msgid "Sign In" msgstr "Anmelden" -#: src/view/com/auth/login/ChooseAccountForm.tsx:44 +#: src/view/com/auth/login/ChooseAccountForm.tsx:45 msgid "Sign in as {0}" msgstr "Anmelden als {0}" -#: src/view/com/auth/login/ChooseAccountForm.tsx:122 +#: src/view/com/auth/login/ChooseAccountForm.tsx:127 #: src/view/com/auth/login/Login.tsx:116 msgid "Sign in as..." msgstr "Anmelden als..." -#: src/view/com/auth/login/LoginForm.tsx:137 +#: src/view/com/auth/login/LoginForm.tsx:140 msgid "Sign into" msgstr "Anmelden bei" #: src/view/com/modals/SwitchAccount.tsx:68 #: src/view/com/modals/SwitchAccount.tsx:73 -#: src/view/screens/Settings/index.tsx:105 -#: src/view/screens/Settings/index.tsx:108 +#: src/view/screens/Settings/index.tsx:107 +#: src/view/screens/Settings/index.tsx:110 msgid "Sign out" msgstr "Abmelden" @@ -4364,11 +4364,11 @@ msgstr "Registriere dich oder melden dich an, um an der Diskussion teilzunehmen" msgid "Sign-in Required" msgstr "Anmelden erforderlich" -#: src/view/screens/Settings/index.tsx:370 +#: src/view/screens/Settings/index.tsx:374 msgid "Signed in as" msgstr "Angemeldet als" -#: src/view/com/auth/login/ChooseAccountForm.tsx:107 +#: src/view/com/auth/login/ChooseAccountForm.tsx:112 msgid "Signed in as @{0}" msgstr "Angemeldet als @{0}" @@ -4432,7 +4432,7 @@ msgstr "Sport" msgid "Square" msgstr "Quadratische" -#: src/view/screens/Settings/index.tsx:901 +#: src/view/screens/Settings/index.tsx:905 msgid "Status page" msgstr "Status-Seite" @@ -4440,12 +4440,12 @@ msgstr "Status-Seite" msgid "Step {0} of {numSteps}" msgstr "Schritt {0} von {numSteps}" -#: src/view/screens/Settings/index.tsx:288 +#: src/view/screens/Settings/index.tsx:292 msgid "Storage cleared, you need to restart the app now." msgstr "Der Speicher wurde gelöscht, du musst die App jetzt neu starten." #: src/Navigation.tsx:211 -#: src/view/screens/Settings/index.tsx:827 +#: src/view/screens/Settings/index.tsx:831 msgid "Storybook" msgstr "Geschichtenbuch" @@ -4497,25 +4497,25 @@ msgstr "Suggestiv" msgid "Support" msgstr "Support" -#: src/view/com/modals/SwitchAccount.tsx:121 +#: src/view/com/modals/SwitchAccount.tsx:123 msgid "Switch Account" msgstr "Konto wechseln" -#: src/view/com/modals/SwitchAccount.tsx:101 -#: src/view/screens/Settings/index.tsx:135 +#: src/view/com/modals/SwitchAccount.tsx:103 +#: src/view/screens/Settings/index.tsx:139 msgid "Switch to {0}" msgstr "Wechseln zu {0}" -#: src/view/com/modals/SwitchAccount.tsx:102 -#: src/view/screens/Settings/index.tsx:136 +#: src/view/com/modals/SwitchAccount.tsx:104 +#: src/view/screens/Settings/index.tsx:140 msgid "Switches the account you are logged in to" msgstr "Wechselt das Konto, in das du eingeloggt bist" -#: src/view/screens/Settings/index.tsx:487 +#: src/view/screens/Settings/index.tsx:491 msgid "System" msgstr "System" -#: src/view/screens/Settings/index.tsx:815 +#: src/view/screens/Settings/index.tsx:819 msgid "System log" msgstr "Systemprotokoll" @@ -4545,7 +4545,7 @@ msgstr "Bedingungen" #: src/Navigation.tsx:236 #: src/view/com/auth/create/Policies.tsx:59 -#: src/view/screens/Settings/index.tsx:915 +#: src/view/screens/Settings/index.tsx:919 #: src/view/screens/TermsOfService.tsx:29 #: src/view/shell/Drawer.tsx:259 msgid "Terms of Service" @@ -4873,12 +4873,12 @@ msgstr "Dies wird {0} aus deinen stummgeschalteten Wörtern löschen. Du kannst #~ msgid "This will hide this post from your feeds." #~ msgstr "Dadurch wird dieser Beitrag aus deinen Feeds ausgeblendet." -#: src/view/screens/Settings/index.tsx:570 +#: src/view/screens/Settings/index.tsx:574 msgid "Thread preferences" msgstr "" #: src/view/screens/PreferencesThreads.tsx:53 -#: src/view/screens/Settings/index.tsx:580 +#: src/view/screens/Settings/index.tsx:584 msgid "Thread Preferences" msgstr "Thread-Einstellungen" @@ -4937,7 +4937,7 @@ msgstr "Stummschaltung von Liste aufheben" #: src/view/com/auth/create/CreateAccount.tsx:58 #: src/view/com/auth/login/ForgotPasswordForm.tsx:87 #: src/view/com/auth/login/Login.tsx:76 -#: src/view/com/auth/login/LoginForm.tsx:118 +#: src/view/com/auth/login/LoginForm.tsx:121 #: src/view/com/modals/ChangePassword.tsx:70 msgid "Unable to contact your service. Please check your Internet connection." msgstr "Es ist uns nicht gelungen, deinen Dienst zu kontaktieren. Bitte überprüfe deine Internetverbindung." @@ -5183,8 +5183,8 @@ msgstr "Benutzerliste aktualisiert" msgid "User Lists" msgstr "Benutzerlisten" -#: src/view/com/auth/login/LoginForm.tsx:177 -#: src/view/com/auth/login/LoginForm.tsx:195 +#: src/view/com/auth/login/LoginForm.tsx:180 +#: src/view/com/auth/login/LoginForm.tsx:198 msgid "Username or email address" msgstr "Benutzername oder E-Mail-Adresse" @@ -5212,15 +5212,15 @@ msgstr "" msgid "Verify {0}" msgstr "" -#: src/view/screens/Settings/index.tsx:940 +#: src/view/screens/Settings/index.tsx:944 msgid "Verify email" msgstr "E-Mail bestätigen" -#: src/view/screens/Settings/index.tsx:965 +#: src/view/screens/Settings/index.tsx:969 msgid "Verify my email" msgstr "Meine E-Mail bestätigen" -#: src/view/screens/Settings/index.tsx:974 +#: src/view/screens/Settings/index.tsx:978 msgid "Verify My Email" msgstr "Meine E-Mail bestätigen" @@ -5684,7 +5684,7 @@ msgid "Your posts, likes, and blocks are public. Mutes are private." msgstr "Deine Beiträge, Likes und Blockierungen sind öffentlich. Stummschaltungen sind privat." #: src/view/com/modals/SwitchAccount.tsx:88 -#: src/view/screens/Settings/index.tsx:123 +#: src/view/screens/Settings/index.tsx:125 msgid "Your profile" msgstr "Dein Profil" diff --git a/src/locale/locales/en/messages.po b/src/locale/locales/en/messages.po index 3c5de03674..c4d2c284b1 100644 --- a/src/locale/locales/en/messages.po +++ b/src/locale/locales/en/messages.po @@ -89,7 +89,7 @@ msgid "Access profile and other navigation links" msgstr "" #: src/view/com/modals/EditImage.tsx:299 -#: src/view/screens/Settings/index.tsx:466 +#: src/view/screens/Settings/index.tsx:470 msgid "Accessibility" msgstr "" @@ -97,9 +97,9 @@ msgstr "" msgid "account" msgstr "" -#: src/view/com/auth/login/LoginForm.tsx:166 -#: src/view/screens/Settings/index.tsx:323 -#: src/view/screens/Settings/index.tsx:739 +#: src/view/com/auth/login/LoginForm.tsx:169 +#: src/view/screens/Settings/index.tsx:327 +#: src/view/screens/Settings/index.tsx:743 msgid "Account" msgstr "" @@ -161,8 +161,8 @@ msgstr "" msgid "Add a user to this list" msgstr "" -#: src/view/screens/Settings/index.tsx:398 -#: src/view/screens/Settings/index.tsx:407 +#: src/view/screens/Settings/index.tsx:402 +#: src/view/screens/Settings/index.tsx:411 msgid "Add account" msgstr "" @@ -251,7 +251,7 @@ msgid "Adult content is disabled." msgstr "" #: src/screens/Moderation/index.tsx:377 -#: src/view/screens/Settings/index.tsx:680 +#: src/view/screens/Settings/index.tsx:684 msgid "Advanced" msgstr "" @@ -264,7 +264,7 @@ msgstr "" msgid "Already have a code?" msgstr "" -#: src/view/com/auth/login/ChooseAccountForm.tsx:102 +#: src/view/com/auth/login/ChooseAccountForm.tsx:103 msgid "Already signed in as @{0}" msgstr "" @@ -328,7 +328,7 @@ msgstr "" msgid "App Password names must be at least 4 characters long." msgstr "" -#: src/view/screens/Settings/index.tsx:691 +#: src/view/screens/Settings/index.tsx:695 msgid "App password settings" msgstr "" @@ -338,7 +338,7 @@ msgstr "" #: src/Navigation.tsx:251 #: src/view/screens/AppPasswords.tsx:189 -#: src/view/screens/Settings/index.tsx:700 +#: src/view/screens/Settings/index.tsx:704 msgid "App Passwords" msgstr "" @@ -372,7 +372,7 @@ msgstr "" #~ msgid "Appeal this decision." #~ msgstr "" -#: src/view/screens/Settings/index.tsx:481 +#: src/view/screens/Settings/index.tsx:485 msgid "Appearance" msgstr "" @@ -412,9 +412,9 @@ msgstr "" #: src/components/moderation/LabelsOnMeDialog.tsx:248 #: src/screens/Profile/Header/Shell.tsx:97 #: src/view/com/auth/create/CreateAccount.tsx:158 -#: src/view/com/auth/login/ChooseAccountForm.tsx:155 +#: src/view/com/auth/login/ChooseAccountForm.tsx:160 #: src/view/com/auth/login/ForgotPasswordForm.tsx:174 -#: src/view/com/auth/login/LoginForm.tsx:259 +#: src/view/com/auth/login/LoginForm.tsx:262 #: src/view/com/auth/login/SetNewPasswordForm.tsx:179 #: src/view/com/util/ViewHeader.tsx:87 msgid "Back" @@ -429,7 +429,7 @@ msgstr "" msgid "Based on your interest in {interestsText}" msgstr "" -#: src/view/screens/Settings/index.tsx:538 +#: src/view/screens/Settings/index.tsx:542 msgid "Basics" msgstr "" @@ -438,7 +438,7 @@ msgstr "" msgid "Birthday" msgstr "" -#: src/view/screens/Settings/index.tsx:355 +#: src/view/screens/Settings/index.tsx:359 msgid "Birthday:" msgstr "" @@ -565,7 +565,7 @@ msgstr "" msgid "Books" msgstr "" -#: src/view/screens/Settings/index.tsx:889 +#: src/view/screens/Settings/index.tsx:893 msgid "Build version {0} {1}" msgstr "" @@ -682,17 +682,17 @@ msgstr "" msgid "Change" msgstr "" -#: src/view/screens/Settings/index.tsx:349 +#: src/view/screens/Settings/index.tsx:353 msgctxt "action" msgid "Change" msgstr "" -#: src/view/screens/Settings/index.tsx:712 +#: src/view/screens/Settings/index.tsx:716 msgid "Change handle" msgstr "" #: src/view/com/modals/ChangeHandle.tsx:161 -#: src/view/screens/Settings/index.tsx:723 +#: src/view/screens/Settings/index.tsx:727 msgid "Change Handle" msgstr "" @@ -700,12 +700,12 @@ msgstr "" msgid "Change my email" msgstr "" -#: src/view/screens/Settings/index.tsx:750 +#: src/view/screens/Settings/index.tsx:754 msgid "Change password" msgstr "" #: src/view/com/modals/ChangePassword.tsx:141 -#: src/view/screens/Settings/index.tsx:761 +#: src/view/screens/Settings/index.tsx:765 msgid "Change Password" msgstr "" @@ -771,19 +771,19 @@ msgstr "" msgid "Choose your password" msgstr "" -#: src/view/screens/Settings/index.tsx:864 +#: src/view/screens/Settings/index.tsx:868 msgid "Clear all legacy storage data" msgstr "" -#: src/view/screens/Settings/index.tsx:867 +#: src/view/screens/Settings/index.tsx:871 msgid "Clear all legacy storage data (restart after this)" msgstr "" -#: src/view/screens/Settings/index.tsx:876 +#: src/view/screens/Settings/index.tsx:880 msgid "Clear all storage data" msgstr "" -#: src/view/screens/Settings/index.tsx:879 +#: src/view/screens/Settings/index.tsx:883 msgid "Clear all storage data (restart after this)" msgstr "" @@ -792,11 +792,11 @@ msgstr "" msgid "Clear search query" msgstr "" -#: src/view/screens/Settings/index.tsx:865 +#: src/view/screens/Settings/index.tsx:869 msgid "Clears all legacy storage data" msgstr "" -#: src/view/screens/Settings/index.tsx:877 +#: src/view/screens/Settings/index.tsx:881 msgid "Clears all storage data" msgstr "" @@ -963,7 +963,7 @@ msgstr "" #~ msgstr "" #: src/view/com/auth/create/CreateAccount.tsx:193 -#: src/view/com/auth/login/LoginForm.tsx:278 +#: src/view/com/auth/login/LoginForm.tsx:281 msgid "Connecting..." msgstr "" @@ -1051,7 +1051,7 @@ msgstr "" msgid "Copied" msgstr "" -#: src/view/screens/Settings/index.tsx:247 +#: src/view/screens/Settings/index.tsx:251 msgid "Copied build version to clipboard" msgstr "" @@ -1115,7 +1115,7 @@ msgstr "" msgid "Create a new account" msgstr "" -#: src/view/screens/Settings/index.tsx:399 +#: src/view/screens/Settings/index.tsx:403 msgid "Create a new Bluesky account" msgstr "" @@ -1178,8 +1178,8 @@ msgstr "" #~ msgid "Danger Zone" #~ msgstr "" -#: src/view/screens/Settings/index.tsx:500 -#: src/view/screens/Settings/index.tsx:526 +#: src/view/screens/Settings/index.tsx:504 +#: src/view/screens/Settings/index.tsx:530 msgid "Dark" msgstr "" @@ -1187,11 +1187,11 @@ msgstr "" msgid "Dark mode" msgstr "" -#: src/view/screens/Settings/index.tsx:513 +#: src/view/screens/Settings/index.tsx:517 msgid "Dark Theme" msgstr "" -#: src/view/screens/Settings/index.tsx:837 +#: src/view/screens/Settings/index.tsx:841 msgid "Debug Moderation" msgstr "" @@ -1205,7 +1205,7 @@ msgstr "" msgid "Delete" msgstr "" -#: src/view/screens/Settings/index.tsx:792 +#: src/view/screens/Settings/index.tsx:796 msgid "Delete account" msgstr "" @@ -1233,7 +1233,7 @@ msgstr "" #~ msgid "Delete my account…" #~ msgstr "" -#: src/view/screens/Settings/index.tsx:804 +#: src/view/screens/Settings/index.tsx:808 msgid "Delete My Account…" msgstr "" @@ -1273,7 +1273,7 @@ msgstr "" msgid "Did you want to say anything?" msgstr "" -#: src/view/screens/Settings/index.tsx:519 +#: src/view/screens/Settings/index.tsx:523 msgid "Dim" msgstr "" @@ -1342,19 +1342,6 @@ msgstr "" #~ msgid "Don't have an invite code?" #~ msgstr "" -#: src/view/com/auth/onboarding/RecommendedFollows.tsx:86 -#: src/view/com/modals/EditImage.tsx:333 -#: src/view/com/modals/ListAddRemoveUsers.tsx:144 -#: src/view/com/modals/SelfLabel.tsx:157 -#: src/view/com/modals/Threadgate.tsx:129 -#: src/view/com/modals/Threadgate.tsx:132 -#: src/view/com/modals/UserAddRemoveLists.tsx:95 -#: src/view/com/modals/UserAddRemoveLists.tsx:98 -#: src/view/screens/PreferencesThreads.tsx:162 -msgctxt "action" -msgid "Done" -msgstr "" - #: src/components/dialogs/BirthDateSettings.tsx:119 #: src/components/dialogs/BirthDateSettings.tsx:125 #: src/view/com/auth/server-input/index.tsx:165 @@ -1371,11 +1358,24 @@ msgstr "" msgid "Done" msgstr "" +#: src/view/com/auth/onboarding/RecommendedFollows.tsx:86 +#: src/view/com/modals/EditImage.tsx:333 +#: src/view/com/modals/ListAddRemoveUsers.tsx:144 +#: src/view/com/modals/SelfLabel.tsx:157 +#: src/view/com/modals/Threadgate.tsx:129 +#: src/view/com/modals/Threadgate.tsx:132 +#: src/view/com/modals/UserAddRemoveLists.tsx:95 +#: src/view/com/modals/UserAddRemoveLists.tsx:98 +#: src/view/screens/PreferencesThreads.tsx:162 +msgctxt "action" +msgid "Done" +msgstr "" + #: src/view/com/modals/lang-settings/ConfirmLanguagesButton.tsx:42 msgid "Done{extraText}" msgstr "" -#: src/view/com/auth/login/ChooseAccountForm.tsx:45 +#: src/view/com/auth/login/ChooseAccountForm.tsx:46 msgid "Double tap to sign in" msgstr "" @@ -1524,7 +1524,7 @@ msgstr "" msgid "Email verified" msgstr "" -#: src/view/screens/Settings/index.tsx:327 +#: src/view/screens/Settings/index.tsx:331 msgid "Email:" msgstr "" @@ -1677,12 +1677,12 @@ msgstr "" msgid "Explicit sexual images." msgstr "" -#: src/view/screens/Settings/index.tsx:773 +#: src/view/screens/Settings/index.tsx:777 msgid "Export my data" msgstr "" #: src/view/screens/Settings/ExportCarDialog.tsx:44 -#: src/view/screens/Settings/index.tsx:784 +#: src/view/screens/Settings/index.tsx:788 msgid "Export My Data" msgstr "" @@ -1697,11 +1697,11 @@ msgstr "" #: src/Navigation.tsx:275 #: src/view/screens/PreferencesExternalEmbeds.tsx:52 -#: src/view/screens/Settings/index.tsx:673 +#: src/view/screens/Settings/index.tsx:677 msgid "External Media Preferences" msgstr "" -#: src/view/screens/Settings/index.tsx:664 +#: src/view/screens/Settings/index.tsx:668 msgid "External media settings" msgstr "" @@ -1906,7 +1906,7 @@ msgstr "" msgid "Following {0}" msgstr "" -#: src/view/screens/Settings/index.tsx:549 +#: src/view/screens/Settings/index.tsx:553 msgid "Following feed preferences" msgstr "" @@ -1914,7 +1914,7 @@ msgstr "" #: src/view/com/home/HomeHeaderLayout.web.tsx:50 #: src/view/com/home/HomeHeaderLayoutMobile.tsx:84 #: src/view/screens/PreferencesFollowingFeed.tsx:104 -#: src/view/screens/Settings/index.tsx:558 +#: src/view/screens/Settings/index.tsx:562 msgid "Following Feed Preferences" msgstr "" @@ -1938,11 +1938,11 @@ msgstr "" msgid "For security reasons, you won't be able to view this again. If you lose this password, you'll need to generate a new one." msgstr "" -#: src/view/com/auth/login/LoginForm.tsx:241 +#: src/view/com/auth/login/LoginForm.tsx:244 msgid "Forgot" msgstr "" -#: src/view/com/auth/login/LoginForm.tsx:238 +#: src/view/com/auth/login/LoginForm.tsx:241 msgid "Forgot password" msgstr "" @@ -2019,7 +2019,7 @@ msgstr "" #: src/view/com/auth/login/ForgotPasswordForm.tsx:189 #: src/view/com/auth/login/ForgotPasswordForm.tsx:218 -#: src/view/com/auth/login/LoginForm.tsx:288 +#: src/view/com/auth/login/LoginForm.tsx:291 #: src/view/com/auth/login/SetNewPasswordForm.tsx:195 #: src/view/com/modals/ChangePassword.tsx:167 msgid "Go to next" @@ -2260,11 +2260,11 @@ msgstr "" #~ msgid "Input phone number for SMS verification" #~ msgstr "" -#: src/view/com/auth/login/LoginForm.tsx:230 +#: src/view/com/auth/login/LoginForm.tsx:233 msgid "Input the password tied to {identifier}" msgstr "" -#: src/view/com/auth/login/LoginForm.tsx:197 +#: src/view/com/auth/login/LoginForm.tsx:200 msgid "Input the username or email address you used at signup" msgstr "" @@ -2276,7 +2276,7 @@ msgstr "" #~ msgid "Input your email to get on the Bluesky waitlist" #~ msgstr "" -#: src/view/com/auth/login/LoginForm.tsx:229 +#: src/view/com/auth/login/LoginForm.tsx:232 msgid "Input your password" msgstr "" @@ -2292,7 +2292,7 @@ msgstr "" msgid "Invalid or unsupported post record" msgstr "" -#: src/view/com/auth/login/LoginForm.tsx:113 +#: src/view/com/auth/login/LoginForm.tsx:116 msgid "Invalid username or password" msgstr "" @@ -2387,7 +2387,7 @@ msgstr "" msgid "Language selection" msgstr "" -#: src/view/screens/Settings/index.tsx:610 +#: src/view/screens/Settings/index.tsx:614 msgid "Language settings" msgstr "" @@ -2396,7 +2396,7 @@ msgstr "" msgid "Language Settings" msgstr "" -#: src/view/screens/Settings/index.tsx:619 +#: src/view/screens/Settings/index.tsx:623 msgid "Languages" msgstr "" @@ -2442,7 +2442,7 @@ msgstr "" msgid "left to go." msgstr "" -#: src/view/screens/Settings/index.tsx:292 +#: src/view/screens/Settings/index.tsx:296 msgid "Legacy storage cleared, you need to restart the app now." msgstr "" @@ -2460,7 +2460,7 @@ msgstr "" #~ msgid "Library" #~ msgstr "" -#: src/view/screens/Settings/index.tsx:494 +#: src/view/screens/Settings/index.tsx:498 msgid "Light" msgstr "" @@ -2599,7 +2599,7 @@ msgstr "" msgid "Logged-out visibility" msgstr "" -#: src/view/com/auth/login/ChooseAccountForm.tsx:137 +#: src/view/com/auth/login/ChooseAccountForm.tsx:142 msgid "Login to account that is not listed" msgstr "" @@ -2646,7 +2646,7 @@ msgstr "" #: src/Navigation.tsx:119 #: src/screens/Moderation/index.tsx:106 -#: src/view/screens/Settings/index.tsx:641 +#: src/view/screens/Settings/index.tsx:645 #: src/view/shell/desktop/LeftNav.tsx:401 #: src/view/shell/Drawer.tsx:514 #: src/view/shell/Drawer.tsx:515 @@ -2689,7 +2689,7 @@ msgstr "" msgid "Moderation Lists" msgstr "" -#: src/view/screens/Settings/index.tsx:635 +#: src/view/screens/Settings/index.tsx:639 msgid "Moderation settings" msgstr "" @@ -2836,11 +2836,11 @@ msgstr "" msgid "My Profile" msgstr "" -#: src/view/screens/Settings/index.tsx:592 +#: src/view/screens/Settings/index.tsx:596 msgid "My saved feeds" msgstr "" -#: src/view/screens/Settings/index.tsx:598 +#: src/view/screens/Settings/index.tsx:602 msgid "My Saved Feeds" msgstr "" @@ -2869,7 +2869,7 @@ msgstr "" #: src/view/com/auth/login/ForgotPasswordForm.tsx:190 #: src/view/com/auth/login/ForgotPasswordForm.tsx:219 -#: src/view/com/auth/login/LoginForm.tsx:289 +#: src/view/com/auth/login/LoginForm.tsx:292 #: src/view/com/auth/login/SetNewPasswordForm.tsx:196 #: src/view/com/modals/ChangePassword.tsx:168 msgid "Navigates to the next screen" @@ -2962,7 +2962,7 @@ msgstr "" #: src/view/com/auth/create/CreateAccount.tsx:172 #: src/view/com/auth/login/ForgotPasswordForm.tsx:182 #: src/view/com/auth/login/ForgotPasswordForm.tsx:192 -#: src/view/com/auth/login/LoginForm.tsx:291 +#: src/view/com/auth/login/LoginForm.tsx:294 #: src/view/com/auth/login/SetNewPasswordForm.tsx:187 #: src/view/com/auth/login/SetNewPasswordForm.tsx:198 #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:79 @@ -3107,7 +3107,7 @@ msgstr "" msgid "Oldest replies first" msgstr "" -#: src/view/screens/Settings/index.tsx:240 +#: src/view/screens/Settings/index.tsx:244 msgid "Onboarding reset" msgstr "" @@ -3146,7 +3146,7 @@ msgstr "" msgid "Open feed options menu" msgstr "" -#: src/view/screens/Settings/index.tsx:730 +#: src/view/screens/Settings/index.tsx:734 msgid "Open links with in-app browser" msgstr "" @@ -3166,12 +3166,12 @@ msgstr "" msgid "Open post options menu" msgstr "" -#: src/view/screens/Settings/index.tsx:824 -#: src/view/screens/Settings/index.tsx:834 +#: src/view/screens/Settings/index.tsx:828 +#: src/view/screens/Settings/index.tsx:838 msgid "Open storybook page" msgstr "" -#: src/view/screens/Settings/index.tsx:812 +#: src/view/screens/Settings/index.tsx:816 msgid "Open system log" msgstr "" @@ -3195,7 +3195,7 @@ msgstr "" msgid "Opens composer" msgstr "" -#: src/view/screens/Settings/index.tsx:611 +#: src/view/screens/Settings/index.tsx:615 msgid "Opens configurable language settings" msgstr "" @@ -3207,7 +3207,7 @@ msgstr "" #~ msgid "Opens editor for profile display name, avatar, background image, and description" #~ msgstr "" -#: src/view/screens/Settings/index.tsx:665 +#: src/view/screens/Settings/index.tsx:669 msgid "Opens external embeds settings" msgstr "" @@ -3237,7 +3237,7 @@ msgstr "" msgid "Opens list of invite codes" msgstr "" -#: src/view/screens/Settings/index.tsx:794 +#: src/view/screens/Settings/index.tsx:798 msgid "Opens modal for account deletion confirmation. Requires email code" msgstr "" @@ -3245,19 +3245,19 @@ msgstr "" #~ msgid "Opens modal for account deletion confirmation. Requires email code." #~ msgstr "" -#: src/view/screens/Settings/index.tsx:752 +#: src/view/screens/Settings/index.tsx:756 msgid "Opens modal for changing your Bluesky password" msgstr "" -#: src/view/screens/Settings/index.tsx:714 +#: src/view/screens/Settings/index.tsx:718 msgid "Opens modal for choosing a new Bluesky handle" msgstr "" -#: src/view/screens/Settings/index.tsx:775 +#: src/view/screens/Settings/index.tsx:779 msgid "Opens modal for downloading your Bluesky account data (repository)" msgstr "" -#: src/view/screens/Settings/index.tsx:966 +#: src/view/screens/Settings/index.tsx:970 msgid "Opens modal for email verification" msgstr "" @@ -3265,11 +3265,11 @@ msgstr "" msgid "Opens modal for using custom domain" msgstr "" -#: src/view/screens/Settings/index.tsx:636 +#: src/view/screens/Settings/index.tsx:640 msgid "Opens moderation settings" msgstr "" -#: src/view/com/auth/login/LoginForm.tsx:239 +#: src/view/com/auth/login/LoginForm.tsx:242 msgid "Opens password reset form" msgstr "" @@ -3278,11 +3278,11 @@ msgstr "" msgid "Opens screen to edit Saved Feeds" msgstr "" -#: src/view/screens/Settings/index.tsx:593 +#: src/view/screens/Settings/index.tsx:597 msgid "Opens screen with all saved feeds" msgstr "" -#: src/view/screens/Settings/index.tsx:692 +#: src/view/screens/Settings/index.tsx:696 msgid "Opens the app password settings" msgstr "" @@ -3290,7 +3290,7 @@ msgstr "" #~ msgid "Opens the app password settings page" #~ msgstr "" -#: src/view/screens/Settings/index.tsx:550 +#: src/view/screens/Settings/index.tsx:554 msgid "Opens the Following feed preferences" msgstr "" @@ -3302,16 +3302,16 @@ msgstr "" msgid "Opens the linked website" msgstr "" -#: src/view/screens/Settings/index.tsx:825 -#: src/view/screens/Settings/index.tsx:835 +#: src/view/screens/Settings/index.tsx:829 +#: src/view/screens/Settings/index.tsx:839 msgid "Opens the storybook page" msgstr "" -#: src/view/screens/Settings/index.tsx:813 +#: src/view/screens/Settings/index.tsx:817 msgid "Opens the system log page" msgstr "" -#: src/view/screens/Settings/index.tsx:571 +#: src/view/screens/Settings/index.tsx:575 msgid "Opens the threads preferences" msgstr "" @@ -3331,7 +3331,7 @@ msgstr "" msgid "Other" msgstr "" -#: src/view/com/auth/login/ChooseAccountForm.tsx:142 +#: src/view/com/auth/login/ChooseAccountForm.tsx:147 msgid "Other account" msgstr "" @@ -3354,8 +3354,8 @@ msgstr "" #: src/view/com/auth/create/Step1.tsx:191 #: src/view/com/auth/create/Step1.tsx:201 -#: src/view/com/auth/login/LoginForm.tsx:210 -#: src/view/com/auth/login/LoginForm.tsx:226 +#: src/view/com/auth/login/LoginForm.tsx:213 +#: src/view/com/auth/login/LoginForm.tsx:229 #: src/view/com/auth/login/SetNewPasswordForm.tsx:161 #: src/view/com/modals/DeleteAccount.tsx:195 #: src/view/com/modals/DeleteAccount.tsx:202 @@ -3598,7 +3598,7 @@ msgstr "" msgid "Prioritize Your Follows" msgstr "" -#: src/view/screens/Settings/index.tsx:648 +#: src/view/screens/Settings/index.tsx:652 #: src/view/shell/desktop/RightNav.tsx:72 msgid "Privacy" msgstr "" @@ -3606,7 +3606,7 @@ msgstr "" #: src/Navigation.tsx:231 #: src/view/com/auth/create/Policies.tsx:69 #: src/view/screens/PrivacyPolicy.tsx:29 -#: src/view/screens/Settings/index.tsx:921 +#: src/view/screens/Settings/index.tsx:925 #: src/view/shell/Drawer.tsx:265 msgid "Privacy Policy" msgstr "" @@ -3632,7 +3632,7 @@ msgstr "" msgid "Profile updated" msgstr "" -#: src/view/screens/Settings/index.tsx:979 +#: src/view/screens/Settings/index.tsx:983 msgid "Protect your account by verifying your email." msgstr "" @@ -3896,7 +3896,7 @@ msgstr "" msgid "Request Code" msgstr "" -#: src/view/screens/Settings/index.tsx:471 +#: src/view/screens/Settings/index.tsx:475 msgid "Require alt text before posting" msgstr "" @@ -3918,8 +3918,8 @@ msgstr "" #~ msgid "Reset onboarding" #~ msgstr "" -#: src/view/screens/Settings/index.tsx:854 -#: src/view/screens/Settings/index.tsx:857 +#: src/view/screens/Settings/index.tsx:858 +#: src/view/screens/Settings/index.tsx:861 msgid "Reset onboarding state" msgstr "" @@ -3931,20 +3931,20 @@ msgstr "" #~ msgid "Reset preferences" #~ msgstr "" -#: src/view/screens/Settings/index.tsx:844 -#: src/view/screens/Settings/index.tsx:847 +#: src/view/screens/Settings/index.tsx:848 +#: src/view/screens/Settings/index.tsx:851 msgid "Reset preferences state" msgstr "" -#: src/view/screens/Settings/index.tsx:855 +#: src/view/screens/Settings/index.tsx:859 msgid "Resets the onboarding state" msgstr "" -#: src/view/screens/Settings/index.tsx:845 +#: src/view/screens/Settings/index.tsx:849 msgid "Resets the preferences state" msgstr "" -#: src/view/com/auth/login/LoginForm.tsx:269 +#: src/view/com/auth/login/LoginForm.tsx:272 msgid "Retries login" msgstr "" @@ -3958,8 +3958,8 @@ msgstr "" #: src/screens/Onboarding/StepInterests/index.tsx:224 #: src/view/com/auth/create/CreateAccount.tsx:181 #: src/view/com/auth/create/CreateAccount.tsx:186 -#: src/view/com/auth/login/LoginForm.tsx:268 #: src/view/com/auth/login/LoginForm.tsx:271 +#: src/view/com/auth/login/LoginForm.tsx:274 #: src/view/com/util/error/ErrorMessage.tsx:55 #: src/view/com/util/error/ErrorScreen.tsx:72 msgid "Retry" @@ -3986,12 +3986,6 @@ msgstr "" #~ msgid "SANDBOX. Posts and accounts are not permanent." #~ msgstr "" -#: src/view/com/lightbox/Lightbox.tsx:132 -#: src/view/com/modals/CreateOrEditList.tsx:345 -msgctxt "action" -msgid "Save" -msgstr "" - #: src/components/dialogs/BirthDateSettings.tsx:125 #: src/view/com/modals/ChangeHandle.tsx:173 #: src/view/com/modals/CreateOrEditList.tsx:337 @@ -3999,6 +3993,12 @@ msgstr "" msgid "Save" msgstr "" +#: src/view/com/lightbox/Lightbox.tsx:132 +#: src/view/com/modals/CreateOrEditList.tsx:345 +msgctxt "action" +msgid "Save" +msgstr "" + #: src/view/com/modals/AltImage.tsx:130 msgid "Save alt text" msgstr "" @@ -4161,7 +4161,7 @@ msgid "Select option {i} of {numItems}" msgstr "" #: src/view/com/auth/create/Step1.tsx:96 -#: src/view/com/auth/login/LoginForm.tsx:150 +#: src/view/com/auth/login/LoginForm.tsx:153 msgid "Select service" msgstr "" @@ -4335,23 +4335,23 @@ msgstr "" msgid "Sets Bluesky username" msgstr "" -#: src/view/screens/Settings/index.tsx:503 +#: src/view/screens/Settings/index.tsx:507 msgid "Sets color theme to dark" msgstr "" -#: src/view/screens/Settings/index.tsx:496 +#: src/view/screens/Settings/index.tsx:500 msgid "Sets color theme to light" msgstr "" -#: src/view/screens/Settings/index.tsx:490 +#: src/view/screens/Settings/index.tsx:494 msgid "Sets color theme to system setting" msgstr "" -#: src/view/screens/Settings/index.tsx:529 +#: src/view/screens/Settings/index.tsx:533 msgid "Sets dark theme to the dark theme" msgstr "" -#: src/view/screens/Settings/index.tsx:522 +#: src/view/screens/Settings/index.tsx:526 msgid "Sets dark theme to the dim theme" msgstr "" @@ -4376,12 +4376,12 @@ msgid "Sets image aspect ratio to wide" msgstr "" #: src/view/com/auth/create/Step1.tsx:97 -#: src/view/com/auth/login/LoginForm.tsx:151 +#: src/view/com/auth/login/LoginForm.tsx:154 msgid "Sets server for the Bluesky client" msgstr "" #: src/Navigation.tsx:139 -#: src/view/screens/Settings/index.tsx:309 +#: src/view/screens/Settings/index.tsx:313 #: src/view/shell/desktop/LeftNav.tsx:437 #: src/view/shell/Drawer.tsx:570 #: src/view/shell/Drawer.tsx:571 @@ -4424,7 +4424,7 @@ msgstr "" #: src/components/moderation/GlobalModerationLabelPref.tsx:45 #: src/components/moderation/PostHider.tsx:107 #: src/screens/Onboarding/StepModeration/ModerationOption.tsx:54 -#: src/view/screens/Settings/index.tsx:359 +#: src/view/screens/Settings/index.tsx:363 msgid "Show" msgstr "" @@ -4554,23 +4554,23 @@ msgstr "" msgid "Sign In" msgstr "" -#: src/view/com/auth/login/ChooseAccountForm.tsx:44 +#: src/view/com/auth/login/ChooseAccountForm.tsx:45 msgid "Sign in as {0}" msgstr "" -#: src/view/com/auth/login/ChooseAccountForm.tsx:122 +#: src/view/com/auth/login/ChooseAccountForm.tsx:127 #: src/view/com/auth/login/Login.tsx:116 msgid "Sign in as..." msgstr "" -#: src/view/com/auth/login/LoginForm.tsx:137 +#: src/view/com/auth/login/LoginForm.tsx:140 msgid "Sign into" msgstr "" #: src/view/com/modals/SwitchAccount.tsx:68 #: src/view/com/modals/SwitchAccount.tsx:73 -#: src/view/screens/Settings/index.tsx:105 -#: src/view/screens/Settings/index.tsx:108 +#: src/view/screens/Settings/index.tsx:107 +#: src/view/screens/Settings/index.tsx:110 msgid "Sign out" msgstr "" @@ -4595,11 +4595,11 @@ msgstr "" msgid "Sign-in Required" msgstr "" -#: src/view/screens/Settings/index.tsx:370 +#: src/view/screens/Settings/index.tsx:374 msgid "Signed in as" msgstr "" -#: src/view/com/auth/login/ChooseAccountForm.tsx:107 +#: src/view/com/auth/login/ChooseAccountForm.tsx:112 msgid "Signed in as @{0}" msgstr "" @@ -4679,7 +4679,7 @@ msgstr "" #~ msgid "Staging" #~ msgstr "" -#: src/view/screens/Settings/index.tsx:901 +#: src/view/screens/Settings/index.tsx:905 msgid "Status page" msgstr "" @@ -4687,12 +4687,12 @@ msgstr "" msgid "Step {0} of {numSteps}" msgstr "" -#: src/view/screens/Settings/index.tsx:288 +#: src/view/screens/Settings/index.tsx:292 msgid "Storage cleared, you need to restart the app now." msgstr "" #: src/Navigation.tsx:211 -#: src/view/screens/Settings/index.tsx:827 +#: src/view/screens/Settings/index.tsx:831 msgid "Storybook" msgstr "" @@ -4748,25 +4748,25 @@ msgstr "" #~ msgid "Swipe up to see more" #~ msgstr "" -#: src/view/com/modals/SwitchAccount.tsx:121 +#: src/view/com/modals/SwitchAccount.tsx:123 msgid "Switch Account" msgstr "" -#: src/view/com/modals/SwitchAccount.tsx:101 -#: src/view/screens/Settings/index.tsx:135 +#: src/view/com/modals/SwitchAccount.tsx:103 +#: src/view/screens/Settings/index.tsx:139 msgid "Switch to {0}" msgstr "" -#: src/view/com/modals/SwitchAccount.tsx:102 -#: src/view/screens/Settings/index.tsx:136 +#: src/view/com/modals/SwitchAccount.tsx:104 +#: src/view/screens/Settings/index.tsx:140 msgid "Switches the account you are logged in to" msgstr "" -#: src/view/screens/Settings/index.tsx:487 +#: src/view/screens/Settings/index.tsx:491 msgid "System" msgstr "" -#: src/view/screens/Settings/index.tsx:815 +#: src/view/screens/Settings/index.tsx:819 msgid "System log" msgstr "" @@ -4800,7 +4800,7 @@ msgstr "" #: src/Navigation.tsx:236 #: src/view/com/auth/create/Policies.tsx:59 -#: src/view/screens/Settings/index.tsx:915 +#: src/view/screens/Settings/index.tsx:919 #: src/view/screens/TermsOfService.tsx:29 #: src/view/shell/Drawer.tsx:259 msgid "Terms of Service" @@ -5136,12 +5136,12 @@ msgstr "" #~ msgid "This will hide this post from your feeds." #~ msgstr "" -#: src/view/screens/Settings/index.tsx:570 +#: src/view/screens/Settings/index.tsx:574 msgid "Thread preferences" msgstr "" #: src/view/screens/PreferencesThreads.tsx:53 -#: src/view/screens/Settings/index.tsx:580 +#: src/view/screens/Settings/index.tsx:584 msgid "Thread Preferences" msgstr "" @@ -5200,7 +5200,7 @@ msgstr "" #: src/view/com/auth/create/CreateAccount.tsx:58 #: src/view/com/auth/login/ForgotPasswordForm.tsx:87 #: src/view/com/auth/login/Login.tsx:76 -#: src/view/com/auth/login/LoginForm.tsx:118 +#: src/view/com/auth/login/LoginForm.tsx:121 #: src/view/com/modals/ChangePassword.tsx:70 msgid "Unable to contact your service. Please check your Internet connection." msgstr "" @@ -5454,8 +5454,8 @@ msgstr "" msgid "User Lists" msgstr "" -#: src/view/com/auth/login/LoginForm.tsx:177 -#: src/view/com/auth/login/LoginForm.tsx:195 +#: src/view/com/auth/login/LoginForm.tsx:180 +#: src/view/com/auth/login/LoginForm.tsx:198 msgid "Username or email address" msgstr "" @@ -5487,15 +5487,15 @@ msgstr "" msgid "Verify {0}" msgstr "" -#: src/view/screens/Settings/index.tsx:940 +#: src/view/screens/Settings/index.tsx:944 msgid "Verify email" msgstr "" -#: src/view/screens/Settings/index.tsx:965 +#: src/view/screens/Settings/index.tsx:969 msgid "Verify my email" msgstr "" -#: src/view/screens/Settings/index.tsx:974 +#: src/view/screens/Settings/index.tsx:978 msgid "Verify My Email" msgstr "" @@ -5985,7 +5985,7 @@ msgid "Your posts, likes, and blocks are public. Mutes are private." msgstr "" #: src/view/com/modals/SwitchAccount.tsx:88 -#: src/view/screens/Settings/index.tsx:123 +#: src/view/screens/Settings/index.tsx:125 msgid "Your profile" msgstr "" diff --git a/src/locale/locales/es/messages.po b/src/locale/locales/es/messages.po index bbdf265613..60503d82e9 100644 --- a/src/locale/locales/es/messages.po +++ b/src/locale/locales/es/messages.po @@ -89,7 +89,7 @@ msgid "Access profile and other navigation links" msgstr "" #: src/view/com/modals/EditImage.tsx:299 -#: src/view/screens/Settings/index.tsx:466 +#: src/view/screens/Settings/index.tsx:470 msgid "Accessibility" msgstr "Accesibilidad" @@ -97,9 +97,9 @@ msgstr "Accesibilidad" msgid "account" msgstr "" -#: src/view/com/auth/login/LoginForm.tsx:166 -#: src/view/screens/Settings/index.tsx:323 -#: src/view/screens/Settings/index.tsx:739 +#: src/view/com/auth/login/LoginForm.tsx:169 +#: src/view/screens/Settings/index.tsx:327 +#: src/view/screens/Settings/index.tsx:743 msgid "Account" msgstr "Cuenta" @@ -161,8 +161,8 @@ msgstr "Agregar una advertencia de cuenta" msgid "Add a user to this list" msgstr "Agregar un usuario a esta lista" -#: src/view/screens/Settings/index.tsx:398 -#: src/view/screens/Settings/index.tsx:407 +#: src/view/screens/Settings/index.tsx:402 +#: src/view/screens/Settings/index.tsx:411 msgid "Add account" msgstr "Agregar una cuenta" @@ -251,7 +251,7 @@ msgid "Adult content is disabled." msgstr "" #: src/screens/Moderation/index.tsx:377 -#: src/view/screens/Settings/index.tsx:680 +#: src/view/screens/Settings/index.tsx:684 msgid "Advanced" msgstr "Avanzado" @@ -264,7 +264,7 @@ msgstr "" msgid "Already have a code?" msgstr "" -#: src/view/com/auth/login/ChooseAccountForm.tsx:102 +#: src/view/com/auth/login/ChooseAccountForm.tsx:103 msgid "Already signed in as @{0}" msgstr "" @@ -328,7 +328,7 @@ msgstr "" msgid "App Password names must be at least 4 characters long." msgstr "" -#: src/view/screens/Settings/index.tsx:691 +#: src/view/screens/Settings/index.tsx:695 msgid "App password settings" msgstr "" @@ -338,7 +338,7 @@ msgstr "" #: src/Navigation.tsx:251 #: src/view/screens/AppPasswords.tsx:189 -#: src/view/screens/Settings/index.tsx:700 +#: src/view/screens/Settings/index.tsx:704 msgid "App Passwords" msgstr "Contraseñas de la app" @@ -372,7 +372,7 @@ msgstr "" #~ msgid "Appeal this decision." #~ msgstr "Apelar esta decisión." -#: src/view/screens/Settings/index.tsx:481 +#: src/view/screens/Settings/index.tsx:485 msgid "Appearance" msgstr "Aspecto exterior" @@ -412,9 +412,9 @@ msgstr "Desnudez artística o no erótica." #: src/components/moderation/LabelsOnMeDialog.tsx:248 #: src/screens/Profile/Header/Shell.tsx:97 #: src/view/com/auth/create/CreateAccount.tsx:158 -#: src/view/com/auth/login/ChooseAccountForm.tsx:155 +#: src/view/com/auth/login/ChooseAccountForm.tsx:160 #: src/view/com/auth/login/ForgotPasswordForm.tsx:174 -#: src/view/com/auth/login/LoginForm.tsx:259 +#: src/view/com/auth/login/LoginForm.tsx:262 #: src/view/com/auth/login/SetNewPasswordForm.tsx:179 #: src/view/com/util/ViewHeader.tsx:87 msgid "Back" @@ -429,7 +429,7 @@ msgstr "Regresar" msgid "Based on your interest in {interestsText}" msgstr "" -#: src/view/screens/Settings/index.tsx:538 +#: src/view/screens/Settings/index.tsx:542 msgid "Basics" msgstr "Conceptos básicos" @@ -438,7 +438,7 @@ msgstr "Conceptos básicos" msgid "Birthday" msgstr "Cumpleaños" -#: src/view/screens/Settings/index.tsx:355 +#: src/view/screens/Settings/index.tsx:359 msgid "Birthday:" msgstr "Cumpleaños:" @@ -565,7 +565,7 @@ msgstr "" msgid "Books" msgstr "" -#: src/view/screens/Settings/index.tsx:889 +#: src/view/screens/Settings/index.tsx:893 msgid "Build version {0} {1}" msgstr "Versión {0} {1}" @@ -682,17 +682,17 @@ msgstr "" msgid "Change" msgstr "" -#: src/view/screens/Settings/index.tsx:349 +#: src/view/screens/Settings/index.tsx:353 msgctxt "action" msgid "Change" msgstr "Cambiar" -#: src/view/screens/Settings/index.tsx:712 +#: src/view/screens/Settings/index.tsx:716 msgid "Change handle" msgstr "Cambiar el identificador" #: src/view/com/modals/ChangeHandle.tsx:161 -#: src/view/screens/Settings/index.tsx:723 +#: src/view/screens/Settings/index.tsx:727 msgid "Change Handle" msgstr "Cambiar el identificador" @@ -700,12 +700,12 @@ msgstr "Cambiar el identificador" msgid "Change my email" msgstr "Cambiar mi correo electrónico" -#: src/view/screens/Settings/index.tsx:750 +#: src/view/screens/Settings/index.tsx:754 msgid "Change password" msgstr "" #: src/view/com/modals/ChangePassword.tsx:141 -#: src/view/screens/Settings/index.tsx:761 +#: src/view/screens/Settings/index.tsx:765 msgid "Change Password" msgstr "" @@ -771,19 +771,19 @@ msgstr "" msgid "Choose your password" msgstr "Elige tu contraseña" -#: src/view/screens/Settings/index.tsx:864 +#: src/view/screens/Settings/index.tsx:868 msgid "Clear all legacy storage data" msgstr "Borrar todos los datos de almacenamiento heredados" -#: src/view/screens/Settings/index.tsx:867 +#: src/view/screens/Settings/index.tsx:871 msgid "Clear all legacy storage data (restart after this)" msgstr "Borrar todos los datos de almacenamiento heredados (reiniciar después de esto)" -#: src/view/screens/Settings/index.tsx:876 +#: src/view/screens/Settings/index.tsx:880 msgid "Clear all storage data" msgstr "Borrar todos los datos de almacenamiento" -#: src/view/screens/Settings/index.tsx:879 +#: src/view/screens/Settings/index.tsx:883 msgid "Clear all storage data (restart after this)" msgstr "Borrar todos los datos de almacenamiento (reiniciar después de esto)" @@ -792,11 +792,11 @@ msgstr "Borrar todos los datos de almacenamiento (reiniciar después de esto)" msgid "Clear search query" msgstr "Borrar consulta de búsqueda" -#: src/view/screens/Settings/index.tsx:865 +#: src/view/screens/Settings/index.tsx:869 msgid "Clears all legacy storage data" msgstr "" -#: src/view/screens/Settings/index.tsx:877 +#: src/view/screens/Settings/index.tsx:881 msgid "Clears all storage data" msgstr "" @@ -963,7 +963,7 @@ msgstr "Código de confirmación" #~ msgstr "" #: src/view/com/auth/create/CreateAccount.tsx:193 -#: src/view/com/auth/login/LoginForm.tsx:278 +#: src/view/com/auth/login/LoginForm.tsx:281 msgid "Connecting..." msgstr "Conectando..." @@ -1051,7 +1051,7 @@ msgstr "" msgid "Copied" msgstr "Copiado" -#: src/view/screens/Settings/index.tsx:247 +#: src/view/screens/Settings/index.tsx:251 msgid "Copied build version to clipboard" msgstr "" @@ -1115,7 +1115,7 @@ msgstr "No se ha podido cargar la lista" msgid "Create a new account" msgstr "Crear una cuenta nueva" -#: src/view/screens/Settings/index.tsx:399 +#: src/view/screens/Settings/index.tsx:403 msgid "Create a new Bluesky account" msgstr "" @@ -1178,8 +1178,8 @@ msgstr "" #~ msgid "Danger Zone" #~ msgstr "Zona de peligro" -#: src/view/screens/Settings/index.tsx:500 -#: src/view/screens/Settings/index.tsx:526 +#: src/view/screens/Settings/index.tsx:504 +#: src/view/screens/Settings/index.tsx:530 msgid "Dark" msgstr "" @@ -1187,11 +1187,11 @@ msgstr "" msgid "Dark mode" msgstr "" -#: src/view/screens/Settings/index.tsx:513 +#: src/view/screens/Settings/index.tsx:517 msgid "Dark Theme" msgstr "" -#: src/view/screens/Settings/index.tsx:837 +#: src/view/screens/Settings/index.tsx:841 msgid "Debug Moderation" msgstr "" @@ -1205,7 +1205,7 @@ msgstr "" msgid "Delete" msgstr "" -#: src/view/screens/Settings/index.tsx:792 +#: src/view/screens/Settings/index.tsx:796 msgid "Delete account" msgstr "Borrar la cuenta" @@ -1233,7 +1233,7 @@ msgstr "Borrar mi cuenta" #~ msgid "Delete my account…" #~ msgstr "Borrar mi cuenta..." -#: src/view/screens/Settings/index.tsx:804 +#: src/view/screens/Settings/index.tsx:808 msgid "Delete My Account…" msgstr "" @@ -1273,7 +1273,7 @@ msgstr "Descripción" msgid "Did you want to say anything?" msgstr "¿Quieres decir algo?" -#: src/view/screens/Settings/index.tsx:519 +#: src/view/screens/Settings/index.tsx:523 msgid "Dim" msgstr "" @@ -1342,19 +1342,6 @@ msgstr "¡Dominio verificado!" #~ msgid "Don't have an invite code?" #~ msgstr "" -#: src/view/com/auth/onboarding/RecommendedFollows.tsx:86 -#: src/view/com/modals/EditImage.tsx:333 -#: src/view/com/modals/ListAddRemoveUsers.tsx:144 -#: src/view/com/modals/SelfLabel.tsx:157 -#: src/view/com/modals/Threadgate.tsx:129 -#: src/view/com/modals/Threadgate.tsx:132 -#: src/view/com/modals/UserAddRemoveLists.tsx:95 -#: src/view/com/modals/UserAddRemoveLists.tsx:98 -#: src/view/screens/PreferencesThreads.tsx:162 -msgctxt "action" -msgid "Done" -msgstr "" - #: src/components/dialogs/BirthDateSettings.tsx:119 #: src/components/dialogs/BirthDateSettings.tsx:125 #: src/view/com/auth/server-input/index.tsx:165 @@ -1371,11 +1358,24 @@ msgstr "" msgid "Done" msgstr "Listo" +#: src/view/com/auth/onboarding/RecommendedFollows.tsx:86 +#: src/view/com/modals/EditImage.tsx:333 +#: src/view/com/modals/ListAddRemoveUsers.tsx:144 +#: src/view/com/modals/SelfLabel.tsx:157 +#: src/view/com/modals/Threadgate.tsx:129 +#: src/view/com/modals/Threadgate.tsx:132 +#: src/view/com/modals/UserAddRemoveLists.tsx:95 +#: src/view/com/modals/UserAddRemoveLists.tsx:98 +#: src/view/screens/PreferencesThreads.tsx:162 +msgctxt "action" +msgid "Done" +msgstr "" + #: src/view/com/modals/lang-settings/ConfirmLanguagesButton.tsx:42 msgid "Done{extraText}" msgstr "Listo{extraText}" -#: src/view/com/auth/login/ChooseAccountForm.tsx:45 +#: src/view/com/auth/login/ChooseAccountForm.tsx:46 msgid "Double tap to sign in" msgstr "" @@ -1524,7 +1524,7 @@ msgstr "Correo electrónico actualizado" msgid "Email verified" msgstr "" -#: src/view/screens/Settings/index.tsx:327 +#: src/view/screens/Settings/index.tsx:331 msgid "Email:" msgstr "Correo electrónico:" @@ -1677,12 +1677,12 @@ msgstr "" msgid "Explicit sexual images." msgstr "" -#: src/view/screens/Settings/index.tsx:773 +#: src/view/screens/Settings/index.tsx:777 msgid "Export my data" msgstr "" #: src/view/screens/Settings/ExportCarDialog.tsx:44 -#: src/view/screens/Settings/index.tsx:784 +#: src/view/screens/Settings/index.tsx:788 msgid "Export My Data" msgstr "" @@ -1697,11 +1697,11 @@ msgstr "" #: src/Navigation.tsx:275 #: src/view/screens/PreferencesExternalEmbeds.tsx:52 -#: src/view/screens/Settings/index.tsx:673 +#: src/view/screens/Settings/index.tsx:677 msgid "External Media Preferences" msgstr "" -#: src/view/screens/Settings/index.tsx:664 +#: src/view/screens/Settings/index.tsx:668 msgid "External media settings" msgstr "" @@ -1906,7 +1906,7 @@ msgstr "Siguiendo" msgid "Following {0}" msgstr "" -#: src/view/screens/Settings/index.tsx:549 +#: src/view/screens/Settings/index.tsx:553 msgid "Following feed preferences" msgstr "" @@ -1914,7 +1914,7 @@ msgstr "" #: src/view/com/home/HomeHeaderLayout.web.tsx:50 #: src/view/com/home/HomeHeaderLayoutMobile.tsx:84 #: src/view/screens/PreferencesFollowingFeed.tsx:104 -#: src/view/screens/Settings/index.tsx:558 +#: src/view/screens/Settings/index.tsx:562 msgid "Following Feed Preferences" msgstr "" @@ -1938,11 +1938,11 @@ msgstr "Por razones de seguridad, tendremos que enviarte un código de confirmac msgid "For security reasons, you won't be able to view this again. If you lose this password, you'll need to generate a new one." msgstr "Por razones de seguridad, no podrás volver a verla. Si pierdes esta contraseña, tendrás que generar una nueva." -#: src/view/com/auth/login/LoginForm.tsx:241 +#: src/view/com/auth/login/LoginForm.tsx:244 msgid "Forgot" msgstr "Lo olvidé" -#: src/view/com/auth/login/LoginForm.tsx:238 +#: src/view/com/auth/login/LoginForm.tsx:241 msgid "Forgot password" msgstr "Olvidé mi contraseña" @@ -2019,7 +2019,7 @@ msgstr "" #: src/view/com/auth/login/ForgotPasswordForm.tsx:189 #: src/view/com/auth/login/ForgotPasswordForm.tsx:218 -#: src/view/com/auth/login/LoginForm.tsx:288 +#: src/view/com/auth/login/LoginForm.tsx:291 #: src/view/com/auth/login/SetNewPasswordForm.tsx:195 #: src/view/com/modals/ChangePassword.tsx:167 msgid "Go to next" @@ -2260,11 +2260,11 @@ msgstr "" #~ msgid "Input phone number for SMS verification" #~ msgstr "" -#: src/view/com/auth/login/LoginForm.tsx:230 +#: src/view/com/auth/login/LoginForm.tsx:233 msgid "Input the password tied to {identifier}" msgstr "" -#: src/view/com/auth/login/LoginForm.tsx:197 +#: src/view/com/auth/login/LoginForm.tsx:200 msgid "Input the username or email address you used at signup" msgstr "" @@ -2276,7 +2276,7 @@ msgstr "" #~ msgid "Input your email to get on the Bluesky waitlist" #~ msgstr "" -#: src/view/com/auth/login/LoginForm.tsx:229 +#: src/view/com/auth/login/LoginForm.tsx:232 msgid "Input your password" msgstr "" @@ -2292,7 +2292,7 @@ msgstr "" msgid "Invalid or unsupported post record" msgstr "" -#: src/view/com/auth/login/LoginForm.tsx:113 +#: src/view/com/auth/login/LoginForm.tsx:116 msgid "Invalid username or password" msgstr "Nombre de usuario o contraseña no válidos" @@ -2387,7 +2387,7 @@ msgstr "" msgid "Language selection" msgstr "Escoger el idioma" -#: src/view/screens/Settings/index.tsx:610 +#: src/view/screens/Settings/index.tsx:614 msgid "Language settings" msgstr "" @@ -2396,7 +2396,7 @@ msgstr "" msgid "Language Settings" msgstr "Configuración del idioma" -#: src/view/screens/Settings/index.tsx:619 +#: src/view/screens/Settings/index.tsx:623 msgid "Languages" msgstr "Idiomas" @@ -2442,7 +2442,7 @@ msgstr "Salir de Bluesky" msgid "left to go." msgstr "" -#: src/view/screens/Settings/index.tsx:292 +#: src/view/screens/Settings/index.tsx:296 msgid "Legacy storage cleared, you need to restart the app now." msgstr "" @@ -2460,7 +2460,7 @@ msgstr "" #~ msgid "Library" #~ msgstr "Librería" -#: src/view/screens/Settings/index.tsx:494 +#: src/view/screens/Settings/index.tsx:498 msgid "Light" msgstr "" @@ -2599,7 +2599,7 @@ msgstr "" msgid "Logged-out visibility" msgstr "Visibilidad de desconexión" -#: src/view/com/auth/login/ChooseAccountForm.tsx:137 +#: src/view/com/auth/login/ChooseAccountForm.tsx:142 msgid "Login to account that is not listed" msgstr "Acceder a una cuenta que no está en la lista" @@ -2646,7 +2646,7 @@ msgstr "" #: src/Navigation.tsx:119 #: src/screens/Moderation/index.tsx:106 -#: src/view/screens/Settings/index.tsx:641 +#: src/view/screens/Settings/index.tsx:645 #: src/view/shell/desktop/LeftNav.tsx:401 #: src/view/shell/Drawer.tsx:514 #: src/view/shell/Drawer.tsx:515 @@ -2689,7 +2689,7 @@ msgstr "Listas de moderación" msgid "Moderation Lists" msgstr "Listas de moderación" -#: src/view/screens/Settings/index.tsx:635 +#: src/view/screens/Settings/index.tsx:639 msgid "Moderation settings" msgstr "" @@ -2836,11 +2836,11 @@ msgstr "Mis canales de noticias" msgid "My Profile" msgstr "Mi perfil" -#: src/view/screens/Settings/index.tsx:592 +#: src/view/screens/Settings/index.tsx:596 msgid "My saved feeds" msgstr "" -#: src/view/screens/Settings/index.tsx:598 +#: src/view/screens/Settings/index.tsx:602 msgid "My Saved Feeds" msgstr "Mis canales de noticias guardados" @@ -2869,7 +2869,7 @@ msgstr "" #: src/view/com/auth/login/ForgotPasswordForm.tsx:190 #: src/view/com/auth/login/ForgotPasswordForm.tsx:219 -#: src/view/com/auth/login/LoginForm.tsx:289 +#: src/view/com/auth/login/LoginForm.tsx:292 #: src/view/com/auth/login/SetNewPasswordForm.tsx:196 #: src/view/com/modals/ChangePassword.tsx:168 msgid "Navigates to the next screen" @@ -2962,7 +2962,7 @@ msgstr "" #: src/view/com/auth/create/CreateAccount.tsx:172 #: src/view/com/auth/login/ForgotPasswordForm.tsx:182 #: src/view/com/auth/login/ForgotPasswordForm.tsx:192 -#: src/view/com/auth/login/LoginForm.tsx:291 +#: src/view/com/auth/login/LoginForm.tsx:294 #: src/view/com/auth/login/SetNewPasswordForm.tsx:187 #: src/view/com/auth/login/SetNewPasswordForm.tsx:198 #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:79 @@ -3107,7 +3107,7 @@ msgstr "Está bien" msgid "Oldest replies first" msgstr "" -#: src/view/screens/Settings/index.tsx:240 +#: src/view/screens/Settings/index.tsx:244 msgid "Onboarding reset" msgstr "" @@ -3146,7 +3146,7 @@ msgstr "" msgid "Open feed options menu" msgstr "" -#: src/view/screens/Settings/index.tsx:730 +#: src/view/screens/Settings/index.tsx:734 msgid "Open links with in-app browser" msgstr "" @@ -3166,12 +3166,12 @@ msgstr "Abrir navegación" msgid "Open post options menu" msgstr "" -#: src/view/screens/Settings/index.tsx:824 -#: src/view/screens/Settings/index.tsx:834 +#: src/view/screens/Settings/index.tsx:828 +#: src/view/screens/Settings/index.tsx:838 msgid "Open storybook page" msgstr "" -#: src/view/screens/Settings/index.tsx:812 +#: src/view/screens/Settings/index.tsx:816 msgid "Open system log" msgstr "" @@ -3195,7 +3195,7 @@ msgstr "" msgid "Opens composer" msgstr "" -#: src/view/screens/Settings/index.tsx:611 +#: src/view/screens/Settings/index.tsx:615 msgid "Opens configurable language settings" msgstr "Abrir la configuración del idioma que se puede ajustar" @@ -3207,7 +3207,7 @@ msgstr "" #~ msgid "Opens editor for profile display name, avatar, background image, and description" #~ msgstr "" -#: src/view/screens/Settings/index.tsx:665 +#: src/view/screens/Settings/index.tsx:669 msgid "Opens external embeds settings" msgstr "" @@ -3237,7 +3237,7 @@ msgstr "" msgid "Opens list of invite codes" msgstr "Abre la lista de códigos de invitación" -#: src/view/screens/Settings/index.tsx:794 +#: src/view/screens/Settings/index.tsx:798 msgid "Opens modal for account deletion confirmation. Requires email code" msgstr "" @@ -3245,19 +3245,19 @@ msgstr "" #~ msgid "Opens modal for account deletion confirmation. Requires email code." #~ msgstr "" -#: src/view/screens/Settings/index.tsx:752 +#: src/view/screens/Settings/index.tsx:756 msgid "Opens modal for changing your Bluesky password" msgstr "" -#: src/view/screens/Settings/index.tsx:714 +#: src/view/screens/Settings/index.tsx:718 msgid "Opens modal for choosing a new Bluesky handle" msgstr "" -#: src/view/screens/Settings/index.tsx:775 +#: src/view/screens/Settings/index.tsx:779 msgid "Opens modal for downloading your Bluesky account data (repository)" msgstr "" -#: src/view/screens/Settings/index.tsx:966 +#: src/view/screens/Settings/index.tsx:970 msgid "Opens modal for email verification" msgstr "" @@ -3265,11 +3265,11 @@ msgstr "" msgid "Opens modal for using custom domain" msgstr "Abre el modal para usar el dominio personalizado" -#: src/view/screens/Settings/index.tsx:636 +#: src/view/screens/Settings/index.tsx:640 msgid "Opens moderation settings" msgstr "Abre la configuración de moderación" -#: src/view/com/auth/login/LoginForm.tsx:239 +#: src/view/com/auth/login/LoginForm.tsx:242 msgid "Opens password reset form" msgstr "" @@ -3278,11 +3278,11 @@ msgstr "" msgid "Opens screen to edit Saved Feeds" msgstr "" -#: src/view/screens/Settings/index.tsx:593 +#: src/view/screens/Settings/index.tsx:597 msgid "Opens screen with all saved feeds" msgstr "Abre la pantalla con todas las noticias guardadas" -#: src/view/screens/Settings/index.tsx:692 +#: src/view/screens/Settings/index.tsx:696 msgid "Opens the app password settings" msgstr "" @@ -3290,7 +3290,7 @@ msgstr "" #~ msgid "Opens the app password settings page" #~ msgstr "Abre la página de configuración de la contraseña de la app" -#: src/view/screens/Settings/index.tsx:550 +#: src/view/screens/Settings/index.tsx:554 msgid "Opens the Following feed preferences" msgstr "" @@ -3302,16 +3302,16 @@ msgstr "" msgid "Opens the linked website" msgstr "" -#: src/view/screens/Settings/index.tsx:825 -#: src/view/screens/Settings/index.tsx:835 +#: src/view/screens/Settings/index.tsx:829 +#: src/view/screens/Settings/index.tsx:839 msgid "Opens the storybook page" msgstr "Abre la página del libro de cuentos" -#: src/view/screens/Settings/index.tsx:813 +#: src/view/screens/Settings/index.tsx:817 msgid "Opens the system log page" msgstr "Abre la página de la bitácora del sistema" -#: src/view/screens/Settings/index.tsx:571 +#: src/view/screens/Settings/index.tsx:575 msgid "Opens the threads preferences" msgstr "Abre las preferencias de hilos" @@ -3331,7 +3331,7 @@ msgstr "" msgid "Other" msgstr "" -#: src/view/com/auth/login/ChooseAccountForm.tsx:142 +#: src/view/com/auth/login/ChooseAccountForm.tsx:147 msgid "Other account" msgstr "Otra cuenta" @@ -3354,8 +3354,8 @@ msgstr "" #: src/view/com/auth/create/Step1.tsx:191 #: src/view/com/auth/create/Step1.tsx:201 -#: src/view/com/auth/login/LoginForm.tsx:210 -#: src/view/com/auth/login/LoginForm.tsx:226 +#: src/view/com/auth/login/LoginForm.tsx:213 +#: src/view/com/auth/login/LoginForm.tsx:229 #: src/view/com/auth/login/SetNewPasswordForm.tsx:161 #: src/view/com/modals/DeleteAccount.tsx:195 #: src/view/com/modals/DeleteAccount.tsx:202 @@ -3593,7 +3593,7 @@ msgstr "Lenguajes primarios" msgid "Prioritize Your Follows" msgstr "Priorizar los usuarios a los que sigue" -#: src/view/screens/Settings/index.tsx:648 +#: src/view/screens/Settings/index.tsx:652 #: src/view/shell/desktop/RightNav.tsx:72 msgid "Privacy" msgstr "Privacidad" @@ -3601,7 +3601,7 @@ msgstr "Privacidad" #: src/Navigation.tsx:231 #: src/view/com/auth/create/Policies.tsx:69 #: src/view/screens/PrivacyPolicy.tsx:29 -#: src/view/screens/Settings/index.tsx:921 +#: src/view/screens/Settings/index.tsx:925 #: src/view/shell/Drawer.tsx:265 msgid "Privacy Policy" msgstr "Política de privacidad" @@ -3627,7 +3627,7 @@ msgstr "Perfil" msgid "Profile updated" msgstr "" -#: src/view/screens/Settings/index.tsx:979 +#: src/view/screens/Settings/index.tsx:983 msgid "Protect your account by verifying your email." msgstr "Protege tu cuenta verificando tu correo electrónico." @@ -3891,7 +3891,7 @@ msgstr "Solicitar un cambio" msgid "Request Code" msgstr "" -#: src/view/screens/Settings/index.tsx:471 +#: src/view/screens/Settings/index.tsx:475 msgid "Require alt text before posting" msgstr "" @@ -3913,8 +3913,8 @@ msgstr "" #~ msgid "Reset onboarding" #~ msgstr "" -#: src/view/screens/Settings/index.tsx:854 -#: src/view/screens/Settings/index.tsx:857 +#: src/view/screens/Settings/index.tsx:858 +#: src/view/screens/Settings/index.tsx:861 msgid "Reset onboarding state" msgstr "Restablecer el estado de incorporación" @@ -3926,20 +3926,20 @@ msgstr "Restablecer la contraseña" #~ msgid "Reset preferences" #~ msgstr "" -#: src/view/screens/Settings/index.tsx:844 -#: src/view/screens/Settings/index.tsx:847 +#: src/view/screens/Settings/index.tsx:848 +#: src/view/screens/Settings/index.tsx:851 msgid "Reset preferences state" msgstr "Restablecer el estado de preferencias" -#: src/view/screens/Settings/index.tsx:855 +#: src/view/screens/Settings/index.tsx:859 msgid "Resets the onboarding state" msgstr "Restablece el estado de incorporación" -#: src/view/screens/Settings/index.tsx:845 +#: src/view/screens/Settings/index.tsx:849 msgid "Resets the preferences state" msgstr "Restablecer el estado de preferencias" -#: src/view/com/auth/login/LoginForm.tsx:269 +#: src/view/com/auth/login/LoginForm.tsx:272 msgid "Retries login" msgstr "" @@ -3953,8 +3953,8 @@ msgstr "" #: src/screens/Onboarding/StepInterests/index.tsx:224 #: src/view/com/auth/create/CreateAccount.tsx:181 #: src/view/com/auth/create/CreateAccount.tsx:186 -#: src/view/com/auth/login/LoginForm.tsx:268 #: src/view/com/auth/login/LoginForm.tsx:271 +#: src/view/com/auth/login/LoginForm.tsx:274 #: src/view/com/util/error/ErrorMessage.tsx:55 #: src/view/com/util/error/ErrorScreen.tsx:72 msgid "Retry" @@ -3981,12 +3981,6 @@ msgstr "" #~ msgid "SANDBOX. Posts and accounts are not permanent." #~ msgstr "" -#: src/view/com/lightbox/Lightbox.tsx:132 -#: src/view/com/modals/CreateOrEditList.tsx:345 -msgctxt "action" -msgid "Save" -msgstr "" - #: src/components/dialogs/BirthDateSettings.tsx:125 #: src/view/com/modals/ChangeHandle.tsx:173 #: src/view/com/modals/CreateOrEditList.tsx:337 @@ -3994,6 +3988,12 @@ msgstr "" msgid "Save" msgstr "Guardar" +#: src/view/com/lightbox/Lightbox.tsx:132 +#: src/view/com/modals/CreateOrEditList.tsx:345 +msgctxt "action" +msgid "Save" +msgstr "" + #: src/view/com/modals/AltImage.tsx:130 msgid "Save alt text" msgstr "Guardar el texto alt" @@ -4156,7 +4156,7 @@ msgid "Select option {i} of {numItems}" msgstr "" #: src/view/com/auth/create/Step1.tsx:96 -#: src/view/com/auth/login/LoginForm.tsx:150 +#: src/view/com/auth/login/LoginForm.tsx:153 msgid "Select service" msgstr "Selecciona el servicio" @@ -4330,23 +4330,23 @@ msgstr "" msgid "Sets Bluesky username" msgstr "" -#: src/view/screens/Settings/index.tsx:503 +#: src/view/screens/Settings/index.tsx:507 msgid "Sets color theme to dark" msgstr "" -#: src/view/screens/Settings/index.tsx:496 +#: src/view/screens/Settings/index.tsx:500 msgid "Sets color theme to light" msgstr "" -#: src/view/screens/Settings/index.tsx:490 +#: src/view/screens/Settings/index.tsx:494 msgid "Sets color theme to system setting" msgstr "" -#: src/view/screens/Settings/index.tsx:529 +#: src/view/screens/Settings/index.tsx:533 msgid "Sets dark theme to the dark theme" msgstr "" -#: src/view/screens/Settings/index.tsx:522 +#: src/view/screens/Settings/index.tsx:526 msgid "Sets dark theme to the dim theme" msgstr "" @@ -4371,12 +4371,12 @@ msgid "Sets image aspect ratio to wide" msgstr "" #: src/view/com/auth/create/Step1.tsx:97 -#: src/view/com/auth/login/LoginForm.tsx:151 +#: src/view/com/auth/login/LoginForm.tsx:154 msgid "Sets server for the Bluesky client" msgstr "" #: src/Navigation.tsx:139 -#: src/view/screens/Settings/index.tsx:309 +#: src/view/screens/Settings/index.tsx:313 #: src/view/shell/desktop/LeftNav.tsx:437 #: src/view/shell/Drawer.tsx:570 #: src/view/shell/Drawer.tsx:571 @@ -4419,7 +4419,7 @@ msgstr "Compartir las noticias" #: src/components/moderation/GlobalModerationLabelPref.tsx:45 #: src/components/moderation/PostHider.tsx:107 #: src/screens/Onboarding/StepModeration/ModerationOption.tsx:54 -#: src/view/screens/Settings/index.tsx:359 +#: src/view/screens/Settings/index.tsx:363 msgid "Show" msgstr "Mostrar" @@ -4549,23 +4549,23 @@ msgstr "Iniciar sesión" msgid "Sign In" msgstr "Iniciar sesión" -#: src/view/com/auth/login/ChooseAccountForm.tsx:44 +#: src/view/com/auth/login/ChooseAccountForm.tsx:45 msgid "Sign in as {0}" msgstr "Iniciar sesión como {0}" -#: src/view/com/auth/login/ChooseAccountForm.tsx:122 +#: src/view/com/auth/login/ChooseAccountForm.tsx:127 #: src/view/com/auth/login/Login.tsx:116 msgid "Sign in as..." msgstr "Iniciar sesión como ..." -#: src/view/com/auth/login/LoginForm.tsx:137 +#: src/view/com/auth/login/LoginForm.tsx:140 msgid "Sign into" msgstr "Iniciar sesión en" #: src/view/com/modals/SwitchAccount.tsx:68 #: src/view/com/modals/SwitchAccount.tsx:73 -#: src/view/screens/Settings/index.tsx:105 -#: src/view/screens/Settings/index.tsx:108 +#: src/view/screens/Settings/index.tsx:107 +#: src/view/screens/Settings/index.tsx:110 msgid "Sign out" msgstr "Cerrar sesión" @@ -4590,11 +4590,11 @@ msgstr "Regístrate o inicia sesión para unirte a la conversación" msgid "Sign-in Required" msgstr "Se requiere iniciar sesión" -#: src/view/screens/Settings/index.tsx:370 +#: src/view/screens/Settings/index.tsx:374 msgid "Signed in as" msgstr "Se inició sesión como" -#: src/view/com/auth/login/ChooseAccountForm.tsx:107 +#: src/view/com/auth/login/ChooseAccountForm.tsx:112 msgid "Signed in as @{0}" msgstr "" @@ -4674,7 +4674,7 @@ msgstr "Cuadrado" #~ msgid "Staging" #~ msgstr "Puesta en escena" -#: src/view/screens/Settings/index.tsx:901 +#: src/view/screens/Settings/index.tsx:905 msgid "Status page" msgstr "Página de estado" @@ -4682,12 +4682,12 @@ msgstr "Página de estado" msgid "Step {0} of {numSteps}" msgstr "" -#: src/view/screens/Settings/index.tsx:288 +#: src/view/screens/Settings/index.tsx:292 msgid "Storage cleared, you need to restart the app now." msgstr "" #: src/Navigation.tsx:211 -#: src/view/screens/Settings/index.tsx:827 +#: src/view/screens/Settings/index.tsx:831 msgid "Storybook" msgstr "Libro de cuentos" @@ -4743,25 +4743,25 @@ msgstr "Soporte" #~ msgid "Swipe up to see more" #~ msgstr "" -#: src/view/com/modals/SwitchAccount.tsx:121 +#: src/view/com/modals/SwitchAccount.tsx:123 msgid "Switch Account" msgstr "Cambiar a otra cuenta" -#: src/view/com/modals/SwitchAccount.tsx:101 -#: src/view/screens/Settings/index.tsx:135 +#: src/view/com/modals/SwitchAccount.tsx:103 +#: src/view/screens/Settings/index.tsx:139 msgid "Switch to {0}" msgstr "" -#: src/view/com/modals/SwitchAccount.tsx:102 -#: src/view/screens/Settings/index.tsx:136 +#: src/view/com/modals/SwitchAccount.tsx:104 +#: src/view/screens/Settings/index.tsx:140 msgid "Switches the account you are logged in to" msgstr "" -#: src/view/screens/Settings/index.tsx:487 +#: src/view/screens/Settings/index.tsx:491 msgid "System" msgstr "" -#: src/view/screens/Settings/index.tsx:815 +#: src/view/screens/Settings/index.tsx:819 msgid "System log" msgstr "Bitácora del sistema" @@ -4795,7 +4795,7 @@ msgstr "Condiciones" #: src/Navigation.tsx:236 #: src/view/com/auth/create/Policies.tsx:59 -#: src/view/screens/Settings/index.tsx:915 +#: src/view/screens/Settings/index.tsx:919 #: src/view/screens/TermsOfService.tsx:29 #: src/view/shell/Drawer.tsx:259 msgid "Terms of Service" @@ -5131,12 +5131,12 @@ msgstr "" #~ msgid "This will hide this post from your feeds." #~ msgstr "Esto ocultará esta entrada de tus contenidos." -#: src/view/screens/Settings/index.tsx:570 +#: src/view/screens/Settings/index.tsx:574 msgid "Thread preferences" msgstr "" #: src/view/screens/PreferencesThreads.tsx:53 -#: src/view/screens/Settings/index.tsx:580 +#: src/view/screens/Settings/index.tsx:584 msgid "Thread Preferences" msgstr "Preferencias de hilos" @@ -5195,7 +5195,7 @@ msgstr "Desactivar la opción de silenciar la lista" #: src/view/com/auth/create/CreateAccount.tsx:58 #: src/view/com/auth/login/ForgotPasswordForm.tsx:87 #: src/view/com/auth/login/Login.tsx:76 -#: src/view/com/auth/login/LoginForm.tsx:118 +#: src/view/com/auth/login/LoginForm.tsx:121 #: src/view/com/modals/ChangePassword.tsx:70 msgid "Unable to contact your service. Please check your Internet connection." msgstr "No se puede contactar con tu servicio. Comprueba tu conexión a Internet." @@ -5449,8 +5449,8 @@ msgstr "" msgid "User Lists" msgstr "Listas de usuarios" -#: src/view/com/auth/login/LoginForm.tsx:177 -#: src/view/com/auth/login/LoginForm.tsx:195 +#: src/view/com/auth/login/LoginForm.tsx:180 +#: src/view/com/auth/login/LoginForm.tsx:198 msgid "Username or email address" msgstr "Nombre de usuario o dirección de correo electrónico" @@ -5482,15 +5482,15 @@ msgstr "" msgid "Verify {0}" msgstr "" -#: src/view/screens/Settings/index.tsx:940 +#: src/view/screens/Settings/index.tsx:944 msgid "Verify email" msgstr "Verificar el correo electrónico" -#: src/view/screens/Settings/index.tsx:965 +#: src/view/screens/Settings/index.tsx:969 msgid "Verify my email" msgstr "Verificar mi correo electrónico" -#: src/view/screens/Settings/index.tsx:974 +#: src/view/screens/Settings/index.tsx:978 msgid "Verify My Email" msgstr "Verificar mi correo electrónico" @@ -5980,7 +5980,7 @@ msgid "Your posts, likes, and blocks are public. Mutes are private." msgstr "Tus publicaciones, Me gustas y bloqueos son públicos. Las cuentas silenciadas son privadas." #: src/view/com/modals/SwitchAccount.tsx:88 -#: src/view/screens/Settings/index.tsx:123 +#: src/view/screens/Settings/index.tsx:125 msgid "Your profile" msgstr "Tu perfil" diff --git a/src/locale/locales/fi/messages.po b/src/locale/locales/fi/messages.po index 9d3494cb8c..0be456080b 100644 --- a/src/locale/locales/fi/messages.po +++ b/src/locale/locales/fi/messages.po @@ -89,7 +89,7 @@ msgid "Access profile and other navigation links" msgstr "Siirry profiiliin ja muihin navigointilinkkeihin" #: src/view/com/modals/EditImage.tsx:299 -#: src/view/screens/Settings/index.tsx:466 +#: src/view/screens/Settings/index.tsx:470 msgid "Accessibility" msgstr "Saavutettavuus" @@ -97,9 +97,9 @@ msgstr "Saavutettavuus" msgid "account" msgstr "" -#: src/view/com/auth/login/LoginForm.tsx:166 -#: src/view/screens/Settings/index.tsx:323 -#: src/view/screens/Settings/index.tsx:739 +#: src/view/com/auth/login/LoginForm.tsx:169 +#: src/view/screens/Settings/index.tsx:327 +#: src/view/screens/Settings/index.tsx:743 msgid "Account" msgstr "Tili" @@ -161,8 +161,8 @@ msgstr "Lisää sisältövaroitus" msgid "Add a user to this list" msgstr "Lisää käyttäjä tähän listaan" -#: src/view/screens/Settings/index.tsx:398 -#: src/view/screens/Settings/index.tsx:407 +#: src/view/screens/Settings/index.tsx:402 +#: src/view/screens/Settings/index.tsx:411 msgid "Add account" msgstr "Lisää tili" @@ -251,7 +251,7 @@ msgid "Adult content is disabled." msgstr "" #: src/screens/Moderation/index.tsx:377 -#: src/view/screens/Settings/index.tsx:680 +#: src/view/screens/Settings/index.tsx:684 msgid "Advanced" msgstr "Edistynyt" @@ -264,7 +264,7 @@ msgstr "Kaikki tallentamasi syötteet yhdessä paikassa." msgid "Already have a code?" msgstr "Onko sinulla jo koodi?" -#: src/view/com/auth/login/ChooseAccountForm.tsx:102 +#: src/view/com/auth/login/ChooseAccountForm.tsx:103 msgid "Already signed in as @{0}" msgstr "Kirjautuneena sisään nimellä @{0}" @@ -328,7 +328,7 @@ msgstr "Sovelluksen salasanan nimet voivat sisältää vain kirjaimia, numeroita msgid "App Password names must be at least 4 characters long." msgstr "Sovelluksen salasanojen nimien on oltava vähintään 4 merkkiä pitkiä." -#: src/view/screens/Settings/index.tsx:691 +#: src/view/screens/Settings/index.tsx:695 msgid "App password settings" msgstr "Sovelluksen salasanan asetukset" @@ -338,7 +338,7 @@ msgstr "Sovelluksen salasanan asetukset" #: src/Navigation.tsx:251 #: src/view/screens/AppPasswords.tsx:189 -#: src/view/screens/Settings/index.tsx:700 +#: src/view/screens/Settings/index.tsx:704 msgid "App Passwords" msgstr "Sovellussalasanat" @@ -371,7 +371,7 @@ msgstr "" #~ msgid "Appeal this decision." #~ msgstr "Valita tästä päätöksestä." -#: src/view/screens/Settings/index.tsx:481 +#: src/view/screens/Settings/index.tsx:485 msgid "Appearance" msgstr "Ulkonäkö" @@ -411,9 +411,9 @@ msgstr "Taiteellinen tai ei-eroottinen alastomuus." #: src/components/moderation/LabelsOnMeDialog.tsx:248 #: src/screens/Profile/Header/Shell.tsx:97 #: src/view/com/auth/create/CreateAccount.tsx:158 -#: src/view/com/auth/login/ChooseAccountForm.tsx:155 +#: src/view/com/auth/login/ChooseAccountForm.tsx:160 #: src/view/com/auth/login/ForgotPasswordForm.tsx:174 -#: src/view/com/auth/login/LoginForm.tsx:259 +#: src/view/com/auth/login/LoginForm.tsx:262 #: src/view/com/auth/login/SetNewPasswordForm.tsx:179 #: src/view/com/util/ViewHeader.tsx:87 msgid "Back" @@ -428,7 +428,7 @@ msgstr "Takaisin" msgid "Based on your interest in {interestsText}" msgstr "Perustuen kiinnostukseesi {interestsText}" -#: src/view/screens/Settings/index.tsx:538 +#: src/view/screens/Settings/index.tsx:542 msgid "Basics" msgstr "Perusasiat" @@ -437,7 +437,7 @@ msgstr "Perusasiat" msgid "Birthday" msgstr "Syntymäpäivä" -#: src/view/screens/Settings/index.tsx:355 +#: src/view/screens/Settings/index.tsx:359 msgid "Birthday:" msgstr "Syntymäpäivä:" @@ -564,7 +564,7 @@ msgstr "" msgid "Books" msgstr "Kirjat" -#: src/view/screens/Settings/index.tsx:889 +#: src/view/screens/Settings/index.tsx:893 msgid "Build version {0} {1}" msgstr "Versio {0} {1}" @@ -681,17 +681,17 @@ msgstr "" msgid "Change" msgstr "" -#: src/view/screens/Settings/index.tsx:349 +#: src/view/screens/Settings/index.tsx:353 msgctxt "action" msgid "Change" msgstr "Vaihda" -#: src/view/screens/Settings/index.tsx:712 +#: src/view/screens/Settings/index.tsx:716 msgid "Change handle" msgstr "Vaihda käyttäjätunnus" #: src/view/com/modals/ChangeHandle.tsx:161 -#: src/view/screens/Settings/index.tsx:723 +#: src/view/screens/Settings/index.tsx:727 msgid "Change Handle" msgstr "Vaihda käyttäjätunnus" @@ -699,12 +699,12 @@ msgstr "Vaihda käyttäjätunnus" msgid "Change my email" msgstr "Vaihda sähköpostiosoitteeni" -#: src/view/screens/Settings/index.tsx:750 +#: src/view/screens/Settings/index.tsx:754 msgid "Change password" msgstr "Vaihda salasana" #: src/view/com/modals/ChangePassword.tsx:141 -#: src/view/screens/Settings/index.tsx:761 +#: src/view/screens/Settings/index.tsx:765 msgid "Change Password" msgstr "Vaihda salasana" @@ -770,19 +770,19 @@ msgstr "Valitse pääsyötteet" msgid "Choose your password" msgstr "Valitse salasanasi" -#: src/view/screens/Settings/index.tsx:864 +#: src/view/screens/Settings/index.tsx:868 msgid "Clear all legacy storage data" msgstr "Tyhjennä kaikki vanhan tietomallin mukaiset tiedot" -#: src/view/screens/Settings/index.tsx:867 +#: src/view/screens/Settings/index.tsx:871 msgid "Clear all legacy storage data (restart after this)" msgstr "Tyhjennä kaikki vanhan tietomallin tiedot (käynnistä uudelleen tämän jälkeen)" -#: src/view/screens/Settings/index.tsx:876 +#: src/view/screens/Settings/index.tsx:880 msgid "Clear all storage data" msgstr "Tyhjennä kaikki tallennukset" -#: src/view/screens/Settings/index.tsx:879 +#: src/view/screens/Settings/index.tsx:883 msgid "Clear all storage data (restart after this)" msgstr "Tyhjennä kaikki tallennukset (käynnistä uudelleen tämän jälkeen)" @@ -791,11 +791,11 @@ msgstr "Tyhjennä kaikki tallennukset (käynnistä uudelleen tämän jälkeen)" msgid "Clear search query" msgstr "Tyhjennä hakukysely" -#: src/view/screens/Settings/index.tsx:865 +#: src/view/screens/Settings/index.tsx:869 msgid "Clears all legacy storage data" msgstr "" -#: src/view/screens/Settings/index.tsx:877 +#: src/view/screens/Settings/index.tsx:881 msgid "Clears all storage data" msgstr "" @@ -962,7 +962,7 @@ msgstr "Vahvistuskoodi" #~ msgstr "Vahvistaa sähköpostiosoitteen {email} - rekisteröinnin odotuslistalle" #: src/view/com/auth/create/CreateAccount.tsx:193 -#: src/view/com/auth/login/LoginForm.tsx:278 +#: src/view/com/auth/login/LoginForm.tsx:281 msgid "Connecting..." msgstr "Yhdistetään..." @@ -1050,7 +1050,7 @@ msgstr "Ruoanlaitto" msgid "Copied" msgstr "Kopioitu" -#: src/view/screens/Settings/index.tsx:247 +#: src/view/screens/Settings/index.tsx:251 msgid "Copied build version to clipboard" msgstr "Ohjelmiston versio kopioitu leikepöydälle" @@ -1114,7 +1114,7 @@ msgstr "Listaa ei voitu ladata" msgid "Create a new account" msgstr "Luo uusi tili" -#: src/view/screens/Settings/index.tsx:399 +#: src/view/screens/Settings/index.tsx:403 msgid "Create a new Bluesky account" msgstr "Luo uusi Bluesky-tili" @@ -1177,8 +1177,8 @@ msgstr "Muokkaa mediaa ulkoisista sivustoista." #~ msgid "Danger Zone" #~ msgstr "" -#: src/view/screens/Settings/index.tsx:500 -#: src/view/screens/Settings/index.tsx:526 +#: src/view/screens/Settings/index.tsx:504 +#: src/view/screens/Settings/index.tsx:530 msgid "Dark" msgstr "Tumma" @@ -1186,11 +1186,11 @@ msgstr "Tumma" msgid "Dark mode" msgstr "Tumma ulkoasu" -#: src/view/screens/Settings/index.tsx:513 +#: src/view/screens/Settings/index.tsx:517 msgid "Dark Theme" msgstr "Tumma teema" -#: src/view/screens/Settings/index.tsx:837 +#: src/view/screens/Settings/index.tsx:841 msgid "Debug Moderation" msgstr "" @@ -1204,7 +1204,7 @@ msgstr "Vianetsintäpaneeli" msgid "Delete" msgstr "" -#: src/view/screens/Settings/index.tsx:792 +#: src/view/screens/Settings/index.tsx:796 msgid "Delete account" msgstr "Poista käyttäjätili" @@ -1232,7 +1232,7 @@ msgstr "Poista käyttäjätilini" #~ msgid "Delete my account…" #~ msgstr "" -#: src/view/screens/Settings/index.tsx:804 +#: src/view/screens/Settings/index.tsx:808 msgid "Delete My Account…" msgstr "Poista tilini…" @@ -1272,7 +1272,7 @@ msgstr "Kuvaus" msgid "Did you want to say anything?" msgstr "Haluatko sanoa jotain?" -#: src/view/screens/Settings/index.tsx:519 +#: src/view/screens/Settings/index.tsx:523 msgid "Dim" msgstr "Himmeä" @@ -1341,19 +1341,6 @@ msgstr "Verkkotunnus vahvistettu!" #~ msgid "Don't have an invite code?" #~ msgstr "Eikö sinulla ole kutsukoodia?" -#: src/view/com/auth/onboarding/RecommendedFollows.tsx:86 -#: src/view/com/modals/EditImage.tsx:333 -#: src/view/com/modals/ListAddRemoveUsers.tsx:144 -#: src/view/com/modals/SelfLabel.tsx:157 -#: src/view/com/modals/Threadgate.tsx:129 -#: src/view/com/modals/Threadgate.tsx:132 -#: src/view/com/modals/UserAddRemoveLists.tsx:95 -#: src/view/com/modals/UserAddRemoveLists.tsx:98 -#: src/view/screens/PreferencesThreads.tsx:162 -msgctxt "action" -msgid "Done" -msgstr "Valmis" - #: src/components/dialogs/BirthDateSettings.tsx:119 #: src/components/dialogs/BirthDateSettings.tsx:125 #: src/view/com/auth/server-input/index.tsx:165 @@ -1370,11 +1357,24 @@ msgstr "Valmis" msgid "Done" msgstr "Valmis" +#: src/view/com/auth/onboarding/RecommendedFollows.tsx:86 +#: src/view/com/modals/EditImage.tsx:333 +#: src/view/com/modals/ListAddRemoveUsers.tsx:144 +#: src/view/com/modals/SelfLabel.tsx:157 +#: src/view/com/modals/Threadgate.tsx:129 +#: src/view/com/modals/Threadgate.tsx:132 +#: src/view/com/modals/UserAddRemoveLists.tsx:95 +#: src/view/com/modals/UserAddRemoveLists.tsx:98 +#: src/view/screens/PreferencesThreads.tsx:162 +msgctxt "action" +msgid "Done" +msgstr "Valmis" + #: src/view/com/modals/lang-settings/ConfirmLanguagesButton.tsx:42 msgid "Done{extraText}" msgstr "Valmis{extraText}" -#: src/view/com/auth/login/ChooseAccountForm.tsx:45 +#: src/view/com/auth/login/ChooseAccountForm.tsx:46 msgid "Double tap to sign in" msgstr "Kaksoisnapauta kirjautuaksesi sisään" @@ -1523,7 +1523,7 @@ msgstr "Sähköpostiosoite päivitetty" msgid "Email verified" msgstr "Sähköpostiosoite vahvistettu" -#: src/view/screens/Settings/index.tsx:327 +#: src/view/screens/Settings/index.tsx:331 msgid "Email:" msgstr "Sähköpostiosoite:" @@ -1676,12 +1676,12 @@ msgstr "" msgid "Explicit sexual images." msgstr "" -#: src/view/screens/Settings/index.tsx:773 +#: src/view/screens/Settings/index.tsx:777 msgid "Export my data" msgstr "Vie tietoni" #: src/view/screens/Settings/ExportCarDialog.tsx:44 -#: src/view/screens/Settings/index.tsx:784 +#: src/view/screens/Settings/index.tsx:788 msgid "Export My Data" msgstr "Vie tietoni" @@ -1696,11 +1696,11 @@ msgstr "Ulkoiset mediat voivat sallia verkkosivustojen kerätä tietoja sinusta #: src/Navigation.tsx:275 #: src/view/screens/PreferencesExternalEmbeds.tsx:52 -#: src/view/screens/Settings/index.tsx:673 +#: src/view/screens/Settings/index.tsx:677 msgid "External Media Preferences" msgstr "Ulkoisten medioiden asetukset" -#: src/view/screens/Settings/index.tsx:664 +#: src/view/screens/Settings/index.tsx:668 msgid "External media settings" msgstr "Ulkoisten medioiden asetukset" @@ -1905,7 +1905,7 @@ msgstr "Seuraa" msgid "Following {0}" msgstr "Seuraa {0}" -#: src/view/screens/Settings/index.tsx:549 +#: src/view/screens/Settings/index.tsx:553 msgid "Following feed preferences" msgstr "" @@ -1913,7 +1913,7 @@ msgstr "" #: src/view/com/home/HomeHeaderLayout.web.tsx:50 #: src/view/com/home/HomeHeaderLayoutMobile.tsx:84 #: src/view/screens/PreferencesFollowingFeed.tsx:104 -#: src/view/screens/Settings/index.tsx:558 +#: src/view/screens/Settings/index.tsx:562 msgid "Following Feed Preferences" msgstr "Seuratut -syötteen asetukset" @@ -1937,11 +1937,11 @@ msgstr "Turvallisuussyistä meidän on lähetettävä vahvistuskoodi sähköpost msgid "For security reasons, you won't be able to view this again. If you lose this password, you'll need to generate a new one." msgstr "Turvallisuussyistä et näe tätä uudelleen. Jos unohdat tämän salasanan, sinun on luotava uusi." -#: src/view/com/auth/login/LoginForm.tsx:241 +#: src/view/com/auth/login/LoginForm.tsx:244 msgid "Forgot" msgstr "Unohtui" -#: src/view/com/auth/login/LoginForm.tsx:238 +#: src/view/com/auth/login/LoginForm.tsx:241 msgid "Forgot password" msgstr "Unohtunut salasana" @@ -2018,7 +2018,7 @@ msgstr "Siirry @{queryMaybeHandle}" #: src/view/com/auth/login/ForgotPasswordForm.tsx:189 #: src/view/com/auth/login/ForgotPasswordForm.tsx:218 -#: src/view/com/auth/login/LoginForm.tsx:288 +#: src/view/com/auth/login/LoginForm.tsx:291 #: src/view/com/auth/login/SetNewPasswordForm.tsx:195 #: src/view/com/modals/ChangePassword.tsx:167 msgid "Go to next" @@ -2259,11 +2259,11 @@ msgstr "Syötä salasana tilin poistoa varten" #~ msgid "Input phone number for SMS verification" #~ msgstr "Syötä puhelinnumero SMS-varmennusta varten" -#: src/view/com/auth/login/LoginForm.tsx:230 +#: src/view/com/auth/login/LoginForm.tsx:233 msgid "Input the password tied to {identifier}" msgstr "Syötä salasana, joka liittyy kohteeseen {identifier}" -#: src/view/com/auth/login/LoginForm.tsx:197 +#: src/view/com/auth/login/LoginForm.tsx:200 msgid "Input the username or email address you used at signup" msgstr "Syötä käyttäjätunnus tai sähköpostiosoite, jonka käytit rekisteröityessäsi" @@ -2275,7 +2275,7 @@ msgstr "Syötä käyttäjätunnus tai sähköpostiosoite, jonka käytit rekister #~ msgid "Input your email to get on the Bluesky waitlist" #~ msgstr "Syötä sähköpostiosoitteesi päästäksesi Bluesky-jonoon" -#: src/view/com/auth/login/LoginForm.tsx:229 +#: src/view/com/auth/login/LoginForm.tsx:232 msgid "Input your password" msgstr "Syötä salasanasi" @@ -2291,7 +2291,7 @@ msgstr "Syötä käyttäjätunnuksesi" msgid "Invalid or unsupported post record" msgstr "Virheellinen tai ei tuettu tietue" -#: src/view/com/auth/login/LoginForm.tsx:113 +#: src/view/com/auth/login/LoginForm.tsx:116 msgid "Invalid username or password" msgstr "Virheellinen käyttäjätunnus tai salasana" @@ -2386,7 +2386,7 @@ msgstr "" msgid "Language selection" msgstr "Kielen valinta" -#: src/view/screens/Settings/index.tsx:610 +#: src/view/screens/Settings/index.tsx:614 msgid "Language settings" msgstr "Kielen asetukset" @@ -2395,7 +2395,7 @@ msgstr "Kielen asetukset" msgid "Language Settings" msgstr "Kielen asetukset" -#: src/view/screens/Settings/index.tsx:619 +#: src/view/screens/Settings/index.tsx:623 msgid "Languages" msgstr "Kielet" @@ -2441,7 +2441,7 @@ msgstr "Poistuminen Blueskysta" msgid "left to go." msgstr "jäljellä." -#: src/view/screens/Settings/index.tsx:292 +#: src/view/screens/Settings/index.tsx:296 msgid "Legacy storage cleared, you need to restart the app now." msgstr "Legacy tietovarasto tyhjennetty, sinun on käynnistettävä sovellus uudelleen nyt." @@ -2459,7 +2459,7 @@ msgstr "Aloitetaan!" #~ msgid "Library" #~ msgstr "Kirjasto" -#: src/view/screens/Settings/index.tsx:494 +#: src/view/screens/Settings/index.tsx:498 msgid "Light" msgstr "Vaalea" @@ -2598,7 +2598,7 @@ msgstr "Kirjaudu ulos" msgid "Logged-out visibility" msgstr "Näkyvyys kirjautumattomana" -#: src/view/com/auth/login/ChooseAccountForm.tsx:137 +#: src/view/com/auth/login/ChooseAccountForm.tsx:142 msgid "Login to account that is not listed" msgstr "Kirjaudu tiliin, joka ei ole luettelossa" @@ -2645,7 +2645,7 @@ msgstr "" #: src/Navigation.tsx:119 #: src/screens/Moderation/index.tsx:106 -#: src/view/screens/Settings/index.tsx:641 +#: src/view/screens/Settings/index.tsx:645 #: src/view/shell/desktop/LeftNav.tsx:401 #: src/view/shell/Drawer.tsx:514 #: src/view/shell/Drawer.tsx:515 @@ -2688,7 +2688,7 @@ msgstr "Moderointilistat" msgid "Moderation Lists" msgstr "Moderointilistat" -#: src/view/screens/Settings/index.tsx:635 +#: src/view/screens/Settings/index.tsx:639 msgid "Moderation settings" msgstr "Moderointiasetukset" @@ -2835,11 +2835,11 @@ msgstr "Omat syötteet" msgid "My Profile" msgstr "Profiilini" -#: src/view/screens/Settings/index.tsx:592 +#: src/view/screens/Settings/index.tsx:596 msgid "My saved feeds" msgstr "" -#: src/view/screens/Settings/index.tsx:598 +#: src/view/screens/Settings/index.tsx:602 msgid "My Saved Feeds" msgstr "Omat tallennetut syötteet" @@ -2868,7 +2868,7 @@ msgstr "Luonto" #: src/view/com/auth/login/ForgotPasswordForm.tsx:190 #: src/view/com/auth/login/ForgotPasswordForm.tsx:219 -#: src/view/com/auth/login/LoginForm.tsx:289 +#: src/view/com/auth/login/LoginForm.tsx:292 #: src/view/com/auth/login/SetNewPasswordForm.tsx:196 #: src/view/com/modals/ChangePassword.tsx:168 msgid "Navigates to the next screen" @@ -2961,7 +2961,7 @@ msgstr "Uutiset" #: src/view/com/auth/create/CreateAccount.tsx:172 #: src/view/com/auth/login/ForgotPasswordForm.tsx:182 #: src/view/com/auth/login/ForgotPasswordForm.tsx:192 -#: src/view/com/auth/login/LoginForm.tsx:291 +#: src/view/com/auth/login/LoginForm.tsx:294 #: src/view/com/auth/login/SetNewPasswordForm.tsx:187 #: src/view/com/auth/login/SetNewPasswordForm.tsx:198 #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:79 @@ -3106,7 +3106,7 @@ msgstr "Selvä" msgid "Oldest replies first" msgstr "Vanhimmat vastaukset ensin" -#: src/view/screens/Settings/index.tsx:240 +#: src/view/screens/Settings/index.tsx:244 msgid "Onboarding reset" msgstr "Käyttöönoton nollaus" @@ -3145,7 +3145,7 @@ msgstr "Avaa emoji-valitsin" msgid "Open feed options menu" msgstr "" -#: src/view/screens/Settings/index.tsx:730 +#: src/view/screens/Settings/index.tsx:734 msgid "Open links with in-app browser" msgstr "Avaa linkit sovelluksen sisäisellä selaimella" @@ -3165,12 +3165,12 @@ msgstr "Avaa navigointi" msgid "Open post options menu" msgstr "" -#: src/view/screens/Settings/index.tsx:824 -#: src/view/screens/Settings/index.tsx:834 +#: src/view/screens/Settings/index.tsx:828 +#: src/view/screens/Settings/index.tsx:838 msgid "Open storybook page" msgstr "Avaa storybook-sivu" -#: src/view/screens/Settings/index.tsx:812 +#: src/view/screens/Settings/index.tsx:816 msgid "Open system log" msgstr "" @@ -3194,7 +3194,7 @@ msgstr "Avaa laitteen kameran" msgid "Opens composer" msgstr "Avaa editorin" -#: src/view/screens/Settings/index.tsx:611 +#: src/view/screens/Settings/index.tsx:615 msgid "Opens configurable language settings" msgstr "Avaa mukautettavat kielen asetukset" @@ -3206,7 +3206,7 @@ msgstr "Avaa laitteen valokuvat" #~ msgid "Opens editor for profile display name, avatar, background image, and description" #~ msgstr "Avaa editorin profiilin näyttönimeä, avataria, taustakuvaa ja kuvausta varten" -#: src/view/screens/Settings/index.tsx:665 +#: src/view/screens/Settings/index.tsx:669 msgid "Opens external embeds settings" msgstr "Avaa ulkoiset upotusasetukset" @@ -3236,7 +3236,7 @@ msgstr "" msgid "Opens list of invite codes" msgstr "Avaa kutsukoodien luettelon" -#: src/view/screens/Settings/index.tsx:794 +#: src/view/screens/Settings/index.tsx:798 msgid "Opens modal for account deletion confirmation. Requires email code" msgstr "" @@ -3244,19 +3244,19 @@ msgstr "" #~ msgid "Opens modal for account deletion confirmation. Requires email code." #~ msgstr "Avaa tilin poistovahvistuksen. Vaatii sähköpostikoodin." -#: src/view/screens/Settings/index.tsx:752 +#: src/view/screens/Settings/index.tsx:756 msgid "Opens modal for changing your Bluesky password" msgstr "" -#: src/view/screens/Settings/index.tsx:714 +#: src/view/screens/Settings/index.tsx:718 msgid "Opens modal for choosing a new Bluesky handle" msgstr "" -#: src/view/screens/Settings/index.tsx:775 +#: src/view/screens/Settings/index.tsx:779 msgid "Opens modal for downloading your Bluesky account data (repository)" msgstr "" -#: src/view/screens/Settings/index.tsx:966 +#: src/view/screens/Settings/index.tsx:970 msgid "Opens modal for email verification" msgstr "" @@ -3264,11 +3264,11 @@ msgstr "" msgid "Opens modal for using custom domain" msgstr "Avaa asetukset oman verkkotunnuksen käyttöönottoon" -#: src/view/screens/Settings/index.tsx:636 +#: src/view/screens/Settings/index.tsx:640 msgid "Opens moderation settings" msgstr "Avaa moderointiasetukset" -#: src/view/com/auth/login/LoginForm.tsx:239 +#: src/view/com/auth/login/LoginForm.tsx:242 msgid "Opens password reset form" msgstr "Avaa salasanan palautuslomakkeen" @@ -3277,11 +3277,11 @@ msgstr "Avaa salasanan palautuslomakkeen" msgid "Opens screen to edit Saved Feeds" msgstr "Avaa näkymän tallennettujen syötteiden muokkaamiseen" -#: src/view/screens/Settings/index.tsx:593 +#: src/view/screens/Settings/index.tsx:597 msgid "Opens screen with all saved feeds" msgstr "Avaa näkymän kaikkiin tallennettuihin syötteisiin" -#: src/view/screens/Settings/index.tsx:692 +#: src/view/screens/Settings/index.tsx:696 msgid "Opens the app password settings" msgstr "" @@ -3289,7 +3289,7 @@ msgstr "" #~ msgid "Opens the app password settings page" #~ msgstr "Avaa sovellussalasanojen asetukset" -#: src/view/screens/Settings/index.tsx:550 +#: src/view/screens/Settings/index.tsx:554 msgid "Opens the Following feed preferences" msgstr "" @@ -3301,16 +3301,16 @@ msgstr "" msgid "Opens the linked website" msgstr "" -#: src/view/screens/Settings/index.tsx:825 -#: src/view/screens/Settings/index.tsx:835 +#: src/view/screens/Settings/index.tsx:829 +#: src/view/screens/Settings/index.tsx:839 msgid "Opens the storybook page" msgstr "Avaa storybook-sivun" -#: src/view/screens/Settings/index.tsx:813 +#: src/view/screens/Settings/index.tsx:817 msgid "Opens the system log page" msgstr "Avaa järjestelmän lokisivun" -#: src/view/screens/Settings/index.tsx:571 +#: src/view/screens/Settings/index.tsx:575 msgid "Opens the threads preferences" msgstr "Avaa keskusteluasetukset" @@ -3330,7 +3330,7 @@ msgstr "Tai yhdistä nämä asetukset:" msgid "Other" msgstr "" -#: src/view/com/auth/login/ChooseAccountForm.tsx:142 +#: src/view/com/auth/login/ChooseAccountForm.tsx:147 msgid "Other account" msgstr "Toinen tili" @@ -3353,8 +3353,8 @@ msgstr "Sivua ei löytynyt" #: src/view/com/auth/create/Step1.tsx:191 #: src/view/com/auth/create/Step1.tsx:201 -#: src/view/com/auth/login/LoginForm.tsx:210 -#: src/view/com/auth/login/LoginForm.tsx:226 +#: src/view/com/auth/login/LoginForm.tsx:213 +#: src/view/com/auth/login/LoginForm.tsx:229 #: src/view/com/auth/login/SetNewPasswordForm.tsx:161 #: src/view/com/modals/DeleteAccount.tsx:195 #: src/view/com/modals/DeleteAccount.tsx:202 @@ -3597,7 +3597,7 @@ msgstr "Ensisijainen kieli" msgid "Prioritize Your Follows" msgstr "Aseta seurattavat tärkeysjärjestykseen" -#: src/view/screens/Settings/index.tsx:648 +#: src/view/screens/Settings/index.tsx:652 #: src/view/shell/desktop/RightNav.tsx:72 msgid "Privacy" msgstr "Yksityisyys" @@ -3605,7 +3605,7 @@ msgstr "Yksityisyys" #: src/Navigation.tsx:231 #: src/view/com/auth/create/Policies.tsx:69 #: src/view/screens/PrivacyPolicy.tsx:29 -#: src/view/screens/Settings/index.tsx:921 +#: src/view/screens/Settings/index.tsx:925 #: src/view/shell/Drawer.tsx:265 msgid "Privacy Policy" msgstr "Yksityisyydensuojakäytäntö" @@ -3631,7 +3631,7 @@ msgstr "Profiili" msgid "Profile updated" msgstr "Profiili päivitetty" -#: src/view/screens/Settings/index.tsx:979 +#: src/view/screens/Settings/index.tsx:983 msgid "Protect your account by verifying your email." msgstr "Suojaa tilisi vahvistamalla sähköpostiosoitteesi." @@ -3895,7 +3895,7 @@ msgstr "Pyydä muutosta" msgid "Request Code" msgstr "Pyydä koodia" -#: src/view/screens/Settings/index.tsx:471 +#: src/view/screens/Settings/index.tsx:475 msgid "Require alt text before posting" msgstr "Vaadi vaihtoehtoista ALT-tekstiä ennen julkaisua" @@ -3917,8 +3917,8 @@ msgstr "Nollauskoodi" #~ msgid "Reset onboarding" #~ msgstr "Nollaa käyttöönotto" -#: src/view/screens/Settings/index.tsx:854 -#: src/view/screens/Settings/index.tsx:857 +#: src/view/screens/Settings/index.tsx:858 +#: src/view/screens/Settings/index.tsx:861 msgid "Reset onboarding state" msgstr "Nollaa käyttöönoton tila" @@ -3930,20 +3930,20 @@ msgstr "Nollaa salasana" #~ msgid "Reset preferences" #~ msgstr "Nollaa asetukset" -#: src/view/screens/Settings/index.tsx:844 -#: src/view/screens/Settings/index.tsx:847 +#: src/view/screens/Settings/index.tsx:848 +#: src/view/screens/Settings/index.tsx:851 msgid "Reset preferences state" msgstr "Nollaa asetusten tila" -#: src/view/screens/Settings/index.tsx:855 +#: src/view/screens/Settings/index.tsx:859 msgid "Resets the onboarding state" msgstr "Nollaa käyttöönoton tilan" -#: src/view/screens/Settings/index.tsx:845 +#: src/view/screens/Settings/index.tsx:849 msgid "Resets the preferences state" msgstr "Nollaa asetusten tilan" -#: src/view/com/auth/login/LoginForm.tsx:269 +#: src/view/com/auth/login/LoginForm.tsx:272 msgid "Retries login" msgstr "Yrittää uudelleen kirjautumista" @@ -3957,8 +3957,8 @@ msgstr "Yrittää uudelleen viimeisintä toimintoa, joka epäonnistui" #: src/screens/Onboarding/StepInterests/index.tsx:224 #: src/view/com/auth/create/CreateAccount.tsx:181 #: src/view/com/auth/create/CreateAccount.tsx:186 -#: src/view/com/auth/login/LoginForm.tsx:268 #: src/view/com/auth/login/LoginForm.tsx:271 +#: src/view/com/auth/login/LoginForm.tsx:274 #: src/view/com/util/error/ErrorMessage.tsx:55 #: src/view/com/util/error/ErrorScreen.tsx:72 msgid "Retry" @@ -3985,12 +3985,6 @@ msgstr "" #~ msgid "SANDBOX. Posts and accounts are not permanent." #~ msgstr "HIEKKALAATIKKO. Viestit ja tilit eivät ole pysyviä." -#: src/view/com/lightbox/Lightbox.tsx:132 -#: src/view/com/modals/CreateOrEditList.tsx:345 -msgctxt "action" -msgid "Save" -msgstr "Tallenna" - #: src/components/dialogs/BirthDateSettings.tsx:125 #: src/view/com/modals/ChangeHandle.tsx:173 #: src/view/com/modals/CreateOrEditList.tsx:337 @@ -3998,6 +3992,12 @@ msgstr "Tallenna" msgid "Save" msgstr "Tallenna" +#: src/view/com/lightbox/Lightbox.tsx:132 +#: src/view/com/modals/CreateOrEditList.tsx:345 +msgctxt "action" +msgid "Save" +msgstr "Tallenna" + #: src/view/com/modals/AltImage.tsx:130 msgid "Save alt text" msgstr "Tallenna vaihtoehtoinen ALT-teksti" @@ -4160,7 +4160,7 @@ msgid "Select option {i} of {numItems}" msgstr "Valitse vaihtoehto {i} / {numItems}" #: src/view/com/auth/create/Step1.tsx:96 -#: src/view/com/auth/login/LoginForm.tsx:150 +#: src/view/com/auth/login/LoginForm.tsx:153 msgid "Select service" msgstr "Valitse palvelu" @@ -4334,23 +4334,23 @@ msgstr "Luo tili" msgid "Sets Bluesky username" msgstr "Asettaa Bluesky-käyttäjätunnuksen" -#: src/view/screens/Settings/index.tsx:503 +#: src/view/screens/Settings/index.tsx:507 msgid "Sets color theme to dark" msgstr "" -#: src/view/screens/Settings/index.tsx:496 +#: src/view/screens/Settings/index.tsx:500 msgid "Sets color theme to light" msgstr "" -#: src/view/screens/Settings/index.tsx:490 +#: src/view/screens/Settings/index.tsx:494 msgid "Sets color theme to system setting" msgstr "" -#: src/view/screens/Settings/index.tsx:529 +#: src/view/screens/Settings/index.tsx:533 msgid "Sets dark theme to the dark theme" msgstr "" -#: src/view/screens/Settings/index.tsx:522 +#: src/view/screens/Settings/index.tsx:526 msgid "Sets dark theme to the dim theme" msgstr "" @@ -4375,12 +4375,12 @@ msgid "Sets image aspect ratio to wide" msgstr "" #: src/view/com/auth/create/Step1.tsx:97 -#: src/view/com/auth/login/LoginForm.tsx:151 +#: src/view/com/auth/login/LoginForm.tsx:154 msgid "Sets server for the Bluesky client" msgstr "Asettaa palvelimen Bluesky-ohjelmalle" #: src/Navigation.tsx:139 -#: src/view/screens/Settings/index.tsx:309 +#: src/view/screens/Settings/index.tsx:313 #: src/view/shell/desktop/LeftNav.tsx:437 #: src/view/shell/Drawer.tsx:570 #: src/view/shell/Drawer.tsx:571 @@ -4423,7 +4423,7 @@ msgstr "Jaa syöte" #: src/components/moderation/GlobalModerationLabelPref.tsx:45 #: src/components/moderation/PostHider.tsx:107 #: src/screens/Onboarding/StepModeration/ModerationOption.tsx:54 -#: src/view/screens/Settings/index.tsx:359 +#: src/view/screens/Settings/index.tsx:363 msgid "Show" msgstr "Näytä" @@ -4553,23 +4553,23 @@ msgstr "Kirjaudu sisään" msgid "Sign In" msgstr "Kirjaudu sisään" -#: src/view/com/auth/login/ChooseAccountForm.tsx:44 +#: src/view/com/auth/login/ChooseAccountForm.tsx:45 msgid "Sign in as {0}" msgstr "Kirjaudu sisään nimellä {0}" -#: src/view/com/auth/login/ChooseAccountForm.tsx:122 +#: src/view/com/auth/login/ChooseAccountForm.tsx:127 #: src/view/com/auth/login/Login.tsx:116 msgid "Sign in as..." msgstr "Kirjaudu sisään nimellä..." -#: src/view/com/auth/login/LoginForm.tsx:137 +#: src/view/com/auth/login/LoginForm.tsx:140 msgid "Sign into" msgstr "Kirjaudu sisään" #: src/view/com/modals/SwitchAccount.tsx:68 #: src/view/com/modals/SwitchAccount.tsx:73 -#: src/view/screens/Settings/index.tsx:105 -#: src/view/screens/Settings/index.tsx:108 +#: src/view/screens/Settings/index.tsx:107 +#: src/view/screens/Settings/index.tsx:110 msgid "Sign out" msgstr "Kirjaudu ulos" @@ -4594,11 +4594,11 @@ msgstr "Rekisteröidy tai kirjaudu sisään liittyäksesi keskusteluun" msgid "Sign-in Required" msgstr "Sisäänkirjautuminen vaaditaan" -#: src/view/screens/Settings/index.tsx:370 +#: src/view/screens/Settings/index.tsx:374 msgid "Signed in as" msgstr "Kirjautunut sisään nimellä" -#: src/view/com/auth/login/ChooseAccountForm.tsx:107 +#: src/view/com/auth/login/ChooseAccountForm.tsx:112 msgid "Signed in as @{0}" msgstr "Kirjautunut sisään käyttäjätunnuksella @{0}" @@ -4674,7 +4674,7 @@ msgstr "Neliö" #~ msgid "Staging" #~ msgstr "" -#: src/view/screens/Settings/index.tsx:901 +#: src/view/screens/Settings/index.tsx:905 msgid "Status page" msgstr "Tilasivu" @@ -4682,12 +4682,12 @@ msgstr "Tilasivu" msgid "Step {0} of {numSteps}" msgstr "Vaihe {0}/{numSteps}" -#: src/view/screens/Settings/index.tsx:288 +#: src/view/screens/Settings/index.tsx:292 msgid "Storage cleared, you need to restart the app now." msgstr "Tallennustila tyhjennetty, sinun on käynnistettävä sovellus uudelleen." #: src/Navigation.tsx:211 -#: src/view/screens/Settings/index.tsx:827 +#: src/view/screens/Settings/index.tsx:831 msgid "Storybook" msgstr "Storybook" @@ -4743,25 +4743,25 @@ msgstr "Tuki" #~ msgid "Swipe up to see more" #~ msgstr "" -#: src/view/com/modals/SwitchAccount.tsx:121 +#: src/view/com/modals/SwitchAccount.tsx:123 msgid "Switch Account" msgstr "Vaihda tiliä" -#: src/view/com/modals/SwitchAccount.tsx:101 -#: src/view/screens/Settings/index.tsx:135 +#: src/view/com/modals/SwitchAccount.tsx:103 +#: src/view/screens/Settings/index.tsx:139 msgid "Switch to {0}" msgstr "Vaihda käyttäjään {0}" -#: src/view/com/modals/SwitchAccount.tsx:102 -#: src/view/screens/Settings/index.tsx:136 +#: src/view/com/modals/SwitchAccount.tsx:104 +#: src/view/screens/Settings/index.tsx:140 msgid "Switches the account you are logged in to" msgstr "Vaihtaa sisäänkirjautuneen käyttäjän tilin" -#: src/view/screens/Settings/index.tsx:487 +#: src/view/screens/Settings/index.tsx:491 msgid "System" msgstr "Järjestelmä" -#: src/view/screens/Settings/index.tsx:815 +#: src/view/screens/Settings/index.tsx:819 msgid "System log" msgstr "Järjestelmäloki" @@ -4795,7 +4795,7 @@ msgstr "Ehdot" #: src/Navigation.tsx:236 #: src/view/com/auth/create/Policies.tsx:59 -#: src/view/screens/Settings/index.tsx:915 +#: src/view/screens/Settings/index.tsx:919 #: src/view/screens/TermsOfService.tsx:29 #: src/view/shell/Drawer.tsx:259 msgid "Terms of Service" @@ -5131,12 +5131,12 @@ msgstr "Tämä poistaa {0}:n hiljennetyistä sanoistasi. Voit lisätä sen takai #~ msgid "This will hide this post from your feeds." #~ msgstr "Tämä piilottaa tämän viestin syötteistäsi." -#: src/view/screens/Settings/index.tsx:570 +#: src/view/screens/Settings/index.tsx:574 msgid "Thread preferences" msgstr "" #: src/view/screens/PreferencesThreads.tsx:53 -#: src/view/screens/Settings/index.tsx:580 +#: src/view/screens/Settings/index.tsx:584 msgid "Thread Preferences" msgstr "Keskusteluketjun asetukset" @@ -5195,7 +5195,7 @@ msgstr "Poista listan hiljennys" #: src/view/com/auth/create/CreateAccount.tsx:58 #: src/view/com/auth/login/ForgotPasswordForm.tsx:87 #: src/view/com/auth/login/Login.tsx:76 -#: src/view/com/auth/login/LoginForm.tsx:118 +#: src/view/com/auth/login/LoginForm.tsx:121 #: src/view/com/modals/ChangePassword.tsx:70 msgid "Unable to contact your service. Please check your Internet connection." msgstr "Yhteys palveluusi ei onnistu. Tarkista internet-yhteytesi." @@ -5449,8 +5449,8 @@ msgstr "Käyttäjälista päivitetty" msgid "User Lists" msgstr "Käyttäjälistat" -#: src/view/com/auth/login/LoginForm.tsx:177 -#: src/view/com/auth/login/LoginForm.tsx:195 +#: src/view/com/auth/login/LoginForm.tsx:180 +#: src/view/com/auth/login/LoginForm.tsx:198 msgid "Username or email address" msgstr "Käyttäjätunnus tai sähköpostiosoite" @@ -5482,15 +5482,15 @@ msgstr "" msgid "Verify {0}" msgstr "" -#: src/view/screens/Settings/index.tsx:940 +#: src/view/screens/Settings/index.tsx:944 msgid "Verify email" msgstr "Varmista sähköposti" -#: src/view/screens/Settings/index.tsx:965 +#: src/view/screens/Settings/index.tsx:969 msgid "Verify my email" msgstr "Vahvista sähköpostini" -#: src/view/screens/Settings/index.tsx:974 +#: src/view/screens/Settings/index.tsx:978 msgid "Verify My Email" msgstr "Vahvista sähköpostini" @@ -5980,7 +5980,7 @@ msgid "Your posts, likes, and blocks are public. Mutes are private." msgstr "Julkaisusi, tykkäyksesi ja estosi ovat julkisia. Hiljennykset ovat yksityisiä." #: src/view/com/modals/SwitchAccount.tsx:88 -#: src/view/screens/Settings/index.tsx:123 +#: src/view/screens/Settings/index.tsx:125 msgid "Your profile" msgstr "Profiilisi" diff --git a/src/locale/locales/fr/messages.po b/src/locale/locales/fr/messages.po index 04dce8242a..4b5dd3db00 100644 --- a/src/locale/locales/fr/messages.po +++ b/src/locale/locales/fr/messages.po @@ -71,7 +71,7 @@ msgid "Access profile and other navigation links" msgstr "Accède au profil et aux autres liens de navigation" #: src/view/com/modals/EditImage.tsx:299 -#: src/view/screens/Settings/index.tsx:466 +#: src/view/screens/Settings/index.tsx:470 msgid "Accessibility" msgstr "Accessibilité" @@ -79,9 +79,9 @@ msgstr "Accessibilité" msgid "account" msgstr "" -#: src/view/com/auth/login/LoginForm.tsx:166 -#: src/view/screens/Settings/index.tsx:323 -#: src/view/screens/Settings/index.tsx:739 +#: src/view/com/auth/login/LoginForm.tsx:169 +#: src/view/screens/Settings/index.tsx:327 +#: src/view/screens/Settings/index.tsx:743 msgid "Account" msgstr "Compte" @@ -143,8 +143,8 @@ msgstr "Ajouter un avertissement sur le contenu" msgid "Add a user to this list" msgstr "Ajouter un compte à cette liste" -#: src/view/screens/Settings/index.tsx:398 -#: src/view/screens/Settings/index.tsx:407 +#: src/view/screens/Settings/index.tsx:402 +#: src/view/screens/Settings/index.tsx:411 msgid "Add account" msgstr "Ajouter un compte" @@ -229,7 +229,7 @@ msgid "Adult content is disabled." msgstr "" #: src/screens/Moderation/index.tsx:377 -#: src/view/screens/Settings/index.tsx:680 +#: src/view/screens/Settings/index.tsx:684 msgid "Advanced" msgstr "Avancé" @@ -242,7 +242,7 @@ msgstr "Tous les fils d’actu que vous avez enregistrés, au même endroit." msgid "Already have a code?" msgstr "Avez-vous déjà un code ?" -#: src/view/com/auth/login/ChooseAccountForm.tsx:102 +#: src/view/com/auth/login/ChooseAccountForm.tsx:103 msgid "Already signed in as @{0}" msgstr "Déjà connecté·e en tant que @{0}" @@ -306,13 +306,13 @@ msgstr "Les noms de mots de passe d’application ne peuvent contenir que des le msgid "App Password names must be at least 4 characters long." msgstr "Les noms de mots de passe d’application doivent comporter au moins 4 caractères." -#: src/view/screens/Settings/index.tsx:691 +#: src/view/screens/Settings/index.tsx:695 msgid "App password settings" msgstr "Paramètres de mot de passe d’application" #: src/Navigation.tsx:251 #: src/view/screens/AppPasswords.tsx:189 -#: src/view/screens/Settings/index.tsx:700 +#: src/view/screens/Settings/index.tsx:704 msgid "App Passwords" msgstr "Mots de passe d’application" @@ -346,7 +346,7 @@ msgstr "" #~ msgid "Appeal this decision." #~ msgstr "Faire appel de cette décision." -#: src/view/screens/Settings/index.tsx:481 +#: src/view/screens/Settings/index.tsx:485 msgid "Appearance" msgstr "Affichage" @@ -386,9 +386,9 @@ msgstr "Nudité artistique ou non érotique." #: src/components/moderation/LabelsOnMeDialog.tsx:248 #: src/screens/Profile/Header/Shell.tsx:97 #: src/view/com/auth/create/CreateAccount.tsx:158 -#: src/view/com/auth/login/ChooseAccountForm.tsx:155 +#: src/view/com/auth/login/ChooseAccountForm.tsx:160 #: src/view/com/auth/login/ForgotPasswordForm.tsx:174 -#: src/view/com/auth/login/LoginForm.tsx:259 +#: src/view/com/auth/login/LoginForm.tsx:262 #: src/view/com/auth/login/SetNewPasswordForm.tsx:179 #: src/view/com/util/ViewHeader.tsx:87 msgid "Back" @@ -403,7 +403,7 @@ msgstr "Arrière" msgid "Based on your interest in {interestsText}" msgstr "En fonction de votre intérêt pour {interestsText}" -#: src/view/screens/Settings/index.tsx:538 +#: src/view/screens/Settings/index.tsx:542 msgid "Basics" msgstr "Principes de base" @@ -412,7 +412,7 @@ msgstr "Principes de base" msgid "Birthday" msgstr "Date de naissance" -#: src/view/screens/Settings/index.tsx:355 +#: src/view/screens/Settings/index.tsx:359 msgid "Birthday:" msgstr "Date de naissance :" @@ -531,7 +531,7 @@ msgstr "" msgid "Books" msgstr "Livres" -#: src/view/screens/Settings/index.tsx:889 +#: src/view/screens/Settings/index.tsx:893 msgid "Build version {0} {1}" msgstr "Version Build {0} {1}" @@ -640,17 +640,17 @@ msgstr "" msgid "Change" msgstr "" -#: src/view/screens/Settings/index.tsx:349 +#: src/view/screens/Settings/index.tsx:353 msgctxt "action" msgid "Change" msgstr "Modifier" -#: src/view/screens/Settings/index.tsx:712 +#: src/view/screens/Settings/index.tsx:716 msgid "Change handle" msgstr "Modifier le pseudo" #: src/view/com/modals/ChangeHandle.tsx:161 -#: src/view/screens/Settings/index.tsx:723 +#: src/view/screens/Settings/index.tsx:727 msgid "Change Handle" msgstr "Modifier le pseudo" @@ -658,12 +658,12 @@ msgstr "Modifier le pseudo" msgid "Change my email" msgstr "Modifier mon e-mail" -#: src/view/screens/Settings/index.tsx:750 +#: src/view/screens/Settings/index.tsx:754 msgid "Change password" msgstr "Modifier le mot de passe" #: src/view/com/modals/ChangePassword.tsx:141 -#: src/view/screens/Settings/index.tsx:761 +#: src/view/screens/Settings/index.tsx:765 msgid "Change Password" msgstr "Modifier le mot de passe" @@ -725,19 +725,19 @@ msgstr "Choisissez vos principaux fils d’actu" msgid "Choose your password" msgstr "Choisissez votre mot de passe" -#: src/view/screens/Settings/index.tsx:864 +#: src/view/screens/Settings/index.tsx:868 msgid "Clear all legacy storage data" msgstr "Effacer toutes les données de stockage existantes" -#: src/view/screens/Settings/index.tsx:867 +#: src/view/screens/Settings/index.tsx:871 msgid "Clear all legacy storage data (restart after this)" msgstr "Effacer toutes les données de stockage existantes (redémarrer ensuite)" -#: src/view/screens/Settings/index.tsx:876 +#: src/view/screens/Settings/index.tsx:880 msgid "Clear all storage data" msgstr "Effacer toutes les données de stockage" -#: src/view/screens/Settings/index.tsx:879 +#: src/view/screens/Settings/index.tsx:883 msgid "Clear all storage data (restart after this)" msgstr "Effacer toutes les données de stockage (redémarrer ensuite)" @@ -746,11 +746,11 @@ msgstr "Effacer toutes les données de stockage (redémarrer ensuite)" msgid "Clear search query" msgstr "Effacer la recherche" -#: src/view/screens/Settings/index.tsx:865 +#: src/view/screens/Settings/index.tsx:869 msgid "Clears all legacy storage data" msgstr "" -#: src/view/screens/Settings/index.tsx:877 +#: src/view/screens/Settings/index.tsx:881 msgid "Clears all storage data" msgstr "" @@ -913,7 +913,7 @@ msgid "Confirmation code" msgstr "Code de confirmation" #: src/view/com/auth/create/CreateAccount.tsx:193 -#: src/view/com/auth/login/LoginForm.tsx:278 +#: src/view/com/auth/login/LoginForm.tsx:281 msgid "Connecting..." msgstr "Connexion…" @@ -1001,7 +1001,7 @@ msgstr "Cuisine" msgid "Copied" msgstr "Copié" -#: src/view/screens/Settings/index.tsx:247 +#: src/view/screens/Settings/index.tsx:251 msgid "Copied build version to clipboard" msgstr "Version de build copiée dans le presse-papier" @@ -1061,7 +1061,7 @@ msgstr "Impossible de charger la liste" msgid "Create a new account" msgstr "Créer un nouveau compte" -#: src/view/screens/Settings/index.tsx:399 +#: src/view/screens/Settings/index.tsx:403 msgid "Create a new Bluesky account" msgstr "Créer un compte Bluesky" @@ -1120,8 +1120,8 @@ msgstr "Les fils d’actu personnalisés élaborés par la communauté vous font msgid "Customize media from external sites." msgstr "Personnaliser les médias provenant de sites externes." -#: src/view/screens/Settings/index.tsx:500 -#: src/view/screens/Settings/index.tsx:526 +#: src/view/screens/Settings/index.tsx:504 +#: src/view/screens/Settings/index.tsx:530 msgid "Dark" msgstr "Sombre" @@ -1129,11 +1129,11 @@ msgstr "Sombre" msgid "Dark mode" msgstr "Mode sombre" -#: src/view/screens/Settings/index.tsx:513 +#: src/view/screens/Settings/index.tsx:517 msgid "Dark Theme" msgstr "Thème sombre" -#: src/view/screens/Settings/index.tsx:837 +#: src/view/screens/Settings/index.tsx:841 msgid "Debug Moderation" msgstr "" @@ -1147,7 +1147,7 @@ msgstr "Panneau de débug" msgid "Delete" msgstr "" -#: src/view/screens/Settings/index.tsx:792 +#: src/view/screens/Settings/index.tsx:796 msgid "Delete account" msgstr "Supprimer le compte" @@ -1171,7 +1171,7 @@ msgstr "Supprimer la liste" msgid "Delete my account" msgstr "Supprimer mon compte" -#: src/view/screens/Settings/index.tsx:804 +#: src/view/screens/Settings/index.tsx:808 msgid "Delete My Account…" msgstr "Supprimer mon compte…" @@ -1207,7 +1207,7 @@ msgstr "Description" msgid "Did you want to say anything?" msgstr "Vous vouliez dire quelque chose ?" -#: src/view/screens/Settings/index.tsx:519 +#: src/view/screens/Settings/index.tsx:523 msgid "Dim" msgstr "Atténué" @@ -1268,19 +1268,6 @@ msgstr "" msgid "Domain verified!" msgstr "Domaine vérifié !" -#: src/view/com/auth/onboarding/RecommendedFollows.tsx:86 -#: src/view/com/modals/EditImage.tsx:333 -#: src/view/com/modals/ListAddRemoveUsers.tsx:144 -#: src/view/com/modals/SelfLabel.tsx:157 -#: src/view/com/modals/Threadgate.tsx:129 -#: src/view/com/modals/Threadgate.tsx:132 -#: src/view/com/modals/UserAddRemoveLists.tsx:95 -#: src/view/com/modals/UserAddRemoveLists.tsx:98 -#: src/view/screens/PreferencesThreads.tsx:162 -msgctxt "action" -msgid "Done" -msgstr "Terminer" - #: src/components/dialogs/BirthDateSettings.tsx:119 #: src/components/dialogs/BirthDateSettings.tsx:125 #: src/view/com/auth/server-input/index.tsx:165 @@ -1297,11 +1284,24 @@ msgstr "Terminer" msgid "Done" msgstr "Terminé" +#: src/view/com/auth/onboarding/RecommendedFollows.tsx:86 +#: src/view/com/modals/EditImage.tsx:333 +#: src/view/com/modals/ListAddRemoveUsers.tsx:144 +#: src/view/com/modals/SelfLabel.tsx:157 +#: src/view/com/modals/Threadgate.tsx:129 +#: src/view/com/modals/Threadgate.tsx:132 +#: src/view/com/modals/UserAddRemoveLists.tsx:95 +#: src/view/com/modals/UserAddRemoveLists.tsx:98 +#: src/view/screens/PreferencesThreads.tsx:162 +msgctxt "action" +msgid "Done" +msgstr "Terminer" + #: src/view/com/modals/lang-settings/ConfirmLanguagesButton.tsx:42 msgid "Done{extraText}" msgstr "Terminé{extraText}" -#: src/view/com/auth/login/ChooseAccountForm.tsx:45 +#: src/view/com/auth/login/ChooseAccountForm.tsx:46 msgid "Double tap to sign in" msgstr "Tapotez deux fois pour vous connecter" @@ -1450,7 +1450,7 @@ msgstr "E-mail mis à jour" msgid "Email verified" msgstr "Adresse e-mail vérifiée" -#: src/view/screens/Settings/index.tsx:327 +#: src/view/screens/Settings/index.tsx:331 msgid "Email:" msgstr "E-mail :" @@ -1591,12 +1591,12 @@ msgstr "" msgid "Explicit sexual images." msgstr "" -#: src/view/screens/Settings/index.tsx:773 +#: src/view/screens/Settings/index.tsx:777 msgid "Export my data" msgstr "Exporter mes données" #: src/view/screens/Settings/ExportCarDialog.tsx:44 -#: src/view/screens/Settings/index.tsx:784 +#: src/view/screens/Settings/index.tsx:788 msgid "Export My Data" msgstr "Exporter mes données" @@ -1611,11 +1611,11 @@ msgstr "Les médias externes peuvent permettre à des sites web de collecter des #: src/Navigation.tsx:275 #: src/view/screens/PreferencesExternalEmbeds.tsx:52 -#: src/view/screens/Settings/index.tsx:673 +#: src/view/screens/Settings/index.tsx:677 msgid "External Media Preferences" msgstr "Préférences sur les médias externes" -#: src/view/screens/Settings/index.tsx:664 +#: src/view/screens/Settings/index.tsx:668 msgid "External media settings" msgstr "Préférences sur les médias externes" @@ -1804,7 +1804,7 @@ msgstr "Suivi" msgid "Following {0}" msgstr "Suit {0}" -#: src/view/screens/Settings/index.tsx:549 +#: src/view/screens/Settings/index.tsx:553 msgid "Following feed preferences" msgstr "" @@ -1812,7 +1812,7 @@ msgstr "" #: src/view/com/home/HomeHeaderLayout.web.tsx:50 #: src/view/com/home/HomeHeaderLayoutMobile.tsx:84 #: src/view/screens/PreferencesFollowingFeed.tsx:104 -#: src/view/screens/Settings/index.tsx:558 +#: src/view/screens/Settings/index.tsx:562 msgid "Following Feed Preferences" msgstr "Préférences en matière de fil d’actu « Following »" @@ -1836,11 +1836,11 @@ msgstr "Pour des raisons de sécurité, nous devrons envoyer un code de confirma msgid "For security reasons, you won't be able to view this again. If you lose this password, you'll need to generate a new one." msgstr "Pour des raisons de sécurité, vous ne pourrez plus afficher ceci. Si vous perdez ce mot de passe, vous devrez en générer un autre." -#: src/view/com/auth/login/LoginForm.tsx:241 +#: src/view/com/auth/login/LoginForm.tsx:244 msgid "Forgot" msgstr "Oublié" -#: src/view/com/auth/login/LoginForm.tsx:238 +#: src/view/com/auth/login/LoginForm.tsx:241 msgid "Forgot password" msgstr "Mot de passe oublié" @@ -1917,7 +1917,7 @@ msgstr "Aller à @{queryMaybeHandle}" #: src/view/com/auth/login/ForgotPasswordForm.tsx:189 #: src/view/com/auth/login/ForgotPasswordForm.tsx:218 -#: src/view/com/auth/login/LoginForm.tsx:288 +#: src/view/com/auth/login/LoginForm.tsx:291 #: src/view/com/auth/login/SetNewPasswordForm.tsx:195 #: src/view/com/modals/ChangePassword.tsx:167 msgid "Go to next" @@ -2143,15 +2143,15 @@ msgstr "Entrez le nouveau mot de passe" msgid "Input password for account deletion" msgstr "Entrez le mot de passe pour la suppression du compte" -#: src/view/com/auth/login/LoginForm.tsx:230 +#: src/view/com/auth/login/LoginForm.tsx:233 msgid "Input the password tied to {identifier}" msgstr "Entrez le mot de passe associé à {identifier}" -#: src/view/com/auth/login/LoginForm.tsx:197 +#: src/view/com/auth/login/LoginForm.tsx:200 msgid "Input the username or email address you used at signup" msgstr "Entrez le pseudo ou l’adresse e-mail que vous avez utilisé lors de l’inscription" -#: src/view/com/auth/login/LoginForm.tsx:229 +#: src/view/com/auth/login/LoginForm.tsx:232 msgid "Input your password" msgstr "Entrez votre mot de passe" @@ -2167,7 +2167,7 @@ msgstr "Entrez votre pseudo" msgid "Invalid or unsupported post record" msgstr "Enregistrement de post invalide ou non pris en charge" -#: src/view/com/auth/login/LoginForm.tsx:113 +#: src/view/com/auth/login/LoginForm.tsx:116 msgid "Invalid username or password" msgstr "Pseudo ou mot de passe incorrect" @@ -2241,7 +2241,7 @@ msgstr "" msgid "Language selection" msgstr "Sélection de la langue" -#: src/view/screens/Settings/index.tsx:610 +#: src/view/screens/Settings/index.tsx:614 msgid "Language settings" msgstr "Préférences de langue" @@ -2250,7 +2250,7 @@ msgstr "Préférences de langue" msgid "Language Settings" msgstr "Paramètres linguistiques" -#: src/view/screens/Settings/index.tsx:619 +#: src/view/screens/Settings/index.tsx:623 msgid "Languages" msgstr "Langues" @@ -2296,7 +2296,7 @@ msgstr "Quitter Bluesky" msgid "left to go." msgstr "devant vous dans la file." -#: src/view/screens/Settings/index.tsx:292 +#: src/view/screens/Settings/index.tsx:296 msgid "Legacy storage cleared, you need to restart the app now." msgstr "Stockage ancien effacé, vous devez redémarrer l’application maintenant." @@ -2314,7 +2314,7 @@ msgstr "Allons-y !" #~ msgid "Library" #~ msgstr "Bibliothèque" -#: src/view/screens/Settings/index.tsx:494 +#: src/view/screens/Settings/index.tsx:498 msgid "Light" msgstr "Clair" @@ -2449,7 +2449,7 @@ msgstr "Déconnexion" msgid "Logged-out visibility" msgstr "Visibilité déconnectée" -#: src/view/com/auth/login/ChooseAccountForm.tsx:137 +#: src/view/com/auth/login/ChooseAccountForm.tsx:142 msgid "Login to account that is not listed" msgstr "Se connecter à un compte qui n’est pas listé" @@ -2496,7 +2496,7 @@ msgstr "" #: src/Navigation.tsx:119 #: src/screens/Moderation/index.tsx:106 -#: src/view/screens/Settings/index.tsx:641 +#: src/view/screens/Settings/index.tsx:645 #: src/view/shell/desktop/LeftNav.tsx:401 #: src/view/shell/Drawer.tsx:514 #: src/view/shell/Drawer.tsx:515 @@ -2539,7 +2539,7 @@ msgstr "Listes de modération" msgid "Moderation Lists" msgstr "Listes de modération" -#: src/view/screens/Settings/index.tsx:635 +#: src/view/screens/Settings/index.tsx:639 msgid "Moderation settings" msgstr "Paramètres de modération" @@ -2678,11 +2678,11 @@ msgstr "Mes fils d’actu" msgid "My Profile" msgstr "Mon profil" -#: src/view/screens/Settings/index.tsx:592 +#: src/view/screens/Settings/index.tsx:596 msgid "My saved feeds" msgstr "" -#: src/view/screens/Settings/index.tsx:598 +#: src/view/screens/Settings/index.tsx:602 msgid "My Saved Feeds" msgstr "Mes fils d’actu enregistrés" @@ -2711,7 +2711,7 @@ msgstr "Nature" #: src/view/com/auth/login/ForgotPasswordForm.tsx:190 #: src/view/com/auth/login/ForgotPasswordForm.tsx:219 -#: src/view/com/auth/login/LoginForm.tsx:289 +#: src/view/com/auth/login/LoginForm.tsx:292 #: src/view/com/auth/login/SetNewPasswordForm.tsx:196 #: src/view/com/modals/ChangePassword.tsx:168 msgid "Navigates to the next screen" @@ -2804,7 +2804,7 @@ msgstr "Actualités" #: src/view/com/auth/create/CreateAccount.tsx:172 #: src/view/com/auth/login/ForgotPasswordForm.tsx:182 #: src/view/com/auth/login/ForgotPasswordForm.tsx:192 -#: src/view/com/auth/login/LoginForm.tsx:291 +#: src/view/com/auth/login/LoginForm.tsx:294 #: src/view/com/auth/login/SetNewPasswordForm.tsx:187 #: src/view/com/auth/login/SetNewPasswordForm.tsx:198 #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:79 @@ -2949,7 +2949,7 @@ msgstr "D’accord" msgid "Oldest replies first" msgstr "Plus anciennes réponses en premier" -#: src/view/screens/Settings/index.tsx:240 +#: src/view/screens/Settings/index.tsx:244 msgid "Onboarding reset" msgstr "Réinitialiser le didacticiel" @@ -2988,7 +2988,7 @@ msgstr "Ouvrir le sélecteur d’emoji" msgid "Open feed options menu" msgstr "" -#: src/view/screens/Settings/index.tsx:730 +#: src/view/screens/Settings/index.tsx:734 msgid "Open links with in-app browser" msgstr "Ouvrir des liens avec le navigateur interne à l’appli" @@ -3008,12 +3008,12 @@ msgstr "Navigation ouverte" msgid "Open post options menu" msgstr "Ouvrir le menu d’options du post" -#: src/view/screens/Settings/index.tsx:824 -#: src/view/screens/Settings/index.tsx:834 +#: src/view/screens/Settings/index.tsx:828 +#: src/view/screens/Settings/index.tsx:838 msgid "Open storybook page" msgstr "Ouvrir la page Storybook" -#: src/view/screens/Settings/index.tsx:812 +#: src/view/screens/Settings/index.tsx:816 msgid "Open system log" msgstr "" @@ -3037,7 +3037,7 @@ msgstr "Ouvre l’appareil photo de l’appareil" msgid "Opens composer" msgstr "Ouvre le rédacteur" -#: src/view/screens/Settings/index.tsx:611 +#: src/view/screens/Settings/index.tsx:615 msgid "Opens configurable language settings" msgstr "Ouvre les paramètres linguistiques configurables" @@ -3049,7 +3049,7 @@ msgstr "Ouvre la galerie de photos de l’appareil" #~ msgid "Opens editor for profile display name, avatar, background image, and description" #~ msgstr "Ouvre l’éditeur pour le nom d’affichage du profil, l’avatar, l’image d’arrière-plan et la description" -#: src/view/screens/Settings/index.tsx:665 +#: src/view/screens/Settings/index.tsx:669 msgid "Opens external embeds settings" msgstr "Ouvre les paramètres d’intégration externe" @@ -3075,7 +3075,7 @@ msgstr "" msgid "Opens list of invite codes" msgstr "Ouvre la liste des codes d’invitation" -#: src/view/screens/Settings/index.tsx:794 +#: src/view/screens/Settings/index.tsx:798 msgid "Opens modal for account deletion confirmation. Requires email code" msgstr "" @@ -3083,19 +3083,19 @@ msgstr "" #~ msgid "Opens modal for account deletion confirmation. Requires email code." #~ msgstr "Ouvre la fenêtre modale pour confirmer la suppression du compte. Requiert un code e-mail." -#: src/view/screens/Settings/index.tsx:752 +#: src/view/screens/Settings/index.tsx:756 msgid "Opens modal for changing your Bluesky password" msgstr "" -#: src/view/screens/Settings/index.tsx:714 +#: src/view/screens/Settings/index.tsx:718 msgid "Opens modal for choosing a new Bluesky handle" msgstr "" -#: src/view/screens/Settings/index.tsx:775 +#: src/view/screens/Settings/index.tsx:779 msgid "Opens modal for downloading your Bluesky account data (repository)" msgstr "" -#: src/view/screens/Settings/index.tsx:966 +#: src/view/screens/Settings/index.tsx:970 msgid "Opens modal for email verification" msgstr "" @@ -3103,11 +3103,11 @@ msgstr "" msgid "Opens modal for using custom domain" msgstr "Ouvre une fenêtre modale pour utiliser un domaine personnalisé" -#: src/view/screens/Settings/index.tsx:636 +#: src/view/screens/Settings/index.tsx:640 msgid "Opens moderation settings" msgstr "Ouvre les paramètres de modération" -#: src/view/com/auth/login/LoginForm.tsx:239 +#: src/view/com/auth/login/LoginForm.tsx:242 msgid "Opens password reset form" msgstr "Ouvre le formulaire de réinitialisation du mot de passe" @@ -3116,11 +3116,11 @@ msgstr "Ouvre le formulaire de réinitialisation du mot de passe" msgid "Opens screen to edit Saved Feeds" msgstr "Ouvre l’écran pour modifier les fils d’actu enregistrés" -#: src/view/screens/Settings/index.tsx:593 +#: src/view/screens/Settings/index.tsx:597 msgid "Opens screen with all saved feeds" msgstr "Ouvre l’écran avec tous les fils d’actu enregistrés" -#: src/view/screens/Settings/index.tsx:692 +#: src/view/screens/Settings/index.tsx:696 msgid "Opens the app password settings" msgstr "" @@ -3128,7 +3128,7 @@ msgstr "" #~ msgid "Opens the app password settings page" #~ msgstr "Ouvre la page de configuration du mot de passe" -#: src/view/screens/Settings/index.tsx:550 +#: src/view/screens/Settings/index.tsx:554 msgid "Opens the Following feed preferences" msgstr "" @@ -3140,16 +3140,16 @@ msgstr "" msgid "Opens the linked website" msgstr "" -#: src/view/screens/Settings/index.tsx:825 -#: src/view/screens/Settings/index.tsx:835 +#: src/view/screens/Settings/index.tsx:829 +#: src/view/screens/Settings/index.tsx:839 msgid "Opens the storybook page" msgstr "Ouvre la page de l’historique" -#: src/view/screens/Settings/index.tsx:813 +#: src/view/screens/Settings/index.tsx:817 msgid "Opens the system log page" msgstr "Ouvre la page du journal système" -#: src/view/screens/Settings/index.tsx:571 +#: src/view/screens/Settings/index.tsx:575 msgid "Opens the threads preferences" msgstr "Ouvre les préférences relatives aux fils de discussion" @@ -3169,7 +3169,7 @@ msgstr "Ou une combinaison de ces options :" msgid "Other" msgstr "" -#: src/view/com/auth/login/ChooseAccountForm.tsx:142 +#: src/view/com/auth/login/ChooseAccountForm.tsx:147 msgid "Other account" msgstr "Autre compte" @@ -3188,8 +3188,8 @@ msgstr "Page introuvable" #: src/view/com/auth/create/Step1.tsx:191 #: src/view/com/auth/create/Step1.tsx:201 -#: src/view/com/auth/login/LoginForm.tsx:210 -#: src/view/com/auth/login/LoginForm.tsx:226 +#: src/view/com/auth/login/LoginForm.tsx:213 +#: src/view/com/auth/login/LoginForm.tsx:229 #: src/view/com/auth/login/SetNewPasswordForm.tsx:161 #: src/view/com/modals/DeleteAccount.tsx:195 #: src/view/com/modals/DeleteAccount.tsx:202 @@ -3411,7 +3411,7 @@ msgstr "Langue principale" msgid "Prioritize Your Follows" msgstr "Définissez des priorités de vos suivis" -#: src/view/screens/Settings/index.tsx:648 +#: src/view/screens/Settings/index.tsx:652 #: src/view/shell/desktop/RightNav.tsx:72 msgid "Privacy" msgstr "Vie privée" @@ -3419,7 +3419,7 @@ msgstr "Vie privée" #: src/Navigation.tsx:231 #: src/view/com/auth/create/Policies.tsx:69 #: src/view/screens/PrivacyPolicy.tsx:29 -#: src/view/screens/Settings/index.tsx:921 +#: src/view/screens/Settings/index.tsx:925 #: src/view/shell/Drawer.tsx:265 msgid "Privacy Policy" msgstr "Charte de confidentialité" @@ -3445,7 +3445,7 @@ msgstr "Profil" msgid "Profile updated" msgstr "Profil mis à jour" -#: src/view/screens/Settings/index.tsx:979 +#: src/view/screens/Settings/index.tsx:983 msgid "Protect your account by verifying your email." msgstr "Protégez votre compte en vérifiant votre e-mail." @@ -3705,7 +3705,7 @@ msgstr "Demande de modification" msgid "Request Code" msgstr "Demander un code" -#: src/view/screens/Settings/index.tsx:471 +#: src/view/screens/Settings/index.tsx:475 msgid "Require alt text before posting" msgstr "Nécessiter un texte alt avant de publier" @@ -3727,8 +3727,8 @@ msgstr "Code de réinitialisation" #~ msgid "Reset onboarding" #~ msgstr "Réinitialiser le didacticiel" -#: src/view/screens/Settings/index.tsx:854 -#: src/view/screens/Settings/index.tsx:857 +#: src/view/screens/Settings/index.tsx:858 +#: src/view/screens/Settings/index.tsx:861 msgid "Reset onboarding state" msgstr "Réinitialisation du didacticiel" @@ -3740,20 +3740,20 @@ msgstr "Réinitialiser mot de passe" #~ msgid "Reset preferences" #~ msgstr "Réinitialiser les préférences" -#: src/view/screens/Settings/index.tsx:844 -#: src/view/screens/Settings/index.tsx:847 +#: src/view/screens/Settings/index.tsx:848 +#: src/view/screens/Settings/index.tsx:851 msgid "Reset preferences state" msgstr "Réinitialiser l’état des préférences" -#: src/view/screens/Settings/index.tsx:855 +#: src/view/screens/Settings/index.tsx:859 msgid "Resets the onboarding state" msgstr "Réinitialise l’état d’accueil" -#: src/view/screens/Settings/index.tsx:845 +#: src/view/screens/Settings/index.tsx:849 msgid "Resets the preferences state" msgstr "Réinitialise l’état des préférences" -#: src/view/com/auth/login/LoginForm.tsx:269 +#: src/view/com/auth/login/LoginForm.tsx:272 msgid "Retries login" msgstr "Réessaye la connection" @@ -3767,8 +3767,8 @@ msgstr "Réessaye la dernière action, qui a échoué" #: src/screens/Onboarding/StepInterests/index.tsx:224 #: src/view/com/auth/create/CreateAccount.tsx:181 #: src/view/com/auth/create/CreateAccount.tsx:186 -#: src/view/com/auth/login/LoginForm.tsx:268 #: src/view/com/auth/login/LoginForm.tsx:271 +#: src/view/com/auth/login/LoginForm.tsx:274 #: src/view/com/util/error/ErrorMessage.tsx:55 #: src/view/com/util/error/ErrorScreen.tsx:72 msgid "Retry" @@ -3787,12 +3787,6 @@ msgstr "" msgid "Returns to previous page" msgstr "" -#: src/view/com/lightbox/Lightbox.tsx:132 -#: src/view/com/modals/CreateOrEditList.tsx:345 -msgctxt "action" -msgid "Save" -msgstr "Enregistrer" - #: src/components/dialogs/BirthDateSettings.tsx:125 #: src/view/com/modals/ChangeHandle.tsx:173 #: src/view/com/modals/CreateOrEditList.tsx:337 @@ -3800,6 +3794,12 @@ msgstr "Enregistrer" msgid "Save" msgstr "Enregistrer" +#: src/view/com/lightbox/Lightbox.tsx:132 +#: src/view/com/modals/CreateOrEditList.tsx:345 +msgctxt "action" +msgid "Save" +msgstr "Enregistrer" + #: src/view/com/modals/AltImage.tsx:130 msgid "Save alt text" msgstr "Enregistrer le texte alt" @@ -3942,7 +3942,7 @@ msgid "Select option {i} of {numItems}" msgstr "Sélectionne l’option {i} sur {numItems}" #: src/view/com/auth/create/Step1.tsx:96 -#: src/view/com/auth/login/LoginForm.tsx:150 +#: src/view/com/auth/login/LoginForm.tsx:153 msgid "Select service" msgstr "Sélectionner un service" @@ -4104,23 +4104,23 @@ msgstr "Créez votre compte" msgid "Sets Bluesky username" msgstr "Définit le pseudo Bluesky" -#: src/view/screens/Settings/index.tsx:503 +#: src/view/screens/Settings/index.tsx:507 msgid "Sets color theme to dark" msgstr "" -#: src/view/screens/Settings/index.tsx:496 +#: src/view/screens/Settings/index.tsx:500 msgid "Sets color theme to light" msgstr "" -#: src/view/screens/Settings/index.tsx:490 +#: src/view/screens/Settings/index.tsx:494 msgid "Sets color theme to system setting" msgstr "" -#: src/view/screens/Settings/index.tsx:529 +#: src/view/screens/Settings/index.tsx:533 msgid "Sets dark theme to the dark theme" msgstr "" -#: src/view/screens/Settings/index.tsx:522 +#: src/view/screens/Settings/index.tsx:526 msgid "Sets dark theme to the dim theme" msgstr "" @@ -4145,12 +4145,12 @@ msgid "Sets image aspect ratio to wide" msgstr "" #: src/view/com/auth/create/Step1.tsx:97 -#: src/view/com/auth/login/LoginForm.tsx:151 +#: src/view/com/auth/login/LoginForm.tsx:154 msgid "Sets server for the Bluesky client" msgstr "Définit le serveur pour le client Bluesky" #: src/Navigation.tsx:139 -#: src/view/screens/Settings/index.tsx:309 +#: src/view/screens/Settings/index.tsx:313 #: src/view/shell/desktop/LeftNav.tsx:437 #: src/view/shell/Drawer.tsx:570 #: src/view/shell/Drawer.tsx:571 @@ -4193,7 +4193,7 @@ msgstr "Partager le fil d’actu" #: src/components/moderation/GlobalModerationLabelPref.tsx:45 #: src/components/moderation/PostHider.tsx:107 #: src/screens/Onboarding/StepModeration/ModerationOption.tsx:54 -#: src/view/screens/Settings/index.tsx:359 +#: src/view/screens/Settings/index.tsx:363 msgid "Show" msgstr "Afficher" @@ -4323,23 +4323,23 @@ msgstr "Connexion" msgid "Sign In" msgstr "Connexion" -#: src/view/com/auth/login/ChooseAccountForm.tsx:44 +#: src/view/com/auth/login/ChooseAccountForm.tsx:45 msgid "Sign in as {0}" msgstr "Se connecter en tant que {0}" -#: src/view/com/auth/login/ChooseAccountForm.tsx:122 +#: src/view/com/auth/login/ChooseAccountForm.tsx:127 #: src/view/com/auth/login/Login.tsx:116 msgid "Sign in as..." msgstr "Se connecter en tant que…" -#: src/view/com/auth/login/LoginForm.tsx:137 +#: src/view/com/auth/login/LoginForm.tsx:140 msgid "Sign into" msgstr "Se connecter à" #: src/view/com/modals/SwitchAccount.tsx:68 #: src/view/com/modals/SwitchAccount.tsx:73 -#: src/view/screens/Settings/index.tsx:105 -#: src/view/screens/Settings/index.tsx:108 +#: src/view/screens/Settings/index.tsx:107 +#: src/view/screens/Settings/index.tsx:110 msgid "Sign out" msgstr "Déconnexion" @@ -4364,11 +4364,11 @@ msgstr "S’inscrire ou se connecter pour participer à la conversation" msgid "Sign-in Required" msgstr "Connexion requise" -#: src/view/screens/Settings/index.tsx:370 +#: src/view/screens/Settings/index.tsx:374 msgid "Signed in as" msgstr "Connecté en tant que" -#: src/view/com/auth/login/ChooseAccountForm.tsx:107 +#: src/view/com/auth/login/ChooseAccountForm.tsx:112 msgid "Signed in as @{0}" msgstr "Connecté en tant que @{0}" @@ -4432,7 +4432,7 @@ msgstr "Sports" msgid "Square" msgstr "Carré" -#: src/view/screens/Settings/index.tsx:901 +#: src/view/screens/Settings/index.tsx:905 msgid "Status page" msgstr "État du service" @@ -4440,12 +4440,12 @@ msgstr "État du service" msgid "Step {0} of {numSteps}" msgstr "Étape {0} sur {numSteps}" -#: src/view/screens/Settings/index.tsx:288 +#: src/view/screens/Settings/index.tsx:292 msgid "Storage cleared, you need to restart the app now." msgstr "Stockage effacé, vous devez redémarrer l’application maintenant." #: src/Navigation.tsx:211 -#: src/view/screens/Settings/index.tsx:827 +#: src/view/screens/Settings/index.tsx:831 msgid "Storybook" msgstr "Historique" @@ -4497,25 +4497,25 @@ msgstr "Suggestif" msgid "Support" msgstr "Soutien" -#: src/view/com/modals/SwitchAccount.tsx:121 +#: src/view/com/modals/SwitchAccount.tsx:123 msgid "Switch Account" msgstr "Changer de compte" -#: src/view/com/modals/SwitchAccount.tsx:101 -#: src/view/screens/Settings/index.tsx:135 +#: src/view/com/modals/SwitchAccount.tsx:103 +#: src/view/screens/Settings/index.tsx:139 msgid "Switch to {0}" msgstr "Basculer sur {0}" -#: src/view/com/modals/SwitchAccount.tsx:102 -#: src/view/screens/Settings/index.tsx:136 +#: src/view/com/modals/SwitchAccount.tsx:104 +#: src/view/screens/Settings/index.tsx:140 msgid "Switches the account you are logged in to" msgstr "Bascule le compte auquel vous êtes connectés vers" -#: src/view/screens/Settings/index.tsx:487 +#: src/view/screens/Settings/index.tsx:491 msgid "System" msgstr "Système" -#: src/view/screens/Settings/index.tsx:815 +#: src/view/screens/Settings/index.tsx:819 msgid "System log" msgstr "Journal système" @@ -4545,7 +4545,7 @@ msgstr "Conditions générales" #: src/Navigation.tsx:236 #: src/view/com/auth/create/Policies.tsx:59 -#: src/view/screens/Settings/index.tsx:915 +#: src/view/screens/Settings/index.tsx:919 #: src/view/screens/TermsOfService.tsx:29 #: src/view/shell/Drawer.tsx:259 msgid "Terms of Service" @@ -4873,12 +4873,12 @@ msgstr "Cela supprimera {0} de vos mots masqués. Vous pourrez toujours le réin #~ msgid "This will hide this post from your feeds." #~ msgstr "Cela va masquer ce post de vos fils d’actu." -#: src/view/screens/Settings/index.tsx:570 +#: src/view/screens/Settings/index.tsx:574 msgid "Thread preferences" msgstr "" #: src/view/screens/PreferencesThreads.tsx:53 -#: src/view/screens/Settings/index.tsx:580 +#: src/view/screens/Settings/index.tsx:584 msgid "Thread Preferences" msgstr "Préférences des fils de discussion" @@ -4937,7 +4937,7 @@ msgstr "Réafficher cette liste" #: src/view/com/auth/create/CreateAccount.tsx:58 #: src/view/com/auth/login/ForgotPasswordForm.tsx:87 #: src/view/com/auth/login/Login.tsx:76 -#: src/view/com/auth/login/LoginForm.tsx:118 +#: src/view/com/auth/login/LoginForm.tsx:121 #: src/view/com/modals/ChangePassword.tsx:70 msgid "Unable to contact your service. Please check your Internet connection." msgstr "Impossible de contacter votre service. Veuillez vérifier votre connexion Internet." @@ -5183,8 +5183,8 @@ msgstr "Liste de compte mise à jour" msgid "User Lists" msgstr "Listes de comptes" -#: src/view/com/auth/login/LoginForm.tsx:177 -#: src/view/com/auth/login/LoginForm.tsx:195 +#: src/view/com/auth/login/LoginForm.tsx:180 +#: src/view/com/auth/login/LoginForm.tsx:198 msgid "Username or email address" msgstr "Pseudo ou e-mail" @@ -5212,15 +5212,15 @@ msgstr "" msgid "Verify {0}" msgstr "" -#: src/view/screens/Settings/index.tsx:940 +#: src/view/screens/Settings/index.tsx:944 msgid "Verify email" msgstr "Confirmer l’e-mail" -#: src/view/screens/Settings/index.tsx:965 +#: src/view/screens/Settings/index.tsx:969 msgid "Verify my email" msgstr "Confirmer mon e-mail" -#: src/view/screens/Settings/index.tsx:974 +#: src/view/screens/Settings/index.tsx:978 msgid "Verify My Email" msgstr "Confirmer mon e-mail" @@ -5684,7 +5684,7 @@ msgid "Your posts, likes, and blocks are public. Mutes are private." msgstr "Vos posts, les likes et les blocages sont publics. Les silences (comptes masqués) sont privés." #: src/view/com/modals/SwitchAccount.tsx:88 -#: src/view/screens/Settings/index.tsx:123 +#: src/view/screens/Settings/index.tsx:125 msgid "Your profile" msgstr "Votre profil" diff --git a/src/locale/locales/hi/messages.po b/src/locale/locales/hi/messages.po index c0a68ed89d..fbccdc2236 100644 --- a/src/locale/locales/hi/messages.po +++ b/src/locale/locales/hi/messages.po @@ -93,7 +93,7 @@ msgid "Access profile and other navigation links" msgstr "" #: src/view/com/modals/EditImage.tsx:299 -#: src/view/screens/Settings/index.tsx:466 +#: src/view/screens/Settings/index.tsx:470 msgid "Accessibility" msgstr "प्रवेर्शयोग्यता" @@ -101,9 +101,9 @@ msgstr "प्रवेर्शयोग्यता" msgid "account" msgstr "" -#: src/view/com/auth/login/LoginForm.tsx:166 -#: src/view/screens/Settings/index.tsx:323 -#: src/view/screens/Settings/index.tsx:739 +#: src/view/com/auth/login/LoginForm.tsx:169 +#: src/view/screens/Settings/index.tsx:327 +#: src/view/screens/Settings/index.tsx:743 msgid "Account" msgstr "अकाउंट" @@ -165,8 +165,8 @@ msgstr "सामग्री चेतावनी जोड़ें" msgid "Add a user to this list" msgstr "इस सूची में किसी को जोड़ें" -#: src/view/screens/Settings/index.tsx:398 -#: src/view/screens/Settings/index.tsx:407 +#: src/view/screens/Settings/index.tsx:402 +#: src/view/screens/Settings/index.tsx:411 msgid "Add account" msgstr "अकाउंट जोड़ें" @@ -255,7 +255,7 @@ msgid "Adult content is disabled." msgstr "" #: src/screens/Moderation/index.tsx:377 -#: src/view/screens/Settings/index.tsx:680 +#: src/view/screens/Settings/index.tsx:684 msgid "Advanced" msgstr "विकसित" @@ -268,7 +268,7 @@ msgstr "" msgid "Already have a code?" msgstr "" -#: src/view/com/auth/login/ChooseAccountForm.tsx:102 +#: src/view/com/auth/login/ChooseAccountForm.tsx:103 msgid "Already signed in as @{0}" msgstr "" @@ -332,7 +332,7 @@ msgstr "" msgid "App Password names must be at least 4 characters long." msgstr "" -#: src/view/screens/Settings/index.tsx:691 +#: src/view/screens/Settings/index.tsx:695 msgid "App password settings" msgstr "" @@ -342,7 +342,7 @@ msgstr "" #: src/Navigation.tsx:251 #: src/view/screens/AppPasswords.tsx:189 -#: src/view/screens/Settings/index.tsx:700 +#: src/view/screens/Settings/index.tsx:704 msgid "App Passwords" msgstr "ऐप पासवर्ड" @@ -376,7 +376,7 @@ msgstr "" #~ msgid "Appeal this decision." #~ msgstr "" -#: src/view/screens/Settings/index.tsx:481 +#: src/view/screens/Settings/index.tsx:485 msgid "Appearance" msgstr "दिखावट" @@ -416,9 +416,9 @@ msgstr "कलात्मक या गैर-कामुक नग्नत #: src/components/moderation/LabelsOnMeDialog.tsx:248 #: src/screens/Profile/Header/Shell.tsx:97 #: src/view/com/auth/create/CreateAccount.tsx:158 -#: src/view/com/auth/login/ChooseAccountForm.tsx:155 +#: src/view/com/auth/login/ChooseAccountForm.tsx:160 #: src/view/com/auth/login/ForgotPasswordForm.tsx:174 -#: src/view/com/auth/login/LoginForm.tsx:259 +#: src/view/com/auth/login/LoginForm.tsx:262 #: src/view/com/auth/login/SetNewPasswordForm.tsx:179 #: src/view/com/util/ViewHeader.tsx:87 msgid "Back" @@ -433,7 +433,7 @@ msgstr "वापस" msgid "Based on your interest in {interestsText}" msgstr "" -#: src/view/screens/Settings/index.tsx:538 +#: src/view/screens/Settings/index.tsx:542 msgid "Basics" msgstr "मूल बातें" @@ -442,7 +442,7 @@ msgstr "मूल बातें" msgid "Birthday" msgstr "जन्मदिन" -#: src/view/screens/Settings/index.tsx:355 +#: src/view/screens/Settings/index.tsx:359 msgid "Birthday:" msgstr "जन्मदिन:" @@ -569,7 +569,7 @@ msgstr "" msgid "Books" msgstr "" -#: src/view/screens/Settings/index.tsx:889 +#: src/view/screens/Settings/index.tsx:893 msgid "Build version {0} {1}" msgstr "Build version {0} {1}" @@ -686,17 +686,17 @@ msgstr "" msgid "Change" msgstr "" -#: src/view/screens/Settings/index.tsx:349 +#: src/view/screens/Settings/index.tsx:353 msgctxt "action" msgid "Change" msgstr "परिवर्तन" -#: src/view/screens/Settings/index.tsx:712 +#: src/view/screens/Settings/index.tsx:716 msgid "Change handle" msgstr "हैंडल बदलें" #: src/view/com/modals/ChangeHandle.tsx:161 -#: src/view/screens/Settings/index.tsx:723 +#: src/view/screens/Settings/index.tsx:727 msgid "Change Handle" msgstr "हैंडल बदलें" @@ -704,12 +704,12 @@ msgstr "हैंडल बदलें" msgid "Change my email" msgstr "मेरा ईमेल बदलें" -#: src/view/screens/Settings/index.tsx:750 +#: src/view/screens/Settings/index.tsx:754 msgid "Change password" msgstr "" #: src/view/com/modals/ChangePassword.tsx:141 -#: src/view/screens/Settings/index.tsx:761 +#: src/view/screens/Settings/index.tsx:765 msgid "Change Password" msgstr "" @@ -775,19 +775,19 @@ msgstr "" msgid "Choose your password" msgstr "अपना पासवर्ड चुनें" -#: src/view/screens/Settings/index.tsx:864 +#: src/view/screens/Settings/index.tsx:868 msgid "Clear all legacy storage data" msgstr "" -#: src/view/screens/Settings/index.tsx:867 +#: src/view/screens/Settings/index.tsx:871 msgid "Clear all legacy storage data (restart after this)" msgstr "" -#: src/view/screens/Settings/index.tsx:876 +#: src/view/screens/Settings/index.tsx:880 msgid "Clear all storage data" msgstr "" -#: src/view/screens/Settings/index.tsx:879 +#: src/view/screens/Settings/index.tsx:883 msgid "Clear all storage data (restart after this)" msgstr "" @@ -796,11 +796,11 @@ msgstr "" msgid "Clear search query" msgstr "खोज क्वेरी साफ़ करें" -#: src/view/screens/Settings/index.tsx:865 +#: src/view/screens/Settings/index.tsx:869 msgid "Clears all legacy storage data" msgstr "" -#: src/view/screens/Settings/index.tsx:877 +#: src/view/screens/Settings/index.tsx:881 msgid "Clears all storage data" msgstr "" @@ -967,7 +967,7 @@ msgstr "OTP कोड" #~ msgstr "" #: src/view/com/auth/create/CreateAccount.tsx:193 -#: src/view/com/auth/login/LoginForm.tsx:278 +#: src/view/com/auth/login/LoginForm.tsx:281 msgid "Connecting..." msgstr "कनेक्टिंग ..।" @@ -1055,7 +1055,7 @@ msgstr "" msgid "Copied" msgstr "कॉपी कर ली" -#: src/view/screens/Settings/index.tsx:247 +#: src/view/screens/Settings/index.tsx:251 msgid "Copied build version to clipboard" msgstr "" @@ -1119,7 +1119,7 @@ msgstr "सूची लोड नहीं कर सकता" msgid "Create a new account" msgstr "नया खाता बनाएं" -#: src/view/screens/Settings/index.tsx:399 +#: src/view/screens/Settings/index.tsx:403 msgid "Create a new Bluesky account" msgstr "" @@ -1182,8 +1182,8 @@ msgstr "" #~ msgid "Danger Zone" #~ msgstr "खतरा क्षेत्र" -#: src/view/screens/Settings/index.tsx:500 -#: src/view/screens/Settings/index.tsx:526 +#: src/view/screens/Settings/index.tsx:504 +#: src/view/screens/Settings/index.tsx:530 msgid "Dark" msgstr "डार्क मोड" @@ -1191,11 +1191,11 @@ msgstr "डार्क मोड" msgid "Dark mode" msgstr "" -#: src/view/screens/Settings/index.tsx:513 +#: src/view/screens/Settings/index.tsx:517 msgid "Dark Theme" msgstr "" -#: src/view/screens/Settings/index.tsx:837 +#: src/view/screens/Settings/index.tsx:841 msgid "Debug Moderation" msgstr "" @@ -1209,7 +1209,7 @@ msgstr "" msgid "Delete" msgstr "" -#: src/view/screens/Settings/index.tsx:792 +#: src/view/screens/Settings/index.tsx:796 msgid "Delete account" msgstr "खाता हटाएं" @@ -1237,7 +1237,7 @@ msgstr "मेरा खाता हटाएं" #~ msgid "Delete my account…" #~ msgstr "मेरा खाता हटाएं…" -#: src/view/screens/Settings/index.tsx:804 +#: src/view/screens/Settings/index.tsx:808 msgid "Delete My Account…" msgstr "" @@ -1277,7 +1277,7 @@ msgstr "विवरण" msgid "Did you want to say anything?" msgstr "" -#: src/view/screens/Settings/index.tsx:519 +#: src/view/screens/Settings/index.tsx:523 msgid "Dim" msgstr "" @@ -1346,19 +1346,6 @@ msgstr "डोमेन सत्यापित!" #~ msgid "Don't have an invite code?" #~ msgstr "" -#: src/view/com/auth/onboarding/RecommendedFollows.tsx:86 -#: src/view/com/modals/EditImage.tsx:333 -#: src/view/com/modals/ListAddRemoveUsers.tsx:144 -#: src/view/com/modals/SelfLabel.tsx:157 -#: src/view/com/modals/Threadgate.tsx:129 -#: src/view/com/modals/Threadgate.tsx:132 -#: src/view/com/modals/UserAddRemoveLists.tsx:95 -#: src/view/com/modals/UserAddRemoveLists.tsx:98 -#: src/view/screens/PreferencesThreads.tsx:162 -msgctxt "action" -msgid "Done" -msgstr "" - #: src/components/dialogs/BirthDateSettings.tsx:119 #: src/components/dialogs/BirthDateSettings.tsx:125 #: src/view/com/auth/server-input/index.tsx:165 @@ -1375,11 +1362,24 @@ msgstr "" msgid "Done" msgstr "खत्म" +#: src/view/com/auth/onboarding/RecommendedFollows.tsx:86 +#: src/view/com/modals/EditImage.tsx:333 +#: src/view/com/modals/ListAddRemoveUsers.tsx:144 +#: src/view/com/modals/SelfLabel.tsx:157 +#: src/view/com/modals/Threadgate.tsx:129 +#: src/view/com/modals/Threadgate.tsx:132 +#: src/view/com/modals/UserAddRemoveLists.tsx:95 +#: src/view/com/modals/UserAddRemoveLists.tsx:98 +#: src/view/screens/PreferencesThreads.tsx:162 +msgctxt "action" +msgid "Done" +msgstr "" + #: src/view/com/modals/lang-settings/ConfirmLanguagesButton.tsx:42 msgid "Done{extraText}" msgstr "खत्म {extraText}" -#: src/view/com/auth/login/ChooseAccountForm.tsx:45 +#: src/view/com/auth/login/ChooseAccountForm.tsx:46 msgid "Double tap to sign in" msgstr "" @@ -1528,7 +1528,7 @@ msgstr "ईमेल अपडेट किया गया" msgid "Email verified" msgstr "" -#: src/view/screens/Settings/index.tsx:327 +#: src/view/screens/Settings/index.tsx:331 msgid "Email:" msgstr "ईमेल:" @@ -1681,12 +1681,12 @@ msgstr "" msgid "Explicit sexual images." msgstr "" -#: src/view/screens/Settings/index.tsx:773 +#: src/view/screens/Settings/index.tsx:777 msgid "Export my data" msgstr "" #: src/view/screens/Settings/ExportCarDialog.tsx:44 -#: src/view/screens/Settings/index.tsx:784 +#: src/view/screens/Settings/index.tsx:788 msgid "Export My Data" msgstr "" @@ -1701,11 +1701,11 @@ msgstr "" #: src/Navigation.tsx:275 #: src/view/screens/PreferencesExternalEmbeds.tsx:52 -#: src/view/screens/Settings/index.tsx:673 +#: src/view/screens/Settings/index.tsx:677 msgid "External Media Preferences" msgstr "" -#: src/view/screens/Settings/index.tsx:664 +#: src/view/screens/Settings/index.tsx:668 msgid "External media settings" msgstr "" @@ -1910,7 +1910,7 @@ msgstr "फोल्लोविंग" msgid "Following {0}" msgstr "" -#: src/view/screens/Settings/index.tsx:549 +#: src/view/screens/Settings/index.tsx:553 msgid "Following feed preferences" msgstr "" @@ -1918,7 +1918,7 @@ msgstr "" #: src/view/com/home/HomeHeaderLayout.web.tsx:50 #: src/view/com/home/HomeHeaderLayoutMobile.tsx:84 #: src/view/screens/PreferencesFollowingFeed.tsx:104 -#: src/view/screens/Settings/index.tsx:558 +#: src/view/screens/Settings/index.tsx:562 msgid "Following Feed Preferences" msgstr "" @@ -1942,11 +1942,11 @@ msgstr "सुरक्षा कारणों के लिए, हमें msgid "For security reasons, you won't be able to view this again. If you lose this password, you'll need to generate a new one." msgstr "सुरक्षा कारणों के लिए, आप इसे फिर से देखने में सक्षम नहीं होंगे। यदि आप इस पासवर्ड को खो देते हैं, तो आपको एक नया उत्पन्न करना होगा।।" -#: src/view/com/auth/login/LoginForm.tsx:241 +#: src/view/com/auth/login/LoginForm.tsx:244 msgid "Forgot" msgstr "भूल" -#: src/view/com/auth/login/LoginForm.tsx:238 +#: src/view/com/auth/login/LoginForm.tsx:241 msgid "Forgot password" msgstr "पासवर्ड भूल गए" @@ -2023,7 +2023,7 @@ msgstr "" #: src/view/com/auth/login/ForgotPasswordForm.tsx:189 #: src/view/com/auth/login/ForgotPasswordForm.tsx:218 -#: src/view/com/auth/login/LoginForm.tsx:288 +#: src/view/com/auth/login/LoginForm.tsx:291 #: src/view/com/auth/login/SetNewPasswordForm.tsx:195 #: src/view/com/modals/ChangePassword.tsx:167 msgid "Go to next" @@ -2264,11 +2264,11 @@ msgstr "" #~ msgid "Input phone number for SMS verification" #~ msgstr "" -#: src/view/com/auth/login/LoginForm.tsx:230 +#: src/view/com/auth/login/LoginForm.tsx:233 msgid "Input the password tied to {identifier}" msgstr "" -#: src/view/com/auth/login/LoginForm.tsx:197 +#: src/view/com/auth/login/LoginForm.tsx:200 msgid "Input the username or email address you used at signup" msgstr "" @@ -2280,7 +2280,7 @@ msgstr "" #~ msgid "Input your email to get on the Bluesky waitlist" #~ msgstr "" -#: src/view/com/auth/login/LoginForm.tsx:229 +#: src/view/com/auth/login/LoginForm.tsx:232 msgid "Input your password" msgstr "" @@ -2296,7 +2296,7 @@ msgstr "" msgid "Invalid or unsupported post record" msgstr "" -#: src/view/com/auth/login/LoginForm.tsx:113 +#: src/view/com/auth/login/LoginForm.tsx:116 msgid "Invalid username or password" msgstr "अवैध उपयोगकर्ता नाम या पासवर्ड" @@ -2391,7 +2391,7 @@ msgstr "" msgid "Language selection" msgstr "अपनी भाषा चुने" -#: src/view/screens/Settings/index.tsx:610 +#: src/view/screens/Settings/index.tsx:614 msgid "Language settings" msgstr "" @@ -2400,7 +2400,7 @@ msgstr "" msgid "Language Settings" msgstr "भाषा सेटिंग्स" -#: src/view/screens/Settings/index.tsx:619 +#: src/view/screens/Settings/index.tsx:623 msgid "Languages" msgstr "भाषा" @@ -2446,7 +2446,7 @@ msgstr "लीविंग Bluesky" msgid "left to go." msgstr "" -#: src/view/screens/Settings/index.tsx:292 +#: src/view/screens/Settings/index.tsx:296 msgid "Legacy storage cleared, you need to restart the app now." msgstr "" @@ -2464,7 +2464,7 @@ msgstr "" #~ msgid "Library" #~ msgstr "चित्र पुस्तकालय" -#: src/view/screens/Settings/index.tsx:494 +#: src/view/screens/Settings/index.tsx:498 msgid "Light" msgstr "लाइट मोड" @@ -2603,7 +2603,7 @@ msgstr "" msgid "Logged-out visibility" msgstr "" -#: src/view/com/auth/login/ChooseAccountForm.tsx:137 +#: src/view/com/auth/login/ChooseAccountForm.tsx:142 msgid "Login to account that is not listed" msgstr "उस खाते में लॉग इन करें जो सूचीबद्ध नहीं है" @@ -2650,7 +2650,7 @@ msgstr "" #: src/Navigation.tsx:119 #: src/screens/Moderation/index.tsx:106 -#: src/view/screens/Settings/index.tsx:641 +#: src/view/screens/Settings/index.tsx:645 #: src/view/shell/desktop/LeftNav.tsx:401 #: src/view/shell/Drawer.tsx:514 #: src/view/shell/Drawer.tsx:515 @@ -2693,7 +2693,7 @@ msgstr "मॉडरेशन सूचियाँ" msgid "Moderation Lists" msgstr "" -#: src/view/screens/Settings/index.tsx:635 +#: src/view/screens/Settings/index.tsx:639 msgid "Moderation settings" msgstr "" @@ -2840,11 +2840,11 @@ msgstr "मेरी फ़ीड" msgid "My Profile" msgstr "मेरी प्रोफाइल" -#: src/view/screens/Settings/index.tsx:592 +#: src/view/screens/Settings/index.tsx:596 msgid "My saved feeds" msgstr "" -#: src/view/screens/Settings/index.tsx:598 +#: src/view/screens/Settings/index.tsx:602 msgid "My Saved Feeds" msgstr "मेरी फ़ीड" @@ -2873,7 +2873,7 @@ msgstr "" #: src/view/com/auth/login/ForgotPasswordForm.tsx:190 #: src/view/com/auth/login/ForgotPasswordForm.tsx:219 -#: src/view/com/auth/login/LoginForm.tsx:289 +#: src/view/com/auth/login/LoginForm.tsx:292 #: src/view/com/auth/login/SetNewPasswordForm.tsx:196 #: src/view/com/modals/ChangePassword.tsx:168 msgid "Navigates to the next screen" @@ -2966,7 +2966,7 @@ msgstr "" #: src/view/com/auth/create/CreateAccount.tsx:172 #: src/view/com/auth/login/ForgotPasswordForm.tsx:182 #: src/view/com/auth/login/ForgotPasswordForm.tsx:192 -#: src/view/com/auth/login/LoginForm.tsx:291 +#: src/view/com/auth/login/LoginForm.tsx:294 #: src/view/com/auth/login/SetNewPasswordForm.tsx:187 #: src/view/com/auth/login/SetNewPasswordForm.tsx:198 #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:79 @@ -3111,7 +3111,7 @@ msgstr "ठीक है" msgid "Oldest replies first" msgstr "" -#: src/view/screens/Settings/index.tsx:240 +#: src/view/screens/Settings/index.tsx:244 msgid "Onboarding reset" msgstr "" @@ -3150,7 +3150,7 @@ msgstr "" msgid "Open feed options menu" msgstr "" -#: src/view/screens/Settings/index.tsx:730 +#: src/view/screens/Settings/index.tsx:734 msgid "Open links with in-app browser" msgstr "" @@ -3170,12 +3170,12 @@ msgstr "ओपन नेविगेशन" msgid "Open post options menu" msgstr "" -#: src/view/screens/Settings/index.tsx:824 -#: src/view/screens/Settings/index.tsx:834 +#: src/view/screens/Settings/index.tsx:828 +#: src/view/screens/Settings/index.tsx:838 msgid "Open storybook page" msgstr "" -#: src/view/screens/Settings/index.tsx:812 +#: src/view/screens/Settings/index.tsx:816 msgid "Open system log" msgstr "" @@ -3199,7 +3199,7 @@ msgstr "" msgid "Opens composer" msgstr "" -#: src/view/screens/Settings/index.tsx:611 +#: src/view/screens/Settings/index.tsx:615 msgid "Opens configurable language settings" msgstr "भाषा सेटिंग्स खोलें" @@ -3211,7 +3211,7 @@ msgstr "" #~ msgid "Opens editor for profile display name, avatar, background image, and description" #~ msgstr "" -#: src/view/screens/Settings/index.tsx:665 +#: src/view/screens/Settings/index.tsx:669 msgid "Opens external embeds settings" msgstr "" @@ -3241,7 +3241,7 @@ msgstr "" msgid "Opens list of invite codes" msgstr "" -#: src/view/screens/Settings/index.tsx:794 +#: src/view/screens/Settings/index.tsx:798 msgid "Opens modal for account deletion confirmation. Requires email code" msgstr "" @@ -3249,19 +3249,19 @@ msgstr "" #~ msgid "Opens modal for account deletion confirmation. Requires email code." #~ msgstr "" -#: src/view/screens/Settings/index.tsx:752 +#: src/view/screens/Settings/index.tsx:756 msgid "Opens modal for changing your Bluesky password" msgstr "" -#: src/view/screens/Settings/index.tsx:714 +#: src/view/screens/Settings/index.tsx:718 msgid "Opens modal for choosing a new Bluesky handle" msgstr "" -#: src/view/screens/Settings/index.tsx:775 +#: src/view/screens/Settings/index.tsx:779 msgid "Opens modal for downloading your Bluesky account data (repository)" msgstr "" -#: src/view/screens/Settings/index.tsx:966 +#: src/view/screens/Settings/index.tsx:970 msgid "Opens modal for email verification" msgstr "" @@ -3269,11 +3269,11 @@ msgstr "" msgid "Opens modal for using custom domain" msgstr "कस्टम डोमेन का उपयोग करने के लिए मोडल खोलें" -#: src/view/screens/Settings/index.tsx:636 +#: src/view/screens/Settings/index.tsx:640 msgid "Opens moderation settings" msgstr "मॉडरेशन सेटिंग्स खोलें" -#: src/view/com/auth/login/LoginForm.tsx:239 +#: src/view/com/auth/login/LoginForm.tsx:242 msgid "Opens password reset form" msgstr "" @@ -3282,11 +3282,11 @@ msgstr "" msgid "Opens screen to edit Saved Feeds" msgstr "" -#: src/view/screens/Settings/index.tsx:593 +#: src/view/screens/Settings/index.tsx:597 msgid "Opens screen with all saved feeds" msgstr "सभी बचाया फ़ीड के साथ स्क्रीन खोलें" -#: src/view/screens/Settings/index.tsx:692 +#: src/view/screens/Settings/index.tsx:696 msgid "Opens the app password settings" msgstr "" @@ -3294,7 +3294,7 @@ msgstr "" #~ msgid "Opens the app password settings page" #~ msgstr "ऐप पासवर्ड सेटिंग पेज खोलें" -#: src/view/screens/Settings/index.tsx:550 +#: src/view/screens/Settings/index.tsx:554 msgid "Opens the Following feed preferences" msgstr "" @@ -3306,16 +3306,16 @@ msgstr "" msgid "Opens the linked website" msgstr "" -#: src/view/screens/Settings/index.tsx:825 -#: src/view/screens/Settings/index.tsx:835 +#: src/view/screens/Settings/index.tsx:829 +#: src/view/screens/Settings/index.tsx:839 msgid "Opens the storybook page" msgstr "स्टोरीबुक पेज खोलें" -#: src/view/screens/Settings/index.tsx:813 +#: src/view/screens/Settings/index.tsx:817 msgid "Opens the system log page" msgstr "सिस्टम लॉग पेज खोलें" -#: src/view/screens/Settings/index.tsx:571 +#: src/view/screens/Settings/index.tsx:575 msgid "Opens the threads preferences" msgstr "धागे वरीयताओं को खोलता है" @@ -3339,7 +3339,7 @@ msgstr "" msgid "Other" msgstr "" -#: src/view/com/auth/login/ChooseAccountForm.tsx:142 +#: src/view/com/auth/login/ChooseAccountForm.tsx:147 msgid "Other account" msgstr "अन्य खाता" @@ -3362,8 +3362,8 @@ msgstr "" #: src/view/com/auth/create/Step1.tsx:191 #: src/view/com/auth/create/Step1.tsx:201 -#: src/view/com/auth/login/LoginForm.tsx:210 -#: src/view/com/auth/login/LoginForm.tsx:226 +#: src/view/com/auth/login/LoginForm.tsx:213 +#: src/view/com/auth/login/LoginForm.tsx:229 #: src/view/com/auth/login/SetNewPasswordForm.tsx:161 #: src/view/com/modals/DeleteAccount.tsx:195 #: src/view/com/modals/DeleteAccount.tsx:202 @@ -3601,7 +3601,7 @@ msgstr "प्राथमिक भाषा" msgid "Prioritize Your Follows" msgstr "अपने फ़ॉलोअर्स को प्राथमिकता दें" -#: src/view/screens/Settings/index.tsx:648 +#: src/view/screens/Settings/index.tsx:652 #: src/view/shell/desktop/RightNav.tsx:72 msgid "Privacy" msgstr "गोपनीयता" @@ -3609,7 +3609,7 @@ msgstr "गोपनीयता" #: src/Navigation.tsx:231 #: src/view/com/auth/create/Policies.tsx:69 #: src/view/screens/PrivacyPolicy.tsx:29 -#: src/view/screens/Settings/index.tsx:921 +#: src/view/screens/Settings/index.tsx:925 #: src/view/shell/Drawer.tsx:265 msgid "Privacy Policy" msgstr "गोपनीयता नीति" @@ -3635,7 +3635,7 @@ msgstr "प्रोफ़ाइल" msgid "Profile updated" msgstr "" -#: src/view/screens/Settings/index.tsx:979 +#: src/view/screens/Settings/index.tsx:983 msgid "Protect your account by verifying your email." msgstr "अपने ईमेल को सत्यापित करके अपने खाते को सुरक्षित रखें।।" @@ -3899,7 +3899,7 @@ msgstr "अनुरोध बदलें" msgid "Request Code" msgstr "" -#: src/view/screens/Settings/index.tsx:471 +#: src/view/screens/Settings/index.tsx:475 msgid "Require alt text before posting" msgstr "पोस्ट करने से पहले वैकल्पिक टेक्स्ट की आवश्यकता है" @@ -3921,8 +3921,8 @@ msgstr "" #~ msgid "Reset onboarding" #~ msgstr "" -#: src/view/screens/Settings/index.tsx:854 -#: src/view/screens/Settings/index.tsx:857 +#: src/view/screens/Settings/index.tsx:858 +#: src/view/screens/Settings/index.tsx:861 msgid "Reset onboarding state" msgstr "ऑनबोर्डिंग स्टेट को रीसेट करें" @@ -3934,20 +3934,20 @@ msgstr "पासवर्ड रीसेट" #~ msgid "Reset preferences" #~ msgstr "" -#: src/view/screens/Settings/index.tsx:844 -#: src/view/screens/Settings/index.tsx:847 +#: src/view/screens/Settings/index.tsx:848 +#: src/view/screens/Settings/index.tsx:851 msgid "Reset preferences state" msgstr "प्राथमिकताओं को रीसेट करें" -#: src/view/screens/Settings/index.tsx:855 +#: src/view/screens/Settings/index.tsx:859 msgid "Resets the onboarding state" msgstr "ऑनबोर्डिंग स्टेट को रीसेट करें" -#: src/view/screens/Settings/index.tsx:845 +#: src/view/screens/Settings/index.tsx:849 msgid "Resets the preferences state" msgstr "प्राथमिकताओं की स्थिति को रीसेट करें" -#: src/view/com/auth/login/LoginForm.tsx:269 +#: src/view/com/auth/login/LoginForm.tsx:272 msgid "Retries login" msgstr "" @@ -3961,8 +3961,8 @@ msgstr "" #: src/screens/Onboarding/StepInterests/index.tsx:224 #: src/view/com/auth/create/CreateAccount.tsx:181 #: src/view/com/auth/create/CreateAccount.tsx:186 -#: src/view/com/auth/login/LoginForm.tsx:268 #: src/view/com/auth/login/LoginForm.tsx:271 +#: src/view/com/auth/login/LoginForm.tsx:274 #: src/view/com/util/error/ErrorMessage.tsx:55 #: src/view/com/util/error/ErrorScreen.tsx:72 msgid "Retry" @@ -3989,12 +3989,6 @@ msgstr "" #~ msgid "SANDBOX. Posts and accounts are not permanent." #~ msgstr "" -#: src/view/com/lightbox/Lightbox.tsx:132 -#: src/view/com/modals/CreateOrEditList.tsx:345 -msgctxt "action" -msgid "Save" -msgstr "" - #: src/components/dialogs/BirthDateSettings.tsx:125 #: src/view/com/modals/ChangeHandle.tsx:173 #: src/view/com/modals/CreateOrEditList.tsx:337 @@ -4002,6 +3996,12 @@ msgstr "" msgid "Save" msgstr "सेव करो" +#: src/view/com/lightbox/Lightbox.tsx:132 +#: src/view/com/modals/CreateOrEditList.tsx:345 +msgctxt "action" +msgid "Save" +msgstr "" + #: src/view/com/modals/AltImage.tsx:130 msgid "Save alt text" msgstr "सेव ऑल्ट टेक्स्ट" @@ -4164,7 +4164,7 @@ msgid "Select option {i} of {numItems}" msgstr "" #: src/view/com/auth/create/Step1.tsx:96 -#: src/view/com/auth/login/LoginForm.tsx:150 +#: src/view/com/auth/login/LoginForm.tsx:153 msgid "Select service" msgstr "सेवा चुनें" @@ -4338,23 +4338,23 @@ msgstr "" msgid "Sets Bluesky username" msgstr "" -#: src/view/screens/Settings/index.tsx:503 +#: src/view/screens/Settings/index.tsx:507 msgid "Sets color theme to dark" msgstr "" -#: src/view/screens/Settings/index.tsx:496 +#: src/view/screens/Settings/index.tsx:500 msgid "Sets color theme to light" msgstr "" -#: src/view/screens/Settings/index.tsx:490 +#: src/view/screens/Settings/index.tsx:494 msgid "Sets color theme to system setting" msgstr "" -#: src/view/screens/Settings/index.tsx:529 +#: src/view/screens/Settings/index.tsx:533 msgid "Sets dark theme to the dark theme" msgstr "" -#: src/view/screens/Settings/index.tsx:522 +#: src/view/screens/Settings/index.tsx:526 msgid "Sets dark theme to the dim theme" msgstr "" @@ -4379,12 +4379,12 @@ msgid "Sets image aspect ratio to wide" msgstr "" #: src/view/com/auth/create/Step1.tsx:97 -#: src/view/com/auth/login/LoginForm.tsx:151 +#: src/view/com/auth/login/LoginForm.tsx:154 msgid "Sets server for the Bluesky client" msgstr "" #: src/Navigation.tsx:139 -#: src/view/screens/Settings/index.tsx:309 +#: src/view/screens/Settings/index.tsx:313 #: src/view/shell/desktop/LeftNav.tsx:437 #: src/view/shell/Drawer.tsx:570 #: src/view/shell/Drawer.tsx:571 @@ -4427,7 +4427,7 @@ msgstr "" #: src/components/moderation/GlobalModerationLabelPref.tsx:45 #: src/components/moderation/PostHider.tsx:107 #: src/screens/Onboarding/StepModeration/ModerationOption.tsx:54 -#: src/view/screens/Settings/index.tsx:359 +#: src/view/screens/Settings/index.tsx:363 msgid "Show" msgstr "दिखाओ" @@ -4557,23 +4557,23 @@ msgstr "साइन इन करें" msgid "Sign In" msgstr "साइन इन करें" -#: src/view/com/auth/login/ChooseAccountForm.tsx:44 +#: src/view/com/auth/login/ChooseAccountForm.tsx:45 msgid "Sign in as {0}" msgstr "{0} के रूप में साइन इन करें" -#: src/view/com/auth/login/ChooseAccountForm.tsx:122 +#: src/view/com/auth/login/ChooseAccountForm.tsx:127 #: src/view/com/auth/login/Login.tsx:116 msgid "Sign in as..." msgstr "... के रूप में साइन इन करें" -#: src/view/com/auth/login/LoginForm.tsx:137 +#: src/view/com/auth/login/LoginForm.tsx:140 msgid "Sign into" msgstr "साइन इन करें" #: src/view/com/modals/SwitchAccount.tsx:68 #: src/view/com/modals/SwitchAccount.tsx:73 -#: src/view/screens/Settings/index.tsx:105 -#: src/view/screens/Settings/index.tsx:108 +#: src/view/screens/Settings/index.tsx:107 +#: src/view/screens/Settings/index.tsx:110 msgid "Sign out" msgstr "साइन आउट" @@ -4598,11 +4598,11 @@ msgstr "" msgid "Sign-in Required" msgstr "" -#: src/view/screens/Settings/index.tsx:370 +#: src/view/screens/Settings/index.tsx:374 msgid "Signed in as" msgstr "आपने इस रूप में साइन इन करा है:" -#: src/view/com/auth/login/ChooseAccountForm.tsx:107 +#: src/view/com/auth/login/ChooseAccountForm.tsx:112 msgid "Signed in as @{0}" msgstr "" @@ -4682,7 +4682,7 @@ msgstr "स्क्वायर" #~ msgid "Staging" #~ msgstr "स्टेजिंग" -#: src/view/screens/Settings/index.tsx:901 +#: src/view/screens/Settings/index.tsx:905 msgid "Status page" msgstr "स्थिति पृष्ठ" @@ -4690,12 +4690,12 @@ msgstr "स्थिति पृष्ठ" msgid "Step {0} of {numSteps}" msgstr "" -#: src/view/screens/Settings/index.tsx:288 +#: src/view/screens/Settings/index.tsx:292 msgid "Storage cleared, you need to restart the app now." msgstr "" #: src/Navigation.tsx:211 -#: src/view/screens/Settings/index.tsx:827 +#: src/view/screens/Settings/index.tsx:831 msgid "Storybook" msgstr "Storybook" @@ -4751,25 +4751,25 @@ msgstr "सहायता" #~ msgid "Swipe up to see more" #~ msgstr "" -#: src/view/com/modals/SwitchAccount.tsx:121 +#: src/view/com/modals/SwitchAccount.tsx:123 msgid "Switch Account" msgstr "खाते बदलें" -#: src/view/com/modals/SwitchAccount.tsx:101 -#: src/view/screens/Settings/index.tsx:135 +#: src/view/com/modals/SwitchAccount.tsx:103 +#: src/view/screens/Settings/index.tsx:139 msgid "Switch to {0}" msgstr "" -#: src/view/com/modals/SwitchAccount.tsx:102 -#: src/view/screens/Settings/index.tsx:136 +#: src/view/com/modals/SwitchAccount.tsx:104 +#: src/view/screens/Settings/index.tsx:140 msgid "Switches the account you are logged in to" msgstr "" -#: src/view/screens/Settings/index.tsx:487 +#: src/view/screens/Settings/index.tsx:491 msgid "System" msgstr "प्रणाली" -#: src/view/screens/Settings/index.tsx:815 +#: src/view/screens/Settings/index.tsx:819 msgid "System log" msgstr "सिस्टम लॉग" @@ -4803,7 +4803,7 @@ msgstr "शर्तें" #: src/Navigation.tsx:236 #: src/view/com/auth/create/Policies.tsx:59 -#: src/view/screens/Settings/index.tsx:915 +#: src/view/screens/Settings/index.tsx:919 #: src/view/screens/TermsOfService.tsx:29 #: src/view/shell/Drawer.tsx:259 msgid "Terms of Service" @@ -5139,12 +5139,12 @@ msgstr "" #~ msgid "This will hide this post from your feeds." #~ msgstr "" -#: src/view/screens/Settings/index.tsx:570 +#: src/view/screens/Settings/index.tsx:574 msgid "Thread preferences" msgstr "" #: src/view/screens/PreferencesThreads.tsx:53 -#: src/view/screens/Settings/index.tsx:580 +#: src/view/screens/Settings/index.tsx:584 msgid "Thread Preferences" msgstr "थ्रेड प्राथमिकता" @@ -5203,7 +5203,7 @@ msgstr "" #: src/view/com/auth/create/CreateAccount.tsx:58 #: src/view/com/auth/login/ForgotPasswordForm.tsx:87 #: src/view/com/auth/login/Login.tsx:76 -#: src/view/com/auth/login/LoginForm.tsx:118 +#: src/view/com/auth/login/LoginForm.tsx:121 #: src/view/com/modals/ChangePassword.tsx:70 msgid "Unable to contact your service. Please check your Internet connection." msgstr "आपकी सेवा से संपर्क करने में असमर्थ। कृपया अपने इंटरनेट कनेक्शन की जांच करें।।" @@ -5457,8 +5457,8 @@ msgstr "" msgid "User Lists" msgstr "लोग सूचियाँ" -#: src/view/com/auth/login/LoginForm.tsx:177 -#: src/view/com/auth/login/LoginForm.tsx:195 +#: src/view/com/auth/login/LoginForm.tsx:180 +#: src/view/com/auth/login/LoginForm.tsx:198 msgid "Username or email address" msgstr "यूजर नाम या ईमेल पता" @@ -5490,15 +5490,15 @@ msgstr "" msgid "Verify {0}" msgstr "" -#: src/view/screens/Settings/index.tsx:940 +#: src/view/screens/Settings/index.tsx:944 msgid "Verify email" msgstr "ईमेल सत्यापित करें" -#: src/view/screens/Settings/index.tsx:965 +#: src/view/screens/Settings/index.tsx:969 msgid "Verify my email" msgstr "मेरी ईमेल सत्यापित करें" -#: src/view/screens/Settings/index.tsx:974 +#: src/view/screens/Settings/index.tsx:978 msgid "Verify My Email" msgstr "मेरी ईमेल सत्यापित करें" @@ -5988,7 +5988,7 @@ msgid "Your posts, likes, and blocks are public. Mutes are private." msgstr "आपकी पोस्ट, पसंद और ब्लॉक सार्वजनिक हैं। म्यूट निजी हैं।।" #: src/view/com/modals/SwitchAccount.tsx:88 -#: src/view/screens/Settings/index.tsx:123 +#: src/view/screens/Settings/index.tsx:125 msgid "Your profile" msgstr "आपकी प्रोफ़ाइल" diff --git a/src/locale/locales/id/messages.po b/src/locale/locales/id/messages.po index 70e2f12661..c0005b4386 100644 --- a/src/locale/locales/id/messages.po +++ b/src/locale/locales/id/messages.po @@ -105,7 +105,7 @@ msgid "Access profile and other navigation links" msgstr "Akses profil dan tautan navigasi lain" #: src/view/com/modals/EditImage.tsx:299 -#: src/view/screens/Settings/index.tsx:466 +#: src/view/screens/Settings/index.tsx:470 msgid "Accessibility" msgstr "Aksesibilitas" @@ -113,9 +113,9 @@ msgstr "Aksesibilitas" msgid "account" msgstr "" -#: src/view/com/auth/login/LoginForm.tsx:166 -#: src/view/screens/Settings/index.tsx:323 -#: src/view/screens/Settings/index.tsx:739 +#: src/view/com/auth/login/LoginForm.tsx:169 +#: src/view/screens/Settings/index.tsx:327 +#: src/view/screens/Settings/index.tsx:743 msgid "Account" msgstr "Akun" @@ -177,8 +177,8 @@ msgstr "Tambahkan peringatan konten" msgid "Add a user to this list" msgstr "Tambahkan pengguna ke daftar ini" -#: src/view/screens/Settings/index.tsx:398 -#: src/view/screens/Settings/index.tsx:407 +#: src/view/screens/Settings/index.tsx:402 +#: src/view/screens/Settings/index.tsx:411 msgid "Add account" msgstr "Tambahkan akun" @@ -267,7 +267,7 @@ msgid "Adult content is disabled." msgstr "" #: src/screens/Moderation/index.tsx:377 -#: src/view/screens/Settings/index.tsx:680 +#: src/view/screens/Settings/index.tsx:684 msgid "Advanced" msgstr "Lanjutan" @@ -280,7 +280,7 @@ msgstr "" msgid "Already have a code?" msgstr "" -#: src/view/com/auth/login/ChooseAccountForm.tsx:102 +#: src/view/com/auth/login/ChooseAccountForm.tsx:103 msgid "Already signed in as @{0}" msgstr "Sudah masuk sebagai @{0}" @@ -344,7 +344,7 @@ msgstr "Nama Kata Sandi Aplikasi hanya boleh terdiri dari huruf, angka, spasi, t msgid "App Password names must be at least 4 characters long." msgstr "Nama Kata Sandi Aplikasi harus terdiri dari minimal 4 karakter." -#: src/view/screens/Settings/index.tsx:691 +#: src/view/screens/Settings/index.tsx:695 msgid "App password settings" msgstr "Pengaturan kata sandi aplikasi" @@ -354,7 +354,7 @@ msgstr "Pengaturan kata sandi aplikasi" #: src/Navigation.tsx:251 #: src/view/screens/AppPasswords.tsx:189 -#: src/view/screens/Settings/index.tsx:700 +#: src/view/screens/Settings/index.tsx:704 msgid "App Passwords" msgstr "Kata sandi Aplikasi" @@ -391,7 +391,7 @@ msgstr "" #~ msgid "Appeal this decision." #~ msgstr "Ajukan banding untuk keputusan ini." -#: src/view/screens/Settings/index.tsx:481 +#: src/view/screens/Settings/index.tsx:485 msgid "Appearance" msgstr "Tampilan" @@ -431,9 +431,9 @@ msgstr "Ketelanjangan artistik atau non-erotis." #: src/components/moderation/LabelsOnMeDialog.tsx:248 #: src/screens/Profile/Header/Shell.tsx:97 #: src/view/com/auth/create/CreateAccount.tsx:158 -#: src/view/com/auth/login/ChooseAccountForm.tsx:155 +#: src/view/com/auth/login/ChooseAccountForm.tsx:160 #: src/view/com/auth/login/ForgotPasswordForm.tsx:174 -#: src/view/com/auth/login/LoginForm.tsx:259 +#: src/view/com/auth/login/LoginForm.tsx:262 #: src/view/com/auth/login/SetNewPasswordForm.tsx:179 #: src/view/com/util/ViewHeader.tsx:87 msgid "Back" @@ -448,7 +448,7 @@ msgstr "Kembali" msgid "Based on your interest in {interestsText}" msgstr "" -#: src/view/screens/Settings/index.tsx:538 +#: src/view/screens/Settings/index.tsx:542 msgid "Basics" msgstr "Dasar" @@ -457,7 +457,7 @@ msgstr "Dasar" msgid "Birthday" msgstr "Tanggal lahir" -#: src/view/screens/Settings/index.tsx:355 +#: src/view/screens/Settings/index.tsx:359 msgid "Birthday:" msgstr "Tanggal lahir:" @@ -584,7 +584,7 @@ msgstr "" msgid "Books" msgstr "" -#: src/view/screens/Settings/index.tsx:889 +#: src/view/screens/Settings/index.tsx:893 msgid "Build version {0} {1}" msgstr "Versi {0} {1}" @@ -700,21 +700,21 @@ msgstr "Batal mencari" msgid "Cancels opening the linked website" msgstr "" -#: src/view/screens/Settings/index.tsx:349 -msgctxt "action" +#: src/view/com/modals/VerifyEmail.tsx:152 msgid "Change" msgstr "Ubah" -#: src/view/com/modals/VerifyEmail.tsx:152 +#: src/view/screens/Settings/index.tsx:353 +msgctxt "action" msgid "Change" msgstr "Ubah" -#: src/view/screens/Settings/index.tsx:712 +#: src/view/screens/Settings/index.tsx:716 msgid "Change handle" msgstr "Ubah handle" #: src/view/com/modals/ChangeHandle.tsx:161 -#: src/view/screens/Settings/index.tsx:723 +#: src/view/screens/Settings/index.tsx:727 msgid "Change Handle" msgstr "Ubah Handle" @@ -722,12 +722,12 @@ msgstr "Ubah Handle" msgid "Change my email" msgstr "Ubah email saya" -#: src/view/screens/Settings/index.tsx:750 +#: src/view/screens/Settings/index.tsx:754 msgid "Change password" msgstr "" #: src/view/com/modals/ChangePassword.tsx:141 -#: src/view/screens/Settings/index.tsx:761 +#: src/view/screens/Settings/index.tsx:765 msgid "Change Password" msgstr "" @@ -793,19 +793,19 @@ msgstr "" msgid "Choose your password" msgstr "Pilih kata sandi Anda" -#: src/view/screens/Settings/index.tsx:864 +#: src/view/screens/Settings/index.tsx:868 msgid "Clear all legacy storage data" msgstr "Hapus semua data penyimpanan lama" -#: src/view/screens/Settings/index.tsx:867 +#: src/view/screens/Settings/index.tsx:871 msgid "Clear all legacy storage data (restart after this)" msgstr "Hapus semua data penyimpanan lama (mulai ulang setelah ini)" -#: src/view/screens/Settings/index.tsx:876 +#: src/view/screens/Settings/index.tsx:880 msgid "Clear all storage data" msgstr "Hapus semua data penyimpanan" -#: src/view/screens/Settings/index.tsx:879 +#: src/view/screens/Settings/index.tsx:883 msgid "Clear all storage data (restart after this)" msgstr "Hapus semua data penyimpanan (mulai ulang setelah ini)" @@ -814,11 +814,11 @@ msgstr "Hapus semua data penyimpanan (mulai ulang setelah ini)" msgid "Clear search query" msgstr "Hapus kueri pencarian" -#: src/view/screens/Settings/index.tsx:865 +#: src/view/screens/Settings/index.tsx:869 msgid "Clears all legacy storage data" msgstr "" -#: src/view/screens/Settings/index.tsx:877 +#: src/view/screens/Settings/index.tsx:881 msgid "Clears all storage data" msgstr "" @@ -985,7 +985,7 @@ msgstr "Kode konfirmasi" #~ msgstr "Konfirmasi pendaftaran {email} ke daftar tunggu" #: src/view/com/auth/create/CreateAccount.tsx:193 -#: src/view/com/auth/login/LoginForm.tsx:278 +#: src/view/com/auth/login/LoginForm.tsx:281 msgid "Connecting..." msgstr "Menghubungkan..." @@ -1073,7 +1073,7 @@ msgstr "" msgid "Copied" msgstr "Disalin" -#: src/view/screens/Settings/index.tsx:247 +#: src/view/screens/Settings/index.tsx:251 msgid "Copied build version to clipboard" msgstr "Menyalin versi build ke papan klip" @@ -1137,7 +1137,7 @@ msgstr "Tidak dapat memuat daftar" msgid "Create a new account" msgstr "Buat akun baru" -#: src/view/screens/Settings/index.tsx:399 +#: src/view/screens/Settings/index.tsx:403 msgid "Create a new Bluesky account" msgstr "Buat akun Bluesky baru" @@ -1200,8 +1200,8 @@ msgstr "Sesuaikan media dari situs eksternal." #~ msgid "Danger Zone" #~ msgstr "Zona Berbahaya" -#: src/view/screens/Settings/index.tsx:500 -#: src/view/screens/Settings/index.tsx:526 +#: src/view/screens/Settings/index.tsx:504 +#: src/view/screens/Settings/index.tsx:530 msgid "Dark" msgstr "Gelap" @@ -1209,7 +1209,7 @@ msgstr "Gelap" msgid "Dark mode" msgstr "Mode gelap" -#: src/view/screens/Settings/index.tsx:513 +#: src/view/screens/Settings/index.tsx:517 msgid "Dark Theme" msgstr "" @@ -1217,7 +1217,7 @@ msgstr "" #~ msgid "Debug" #~ msgstr "Debug" -#: src/view/screens/Settings/index.tsx:837 +#: src/view/screens/Settings/index.tsx:841 msgid "Debug Moderation" msgstr "" @@ -1231,7 +1231,7 @@ msgstr "Panel debug" msgid "Delete" msgstr "" -#: src/view/screens/Settings/index.tsx:792 +#: src/view/screens/Settings/index.tsx:796 msgid "Delete account" msgstr "Hapus akun" @@ -1259,7 +1259,7 @@ msgstr "Hapus akun saya" #~ msgid "Delete my account…" #~ msgstr "Hapus akun saya…" -#: src/view/screens/Settings/index.tsx:804 +#: src/view/screens/Settings/index.tsx:808 msgid "Delete My Account…" msgstr "" @@ -1303,7 +1303,7 @@ msgstr "Deskripsi" msgid "Did you want to say anything?" msgstr "Apakah Anda ingin mengatakan sesuatu?" -#: src/view/screens/Settings/index.tsx:519 +#: src/view/screens/Settings/index.tsx:523 msgid "Dim" msgstr "" @@ -1372,19 +1372,6 @@ msgstr "Domain terverifikasi!" #~ msgid "Don't have an invite code?" #~ msgstr "Tidak punya kode undangan?" -#: src/view/com/auth/onboarding/RecommendedFollows.tsx:86 -#: src/view/com/modals/EditImage.tsx:333 -#: src/view/com/modals/ListAddRemoveUsers.tsx:144 -#: src/view/com/modals/SelfLabel.tsx:157 -#: src/view/com/modals/Threadgate.tsx:129 -#: src/view/com/modals/Threadgate.tsx:132 -#: src/view/com/modals/UserAddRemoveLists.tsx:95 -#: src/view/com/modals/UserAddRemoveLists.tsx:98 -#: src/view/screens/PreferencesThreads.tsx:162 -msgctxt "action" -msgid "Done" -msgstr "Selesai" - #: src/components/dialogs/BirthDateSettings.tsx:119 #: src/components/dialogs/BirthDateSettings.tsx:125 #: src/view/com/auth/server-input/index.tsx:165 @@ -1401,11 +1388,24 @@ msgstr "Selesai" msgid "Done" msgstr "Selesai" +#: src/view/com/auth/onboarding/RecommendedFollows.tsx:86 +#: src/view/com/modals/EditImage.tsx:333 +#: src/view/com/modals/ListAddRemoveUsers.tsx:144 +#: src/view/com/modals/SelfLabel.tsx:157 +#: src/view/com/modals/Threadgate.tsx:129 +#: src/view/com/modals/Threadgate.tsx:132 +#: src/view/com/modals/UserAddRemoveLists.tsx:95 +#: src/view/com/modals/UserAddRemoveLists.tsx:98 +#: src/view/screens/PreferencesThreads.tsx:162 +msgctxt "action" +msgid "Done" +msgstr "Selesai" + #: src/view/com/modals/lang-settings/ConfirmLanguagesButton.tsx:42 msgid "Done{extraText}" msgstr "Selesai{extraText}" -#: src/view/com/auth/login/ChooseAccountForm.tsx:45 +#: src/view/com/auth/login/ChooseAccountForm.tsx:46 msgid "Double tap to sign in" msgstr "Ketuk dua kali untuk masuk" @@ -1554,7 +1554,7 @@ msgstr "Email Diupdate" msgid "Email verified" msgstr "Email terverifikasi" -#: src/view/screens/Settings/index.tsx:327 +#: src/view/screens/Settings/index.tsx:331 msgid "Email:" msgstr "Email:" @@ -1711,12 +1711,12 @@ msgstr "" msgid "Explicit sexual images." msgstr "" -#: src/view/screens/Settings/index.tsx:773 +#: src/view/screens/Settings/index.tsx:777 msgid "Export my data" msgstr "" #: src/view/screens/Settings/ExportCarDialog.tsx:44 -#: src/view/screens/Settings/index.tsx:784 +#: src/view/screens/Settings/index.tsx:788 msgid "Export My Data" msgstr "" @@ -1731,11 +1731,11 @@ msgstr "Media eksternal memungkinkan situs web untuk mengumpulkan informasi tent #: src/Navigation.tsx:275 #: src/view/screens/PreferencesExternalEmbeds.tsx:52 -#: src/view/screens/Settings/index.tsx:673 +#: src/view/screens/Settings/index.tsx:677 msgid "External Media Preferences" msgstr "Preferensi Media Eksternal" -#: src/view/screens/Settings/index.tsx:664 +#: src/view/screens/Settings/index.tsx:668 msgid "External media settings" msgstr "Pengaturan media eksternal" @@ -1947,7 +1947,7 @@ msgstr "Mengikuti" msgid "Following {0}" msgstr "Mengikuti {0}" -#: src/view/screens/Settings/index.tsx:549 +#: src/view/screens/Settings/index.tsx:553 msgid "Following feed preferences" msgstr "" @@ -1955,7 +1955,7 @@ msgstr "" #: src/view/com/home/HomeHeaderLayout.web.tsx:50 #: src/view/com/home/HomeHeaderLayoutMobile.tsx:84 #: src/view/screens/PreferencesFollowingFeed.tsx:104 -#: src/view/screens/Settings/index.tsx:558 +#: src/view/screens/Settings/index.tsx:562 msgid "Following Feed Preferences" msgstr "" @@ -1979,11 +1979,11 @@ msgstr "Untuk alasan keamanan, kami akan mengirimkan kode konfirmasi ke alamat e msgid "For security reasons, you won't be able to view this again. If you lose this password, you'll need to generate a new one." msgstr "Untuk alasan keamanan, Anda tidak akan dapat melihat ini lagi. Jika Anda lupa kata sandi ini, Anda harus membuat yang baru." -#: src/view/com/auth/login/LoginForm.tsx:241 +#: src/view/com/auth/login/LoginForm.tsx:244 msgid "Forgot" msgstr "Lupa" -#: src/view/com/auth/login/LoginForm.tsx:238 +#: src/view/com/auth/login/LoginForm.tsx:241 msgid "Forgot password" msgstr "Lupa kata sandi" @@ -2060,7 +2060,7 @@ msgstr "" #: src/view/com/auth/login/ForgotPasswordForm.tsx:189 #: src/view/com/auth/login/ForgotPasswordForm.tsx:218 -#: src/view/com/auth/login/LoginForm.tsx:288 +#: src/view/com/auth/login/LoginForm.tsx:291 #: src/view/com/auth/login/SetNewPasswordForm.tsx:195 #: src/view/com/modals/ChangePassword.tsx:167 msgid "Go to next" @@ -2317,11 +2317,11 @@ msgstr "Masukkan kata sandi untuk penghapusan akun" #~ msgid "Input phone number for SMS verification" #~ msgstr "" -#: src/view/com/auth/login/LoginForm.tsx:230 +#: src/view/com/auth/login/LoginForm.tsx:233 msgid "Input the password tied to {identifier}" msgstr "Masukkan kata sandi yang terkait dengan {identifier}" -#: src/view/com/auth/login/LoginForm.tsx:197 +#: src/view/com/auth/login/LoginForm.tsx:200 msgid "Input the username or email address you used at signup" msgstr "Masukkan nama pengguna atau alamat email yang Anda gunakan saat mendaftar" @@ -2333,7 +2333,7 @@ msgstr "Masukkan nama pengguna atau alamat email yang Anda gunakan saat mendafta #~ msgid "Input your email to get on the Bluesky waitlist" #~ msgstr "Masukkan email Anda untuk masuk ke daftar tunggu Bluesky" -#: src/view/com/auth/login/LoginForm.tsx:229 +#: src/view/com/auth/login/LoginForm.tsx:232 msgid "Input your password" msgstr "Masukkan kata sandi Anda" @@ -2349,7 +2349,7 @@ msgstr "Masukkan handle pengguna Anda" msgid "Invalid or unsupported post record" msgstr "Catatan posting tidak valid atau tidak didukung" -#: src/view/com/auth/login/LoginForm.tsx:113 +#: src/view/com/auth/login/LoginForm.tsx:116 msgid "Invalid username or password" msgstr "Username atau kata sandi salah" @@ -2444,7 +2444,7 @@ msgstr "" msgid "Language selection" msgstr "Pilih bahasa" -#: src/view/screens/Settings/index.tsx:610 +#: src/view/screens/Settings/index.tsx:614 msgid "Language settings" msgstr "Pengaturan bahasa" @@ -2453,7 +2453,7 @@ msgstr "Pengaturan bahasa" msgid "Language Settings" msgstr "Pengaturan Bahasa" -#: src/view/screens/Settings/index.tsx:619 +#: src/view/screens/Settings/index.tsx:623 msgid "Languages" msgstr "Bahasa" @@ -2499,7 +2499,7 @@ msgstr "Meninggalkan Bluesky" msgid "left to go." msgstr "" -#: src/view/screens/Settings/index.tsx:292 +#: src/view/screens/Settings/index.tsx:296 msgid "Legacy storage cleared, you need to restart the app now." msgstr "Penyimpanan lama dihapus, Anda perlu memulai ulang aplikasi sekarang." @@ -2517,7 +2517,7 @@ msgstr "" #~ msgid "Library" #~ msgstr "Pustaka" -#: src/view/screens/Settings/index.tsx:494 +#: src/view/screens/Settings/index.tsx:498 msgid "Light" msgstr "Terang" @@ -2664,7 +2664,7 @@ msgstr "" msgid "Logged-out visibility" msgstr "Visibilitas pengguna yang tidak login" -#: src/view/com/auth/login/ChooseAccountForm.tsx:137 +#: src/view/com/auth/login/ChooseAccountForm.tsx:142 msgid "Login to account that is not listed" msgstr "Masuk ke akun yang tidak ada di daftar" @@ -2717,7 +2717,7 @@ msgstr "" #: src/Navigation.tsx:119 #: src/screens/Moderation/index.tsx:106 -#: src/view/screens/Settings/index.tsx:641 +#: src/view/screens/Settings/index.tsx:645 #: src/view/shell/desktop/LeftNav.tsx:401 #: src/view/shell/Drawer.tsx:514 #: src/view/shell/Drawer.tsx:515 @@ -2760,7 +2760,7 @@ msgstr "Daftar moderasi" msgid "Moderation Lists" msgstr "Daftar Moderasi" -#: src/view/screens/Settings/index.tsx:635 +#: src/view/screens/Settings/index.tsx:639 msgid "Moderation settings" msgstr "Pengaturan moderasi" @@ -2907,11 +2907,11 @@ msgstr "Feed Saya" msgid "My Profile" msgstr "Profil Saya" -#: src/view/screens/Settings/index.tsx:592 +#: src/view/screens/Settings/index.tsx:596 msgid "My saved feeds" msgstr "" -#: src/view/screens/Settings/index.tsx:598 +#: src/view/screens/Settings/index.tsx:602 msgid "My Saved Feeds" msgstr "Feed Tersimpan Saya" @@ -2940,7 +2940,7 @@ msgstr "" #: src/view/com/auth/login/ForgotPasswordForm.tsx:190 #: src/view/com/auth/login/ForgotPasswordForm.tsx:219 -#: src/view/com/auth/login/LoginForm.tsx:289 +#: src/view/com/auth/login/LoginForm.tsx:292 #: src/view/com/auth/login/SetNewPasswordForm.tsx:196 #: src/view/com/modals/ChangePassword.tsx:168 msgid "Navigates to the next screen" @@ -3036,7 +3036,7 @@ msgstr "" #: src/view/com/auth/create/CreateAccount.tsx:172 #: src/view/com/auth/login/ForgotPasswordForm.tsx:182 #: src/view/com/auth/login/ForgotPasswordForm.tsx:192 -#: src/view/com/auth/login/LoginForm.tsx:291 +#: src/view/com/auth/login/LoginForm.tsx:294 #: src/view/com/auth/login/SetNewPasswordForm.tsx:187 #: src/view/com/auth/login/SetNewPasswordForm.tsx:198 #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:79 @@ -3181,7 +3181,7 @@ msgstr "Baiklah" msgid "Oldest replies first" msgstr "Balasan terlama terlebih dahulu" -#: src/view/screens/Settings/index.tsx:240 +#: src/view/screens/Settings/index.tsx:244 msgid "Onboarding reset" msgstr "Atur ulang orientasi" @@ -3220,7 +3220,7 @@ msgstr "Buka pemilih emoji" msgid "Open feed options menu" msgstr "" -#: src/view/screens/Settings/index.tsx:730 +#: src/view/screens/Settings/index.tsx:734 msgid "Open links with in-app browser" msgstr "Buka tautan dengan browser dalam aplikasi" @@ -3240,12 +3240,12 @@ msgstr "Buka navigasi" msgid "Open post options menu" msgstr "" -#: src/view/screens/Settings/index.tsx:824 -#: src/view/screens/Settings/index.tsx:834 +#: src/view/screens/Settings/index.tsx:828 +#: src/view/screens/Settings/index.tsx:838 msgid "Open storybook page" msgstr "Buka halaman buku cerita" -#: src/view/screens/Settings/index.tsx:812 +#: src/view/screens/Settings/index.tsx:816 msgid "Open system log" msgstr "" @@ -3269,7 +3269,7 @@ msgstr "Membuka kamera pada perangkat" msgid "Opens composer" msgstr "Membuka penyusun postingan" -#: src/view/screens/Settings/index.tsx:611 +#: src/view/screens/Settings/index.tsx:615 msgid "Opens configurable language settings" msgstr "Membuka pengaturan bahasa yang dapat dikonfigurasi" @@ -3281,7 +3281,7 @@ msgstr "Membuka galeri foto perangkat" #~ msgid "Opens editor for profile display name, avatar, background image, and description" #~ msgstr "Membuka editor untuk nama tampilan profil, avatar, gambar latar belakang, dan deskripsi" -#: src/view/screens/Settings/index.tsx:665 +#: src/view/screens/Settings/index.tsx:669 msgid "Opens external embeds settings" msgstr "Membuka pengaturan penyematan eksternal" @@ -3311,7 +3311,7 @@ msgstr "" msgid "Opens list of invite codes" msgstr "Membuka daftar kode undangan" -#: src/view/screens/Settings/index.tsx:794 +#: src/view/screens/Settings/index.tsx:798 msgid "Opens modal for account deletion confirmation. Requires email code" msgstr "" @@ -3319,19 +3319,19 @@ msgstr "" #~ msgid "Opens modal for account deletion confirmation. Requires email code." #~ msgstr "Membuka modal untuk konfirmasi penghapusan akun. Membutuhkan kode email." -#: src/view/screens/Settings/index.tsx:752 +#: src/view/screens/Settings/index.tsx:756 msgid "Opens modal for changing your Bluesky password" msgstr "" -#: src/view/screens/Settings/index.tsx:714 +#: src/view/screens/Settings/index.tsx:718 msgid "Opens modal for choosing a new Bluesky handle" msgstr "" -#: src/view/screens/Settings/index.tsx:775 +#: src/view/screens/Settings/index.tsx:779 msgid "Opens modal for downloading your Bluesky account data (repository)" msgstr "" -#: src/view/screens/Settings/index.tsx:966 +#: src/view/screens/Settings/index.tsx:970 msgid "Opens modal for email verification" msgstr "" @@ -3339,11 +3339,11 @@ msgstr "" msgid "Opens modal for using custom domain" msgstr "Buka modal untuk menggunakan domain kustom" -#: src/view/screens/Settings/index.tsx:636 +#: src/view/screens/Settings/index.tsx:640 msgid "Opens moderation settings" msgstr "Buka pengaturan moderasi" -#: src/view/com/auth/login/LoginForm.tsx:239 +#: src/view/com/auth/login/LoginForm.tsx:242 msgid "Opens password reset form" msgstr "Membuka formulir pengaturan ulang kata sandi" @@ -3352,11 +3352,11 @@ msgstr "Membuka formulir pengaturan ulang kata sandi" msgid "Opens screen to edit Saved Feeds" msgstr "Membuka layar untuk mengedit Umpan Tersimpan" -#: src/view/screens/Settings/index.tsx:593 +#: src/view/screens/Settings/index.tsx:597 msgid "Opens screen with all saved feeds" msgstr "Buka halaman dengan semua feed tersimpan" -#: src/view/screens/Settings/index.tsx:692 +#: src/view/screens/Settings/index.tsx:696 msgid "Opens the app password settings" msgstr "" @@ -3364,7 +3364,7 @@ msgstr "" #~ msgid "Opens the app password settings page" #~ msgstr "Buka halaman pengaturan kata sandi aplikasi" -#: src/view/screens/Settings/index.tsx:550 +#: src/view/screens/Settings/index.tsx:554 msgid "Opens the Following feed preferences" msgstr "" @@ -3376,16 +3376,16 @@ msgstr "" msgid "Opens the linked website" msgstr "" -#: src/view/screens/Settings/index.tsx:825 -#: src/view/screens/Settings/index.tsx:835 +#: src/view/screens/Settings/index.tsx:829 +#: src/view/screens/Settings/index.tsx:839 msgid "Opens the storybook page" msgstr "Buka halaman storybook" -#: src/view/screens/Settings/index.tsx:813 +#: src/view/screens/Settings/index.tsx:817 msgid "Opens the system log page" msgstr "Buka halaman log sistem" -#: src/view/screens/Settings/index.tsx:571 +#: src/view/screens/Settings/index.tsx:575 msgid "Opens the threads preferences" msgstr "Buka preferensi utasan" @@ -3409,7 +3409,7 @@ msgstr "Atau gabungkan opsi-opsi berikut:" msgid "Other" msgstr "" -#: src/view/com/auth/login/ChooseAccountForm.tsx:142 +#: src/view/com/auth/login/ChooseAccountForm.tsx:147 msgid "Other account" msgstr "Akun lainnya" @@ -3432,8 +3432,8 @@ msgstr "" #: src/view/com/auth/create/Step1.tsx:191 #: src/view/com/auth/create/Step1.tsx:201 -#: src/view/com/auth/login/LoginForm.tsx:210 -#: src/view/com/auth/login/LoginForm.tsx:226 +#: src/view/com/auth/login/LoginForm.tsx:213 +#: src/view/com/auth/login/LoginForm.tsx:229 #: src/view/com/auth/login/SetNewPasswordForm.tsx:161 #: src/view/com/modals/DeleteAccount.tsx:195 #: src/view/com/modals/DeleteAccount.tsx:202 @@ -3677,7 +3677,7 @@ msgstr "Bahasa Utama" msgid "Prioritize Your Follows" msgstr "Prioritaskan Pengikut Anda" -#: src/view/screens/Settings/index.tsx:648 +#: src/view/screens/Settings/index.tsx:652 #: src/view/shell/desktop/RightNav.tsx:72 msgid "Privacy" msgstr "Privasi" @@ -3685,7 +3685,7 @@ msgstr "Privasi" #: src/Navigation.tsx:231 #: src/view/com/auth/create/Policies.tsx:69 #: src/view/screens/PrivacyPolicy.tsx:29 -#: src/view/screens/Settings/index.tsx:921 +#: src/view/screens/Settings/index.tsx:925 #: src/view/shell/Drawer.tsx:265 msgid "Privacy Policy" msgstr "Kebijakan Privasi" @@ -3711,7 +3711,7 @@ msgstr "Profil" msgid "Profile updated" msgstr "Profil diperbarui" -#: src/view/screens/Settings/index.tsx:979 +#: src/view/screens/Settings/index.tsx:983 msgid "Protect your account by verifying your email." msgstr "Amankan akun Anda dengan memverifikasi email Anda." @@ -3986,7 +3986,7 @@ msgstr "Ajukan Perubahan" msgid "Request Code" msgstr "" -#: src/view/screens/Settings/index.tsx:471 +#: src/view/screens/Settings/index.tsx:475 msgid "Require alt text before posting" msgstr "Memerlukan teks alt sebelum memposting" @@ -4008,8 +4008,8 @@ msgstr "" #~ msgid "Reset onboarding" #~ msgstr "Atur ulang onboarding" -#: src/view/screens/Settings/index.tsx:854 -#: src/view/screens/Settings/index.tsx:857 +#: src/view/screens/Settings/index.tsx:858 +#: src/view/screens/Settings/index.tsx:861 msgid "Reset onboarding state" msgstr "Reset status onboarding" @@ -4021,20 +4021,20 @@ msgstr "Reset kata sandi" #~ msgid "Reset preferences" #~ msgstr "Atur ulang preferensi" -#: src/view/screens/Settings/index.tsx:844 -#: src/view/screens/Settings/index.tsx:847 +#: src/view/screens/Settings/index.tsx:848 +#: src/view/screens/Settings/index.tsx:851 msgid "Reset preferences state" msgstr "Atur ulang status preferensi" -#: src/view/screens/Settings/index.tsx:855 +#: src/view/screens/Settings/index.tsx:859 msgid "Resets the onboarding state" msgstr "Reset status onboarding" -#: src/view/screens/Settings/index.tsx:845 +#: src/view/screens/Settings/index.tsx:849 msgid "Resets the preferences state" msgstr "Reset status preferensi" -#: src/view/com/auth/login/LoginForm.tsx:269 +#: src/view/com/auth/login/LoginForm.tsx:272 msgid "Retries login" msgstr "Mencoba masuk kembali" @@ -4048,8 +4048,8 @@ msgstr "Coba kembali tindakan terakhir, yang gagal" #: src/screens/Onboarding/StepInterests/index.tsx:224 #: src/view/com/auth/create/CreateAccount.tsx:181 #: src/view/com/auth/create/CreateAccount.tsx:186 -#: src/view/com/auth/login/LoginForm.tsx:268 #: src/view/com/auth/login/LoginForm.tsx:271 +#: src/view/com/auth/login/LoginForm.tsx:274 #: src/view/com/util/error/ErrorMessage.tsx:55 #: src/view/com/util/error/ErrorScreen.tsx:72 msgid "Retry" @@ -4076,12 +4076,6 @@ msgstr "" #~ msgid "SANDBOX. Posts and accounts are not permanent." #~ msgstr "SANDBOX. Postingan dan akun tidak bersifat permanen." -#: src/view/com/lightbox/Lightbox.tsx:132 -#: src/view/com/modals/CreateOrEditList.tsx:345 -msgctxt "action" -msgid "Save" -msgstr "Simpan" - #: src/components/dialogs/BirthDateSettings.tsx:125 #: src/view/com/modals/ChangeHandle.tsx:173 #: src/view/com/modals/CreateOrEditList.tsx:337 @@ -4089,6 +4083,12 @@ msgstr "Simpan" msgid "Save" msgstr "Simpan" +#: src/view/com/lightbox/Lightbox.tsx:132 +#: src/view/com/modals/CreateOrEditList.tsx:345 +msgctxt "action" +msgid "Save" +msgstr "Simpan" + #: src/view/com/modals/AltImage.tsx:130 msgid "Save alt text" msgstr "Simpan teks alt" @@ -4251,7 +4251,7 @@ msgid "Select option {i} of {numItems}" msgstr "Pilih opsi {i} dari {numItems}" #: src/view/com/auth/create/Step1.tsx:96 -#: src/view/com/auth/login/LoginForm.tsx:150 +#: src/view/com/auth/login/LoginForm.tsx:153 msgid "Select service" msgstr "Pilih layanan" @@ -4428,23 +4428,23 @@ msgstr "" msgid "Sets Bluesky username" msgstr "Atur nama pengguna Bluesky" -#: src/view/screens/Settings/index.tsx:503 +#: src/view/screens/Settings/index.tsx:507 msgid "Sets color theme to dark" msgstr "" -#: src/view/screens/Settings/index.tsx:496 +#: src/view/screens/Settings/index.tsx:500 msgid "Sets color theme to light" msgstr "" -#: src/view/screens/Settings/index.tsx:490 +#: src/view/screens/Settings/index.tsx:494 msgid "Sets color theme to system setting" msgstr "" -#: src/view/screens/Settings/index.tsx:529 +#: src/view/screens/Settings/index.tsx:533 msgid "Sets dark theme to the dark theme" msgstr "" -#: src/view/screens/Settings/index.tsx:522 +#: src/view/screens/Settings/index.tsx:526 msgid "Sets dark theme to the dim theme" msgstr "" @@ -4473,12 +4473,12 @@ msgid "Sets image aspect ratio to wide" msgstr "" #: src/view/com/auth/create/Step1.tsx:97 -#: src/view/com/auth/login/LoginForm.tsx:151 +#: src/view/com/auth/login/LoginForm.tsx:154 msgid "Sets server for the Bluesky client" msgstr "Atur server untuk klien Bluesky" #: src/Navigation.tsx:139 -#: src/view/screens/Settings/index.tsx:309 +#: src/view/screens/Settings/index.tsx:313 #: src/view/shell/desktop/LeftNav.tsx:437 #: src/view/shell/Drawer.tsx:570 #: src/view/shell/Drawer.tsx:571 @@ -4521,7 +4521,7 @@ msgstr "Bagikan feed" #: src/components/moderation/GlobalModerationLabelPref.tsx:45 #: src/components/moderation/PostHider.tsx:107 #: src/screens/Onboarding/StepModeration/ModerationOption.tsx:54 -#: src/view/screens/Settings/index.tsx:359 +#: src/view/screens/Settings/index.tsx:363 msgid "Show" msgstr "Tampilkan" @@ -4651,23 +4651,23 @@ msgstr "Masuk" msgid "Sign In" msgstr "Masuk" -#: src/view/com/auth/login/ChooseAccountForm.tsx:44 +#: src/view/com/auth/login/ChooseAccountForm.tsx:45 msgid "Sign in as {0}" msgstr "Masuk sebagai {0}" -#: src/view/com/auth/login/ChooseAccountForm.tsx:122 +#: src/view/com/auth/login/ChooseAccountForm.tsx:127 #: src/view/com/auth/login/Login.tsx:116 msgid "Sign in as..." msgstr "Masuk sebagai..." -#: src/view/com/auth/login/LoginForm.tsx:137 +#: src/view/com/auth/login/LoginForm.tsx:140 msgid "Sign into" msgstr "Masuk ke" #: src/view/com/modals/SwitchAccount.tsx:68 #: src/view/com/modals/SwitchAccount.tsx:73 -#: src/view/screens/Settings/index.tsx:105 -#: src/view/screens/Settings/index.tsx:108 +#: src/view/screens/Settings/index.tsx:107 +#: src/view/screens/Settings/index.tsx:110 msgid "Sign out" msgstr "Keluar" @@ -4692,11 +4692,11 @@ msgstr "Daftar atau masuk untuk bergabung dalam obrolan" msgid "Sign-in Required" msgstr "Dibutuhkan Masuk" -#: src/view/screens/Settings/index.tsx:370 +#: src/view/screens/Settings/index.tsx:374 msgid "Signed in as" msgstr "Masuk sebagai" -#: src/view/com/auth/login/ChooseAccountForm.tsx:107 +#: src/view/com/auth/login/ChooseAccountForm.tsx:112 msgid "Signed in as @{0}" msgstr "Masuk sebagai @{0}" @@ -4776,7 +4776,7 @@ msgstr "Persegi" #~ msgid "Staging" #~ msgstr "Staging" -#: src/view/screens/Settings/index.tsx:901 +#: src/view/screens/Settings/index.tsx:905 msgid "Status page" msgstr "Halaman status" @@ -4788,12 +4788,12 @@ msgstr "" #~ msgid "Step {step} of 3" #~ msgstr "Langkah {step} dari 3" -#: src/view/screens/Settings/index.tsx:288 +#: src/view/screens/Settings/index.tsx:292 msgid "Storage cleared, you need to restart the app now." msgstr "Penyimpanan dihapus, Anda perlu memulai ulang aplikasi sekarang." #: src/Navigation.tsx:211 -#: src/view/screens/Settings/index.tsx:827 +#: src/view/screens/Settings/index.tsx:831 msgid "Storybook" msgstr "Storybook" @@ -4849,25 +4849,25 @@ msgstr "Dukungan" #~ msgid "Swipe up to see more" #~ msgstr "Geser ke atas untuk melihat lebih banyak" -#: src/view/com/modals/SwitchAccount.tsx:121 +#: src/view/com/modals/SwitchAccount.tsx:123 msgid "Switch Account" msgstr "Pindah Akun" -#: src/view/com/modals/SwitchAccount.tsx:101 -#: src/view/screens/Settings/index.tsx:135 +#: src/view/com/modals/SwitchAccount.tsx:103 +#: src/view/screens/Settings/index.tsx:139 msgid "Switch to {0}" msgstr "Beralih ke {0}" -#: src/view/com/modals/SwitchAccount.tsx:102 -#: src/view/screens/Settings/index.tsx:136 +#: src/view/com/modals/SwitchAccount.tsx:104 +#: src/view/screens/Settings/index.tsx:140 msgid "Switches the account you are logged in to" msgstr "Mengganti akun yang Anda masuki" -#: src/view/screens/Settings/index.tsx:487 +#: src/view/screens/Settings/index.tsx:491 msgid "System" msgstr "Sistem" -#: src/view/screens/Settings/index.tsx:815 +#: src/view/screens/Settings/index.tsx:819 msgid "System log" msgstr "Log sistem" @@ -4901,7 +4901,7 @@ msgstr "Ketentuan" #: src/Navigation.tsx:236 #: src/view/com/auth/create/Policies.tsx:59 -#: src/view/screens/Settings/index.tsx:915 +#: src/view/screens/Settings/index.tsx:919 #: src/view/screens/TermsOfService.tsx:29 #: src/view/shell/Drawer.tsx:259 msgid "Terms of Service" @@ -5251,12 +5251,12 @@ msgstr "" #~ msgid "This will hide this post from your feeds." #~ msgstr "Ini akan menyembunyikan postingan ini dari feed Anda." -#: src/view/screens/Settings/index.tsx:570 +#: src/view/screens/Settings/index.tsx:574 msgid "Thread preferences" msgstr "" #: src/view/screens/PreferencesThreads.tsx:53 -#: src/view/screens/Settings/index.tsx:580 +#: src/view/screens/Settings/index.tsx:584 msgid "Thread Preferences" msgstr "Preferensi Utasan" @@ -5318,7 +5318,7 @@ msgstr "Bunyikan daftar" #: src/view/com/auth/create/CreateAccount.tsx:58 #: src/view/com/auth/login/ForgotPasswordForm.tsx:87 #: src/view/com/auth/login/Login.tsx:76 -#: src/view/com/auth/login/LoginForm.tsx:118 +#: src/view/com/auth/login/LoginForm.tsx:121 #: src/view/com/modals/ChangePassword.tsx:70 msgid "Unable to contact your service. Please check your Internet connection." msgstr "Tidak dapat terhubung ke layanan. Mohon periksa koneksi internet Anda." @@ -5572,8 +5572,8 @@ msgstr "Daftar pengguna diperbarui" msgid "User Lists" msgstr "Daftar Pengguna" -#: src/view/com/auth/login/LoginForm.tsx:177 -#: src/view/com/auth/login/LoginForm.tsx:195 +#: src/view/com/auth/login/LoginForm.tsx:180 +#: src/view/com/auth/login/LoginForm.tsx:198 msgid "Username or email address" msgstr "Nama pengguna atau alamat email" @@ -5605,15 +5605,15 @@ msgstr "" msgid "Verify {0}" msgstr "" -#: src/view/screens/Settings/index.tsx:940 +#: src/view/screens/Settings/index.tsx:944 msgid "Verify email" msgstr "Verifikasi email" -#: src/view/screens/Settings/index.tsx:965 +#: src/view/screens/Settings/index.tsx:969 msgid "Verify my email" msgstr "Verifikasi email saya" -#: src/view/screens/Settings/index.tsx:974 +#: src/view/screens/Settings/index.tsx:978 msgid "Verify My Email" msgstr "Verifikasi Email Saya" @@ -6118,7 +6118,7 @@ msgid "Your posts, likes, and blocks are public. Mutes are private." msgstr "Postingan, suka, dan blokir Anda bersifat publik. Bisukan bersifat privat." #: src/view/com/modals/SwitchAccount.tsx:88 -#: src/view/screens/Settings/index.tsx:123 +#: src/view/screens/Settings/index.tsx:125 msgid "Your profile" msgstr "Profil Anda" diff --git a/src/locale/locales/it/messages.po b/src/locale/locales/it/messages.po index ec8bf6d734..7298e765f1 100644 --- a/src/locale/locales/it/messages.po +++ b/src/locale/locales/it/messages.po @@ -93,7 +93,7 @@ msgid "Access profile and other navigation links" msgstr "Accedi al profilo e altre impostazioni di navigazione" #: src/view/com/modals/EditImage.tsx:299 -#: src/view/screens/Settings/index.tsx:466 +#: src/view/screens/Settings/index.tsx:470 msgid "Accessibility" msgstr "Accessibilità" @@ -101,9 +101,9 @@ msgstr "Accessibilità" msgid "account" msgstr "" -#: src/view/com/auth/login/LoginForm.tsx:166 -#: src/view/screens/Settings/index.tsx:323 -#: src/view/screens/Settings/index.tsx:739 +#: src/view/com/auth/login/LoginForm.tsx:169 +#: src/view/screens/Settings/index.tsx:327 +#: src/view/screens/Settings/index.tsx:743 msgid "Account" msgstr "Account" @@ -165,8 +165,8 @@ msgstr "Aggiungi un avviso sul contenuto" msgid "Add a user to this list" msgstr "Aggiungi un utente a questo elenco" -#: src/view/screens/Settings/index.tsx:398 -#: src/view/screens/Settings/index.tsx:407 +#: src/view/screens/Settings/index.tsx:402 +#: src/view/screens/Settings/index.tsx:411 msgid "Add account" msgstr "Aggiungi account" @@ -251,7 +251,7 @@ msgid "Adult content is disabled." msgstr "" #: src/screens/Moderation/index.tsx:377 -#: src/view/screens/Settings/index.tsx:680 +#: src/view/screens/Settings/index.tsx:684 msgid "Advanced" msgstr "Avanzato" @@ -264,7 +264,7 @@ msgstr "Tutti i feed che hai salvato, in un unico posto." msgid "Already have a code?" msgstr "Hai già un codice?" -#: src/view/com/auth/login/ChooseAccountForm.tsx:102 +#: src/view/com/auth/login/ChooseAccountForm.tsx:103 msgid "Already signed in as @{0}" msgstr "Già effettuato l'accesso come @{0}" @@ -328,7 +328,7 @@ msgstr "Le password per le app possono contenere solo lettere, numeri, spazi, tr msgid "App Password names must be at least 4 characters long." msgstr "I nomi delle password delle app devono contenere almeno 4 caratteri." -#: src/view/screens/Settings/index.tsx:691 +#: src/view/screens/Settings/index.tsx:695 msgid "App password settings" msgstr "Impostazioni della password dell'app" @@ -337,7 +337,7 @@ msgstr "Impostazioni della password dell'app" #: src/Navigation.tsx:251 #: src/view/screens/AppPasswords.tsx:189 -#: src/view/screens/Settings/index.tsx:700 +#: src/view/screens/Settings/index.tsx:704 msgid "App Passwords" msgstr "Passwords dell'App" @@ -374,7 +374,7 @@ msgstr "" #~ msgid "Appeal this decision." #~ msgstr "Appella contro questa decisione." -#: src/view/screens/Settings/index.tsx:481 +#: src/view/screens/Settings/index.tsx:485 msgid "Appearance" msgstr "Aspetto" @@ -414,9 +414,9 @@ msgstr "Nudità artistica o non erotica." #: src/components/moderation/LabelsOnMeDialog.tsx:248 #: src/screens/Profile/Header/Shell.tsx:97 #: src/view/com/auth/create/CreateAccount.tsx:158 -#: src/view/com/auth/login/ChooseAccountForm.tsx:155 +#: src/view/com/auth/login/ChooseAccountForm.tsx:160 #: src/view/com/auth/login/ForgotPasswordForm.tsx:174 -#: src/view/com/auth/login/LoginForm.tsx:259 +#: src/view/com/auth/login/LoginForm.tsx:262 #: src/view/com/auth/login/SetNewPasswordForm.tsx:179 #: src/view/com/util/ViewHeader.tsx:87 msgid "Back" @@ -431,7 +431,7 @@ msgstr "Indietro" msgid "Based on your interest in {interestsText}" msgstr "Basato su i tuoi interessi {interestsText}" -#: src/view/screens/Settings/index.tsx:538 +#: src/view/screens/Settings/index.tsx:542 msgid "Basics" msgstr "Preferenze" @@ -440,7 +440,7 @@ msgstr "Preferenze" msgid "Birthday" msgstr "Compleanno" -#: src/view/screens/Settings/index.tsx:355 +#: src/view/screens/Settings/index.tsx:359 msgid "Birthday:" msgstr "Compleanno:" @@ -566,7 +566,7 @@ msgstr "" msgid "Books" msgstr "Libri" -#: src/view/screens/Settings/index.tsx:889 +#: src/view/screens/Settings/index.tsx:893 msgid "Build version {0} {1}" msgstr "Versione {0} {1}" @@ -681,21 +681,21 @@ msgstr "Annulla la ricerca" msgid "Cancels opening the linked website" msgstr "" -#: src/view/screens/Settings/index.tsx:349 -msgctxt "action" +#: src/view/com/modals/VerifyEmail.tsx:152 msgid "Change" msgstr "Cambia" -#: src/view/com/modals/VerifyEmail.tsx:152 +#: src/view/screens/Settings/index.tsx:353 +msgctxt "action" msgid "Change" msgstr "Cambia" -#: src/view/screens/Settings/index.tsx:712 +#: src/view/screens/Settings/index.tsx:716 msgid "Change handle" msgstr "Cambia il nome utente" #: src/view/com/modals/ChangeHandle.tsx:161 -#: src/view/screens/Settings/index.tsx:723 +#: src/view/screens/Settings/index.tsx:727 msgid "Change Handle" msgstr "Cambia il Nome Utente" @@ -703,12 +703,12 @@ msgstr "Cambia il Nome Utente" msgid "Change my email" msgstr "Cambia la mia email" -#: src/view/screens/Settings/index.tsx:750 +#: src/view/screens/Settings/index.tsx:754 msgid "Change password" msgstr "Cambia la password" #: src/view/com/modals/ChangePassword.tsx:141 -#: src/view/screens/Settings/index.tsx:761 +#: src/view/screens/Settings/index.tsx:765 msgid "Change Password" msgstr "Cambia la Password" @@ -770,19 +770,19 @@ msgstr "Scegli i tuoi feed principali" msgid "Choose your password" msgstr "Scegli la tua password" -#: src/view/screens/Settings/index.tsx:864 +#: src/view/screens/Settings/index.tsx:868 msgid "Clear all legacy storage data" msgstr "Cancella tutti i dati legacy in archivio" -#: src/view/screens/Settings/index.tsx:867 +#: src/view/screens/Settings/index.tsx:871 msgid "Clear all legacy storage data (restart after this)" msgstr "Cancella tutti i dati legacy in archivio (poi ricomincia)" -#: src/view/screens/Settings/index.tsx:876 +#: src/view/screens/Settings/index.tsx:880 msgid "Clear all storage data" msgstr "Cancella tutti i dati in archivio" -#: src/view/screens/Settings/index.tsx:879 +#: src/view/screens/Settings/index.tsx:883 msgid "Clear all storage data (restart after this)" msgstr "Cancella tutti i dati in archivio (poi ricomincia)" @@ -791,11 +791,11 @@ msgstr "Cancella tutti i dati in archivio (poi ricomincia)" msgid "Clear search query" msgstr "Annulla la ricerca" -#: src/view/screens/Settings/index.tsx:865 +#: src/view/screens/Settings/index.tsx:869 msgid "Clears all legacy storage data" msgstr "" -#: src/view/screens/Settings/index.tsx:877 +#: src/view/screens/Settings/index.tsx:881 msgid "Clears all storage data" msgstr "" @@ -961,7 +961,7 @@ msgstr "Codice di conferma" #~ msgstr "Conferma l'iscrizione di {email} alla lista d'attesa" #: src/view/com/auth/create/CreateAccount.tsx:193 -#: src/view/com/auth/login/LoginForm.tsx:278 +#: src/view/com/auth/login/LoginForm.tsx:281 msgid "Connecting..." msgstr "Connessione in corso..." @@ -1049,7 +1049,7 @@ msgstr "Cucina" msgid "Copied" msgstr "Copiato" -#: src/view/screens/Settings/index.tsx:247 +#: src/view/screens/Settings/index.tsx:251 msgid "Copied build version to clipboard" msgstr "Versione di build copiata nella clipboard" @@ -1113,7 +1113,7 @@ msgstr "No si è potuto caricare la lista" msgid "Create a new account" msgstr "Crea un nuovo account" -#: src/view/screens/Settings/index.tsx:399 +#: src/view/screens/Settings/index.tsx:403 msgid "Create a new Bluesky account" msgstr "Crea un nuovo Bluesky account" @@ -1175,8 +1175,8 @@ msgstr "Personalizza i media da i siti esterni." #~ msgid "Danger Zone" #~ msgstr "Zona di Pericolo" -#: src/view/screens/Settings/index.tsx:500 -#: src/view/screens/Settings/index.tsx:526 +#: src/view/screens/Settings/index.tsx:504 +#: src/view/screens/Settings/index.tsx:530 msgid "Dark" msgstr "Scuro" @@ -1184,11 +1184,11 @@ msgstr "Scuro" msgid "Dark mode" msgstr "Aspetto scuro" -#: src/view/screens/Settings/index.tsx:513 +#: src/view/screens/Settings/index.tsx:517 msgid "Dark Theme" msgstr "Tema scuro" -#: src/view/screens/Settings/index.tsx:837 +#: src/view/screens/Settings/index.tsx:841 msgid "Debug Moderation" msgstr "" @@ -1202,7 +1202,7 @@ msgstr "Pannello per il debug" msgid "Delete" msgstr "" -#: src/view/screens/Settings/index.tsx:792 +#: src/view/screens/Settings/index.tsx:796 msgid "Delete account" msgstr "Eliminare l'account" @@ -1229,7 +1229,7 @@ msgstr "Cancellare account" #~ msgid "Delete my account…" #~ msgstr "Cancella il mio account…" -#: src/view/screens/Settings/index.tsx:804 +#: src/view/screens/Settings/index.tsx:808 msgid "Delete My Account…" msgstr "Cancellare Account…" @@ -1271,7 +1271,7 @@ msgstr "Descrizione" msgid "Did you want to say anything?" msgstr "Volevi dire qualcosa?" -#: src/view/screens/Settings/index.tsx:519 +#: src/view/screens/Settings/index.tsx:523 msgid "Dim" msgstr "Fioco" @@ -1339,19 +1339,6 @@ msgstr "Dominio verificato!" #~ msgid "Don't have an invite code?" #~ msgstr "Non hai un codice di invito?" -#: src/view/com/auth/onboarding/RecommendedFollows.tsx:86 -#: src/view/com/modals/EditImage.tsx:333 -#: src/view/com/modals/ListAddRemoveUsers.tsx:144 -#: src/view/com/modals/SelfLabel.tsx:157 -#: src/view/com/modals/Threadgate.tsx:129 -#: src/view/com/modals/Threadgate.tsx:132 -#: src/view/com/modals/UserAddRemoveLists.tsx:95 -#: src/view/com/modals/UserAddRemoveLists.tsx:98 -#: src/view/screens/PreferencesThreads.tsx:162 -msgctxt "action" -msgid "Done" -msgstr "Fatto" - #: src/components/dialogs/BirthDateSettings.tsx:119 #: src/components/dialogs/BirthDateSettings.tsx:125 #: src/view/com/auth/server-input/index.tsx:165 @@ -1368,11 +1355,24 @@ msgstr "Fatto" msgid "Done" msgstr "Fatto" +#: src/view/com/auth/onboarding/RecommendedFollows.tsx:86 +#: src/view/com/modals/EditImage.tsx:333 +#: src/view/com/modals/ListAddRemoveUsers.tsx:144 +#: src/view/com/modals/SelfLabel.tsx:157 +#: src/view/com/modals/Threadgate.tsx:129 +#: src/view/com/modals/Threadgate.tsx:132 +#: src/view/com/modals/UserAddRemoveLists.tsx:95 +#: src/view/com/modals/UserAddRemoveLists.tsx:98 +#: src/view/screens/PreferencesThreads.tsx:162 +msgctxt "action" +msgid "Done" +msgstr "Fatto" + #: src/view/com/modals/lang-settings/ConfirmLanguagesButton.tsx:42 msgid "Done{extraText}" msgstr "Fatto{extraText}" -#: src/view/com/auth/login/ChooseAccountForm.tsx:45 +#: src/view/com/auth/login/ChooseAccountForm.tsx:46 msgid "Double tap to sign in" msgstr "Usa il doppio tocco per accedere" @@ -1521,7 +1521,7 @@ msgstr "Email Aggiornata" msgid "Email verified" msgstr "Email verificata" -#: src/view/screens/Settings/index.tsx:327 +#: src/view/screens/Settings/index.tsx:331 msgid "Email:" msgstr "Email:" @@ -1677,12 +1677,12 @@ msgstr "" msgid "Explicit sexual images." msgstr "" -#: src/view/screens/Settings/index.tsx:773 +#: src/view/screens/Settings/index.tsx:777 msgid "Export my data" msgstr "Esporta i miei dati" #: src/view/screens/Settings/ExportCarDialog.tsx:44 -#: src/view/screens/Settings/index.tsx:784 +#: src/view/screens/Settings/index.tsx:788 msgid "Export My Data" msgstr "Esporta i miei dati" @@ -1697,11 +1697,11 @@ msgstr "I multimediali esterni possono consentire ai siti web di raccogliere inf #: src/Navigation.tsx:275 #: src/view/screens/PreferencesExternalEmbeds.tsx:52 -#: src/view/screens/Settings/index.tsx:673 +#: src/view/screens/Settings/index.tsx:677 msgid "External Media Preferences" msgstr "Preferenze multimediali esterni" -#: src/view/screens/Settings/index.tsx:664 +#: src/view/screens/Settings/index.tsx:668 msgid "External media settings" msgstr "Impostazioni multimediali esterni" @@ -1901,7 +1901,7 @@ msgstr "Following" msgid "Following {0}" msgstr "Seguiti {0}" -#: src/view/screens/Settings/index.tsx:549 +#: src/view/screens/Settings/index.tsx:553 msgid "Following feed preferences" msgstr "" @@ -1909,7 +1909,7 @@ msgstr "" #: src/view/com/home/HomeHeaderLayout.web.tsx:50 #: src/view/com/home/HomeHeaderLayoutMobile.tsx:84 #: src/view/screens/PreferencesFollowingFeed.tsx:104 -#: src/view/screens/Settings/index.tsx:558 +#: src/view/screens/Settings/index.tsx:562 msgid "Following Feed Preferences" msgstr "" @@ -1933,11 +1933,11 @@ msgstr "Per motivi di sicurezza, invieremo un codice di conferma al tuo indirizz msgid "For security reasons, you won't be able to view this again. If you lose this password, you'll need to generate a new one." msgstr "Per motivi di sicurezza non potrai visualizzarlo nuovamente. Se perdi questa password, dovrai generarne una nuova." -#: src/view/com/auth/login/LoginForm.tsx:241 +#: src/view/com/auth/login/LoginForm.tsx:244 msgid "Forgot" msgstr "Dimenticato" -#: src/view/com/auth/login/LoginForm.tsx:238 +#: src/view/com/auth/login/LoginForm.tsx:241 msgid "Forgot password" msgstr "Ho dimenticato il password" @@ -2014,7 +2014,7 @@ msgstr "Vai a @{queryMaybeHandle}" #: src/view/com/auth/login/ForgotPasswordForm.tsx:189 #: src/view/com/auth/login/ForgotPasswordForm.tsx:218 -#: src/view/com/auth/login/LoginForm.tsx:288 +#: src/view/com/auth/login/LoginForm.tsx:291 #: src/view/com/auth/login/SetNewPasswordForm.tsx:195 #: src/view/com/modals/ChangePassword.tsx:167 msgid "Go to next" @@ -2256,11 +2256,11 @@ msgstr "Inserisci la password per la cancellazione dell'account" #~ msgid "Input phone number for SMS verification" #~ msgstr "Inserisci il numero di telefono per la verifica via SMS" -#: src/view/com/auth/login/LoginForm.tsx:230 +#: src/view/com/auth/login/LoginForm.tsx:233 msgid "Input the password tied to {identifier}" msgstr "Inserisci la password relazionata a {identifier}" -#: src/view/com/auth/login/LoginForm.tsx:197 +#: src/view/com/auth/login/LoginForm.tsx:200 msgid "Input the username or email address you used at signup" msgstr "Inserisci il nome utente o l'indirizzo email che hai utilizzato al momento della registrazione" @@ -2272,7 +2272,7 @@ msgstr "Inserisci il nome utente o l'indirizzo email che hai utilizzato al momen #~ msgid "Input your email to get on the Bluesky waitlist" #~ msgstr "Inserisci la tua email per entrare nella lista d'attesa di Bluesky" -#: src/view/com/auth/login/LoginForm.tsx:229 +#: src/view/com/auth/login/LoginForm.tsx:232 msgid "Input your password" msgstr "Inserisci la tua password" @@ -2288,7 +2288,7 @@ msgstr "Inserisci il tuo identificatore" msgid "Invalid or unsupported post record" msgstr "Protocollo del post non valido o non supportato" -#: src/view/com/auth/login/LoginForm.tsx:113 +#: src/view/com/auth/login/LoginForm.tsx:116 msgid "Invalid username or password" msgstr "Nome dell'utente o password errato" @@ -2381,7 +2381,7 @@ msgstr "" msgid "Language selection" msgstr "Seleziona la lingua" -#: src/view/screens/Settings/index.tsx:610 +#: src/view/screens/Settings/index.tsx:614 msgid "Language settings" msgstr "Impostazione delle lingue" @@ -2390,7 +2390,7 @@ msgstr "Impostazione delle lingue" msgid "Language Settings" msgstr "Impostazione delle Lingue" -#: src/view/screens/Settings/index.tsx:619 +#: src/view/screens/Settings/index.tsx:623 msgid "Languages" msgstr "Lingue" @@ -2436,7 +2436,7 @@ msgstr "Stai lasciando Bluesky" msgid "left to go." msgstr "mancano." -#: src/view/screens/Settings/index.tsx:292 +#: src/view/screens/Settings/index.tsx:296 msgid "Legacy storage cleared, you need to restart the app now." msgstr "L'archivio legacy è stato cancellato, riattiva la app." @@ -2453,7 +2453,7 @@ msgstr "Andiamo!" #~ msgid "Library" #~ msgstr "Biblioteca" -#: src/view/screens/Settings/index.tsx:494 +#: src/view/screens/Settings/index.tsx:498 msgid "Light" msgstr "Chiaro" @@ -2594,7 +2594,7 @@ msgstr "Disconnetta l'account" msgid "Logged-out visibility" msgstr "Visibilità degli utenti disconnessi" -#: src/view/com/auth/login/ChooseAccountForm.tsx:137 +#: src/view/com/auth/login/ChooseAccountForm.tsx:142 msgid "Login to account that is not listed" msgstr "Accedi all'account che non è nella lista" @@ -2647,7 +2647,7 @@ msgstr "" #: src/Navigation.tsx:119 #: src/screens/Moderation/index.tsx:106 -#: src/view/screens/Settings/index.tsx:641 +#: src/view/screens/Settings/index.tsx:645 #: src/view/shell/desktop/LeftNav.tsx:401 #: src/view/shell/Drawer.tsx:514 #: src/view/shell/Drawer.tsx:515 @@ -2690,7 +2690,7 @@ msgstr "Liste di moderazione" msgid "Moderation Lists" msgstr "Liste di Moderazione" -#: src/view/screens/Settings/index.tsx:635 +#: src/view/screens/Settings/index.tsx:639 msgid "Moderation settings" msgstr "Impostazioni di moderazione" @@ -2837,11 +2837,11 @@ msgstr "I miei Feeds" msgid "My Profile" msgstr "Il mio Profilo" -#: src/view/screens/Settings/index.tsx:592 +#: src/view/screens/Settings/index.tsx:596 msgid "My saved feeds" msgstr "" -#: src/view/screens/Settings/index.tsx:598 +#: src/view/screens/Settings/index.tsx:602 msgid "My Saved Feeds" msgstr "I miei Feeds Salvati" @@ -2870,7 +2870,7 @@ msgstr "Natura" #: src/view/com/auth/login/ForgotPasswordForm.tsx:190 #: src/view/com/auth/login/ForgotPasswordForm.tsx:219 -#: src/view/com/auth/login/LoginForm.tsx:289 +#: src/view/com/auth/login/LoginForm.tsx:292 #: src/view/com/auth/login/SetNewPasswordForm.tsx:196 #: src/view/com/modals/ChangePassword.tsx:168 msgid "Navigates to the next screen" @@ -2966,7 +2966,7 @@ msgstr "Notizie" #: src/view/com/auth/create/CreateAccount.tsx:172 #: src/view/com/auth/login/ForgotPasswordForm.tsx:182 #: src/view/com/auth/login/ForgotPasswordForm.tsx:192 -#: src/view/com/auth/login/LoginForm.tsx:291 +#: src/view/com/auth/login/LoginForm.tsx:294 #: src/view/com/auth/login/SetNewPasswordForm.tsx:187 #: src/view/com/auth/login/SetNewPasswordForm.tsx:198 #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:79 @@ -3111,7 +3111,7 @@ msgstr "Va bene" msgid "Oldest replies first" msgstr "Mostrare prima le risposte più vecchie" -#: src/view/screens/Settings/index.tsx:240 +#: src/view/screens/Settings/index.tsx:244 msgid "Onboarding reset" msgstr "Reimpostazione dell'onboarding" @@ -3150,7 +3150,7 @@ msgstr "Apri il selettore emoji" msgid "Open feed options menu" msgstr "" -#: src/view/screens/Settings/index.tsx:730 +#: src/view/screens/Settings/index.tsx:734 msgid "Open links with in-app browser" msgstr "Apri i links con il navigatore della app" @@ -3170,12 +3170,12 @@ msgstr "Apri la navigazione" msgid "Open post options menu" msgstr "" -#: src/view/screens/Settings/index.tsx:824 -#: src/view/screens/Settings/index.tsx:834 +#: src/view/screens/Settings/index.tsx:828 +#: src/view/screens/Settings/index.tsx:838 msgid "Open storybook page" msgstr "Apri la pagina della cronologia" -#: src/view/screens/Settings/index.tsx:812 +#: src/view/screens/Settings/index.tsx:816 msgid "Open system log" msgstr "" @@ -3199,7 +3199,7 @@ msgstr "Apre la fotocamera sul dispositivo" msgid "Opens composer" msgstr "Apre il compositore" -#: src/view/screens/Settings/index.tsx:611 +#: src/view/screens/Settings/index.tsx:615 msgid "Opens configurable language settings" msgstr "Apre le impostazioni configurabili delle lingue" @@ -3211,7 +3211,7 @@ msgstr "Apre la galleria fotografica del dispositivo" #~ msgid "Opens editor for profile display name, avatar, background image, and description" #~ msgstr "Apre l'editor per il nome configurato del profilo, l'avatar, l'immagine di sfondo e la descrizione" -#: src/view/screens/Settings/index.tsx:665 +#: src/view/screens/Settings/index.tsx:669 msgid "Opens external embeds settings" msgstr "Apre le impostazioni esterne per gli incorporamenti" @@ -3240,7 +3240,7 @@ msgstr "" msgid "Opens list of invite codes" msgstr "Apre la lista dei codici di invito" -#: src/view/screens/Settings/index.tsx:794 +#: src/view/screens/Settings/index.tsx:798 msgid "Opens modal for account deletion confirmation. Requires email code" msgstr "" @@ -3248,19 +3248,19 @@ msgstr "" #~ msgid "Opens modal for account deletion confirmation. Requires email code." #~ msgstr "Apre il modal per la conferma dell'eliminazione dell'account. Richiede un codice email." -#: src/view/screens/Settings/index.tsx:752 +#: src/view/screens/Settings/index.tsx:756 msgid "Opens modal for changing your Bluesky password" msgstr "" -#: src/view/screens/Settings/index.tsx:714 +#: src/view/screens/Settings/index.tsx:718 msgid "Opens modal for choosing a new Bluesky handle" msgstr "" -#: src/view/screens/Settings/index.tsx:775 +#: src/view/screens/Settings/index.tsx:779 msgid "Opens modal for downloading your Bluesky account data (repository)" msgstr "" -#: src/view/screens/Settings/index.tsx:966 +#: src/view/screens/Settings/index.tsx:970 msgid "Opens modal for email verification" msgstr "" @@ -3268,11 +3268,11 @@ msgstr "" msgid "Opens modal for using custom domain" msgstr "Apre il modal per l'utilizzo del dominio personalizzato" -#: src/view/screens/Settings/index.tsx:636 +#: src/view/screens/Settings/index.tsx:640 msgid "Opens moderation settings" msgstr "Apre le impostazioni di moderazione" -#: src/view/com/auth/login/LoginForm.tsx:239 +#: src/view/com/auth/login/LoginForm.tsx:242 msgid "Opens password reset form" msgstr "Apre il modulo di reimpostazione della password" @@ -3281,11 +3281,11 @@ msgstr "Apre il modulo di reimpostazione della password" msgid "Opens screen to edit Saved Feeds" msgstr "Apre la schermata per modificare i feed salvati" -#: src/view/screens/Settings/index.tsx:593 +#: src/view/screens/Settings/index.tsx:597 msgid "Opens screen with all saved feeds" msgstr "Apre la schermata con tutti i feed salvati" -#: src/view/screens/Settings/index.tsx:692 +#: src/view/screens/Settings/index.tsx:696 msgid "Opens the app password settings" msgstr "" @@ -3293,7 +3293,7 @@ msgstr "" #~ msgid "Opens the app password settings page" #~ msgstr "Apre la pagina delle impostazioni della password dell'app" -#: src/view/screens/Settings/index.tsx:550 +#: src/view/screens/Settings/index.tsx:554 msgid "Opens the Following feed preferences" msgstr "" @@ -3305,16 +3305,16 @@ msgstr "" msgid "Opens the linked website" msgstr "" -#: src/view/screens/Settings/index.tsx:825 -#: src/view/screens/Settings/index.tsx:835 +#: src/view/screens/Settings/index.tsx:829 +#: src/view/screens/Settings/index.tsx:839 msgid "Opens the storybook page" msgstr "Apri la pagina della cronologia" -#: src/view/screens/Settings/index.tsx:813 +#: src/view/screens/Settings/index.tsx:817 msgid "Opens the system log page" msgstr "Apre la pagina del registro di sistema" -#: src/view/screens/Settings/index.tsx:571 +#: src/view/screens/Settings/index.tsx:575 msgid "Opens the threads preferences" msgstr "Apre le preferenze dei threads" @@ -3334,7 +3334,7 @@ msgstr "Oppure combina queste opzioni:" msgid "Other" msgstr "" -#: src/view/com/auth/login/ChooseAccountForm.tsx:142 +#: src/view/com/auth/login/ChooseAccountForm.tsx:147 msgid "Other account" msgstr "Altro account" @@ -3356,8 +3356,8 @@ msgstr "Pagina non trovata" #: src/view/com/auth/create/Step1.tsx:191 #: src/view/com/auth/create/Step1.tsx:201 -#: src/view/com/auth/login/LoginForm.tsx:210 -#: src/view/com/auth/login/LoginForm.tsx:226 +#: src/view/com/auth/login/LoginForm.tsx:213 +#: src/view/com/auth/login/LoginForm.tsx:229 #: src/view/com/auth/login/SetNewPasswordForm.tsx:161 #: src/view/com/modals/DeleteAccount.tsx:195 #: src/view/com/modals/DeleteAccount.tsx:202 @@ -3601,7 +3601,7 @@ msgstr "Lingua principale" msgid "Prioritize Your Follows" msgstr "Dai priorità a quelli che segui" -#: src/view/screens/Settings/index.tsx:648 +#: src/view/screens/Settings/index.tsx:652 #: src/view/shell/desktop/RightNav.tsx:72 msgid "Privacy" msgstr "Privacy" @@ -3609,7 +3609,7 @@ msgstr "Privacy" #: src/Navigation.tsx:231 #: src/view/com/auth/create/Policies.tsx:69 #: src/view/screens/PrivacyPolicy.tsx:29 -#: src/view/screens/Settings/index.tsx:921 +#: src/view/screens/Settings/index.tsx:925 #: src/view/shell/Drawer.tsx:265 msgid "Privacy Policy" msgstr "Informativa sulla privacy" @@ -3635,7 +3635,7 @@ msgstr "Profilo" msgid "Profile updated" msgstr "Profilo aggiornato" -#: src/view/screens/Settings/index.tsx:979 +#: src/view/screens/Settings/index.tsx:983 msgid "Protect your account by verifying your email." msgstr "Proteggi il tuo account verificando la tua email." @@ -3908,7 +3908,7 @@ msgstr "Richiedi un cambio" msgid "Request Code" msgstr "Richiedi il codice" -#: src/view/screens/Settings/index.tsx:471 +#: src/view/screens/Settings/index.tsx:475 msgid "Require alt text before posting" msgstr "Richiedi il testo alternativo prima di pubblicare" @@ -3930,8 +3930,8 @@ msgstr "Reimposta il Codice" #~ msgid "Reset onboarding" #~ msgstr "Reimposta l'incorporazione" -#: src/view/screens/Settings/index.tsx:854 -#: src/view/screens/Settings/index.tsx:857 +#: src/view/screens/Settings/index.tsx:858 +#: src/view/screens/Settings/index.tsx:861 msgid "Reset onboarding state" msgstr "Reimposta lo stato dell' incorporazione" @@ -3943,20 +3943,20 @@ msgstr "Reimposta la password" #~ msgid "Reset preferences" #~ msgstr "Reimposta le preferenze" -#: src/view/screens/Settings/index.tsx:844 -#: src/view/screens/Settings/index.tsx:847 +#: src/view/screens/Settings/index.tsx:848 +#: src/view/screens/Settings/index.tsx:851 msgid "Reset preferences state" msgstr "Reimposta lo stato delle preferenze" -#: src/view/screens/Settings/index.tsx:855 +#: src/view/screens/Settings/index.tsx:859 msgid "Resets the onboarding state" msgstr "Reimposta lo stato dell'incorporazione" -#: src/view/screens/Settings/index.tsx:845 +#: src/view/screens/Settings/index.tsx:849 msgid "Resets the preferences state" msgstr "Reimposta lo stato delle preferenze" -#: src/view/com/auth/login/LoginForm.tsx:269 +#: src/view/com/auth/login/LoginForm.tsx:272 msgid "Retries login" msgstr "Ritenta l'accesso" @@ -3970,8 +3970,8 @@ msgstr "Ritenta l'ultima azione che ha generato un errore" #: src/screens/Onboarding/StepInterests/index.tsx:224 #: src/view/com/auth/create/CreateAccount.tsx:181 #: src/view/com/auth/create/CreateAccount.tsx:186 -#: src/view/com/auth/login/LoginForm.tsx:268 #: src/view/com/auth/login/LoginForm.tsx:271 +#: src/view/com/auth/login/LoginForm.tsx:274 #: src/view/com/util/error/ErrorMessage.tsx:55 #: src/view/com/util/error/ErrorScreen.tsx:72 msgid "Retry" @@ -3998,12 +3998,6 @@ msgstr "" #~ msgid "SANDBOX. Posts and accounts are not permanent." #~ msgstr "SANDBOX. I post e gli account non sono permanenti." -#: src/view/com/lightbox/Lightbox.tsx:132 -#: src/view/com/modals/CreateOrEditList.tsx:345 -msgctxt "action" -msgid "Save" -msgstr "Salva" - #: src/components/dialogs/BirthDateSettings.tsx:125 #: src/view/com/modals/ChangeHandle.tsx:173 #: src/view/com/modals/CreateOrEditList.tsx:337 @@ -4011,6 +4005,12 @@ msgstr "Salva" msgid "Save" msgstr "Salva" +#: src/view/com/lightbox/Lightbox.tsx:132 +#: src/view/com/modals/CreateOrEditList.tsx:345 +msgctxt "action" +msgid "Save" +msgstr "Salva" + #: src/view/com/modals/AltImage.tsx:130 msgid "Save alt text" msgstr "Salva il testo alternativo" @@ -4172,7 +4172,7 @@ msgid "Select option {i} of {numItems}" msgstr "Seleziona l'opzione {i} di {numItems}" #: src/view/com/auth/create/Step1.tsx:96 -#: src/view/com/auth/login/LoginForm.tsx:150 +#: src/view/com/auth/login/LoginForm.tsx:153 msgid "Select service" msgstr "Selecciona el servei" @@ -4345,23 +4345,23 @@ msgstr "Configura il tuo account" msgid "Sets Bluesky username" msgstr "Imposta il tuo nome utente di Bluesky" -#: src/view/screens/Settings/index.tsx:503 +#: src/view/screens/Settings/index.tsx:507 msgid "Sets color theme to dark" msgstr "" -#: src/view/screens/Settings/index.tsx:496 +#: src/view/screens/Settings/index.tsx:500 msgid "Sets color theme to light" msgstr "" -#: src/view/screens/Settings/index.tsx:490 +#: src/view/screens/Settings/index.tsx:494 msgid "Sets color theme to system setting" msgstr "" -#: src/view/screens/Settings/index.tsx:529 +#: src/view/screens/Settings/index.tsx:533 msgid "Sets dark theme to the dark theme" msgstr "" -#: src/view/screens/Settings/index.tsx:522 +#: src/view/screens/Settings/index.tsx:526 msgid "Sets dark theme to the dim theme" msgstr "" @@ -4386,12 +4386,12 @@ msgid "Sets image aspect ratio to wide" msgstr "" #: src/view/com/auth/create/Step1.tsx:97 -#: src/view/com/auth/login/LoginForm.tsx:151 +#: src/view/com/auth/login/LoginForm.tsx:154 msgid "Sets server for the Bluesky client" msgstr "Imposta il server per il client Bluesky" #: src/Navigation.tsx:139 -#: src/view/screens/Settings/index.tsx:309 +#: src/view/screens/Settings/index.tsx:313 #: src/view/shell/desktop/LeftNav.tsx:437 #: src/view/shell/Drawer.tsx:570 #: src/view/shell/Drawer.tsx:571 @@ -4434,7 +4434,7 @@ msgstr "Condividi il feed" #: src/components/moderation/GlobalModerationLabelPref.tsx:45 #: src/components/moderation/PostHider.tsx:107 #: src/screens/Onboarding/StepModeration/ModerationOption.tsx:54 -#: src/view/screens/Settings/index.tsx:359 +#: src/view/screens/Settings/index.tsx:363 msgid "Show" msgstr "Mostra" @@ -4564,23 +4564,23 @@ msgstr "Accedi" msgid "Sign In" msgstr "Accedi" -#: src/view/com/auth/login/ChooseAccountForm.tsx:44 +#: src/view/com/auth/login/ChooseAccountForm.tsx:45 msgid "Sign in as {0}" msgstr "Accedi come... {0}" -#: src/view/com/auth/login/ChooseAccountForm.tsx:122 +#: src/view/com/auth/login/ChooseAccountForm.tsx:127 #: src/view/com/auth/login/Login.tsx:116 msgid "Sign in as..." msgstr "Accedi come..." -#: src/view/com/auth/login/LoginForm.tsx:137 +#: src/view/com/auth/login/LoginForm.tsx:140 msgid "Sign into" msgstr "Accedere a" #: src/view/com/modals/SwitchAccount.tsx:68 #: src/view/com/modals/SwitchAccount.tsx:73 -#: src/view/screens/Settings/index.tsx:105 -#: src/view/screens/Settings/index.tsx:108 +#: src/view/screens/Settings/index.tsx:107 +#: src/view/screens/Settings/index.tsx:110 msgid "Sign out" msgstr "Disconnetta" @@ -4605,11 +4605,11 @@ msgstr "Iscriviti o accedi per partecipare alla conversazione" msgid "Sign-in Required" msgstr "È richiesta l'autenticazione" -#: src/view/screens/Settings/index.tsx:370 +#: src/view/screens/Settings/index.tsx:374 msgid "Signed in as" msgstr "Registrato come" -#: src/view/com/auth/login/ChooseAccountForm.tsx:107 +#: src/view/com/auth/login/ChooseAccountForm.tsx:112 msgid "Signed in as @{0}" msgstr "Registrato come @{0}" @@ -4687,7 +4687,7 @@ msgstr "Quadrato" #~ msgid "Staging" #~ msgstr "Allestimento" -#: src/view/screens/Settings/index.tsx:901 +#: src/view/screens/Settings/index.tsx:905 msgid "Status page" msgstr "Pagina di stato" @@ -4695,12 +4695,12 @@ msgstr "Pagina di stato" msgid "Step {0} of {numSteps}" msgstr "Passo {0} di {numSteps}" -#: src/view/screens/Settings/index.tsx:288 +#: src/view/screens/Settings/index.tsx:292 msgid "Storage cleared, you need to restart the app now." msgstr "Spazio di archiviazione eliminato. Riavvia l'app." #: src/Navigation.tsx:211 -#: src/view/screens/Settings/index.tsx:827 +#: src/view/screens/Settings/index.tsx:831 msgid "Storybook" msgstr "Cronologia" @@ -4755,25 +4755,25 @@ msgstr "Supporto" #~ msgid "Swipe up to see more" #~ msgstr "Scorri verso l'alto per vedere di più" -#: src/view/com/modals/SwitchAccount.tsx:121 +#: src/view/com/modals/SwitchAccount.tsx:123 msgid "Switch Account" msgstr "Cambia account" -#: src/view/com/modals/SwitchAccount.tsx:101 -#: src/view/screens/Settings/index.tsx:135 +#: src/view/com/modals/SwitchAccount.tsx:103 +#: src/view/screens/Settings/index.tsx:139 msgid "Switch to {0}" msgstr "Cambia a {0}" -#: src/view/com/modals/SwitchAccount.tsx:102 -#: src/view/screens/Settings/index.tsx:136 +#: src/view/com/modals/SwitchAccount.tsx:104 +#: src/view/screens/Settings/index.tsx:140 msgid "Switches the account you are logged in to" msgstr "Cambia l'account dal quale hai effettuato l'accesso" -#: src/view/screens/Settings/index.tsx:487 +#: src/view/screens/Settings/index.tsx:491 msgid "System" msgstr "Sistema" -#: src/view/screens/Settings/index.tsx:815 +#: src/view/screens/Settings/index.tsx:819 msgid "System log" msgstr "Registro di sistema" @@ -4807,7 +4807,7 @@ msgstr "Termini" #: src/Navigation.tsx:236 #: src/view/com/auth/create/Policies.tsx:59 -#: src/view/screens/Settings/index.tsx:915 +#: src/view/screens/Settings/index.tsx:919 #: src/view/screens/TermsOfService.tsx:29 #: src/view/shell/Drawer.tsx:259 msgid "Terms of Service" @@ -5151,12 +5151,12 @@ msgstr "" #~ msgid "This will hide this post from your feeds." #~ msgstr "Questo nasconderà il post dai tuoi feeds." -#: src/view/screens/Settings/index.tsx:570 +#: src/view/screens/Settings/index.tsx:574 msgid "Thread preferences" msgstr "" #: src/view/screens/PreferencesThreads.tsx:53 -#: src/view/screens/Settings/index.tsx:580 +#: src/view/screens/Settings/index.tsx:584 msgid "Thread Preferences" msgstr "Preferenze delle discussioni" @@ -5218,7 +5218,7 @@ msgstr "Riattiva questa lista" #: src/view/com/auth/create/CreateAccount.tsx:58 #: src/view/com/auth/login/ForgotPasswordForm.tsx:87 #: src/view/com/auth/login/Login.tsx:76 -#: src/view/com/auth/login/LoginForm.tsx:118 +#: src/view/com/auth/login/LoginForm.tsx:121 #: src/view/com/modals/ChangePassword.tsx:70 msgid "Unable to contact your service. Please check your Internet connection." msgstr "Impossibile contattare il servizio. Per favore controlla la tua connessione Internet." @@ -5471,8 +5471,8 @@ msgstr "Lista aggiornata" msgid "User Lists" msgstr "Liste publiche" -#: src/view/com/auth/login/LoginForm.tsx:177 -#: src/view/com/auth/login/LoginForm.tsx:195 +#: src/view/com/auth/login/LoginForm.tsx:180 +#: src/view/com/auth/login/LoginForm.tsx:198 msgid "Username or email address" msgstr "Nome utente o indirizzo Email" @@ -5504,15 +5504,15 @@ msgstr "" msgid "Verify {0}" msgstr "" -#: src/view/screens/Settings/index.tsx:940 +#: src/view/screens/Settings/index.tsx:944 msgid "Verify email" msgstr "Verifica Email" -#: src/view/screens/Settings/index.tsx:965 +#: src/view/screens/Settings/index.tsx:969 msgid "Verify my email" msgstr "Verifica la mia email" -#: src/view/screens/Settings/index.tsx:974 +#: src/view/screens/Settings/index.tsx:978 msgid "Verify My Email" msgstr "Verifica la Mia Email" @@ -5996,7 +5996,7 @@ msgid "Your posts, likes, and blocks are public. Mutes are private." msgstr "I tuoi post, i tuoi Mi piace e i tuoi blocchi sono pubblici. I conti silenziati sono privati." #: src/view/com/modals/SwitchAccount.tsx:88 -#: src/view/screens/Settings/index.tsx:123 +#: src/view/screens/Settings/index.tsx:125 msgid "Your profile" msgstr "Il tuo profilo" diff --git a/src/locale/locales/ja/messages.po b/src/locale/locales/ja/messages.po index 79562a02c2..ca09edd542 100644 --- a/src/locale/locales/ja/messages.po +++ b/src/locale/locales/ja/messages.po @@ -106,7 +106,7 @@ msgid "Access profile and other navigation links" msgstr "プロフィールと他のナビゲーションリンクにアクセス" #: src/view/com/modals/EditImage.tsx:299 -#: src/view/screens/Settings/index.tsx:466 +#: src/view/screens/Settings/index.tsx:470 msgid "Accessibility" msgstr "アクセシビリティ" @@ -114,9 +114,9 @@ msgstr "アクセシビリティ" msgid "account" msgstr "" -#: src/view/com/auth/login/LoginForm.tsx:166 -#: src/view/screens/Settings/index.tsx:323 -#: src/view/screens/Settings/index.tsx:739 +#: src/view/com/auth/login/LoginForm.tsx:169 +#: src/view/screens/Settings/index.tsx:327 +#: src/view/screens/Settings/index.tsx:743 msgid "Account" msgstr "アカウント" @@ -178,8 +178,8 @@ msgstr "コンテンツの警告を追加" msgid "Add a user to this list" msgstr "リストにユーザーを追加" -#: src/view/screens/Settings/index.tsx:398 -#: src/view/screens/Settings/index.tsx:407 +#: src/view/screens/Settings/index.tsx:402 +#: src/view/screens/Settings/index.tsx:411 msgid "Add account" msgstr "アカウントを追加" @@ -268,7 +268,7 @@ msgid "Adult content is disabled." msgstr "" #: src/screens/Moderation/index.tsx:377 -#: src/view/screens/Settings/index.tsx:680 +#: src/view/screens/Settings/index.tsx:684 msgid "Advanced" msgstr "高度な設定" @@ -281,7 +281,7 @@ msgstr "" msgid "Already have a code?" msgstr "コードをすでに持っていますか?" -#: src/view/com/auth/login/ChooseAccountForm.tsx:102 +#: src/view/com/auth/login/ChooseAccountForm.tsx:103 msgid "Already signed in as @{0}" msgstr "@{0}としてすでにサインイン済み" @@ -345,7 +345,7 @@ msgstr "アプリパスワードの名前には、英数字、スペース、ハ msgid "App Password names must be at least 4 characters long." msgstr "アプリパスワードの名前は長さが4文字以上である必要があります。" -#: src/view/screens/Settings/index.tsx:691 +#: src/view/screens/Settings/index.tsx:695 msgid "App password settings" msgstr "アプリパスワードの設定" @@ -355,7 +355,7 @@ msgstr "アプリパスワードの設定" #: src/Navigation.tsx:251 #: src/view/screens/AppPasswords.tsx:189 -#: src/view/screens/Settings/index.tsx:700 +#: src/view/screens/Settings/index.tsx:704 msgid "App Passwords" msgstr "アプリパスワード" @@ -393,7 +393,7 @@ msgstr "" #~ msgid "Appeal this decision." #~ msgstr "この判断に異議を申し立てる" -#: src/view/screens/Settings/index.tsx:481 +#: src/view/screens/Settings/index.tsx:485 msgid "Appearance" msgstr "背景" @@ -433,9 +433,9 @@ msgstr "芸術的または性的ではないヌード。" #: src/components/moderation/LabelsOnMeDialog.tsx:248 #: src/screens/Profile/Header/Shell.tsx:97 #: src/view/com/auth/create/CreateAccount.tsx:158 -#: src/view/com/auth/login/ChooseAccountForm.tsx:155 +#: src/view/com/auth/login/ChooseAccountForm.tsx:160 #: src/view/com/auth/login/ForgotPasswordForm.tsx:174 -#: src/view/com/auth/login/LoginForm.tsx:259 +#: src/view/com/auth/login/LoginForm.tsx:262 #: src/view/com/auth/login/SetNewPasswordForm.tsx:179 #: src/view/com/util/ViewHeader.tsx:87 msgid "Back" @@ -450,7 +450,7 @@ msgstr "戻る" msgid "Based on your interest in {interestsText}" msgstr "「{interestsText}」への興味に基づいたおすすめです。" -#: src/view/screens/Settings/index.tsx:538 +#: src/view/screens/Settings/index.tsx:542 msgid "Basics" msgstr "基本" @@ -459,7 +459,7 @@ msgstr "基本" msgid "Birthday" msgstr "誕生日" -#: src/view/screens/Settings/index.tsx:355 +#: src/view/screens/Settings/index.tsx:359 msgid "Birthday:" msgstr "誕生日:" @@ -586,7 +586,7 @@ msgstr "" msgid "Books" msgstr "書籍" -#: src/view/screens/Settings/index.tsx:889 +#: src/view/screens/Settings/index.tsx:893 msgid "Build version {0} {1}" msgstr "ビルドバージョン {0} {1}" @@ -703,21 +703,21 @@ msgstr "検索をキャンセル" msgid "Cancels opening the linked website" msgstr "" -#: src/view/screens/Settings/index.tsx:349 -msgctxt "action" +#: src/view/com/modals/VerifyEmail.tsx:152 msgid "Change" msgstr "変更" -#: src/view/com/modals/VerifyEmail.tsx:152 +#: src/view/screens/Settings/index.tsx:353 +msgctxt "action" msgid "Change" msgstr "変更" -#: src/view/screens/Settings/index.tsx:712 +#: src/view/screens/Settings/index.tsx:716 msgid "Change handle" msgstr "ハンドルを変更" #: src/view/com/modals/ChangeHandle.tsx:161 -#: src/view/screens/Settings/index.tsx:723 +#: src/view/screens/Settings/index.tsx:727 msgid "Change Handle" msgstr "ハンドルを変更" @@ -725,12 +725,12 @@ msgstr "ハンドルを変更" msgid "Change my email" msgstr "メールアドレスを変更" -#: src/view/screens/Settings/index.tsx:750 +#: src/view/screens/Settings/index.tsx:754 msgid "Change password" msgstr "パスワードを変更" #: src/view/com/modals/ChangePassword.tsx:141 -#: src/view/screens/Settings/index.tsx:761 +#: src/view/screens/Settings/index.tsx:765 msgid "Change Password" msgstr "パスワードを変更" @@ -796,19 +796,19 @@ msgstr "メインのフィードを選択" msgid "Choose your password" msgstr "パスワードを入力" -#: src/view/screens/Settings/index.tsx:864 +#: src/view/screens/Settings/index.tsx:868 msgid "Clear all legacy storage data" msgstr "レガシーストレージデータをすべてクリア" -#: src/view/screens/Settings/index.tsx:867 +#: src/view/screens/Settings/index.tsx:871 msgid "Clear all legacy storage data (restart after this)" msgstr "すべてのレガシーストレージデータをクリア(この後再起動します)" -#: src/view/screens/Settings/index.tsx:876 +#: src/view/screens/Settings/index.tsx:880 msgid "Clear all storage data" msgstr "すべてのストレージデータをクリア" -#: src/view/screens/Settings/index.tsx:879 +#: src/view/screens/Settings/index.tsx:883 msgid "Clear all storage data (restart after this)" msgstr "すべてのストレージデータをクリア(この後再起動します)" @@ -817,11 +817,11 @@ msgstr "すべてのストレージデータをクリア(この後再起動し msgid "Clear search query" msgstr "検索クエリをクリア" -#: src/view/screens/Settings/index.tsx:865 +#: src/view/screens/Settings/index.tsx:869 msgid "Clears all legacy storage data" msgstr "" -#: src/view/screens/Settings/index.tsx:877 +#: src/view/screens/Settings/index.tsx:881 msgid "Clears all storage data" msgstr "" @@ -988,7 +988,7 @@ msgstr "確認コード" #~ msgstr "{email}のWaitlistへの登録を確認" #: src/view/com/auth/create/CreateAccount.tsx:193 -#: src/view/com/auth/login/LoginForm.tsx:278 +#: src/view/com/auth/login/LoginForm.tsx:281 msgid "Connecting..." msgstr "接続中..." @@ -1076,7 +1076,7 @@ msgstr "料理" msgid "Copied" msgstr "コピーしました" -#: src/view/screens/Settings/index.tsx:247 +#: src/view/screens/Settings/index.tsx:251 msgid "Copied build version to clipboard" msgstr "ビルドバージョンをクリップボードにコピーしました" @@ -1140,7 +1140,7 @@ msgstr "リストのロードに失敗しました" msgid "Create a new account" msgstr "新しいアカウントを作成" -#: src/view/screens/Settings/index.tsx:399 +#: src/view/screens/Settings/index.tsx:403 msgid "Create a new Bluesky account" msgstr "新しいBlueskyアカウントを作成" @@ -1203,8 +1203,8 @@ msgstr "外部サイトのメディアをカスタマイズします。" #~ msgid "Danger Zone" #~ msgstr "危険地帯" -#: src/view/screens/Settings/index.tsx:500 -#: src/view/screens/Settings/index.tsx:526 +#: src/view/screens/Settings/index.tsx:504 +#: src/view/screens/Settings/index.tsx:530 msgid "Dark" msgstr "ダーク" @@ -1212,7 +1212,7 @@ msgstr "ダーク" msgid "Dark mode" msgstr "ダークモード" -#: src/view/screens/Settings/index.tsx:513 +#: src/view/screens/Settings/index.tsx:517 msgid "Dark Theme" msgstr "ダークテーマ" @@ -1220,7 +1220,7 @@ msgstr "ダークテーマ" #~ msgid "Debug" #~ msgstr "デバッグ" -#: src/view/screens/Settings/index.tsx:837 +#: src/view/screens/Settings/index.tsx:841 msgid "Debug Moderation" msgstr "" @@ -1234,7 +1234,7 @@ msgstr "デバッグパネル" msgid "Delete" msgstr "" -#: src/view/screens/Settings/index.tsx:792 +#: src/view/screens/Settings/index.tsx:796 msgid "Delete account" msgstr "アカウントを削除" @@ -1262,7 +1262,7 @@ msgstr "マイアカウントを削除" #~ msgid "Delete my account…" #~ msgstr "マイアカウントを削除…" -#: src/view/screens/Settings/index.tsx:804 +#: src/view/screens/Settings/index.tsx:808 msgid "Delete My Account…" msgstr "マイアカウントを削除…" @@ -1306,7 +1306,7 @@ msgstr "説明" msgid "Did you want to say anything?" msgstr "なにか言いたいことはあった?" -#: src/view/screens/Settings/index.tsx:519 +#: src/view/screens/Settings/index.tsx:523 msgid "Dim" msgstr "グレー" @@ -1375,19 +1375,6 @@ msgstr "ドメインを確認しました!" #~ msgid "Don't have an invite code?" #~ msgstr "招待コードをお持ちでない場合" -#: src/view/com/auth/onboarding/RecommendedFollows.tsx:86 -#: src/view/com/modals/EditImage.tsx:333 -#: src/view/com/modals/ListAddRemoveUsers.tsx:144 -#: src/view/com/modals/SelfLabel.tsx:157 -#: src/view/com/modals/Threadgate.tsx:129 -#: src/view/com/modals/Threadgate.tsx:132 -#: src/view/com/modals/UserAddRemoveLists.tsx:95 -#: src/view/com/modals/UserAddRemoveLists.tsx:98 -#: src/view/screens/PreferencesThreads.tsx:162 -msgctxt "action" -msgid "Done" -msgstr "完了" - #: src/components/dialogs/BirthDateSettings.tsx:119 #: src/components/dialogs/BirthDateSettings.tsx:125 #: src/view/com/auth/server-input/index.tsx:165 @@ -1404,11 +1391,24 @@ msgstr "完了" msgid "Done" msgstr "完了" +#: src/view/com/auth/onboarding/RecommendedFollows.tsx:86 +#: src/view/com/modals/EditImage.tsx:333 +#: src/view/com/modals/ListAddRemoveUsers.tsx:144 +#: src/view/com/modals/SelfLabel.tsx:157 +#: src/view/com/modals/Threadgate.tsx:129 +#: src/view/com/modals/Threadgate.tsx:132 +#: src/view/com/modals/UserAddRemoveLists.tsx:95 +#: src/view/com/modals/UserAddRemoveLists.tsx:98 +#: src/view/screens/PreferencesThreads.tsx:162 +msgctxt "action" +msgid "Done" +msgstr "完了" + #: src/view/com/modals/lang-settings/ConfirmLanguagesButton.tsx:42 msgid "Done{extraText}" msgstr "完了{extraText}" -#: src/view/com/auth/login/ChooseAccountForm.tsx:45 +#: src/view/com/auth/login/ChooseAccountForm.tsx:46 msgid "Double tap to sign in" msgstr "ダブルタップでサインイン" @@ -1557,7 +1557,7 @@ msgstr "メールアドレスは更新されました" msgid "Email verified" msgstr "メールアドレスは認証されました" -#: src/view/screens/Settings/index.tsx:327 +#: src/view/screens/Settings/index.tsx:331 msgid "Email:" msgstr "メールアドレス:" @@ -1714,12 +1714,12 @@ msgstr "" msgid "Explicit sexual images." msgstr "" -#: src/view/screens/Settings/index.tsx:773 +#: src/view/screens/Settings/index.tsx:777 msgid "Export my data" msgstr "私のデータをエクスポートする" #: src/view/screens/Settings/ExportCarDialog.tsx:44 -#: src/view/screens/Settings/index.tsx:784 +#: src/view/screens/Settings/index.tsx:788 msgid "Export My Data" msgstr "私のデータをエクスポートする" @@ -1734,11 +1734,11 @@ msgstr "外部メディアを有効にすると、それらのメディアのウ #: src/Navigation.tsx:275 #: src/view/screens/PreferencesExternalEmbeds.tsx:52 -#: src/view/screens/Settings/index.tsx:673 +#: src/view/screens/Settings/index.tsx:677 msgid "External Media Preferences" msgstr "外部メディアの設定" -#: src/view/screens/Settings/index.tsx:664 +#: src/view/screens/Settings/index.tsx:668 msgid "External media settings" msgstr "外部メディアの設定" @@ -1951,7 +1951,7 @@ msgstr "フォロー中" msgid "Following {0}" msgstr "{0}をフォローしています" -#: src/view/screens/Settings/index.tsx:549 +#: src/view/screens/Settings/index.tsx:553 msgid "Following feed preferences" msgstr "" @@ -1959,7 +1959,7 @@ msgstr "" #: src/view/com/home/HomeHeaderLayout.web.tsx:50 #: src/view/com/home/HomeHeaderLayoutMobile.tsx:84 #: src/view/screens/PreferencesFollowingFeed.tsx:104 -#: src/view/screens/Settings/index.tsx:558 +#: src/view/screens/Settings/index.tsx:562 msgid "Following Feed Preferences" msgstr "" @@ -1983,11 +1983,11 @@ msgstr "セキュリティ上の理由から、あなたのメールアドレス msgid "For security reasons, you won't be able to view this again. If you lose this password, you'll need to generate a new one." msgstr "セキュリティ上の理由から、これを再度表示することはできません。このパスワードを紛失した場合は、新しいパスワードを生成する必要があります。" -#: src/view/com/auth/login/LoginForm.tsx:241 +#: src/view/com/auth/login/LoginForm.tsx:244 msgid "Forgot" msgstr "忘れた" -#: src/view/com/auth/login/LoginForm.tsx:238 +#: src/view/com/auth/login/LoginForm.tsx:241 msgid "Forgot password" msgstr "パスワードを忘れた" @@ -2064,7 +2064,7 @@ msgstr "@{queryMaybeHandle}へ" #: src/view/com/auth/login/ForgotPasswordForm.tsx:189 #: src/view/com/auth/login/ForgotPasswordForm.tsx:218 -#: src/view/com/auth/login/LoginForm.tsx:288 +#: src/view/com/auth/login/LoginForm.tsx:291 #: src/view/com/auth/login/SetNewPasswordForm.tsx:195 #: src/view/com/modals/ChangePassword.tsx:167 msgid "Go to next" @@ -2322,11 +2322,11 @@ msgstr "アカウント削除のためにパスワードを入力" #~ msgid "Input phone number for SMS verification" #~ msgstr "SMS認証に用いる電話番号を入力" -#: src/view/com/auth/login/LoginForm.tsx:230 +#: src/view/com/auth/login/LoginForm.tsx:233 msgid "Input the password tied to {identifier}" msgstr "{identifier}に紐づくパスワードを入力" -#: src/view/com/auth/login/LoginForm.tsx:197 +#: src/view/com/auth/login/LoginForm.tsx:200 msgid "Input the username or email address you used at signup" msgstr "サインアップ時に使用したユーザー名またはメールアドレスを入力" @@ -2338,7 +2338,7 @@ msgstr "サインアップ時に使用したユーザー名またはメールア #~ msgid "Input your email to get on the Bluesky waitlist" #~ msgstr "BlueskyのWaitlistに登録するメールアドレスを入力" -#: src/view/com/auth/login/LoginForm.tsx:229 +#: src/view/com/auth/login/LoginForm.tsx:232 msgid "Input your password" msgstr "あなたのパスワードを入力" @@ -2354,7 +2354,7 @@ msgstr "あなたのユーザーハンドルを入力" msgid "Invalid or unsupported post record" msgstr "無効またはサポートされていない投稿のレコード" -#: src/view/com/auth/login/LoginForm.tsx:113 +#: src/view/com/auth/login/LoginForm.tsx:116 msgid "Invalid username or password" msgstr "無効なユーザー名またはパスワード" @@ -2449,7 +2449,7 @@ msgstr "" msgid "Language selection" msgstr "言語の選択" -#: src/view/screens/Settings/index.tsx:610 +#: src/view/screens/Settings/index.tsx:614 msgid "Language settings" msgstr "言語の設定" @@ -2458,7 +2458,7 @@ msgstr "言語の設定" msgid "Language Settings" msgstr "言語の設定" -#: src/view/screens/Settings/index.tsx:619 +#: src/view/screens/Settings/index.tsx:623 msgid "Languages" msgstr "言語" @@ -2504,7 +2504,7 @@ msgstr "Blueskyから離れる" msgid "left to go." msgstr "あと少しです。" -#: src/view/screens/Settings/index.tsx:292 +#: src/view/screens/Settings/index.tsx:296 msgid "Legacy storage cleared, you need to restart the app now." msgstr "レガシーストレージがクリアされたため、今すぐアプリを再起動する必要があります。" @@ -2522,7 +2522,7 @@ msgstr "さあ始めましょう!" #~ msgid "Library" #~ msgstr "ライブラリー" -#: src/view/screens/Settings/index.tsx:494 +#: src/view/screens/Settings/index.tsx:498 msgid "Light" msgstr "ライト" @@ -2677,7 +2677,7 @@ msgstr "ログアウト" msgid "Logged-out visibility" msgstr "ログアウトしたユーザーからの可視性" -#: src/view/com/auth/login/ChooseAccountForm.tsx:137 +#: src/view/com/auth/login/ChooseAccountForm.tsx:142 msgid "Login to account that is not listed" msgstr "リストにないアカウントにログイン" @@ -2732,7 +2732,7 @@ msgstr "" #: src/Navigation.tsx:119 #: src/screens/Moderation/index.tsx:106 -#: src/view/screens/Settings/index.tsx:641 +#: src/view/screens/Settings/index.tsx:645 #: src/view/shell/desktop/LeftNav.tsx:401 #: src/view/shell/Drawer.tsx:514 #: src/view/shell/Drawer.tsx:515 @@ -2775,7 +2775,7 @@ msgstr "モデレーションリスト" msgid "Moderation Lists" msgstr "モデレーションリスト" -#: src/view/screens/Settings/index.tsx:635 +#: src/view/screens/Settings/index.tsx:639 msgid "Moderation settings" msgstr "モデレーションの設定" @@ -2922,11 +2922,11 @@ msgstr "マイフィード" msgid "My Profile" msgstr "マイプロフィール" -#: src/view/screens/Settings/index.tsx:592 +#: src/view/screens/Settings/index.tsx:596 msgid "My saved feeds" msgstr "" -#: src/view/screens/Settings/index.tsx:598 +#: src/view/screens/Settings/index.tsx:602 msgid "My Saved Feeds" msgstr "保存されたフィード" @@ -2955,7 +2955,7 @@ msgstr "自然" #: src/view/com/auth/login/ForgotPasswordForm.tsx:190 #: src/view/com/auth/login/ForgotPasswordForm.tsx:219 -#: src/view/com/auth/login/LoginForm.tsx:289 +#: src/view/com/auth/login/LoginForm.tsx:292 #: src/view/com/auth/login/SetNewPasswordForm.tsx:196 #: src/view/com/modals/ChangePassword.tsx:168 msgid "Navigates to the next screen" @@ -3052,7 +3052,7 @@ msgstr "ニュース" #: src/view/com/auth/create/CreateAccount.tsx:172 #: src/view/com/auth/login/ForgotPasswordForm.tsx:182 #: src/view/com/auth/login/ForgotPasswordForm.tsx:192 -#: src/view/com/auth/login/LoginForm.tsx:291 +#: src/view/com/auth/login/LoginForm.tsx:294 #: src/view/com/auth/login/SetNewPasswordForm.tsx:187 #: src/view/com/auth/login/SetNewPasswordForm.tsx:198 #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:79 @@ -3201,7 +3201,7 @@ msgstr "OK" msgid "Oldest replies first" msgstr "古い順に返信を表示" -#: src/view/screens/Settings/index.tsx:240 +#: src/view/screens/Settings/index.tsx:244 msgid "Onboarding reset" msgstr "オンボーディングのリセット" @@ -3240,7 +3240,7 @@ msgstr "絵文字を入力" msgid "Open feed options menu" msgstr "" -#: src/view/screens/Settings/index.tsx:730 +#: src/view/screens/Settings/index.tsx:734 msgid "Open links with in-app browser" msgstr "アプリ内ブラウザーでリンクを開く" @@ -3260,12 +3260,12 @@ msgstr "ナビゲーションを開く" msgid "Open post options menu" msgstr "" -#: src/view/screens/Settings/index.tsx:824 -#: src/view/screens/Settings/index.tsx:834 +#: src/view/screens/Settings/index.tsx:828 +#: src/view/screens/Settings/index.tsx:838 msgid "Open storybook page" msgstr "絵本のページを開く" -#: src/view/screens/Settings/index.tsx:812 +#: src/view/screens/Settings/index.tsx:816 msgid "Open system log" msgstr "" @@ -3289,7 +3289,7 @@ msgstr "デバイスのカメラを開く" msgid "Opens composer" msgstr "編集画面を開く" -#: src/view/screens/Settings/index.tsx:611 +#: src/view/screens/Settings/index.tsx:615 msgid "Opens configurable language settings" msgstr "構成可能な言語設定を開く" @@ -3301,7 +3301,7 @@ msgstr "デバイスのフォトギャラリーを開く" #~ msgid "Opens editor for profile display name, avatar, background image, and description" #~ msgstr "プロフィールの表示名、アバター、背景画像、説明文のエディタを開く" -#: src/view/screens/Settings/index.tsx:665 +#: src/view/screens/Settings/index.tsx:669 msgid "Opens external embeds settings" msgstr "外部コンテンツの埋め込みの設定を開く" @@ -3331,7 +3331,7 @@ msgstr "" msgid "Opens list of invite codes" msgstr "招待コードのリストを開く" -#: src/view/screens/Settings/index.tsx:794 +#: src/view/screens/Settings/index.tsx:798 msgid "Opens modal for account deletion confirmation. Requires email code" msgstr "" @@ -3339,19 +3339,19 @@ msgstr "" #~ msgid "Opens modal for account deletion confirmation. Requires email code." #~ msgstr "アカウントの削除確認用の表示を開きます。メールアドレスのコードが必要です。" -#: src/view/screens/Settings/index.tsx:752 +#: src/view/screens/Settings/index.tsx:756 msgid "Opens modal for changing your Bluesky password" msgstr "" -#: src/view/screens/Settings/index.tsx:714 +#: src/view/screens/Settings/index.tsx:718 msgid "Opens modal for choosing a new Bluesky handle" msgstr "" -#: src/view/screens/Settings/index.tsx:775 +#: src/view/screens/Settings/index.tsx:779 msgid "Opens modal for downloading your Bluesky account data (repository)" msgstr "" -#: src/view/screens/Settings/index.tsx:966 +#: src/view/screens/Settings/index.tsx:970 msgid "Opens modal for email verification" msgstr "" @@ -3359,11 +3359,11 @@ msgstr "" msgid "Opens modal for using custom domain" msgstr "カスタムドメインを使用するためのモーダルを開く" -#: src/view/screens/Settings/index.tsx:636 +#: src/view/screens/Settings/index.tsx:640 msgid "Opens moderation settings" msgstr "モデレーションの設定を開く" -#: src/view/com/auth/login/LoginForm.tsx:239 +#: src/view/com/auth/login/LoginForm.tsx:242 msgid "Opens password reset form" msgstr "パスワードリセットのフォームを開く" @@ -3372,11 +3372,11 @@ msgstr "パスワードリセットのフォームを開く" msgid "Opens screen to edit Saved Feeds" msgstr "保存されたフィードの編集画面を開く" -#: src/view/screens/Settings/index.tsx:593 +#: src/view/screens/Settings/index.tsx:597 msgid "Opens screen with all saved feeds" msgstr "保存されたすべてのフィードで画面を開く" -#: src/view/screens/Settings/index.tsx:692 +#: src/view/screens/Settings/index.tsx:696 msgid "Opens the app password settings" msgstr "" @@ -3384,7 +3384,7 @@ msgstr "" #~ msgid "Opens the app password settings page" #~ msgstr "アプリパスワードの設定ページを開く" -#: src/view/screens/Settings/index.tsx:550 +#: src/view/screens/Settings/index.tsx:554 msgid "Opens the Following feed preferences" msgstr "" @@ -3396,16 +3396,16 @@ msgstr "" msgid "Opens the linked website" msgstr "" -#: src/view/screens/Settings/index.tsx:825 -#: src/view/screens/Settings/index.tsx:835 +#: src/view/screens/Settings/index.tsx:829 +#: src/view/screens/Settings/index.tsx:839 msgid "Opens the storybook page" msgstr "ストーリーブックのページを開く" -#: src/view/screens/Settings/index.tsx:813 +#: src/view/screens/Settings/index.tsx:817 msgid "Opens the system log page" msgstr "システムログのページを開く" -#: src/view/screens/Settings/index.tsx:571 +#: src/view/screens/Settings/index.tsx:575 msgid "Opens the threads preferences" msgstr "スレッドの設定を開く" @@ -3429,7 +3429,7 @@ msgstr "または以下のオプションを組み合わせてください:" msgid "Other" msgstr "" -#: src/view/com/auth/login/ChooseAccountForm.tsx:142 +#: src/view/com/auth/login/ChooseAccountForm.tsx:147 msgid "Other account" msgstr "その他のアカウント" @@ -3452,8 +3452,8 @@ msgstr "ページが見つかりません" #: src/view/com/auth/create/Step1.tsx:191 #: src/view/com/auth/create/Step1.tsx:201 -#: src/view/com/auth/login/LoginForm.tsx:210 -#: src/view/com/auth/login/LoginForm.tsx:226 +#: src/view/com/auth/login/LoginForm.tsx:213 +#: src/view/com/auth/login/LoginForm.tsx:229 #: src/view/com/auth/login/SetNewPasswordForm.tsx:161 #: src/view/com/modals/DeleteAccount.tsx:195 #: src/view/com/modals/DeleteAccount.tsx:202 @@ -3702,7 +3702,7 @@ msgstr "第一言語" msgid "Prioritize Your Follows" msgstr "あなたのフォローを優先" -#: src/view/screens/Settings/index.tsx:648 +#: src/view/screens/Settings/index.tsx:652 #: src/view/shell/desktop/RightNav.tsx:72 msgid "Privacy" msgstr "プライバシー" @@ -3710,7 +3710,7 @@ msgstr "プライバシー" #: src/Navigation.tsx:231 #: src/view/com/auth/create/Policies.tsx:69 #: src/view/screens/PrivacyPolicy.tsx:29 -#: src/view/screens/Settings/index.tsx:921 +#: src/view/screens/Settings/index.tsx:925 #: src/view/shell/Drawer.tsx:265 msgid "Privacy Policy" msgstr "プライバシーポリシー" @@ -3736,7 +3736,7 @@ msgstr "プロフィール" msgid "Profile updated" msgstr "プロフィールを更新しました" -#: src/view/screens/Settings/index.tsx:979 +#: src/view/screens/Settings/index.tsx:983 msgid "Protect your account by verifying your email." msgstr "メールアドレスを確認してアカウントを保護します。" @@ -4012,7 +4012,7 @@ msgstr "変更を要求" msgid "Request Code" msgstr "コードをリクエスト" -#: src/view/screens/Settings/index.tsx:471 +#: src/view/screens/Settings/index.tsx:475 msgid "Require alt text before posting" msgstr "画像投稿時にALTテキストを必須とする" @@ -4034,8 +4034,8 @@ msgstr "コードをリセット" #~ msgid "Reset onboarding" #~ msgstr "オンボーディングの状態をリセット" -#: src/view/screens/Settings/index.tsx:854 -#: src/view/screens/Settings/index.tsx:857 +#: src/view/screens/Settings/index.tsx:858 +#: src/view/screens/Settings/index.tsx:861 msgid "Reset onboarding state" msgstr "オンボーディングの状態をリセット" @@ -4047,20 +4047,20 @@ msgstr "パスワードをリセット" #~ msgid "Reset preferences" #~ msgstr "設定をリセット" -#: src/view/screens/Settings/index.tsx:844 -#: src/view/screens/Settings/index.tsx:847 +#: src/view/screens/Settings/index.tsx:848 +#: src/view/screens/Settings/index.tsx:851 msgid "Reset preferences state" msgstr "設定をリセット" -#: src/view/screens/Settings/index.tsx:855 +#: src/view/screens/Settings/index.tsx:859 msgid "Resets the onboarding state" msgstr "オンボーディングの状態をリセットします" -#: src/view/screens/Settings/index.tsx:845 +#: src/view/screens/Settings/index.tsx:849 msgid "Resets the preferences state" msgstr "設定の状態をリセットします" -#: src/view/com/auth/login/LoginForm.tsx:269 +#: src/view/com/auth/login/LoginForm.tsx:272 msgid "Retries login" msgstr "ログインをやり直す" @@ -4074,8 +4074,8 @@ msgstr "エラーになった最後のアクションをやり直す" #: src/screens/Onboarding/StepInterests/index.tsx:224 #: src/view/com/auth/create/CreateAccount.tsx:181 #: src/view/com/auth/create/CreateAccount.tsx:186 -#: src/view/com/auth/login/LoginForm.tsx:268 #: src/view/com/auth/login/LoginForm.tsx:271 +#: src/view/com/auth/login/LoginForm.tsx:274 #: src/view/com/util/error/ErrorMessage.tsx:55 #: src/view/com/util/error/ErrorScreen.tsx:72 msgid "Retry" @@ -4102,12 +4102,6 @@ msgstr "" #~ msgid "SANDBOX. Posts and accounts are not permanent." #~ msgstr "サンドボックス。投稿とアカウントは永久的なものではありません。" -#: src/view/com/lightbox/Lightbox.tsx:132 -#: src/view/com/modals/CreateOrEditList.tsx:345 -msgctxt "action" -msgid "Save" -msgstr "保存" - #: src/components/dialogs/BirthDateSettings.tsx:125 #: src/view/com/modals/ChangeHandle.tsx:173 #: src/view/com/modals/CreateOrEditList.tsx:337 @@ -4115,6 +4109,12 @@ msgstr "保存" msgid "Save" msgstr "保存" +#: src/view/com/lightbox/Lightbox.tsx:132 +#: src/view/com/modals/CreateOrEditList.tsx:345 +msgctxt "action" +msgid "Save" +msgstr "保存" + #: src/view/com/modals/AltImage.tsx:130 msgid "Save alt text" msgstr "ALTテキストを保存" @@ -4281,7 +4281,7 @@ msgid "Select option {i} of {numItems}" msgstr "{numItems}個中{i}個目のオプションを選択" #: src/view/com/auth/create/Step1.tsx:96 -#: src/view/com/auth/login/LoginForm.tsx:150 +#: src/view/com/auth/login/LoginForm.tsx:153 msgid "Select service" msgstr "サービスを選択" @@ -4459,23 +4459,23 @@ msgstr "アカウントを設定する" msgid "Sets Bluesky username" msgstr "Blueskyのユーザーネームを設定" -#: src/view/screens/Settings/index.tsx:503 +#: src/view/screens/Settings/index.tsx:507 msgid "Sets color theme to dark" msgstr "" -#: src/view/screens/Settings/index.tsx:496 +#: src/view/screens/Settings/index.tsx:500 msgid "Sets color theme to light" msgstr "" -#: src/view/screens/Settings/index.tsx:490 +#: src/view/screens/Settings/index.tsx:494 msgid "Sets color theme to system setting" msgstr "" -#: src/view/screens/Settings/index.tsx:529 +#: src/view/screens/Settings/index.tsx:533 msgid "Sets dark theme to the dark theme" msgstr "" -#: src/view/screens/Settings/index.tsx:522 +#: src/view/screens/Settings/index.tsx:526 msgid "Sets dark theme to the dim theme" msgstr "" @@ -4504,12 +4504,12 @@ msgid "Sets image aspect ratio to wide" msgstr "" #: src/view/com/auth/create/Step1.tsx:97 -#: src/view/com/auth/login/LoginForm.tsx:151 +#: src/view/com/auth/login/LoginForm.tsx:154 msgid "Sets server for the Bluesky client" msgstr "Blueskyのクライアントのサーバーを設定" #: src/Navigation.tsx:139 -#: src/view/screens/Settings/index.tsx:309 +#: src/view/screens/Settings/index.tsx:313 #: src/view/shell/desktop/LeftNav.tsx:437 #: src/view/shell/Drawer.tsx:570 #: src/view/shell/Drawer.tsx:571 @@ -4552,7 +4552,7 @@ msgstr "フィードを共有" #: src/components/moderation/GlobalModerationLabelPref.tsx:45 #: src/components/moderation/PostHider.tsx:107 #: src/screens/Onboarding/StepModeration/ModerationOption.tsx:54 -#: src/view/screens/Settings/index.tsx:359 +#: src/view/screens/Settings/index.tsx:363 msgid "Show" msgstr "表示" @@ -4682,23 +4682,23 @@ msgstr "サインイン" msgid "Sign In" msgstr "サインイン" -#: src/view/com/auth/login/ChooseAccountForm.tsx:44 +#: src/view/com/auth/login/ChooseAccountForm.tsx:45 msgid "Sign in as {0}" msgstr "{0}としてサインイン" -#: src/view/com/auth/login/ChooseAccountForm.tsx:122 +#: src/view/com/auth/login/ChooseAccountForm.tsx:127 #: src/view/com/auth/login/Login.tsx:116 msgid "Sign in as..." msgstr "アカウントの選択" -#: src/view/com/auth/login/LoginForm.tsx:137 +#: src/view/com/auth/login/LoginForm.tsx:140 msgid "Sign into" msgstr "サインイン" #: src/view/com/modals/SwitchAccount.tsx:68 #: src/view/com/modals/SwitchAccount.tsx:73 -#: src/view/screens/Settings/index.tsx:105 -#: src/view/screens/Settings/index.tsx:108 +#: src/view/screens/Settings/index.tsx:107 +#: src/view/screens/Settings/index.tsx:110 msgid "Sign out" msgstr "サインアウト" @@ -4723,11 +4723,11 @@ msgstr "サインアップまたはサインインして会話に参加" msgid "Sign-in Required" msgstr "サインインが必要" -#: src/view/screens/Settings/index.tsx:370 +#: src/view/screens/Settings/index.tsx:374 msgid "Signed in as" msgstr "サインイン済み" -#: src/view/com/auth/login/ChooseAccountForm.tsx:107 +#: src/view/com/auth/login/ChooseAccountForm.tsx:112 msgid "Signed in as @{0}" msgstr "@{0}でサインイン" @@ -4807,7 +4807,7 @@ msgstr "正方形" #~ msgid "Staging" #~ msgstr "ステージング" -#: src/view/screens/Settings/index.tsx:901 +#: src/view/screens/Settings/index.tsx:905 msgid "Status page" msgstr "ステータスページ" @@ -4819,12 +4819,12 @@ msgstr "{numSteps}個中{0}個目のステップ" #~ msgid "Step {step} of 3" #~ msgstr "3個中{step}個目のステップ" -#: src/view/screens/Settings/index.tsx:288 +#: src/view/screens/Settings/index.tsx:292 msgid "Storage cleared, you need to restart the app now." msgstr "ストレージがクリアされたため、今すぐアプリを再起動する必要があります。" #: src/Navigation.tsx:211 -#: src/view/screens/Settings/index.tsx:827 +#: src/view/screens/Settings/index.tsx:831 msgid "Storybook" msgstr "ストーリーブック" @@ -4884,25 +4884,25 @@ msgstr "サポート" #~ msgid "Swipe up to see more" #~ msgstr "上にスワイプしてさらに表示" -#: src/view/com/modals/SwitchAccount.tsx:121 +#: src/view/com/modals/SwitchAccount.tsx:123 msgid "Switch Account" msgstr "アカウントを切り替える" -#: src/view/com/modals/SwitchAccount.tsx:101 -#: src/view/screens/Settings/index.tsx:135 +#: src/view/com/modals/SwitchAccount.tsx:103 +#: src/view/screens/Settings/index.tsx:139 msgid "Switch to {0}" msgstr "{0}に切り替え" -#: src/view/com/modals/SwitchAccount.tsx:102 -#: src/view/screens/Settings/index.tsx:136 +#: src/view/com/modals/SwitchAccount.tsx:104 +#: src/view/screens/Settings/index.tsx:140 msgid "Switches the account you are logged in to" msgstr "ログインしているアカウントを切り替えます" -#: src/view/screens/Settings/index.tsx:487 +#: src/view/screens/Settings/index.tsx:491 msgid "System" msgstr "システム" -#: src/view/screens/Settings/index.tsx:815 +#: src/view/screens/Settings/index.tsx:819 msgid "System log" msgstr "システムログ" @@ -4936,7 +4936,7 @@ msgstr "条件" #: src/Navigation.tsx:236 #: src/view/com/auth/create/Policies.tsx:59 -#: src/view/screens/Settings/index.tsx:915 +#: src/view/screens/Settings/index.tsx:919 #: src/view/screens/TermsOfService.tsx:29 #: src/view/shell/Drawer.tsx:259 msgid "Terms of Service" @@ -5288,12 +5288,12 @@ msgstr "" #~ msgid "This will hide this post from your feeds." #~ msgstr "この投稿をあなたのフィードにおいて非表示にします。" -#: src/view/screens/Settings/index.tsx:570 +#: src/view/screens/Settings/index.tsx:574 msgid "Thread preferences" msgstr "" #: src/view/screens/PreferencesThreads.tsx:53 -#: src/view/screens/Settings/index.tsx:580 +#: src/view/screens/Settings/index.tsx:584 msgid "Thread Preferences" msgstr "スレッドの設定" @@ -5356,7 +5356,7 @@ msgstr "リストでのミュートを解除" #: src/view/com/auth/create/CreateAccount.tsx:58 #: src/view/com/auth/login/ForgotPasswordForm.tsx:87 #: src/view/com/auth/login/Login.tsx:76 -#: src/view/com/auth/login/LoginForm.tsx:118 +#: src/view/com/auth/login/LoginForm.tsx:121 #: src/view/com/modals/ChangePassword.tsx:70 msgid "Unable to contact your service. Please check your Internet connection." msgstr "あなたのサービスに接続できません。インターネットの接続を確認してください。" @@ -5610,8 +5610,8 @@ msgstr "ユーザーリストを更新しました" msgid "User Lists" msgstr "ユーザーリスト" -#: src/view/com/auth/login/LoginForm.tsx:177 -#: src/view/com/auth/login/LoginForm.tsx:195 +#: src/view/com/auth/login/LoginForm.tsx:180 +#: src/view/com/auth/login/LoginForm.tsx:198 msgid "Username or email address" msgstr "ユーザー名またはメールアドレス" @@ -5643,15 +5643,15 @@ msgstr "" msgid "Verify {0}" msgstr "" -#: src/view/screens/Settings/index.tsx:940 +#: src/view/screens/Settings/index.tsx:944 msgid "Verify email" msgstr "メールアドレスを確認" -#: src/view/screens/Settings/index.tsx:965 +#: src/view/screens/Settings/index.tsx:969 msgid "Verify my email" msgstr "メールアドレスを確認" -#: src/view/screens/Settings/index.tsx:974 +#: src/view/screens/Settings/index.tsx:978 msgid "Verify My Email" msgstr "メールアドレスを確認" @@ -6153,7 +6153,7 @@ msgid "Your posts, likes, and blocks are public. Mutes are private." msgstr "投稿、いいね、ブロックは公開されます。ミュートは非公開です。" #: src/view/com/modals/SwitchAccount.tsx:88 -#: src/view/screens/Settings/index.tsx:123 +#: src/view/screens/Settings/index.tsx:125 msgid "Your profile" msgstr "あなたのプロフィール" diff --git a/src/locale/locales/ko/messages.po b/src/locale/locales/ko/messages.po index 0fc833795f..9888881c2b 100644 --- a/src/locale/locales/ko/messages.po +++ b/src/locale/locales/ko/messages.po @@ -63,7 +63,7 @@ msgid "Access profile and other navigation links" msgstr "프로필 및 기타 탐색 링크로 이동합니다" #: src/view/com/modals/EditImage.tsx:299 -#: src/view/screens/Settings/index.tsx:466 +#: src/view/screens/Settings/index.tsx:470 msgid "Accessibility" msgstr "접근성" @@ -71,9 +71,9 @@ msgstr "접근성" msgid "account" msgstr "계정" -#: src/view/com/auth/login/LoginForm.tsx:166 -#: src/view/screens/Settings/index.tsx:323 -#: src/view/screens/Settings/index.tsx:739 +#: src/view/com/auth/login/LoginForm.tsx:169 +#: src/view/screens/Settings/index.tsx:327 +#: src/view/screens/Settings/index.tsx:743 msgid "Account" msgstr "계정" @@ -135,8 +135,8 @@ msgstr "콘텐츠 경고 추가" msgid "Add a user to this list" msgstr "이 리스트에 사용자 추가" -#: src/view/screens/Settings/index.tsx:398 -#: src/view/screens/Settings/index.tsx:407 +#: src/view/screens/Settings/index.tsx:402 +#: src/view/screens/Settings/index.tsx:411 msgid "Add account" msgstr "계정 추가" @@ -208,7 +208,7 @@ msgid "Adult content is disabled." msgstr "성인 콘텐츠가 비활성화되어 있습니다." #: src/screens/Moderation/index.tsx:377 -#: src/view/screens/Settings/index.tsx:680 +#: src/view/screens/Settings/index.tsx:684 msgid "Advanced" msgstr "고급" @@ -221,7 +221,7 @@ msgstr "저장한 모든 피드를 한 곳에서 확인하세요." msgid "Already have a code?" msgstr "이미 코드가 있나요?" -#: src/view/com/auth/login/ChooseAccountForm.tsx:102 +#: src/view/com/auth/login/ChooseAccountForm.tsx:103 msgid "Already signed in as @{0}" msgstr "이미 @{0}(으)로 로그인했습니다" @@ -285,13 +285,13 @@ msgstr "앱 비밀번호 이름에는 문자, 숫자, 공백, 대시, 밑줄만 msgid "App Password names must be at least 4 characters long." msgstr "앱 비밀번호 이름은 4자 이상이어야 합니다." -#: src/view/screens/Settings/index.tsx:691 +#: src/view/screens/Settings/index.tsx:695 msgid "App password settings" msgstr "앱 비밀번호 설정" #: src/Navigation.tsx:251 #: src/view/screens/AppPasswords.tsx:189 -#: src/view/screens/Settings/index.tsx:700 +#: src/view/screens/Settings/index.tsx:704 msgid "App Passwords" msgstr "앱 비밀번호" @@ -308,7 +308,7 @@ msgstr "\"{0}\" 라벨 이의신청" msgid "Appeal submitted." msgstr "이의신청 제출함" -#: src/view/screens/Settings/index.tsx:481 +#: src/view/screens/Settings/index.tsx:485 msgid "Appearance" msgstr "모양" @@ -344,9 +344,9 @@ msgstr "선정적이지 않거나 예술적인 노출." #: src/components/moderation/LabelsOnMeDialog.tsx:248 #: src/screens/Profile/Header/Shell.tsx:97 #: src/view/com/auth/create/CreateAccount.tsx:158 -#: src/view/com/auth/login/ChooseAccountForm.tsx:155 +#: src/view/com/auth/login/ChooseAccountForm.tsx:160 #: src/view/com/auth/login/ForgotPasswordForm.tsx:174 -#: src/view/com/auth/login/LoginForm.tsx:259 +#: src/view/com/auth/login/LoginForm.tsx:262 #: src/view/com/auth/login/SetNewPasswordForm.tsx:179 #: src/view/com/util/ViewHeader.tsx:87 msgid "Back" @@ -361,7 +361,7 @@ msgstr "뒤로" msgid "Based on your interest in {interestsText}" msgstr "{interestsText}에 대한 관심사 기반" -#: src/view/screens/Settings/index.tsx:538 +#: src/view/screens/Settings/index.tsx:542 msgid "Basics" msgstr "기본" @@ -370,7 +370,7 @@ msgstr "기본" msgid "Birthday" msgstr "생년월일" -#: src/view/screens/Settings/index.tsx:355 +#: src/view/screens/Settings/index.tsx:359 msgid "Birthday:" msgstr "생년월일:" @@ -485,7 +485,7 @@ msgstr "이미지 흐리게 및 피드에서 필터링" msgid "Books" msgstr "책" -#: src/view/screens/Settings/index.tsx:889 +#: src/view/screens/Settings/index.tsx:893 msgid "Build version {0} {1}" msgstr "빌드 버전 {0} {1}" @@ -594,17 +594,17 @@ msgstr "" msgid "Change" msgstr "" -#: src/view/screens/Settings/index.tsx:349 +#: src/view/screens/Settings/index.tsx:353 msgctxt "action" msgid "Change" msgstr "변경" -#: src/view/screens/Settings/index.tsx:712 +#: src/view/screens/Settings/index.tsx:716 msgid "Change handle" msgstr "핸들 변경" #: src/view/com/modals/ChangeHandle.tsx:161 -#: src/view/screens/Settings/index.tsx:723 +#: src/view/screens/Settings/index.tsx:727 msgid "Change Handle" msgstr "핸들 변경" @@ -612,12 +612,12 @@ msgstr "핸들 변경" msgid "Change my email" msgstr "내 이메일 변경하기" -#: src/view/screens/Settings/index.tsx:750 +#: src/view/screens/Settings/index.tsx:754 msgid "Change password" msgstr "비밀번호 변경" #: src/view/com/modals/ChangePassword.tsx:141 -#: src/view/screens/Settings/index.tsx:761 +#: src/view/screens/Settings/index.tsx:765 msgid "Change Password" msgstr "비밀번호 변경" @@ -679,19 +679,19 @@ msgstr "기본 피드 선택" msgid "Choose your password" msgstr "비밀번호를 입력하세요" -#: src/view/screens/Settings/index.tsx:864 +#: src/view/screens/Settings/index.tsx:868 msgid "Clear all legacy storage data" msgstr "모든 레거시 스토리지 데이터 지우기" -#: src/view/screens/Settings/index.tsx:867 +#: src/view/screens/Settings/index.tsx:871 msgid "Clear all legacy storage data (restart after this)" msgstr "모든 레거시 스토리지 데이터 지우기 (이후 다시 시작)" -#: src/view/screens/Settings/index.tsx:876 +#: src/view/screens/Settings/index.tsx:880 msgid "Clear all storage data" msgstr "모든 스토리지 데이터 지우기" -#: src/view/screens/Settings/index.tsx:879 +#: src/view/screens/Settings/index.tsx:883 msgid "Clear all storage data (restart after this)" msgstr "모든 스토리지 데이터 지우기 (이후 다시 시작)" @@ -700,11 +700,11 @@ msgstr "모든 스토리지 데이터 지우기 (이후 다시 시작)" msgid "Clear search query" msgstr "검색어 지우기" -#: src/view/screens/Settings/index.tsx:865 +#: src/view/screens/Settings/index.tsx:869 msgid "Clears all legacy storage data" msgstr "" -#: src/view/screens/Settings/index.tsx:877 +#: src/view/screens/Settings/index.tsx:881 msgid "Clears all storage data" msgstr "" @@ -857,7 +857,7 @@ msgid "Confirmation code" msgstr "확인 코드" #: src/view/com/auth/create/CreateAccount.tsx:193 -#: src/view/com/auth/login/LoginForm.tsx:278 +#: src/view/com/auth/login/LoginForm.tsx:281 msgid "Connecting..." msgstr "연결 중…" @@ -937,7 +937,7 @@ msgstr "요리" msgid "Copied" msgstr "복사됨" -#: src/view/screens/Settings/index.tsx:247 +#: src/view/screens/Settings/index.tsx:251 msgid "Copied build version to clipboard" msgstr "빌드 버전 클립보드에 복사됨" @@ -993,7 +993,7 @@ msgstr "리스트를 불러올 수 없습니다" msgid "Create a new account" msgstr "새 계정 만들기" -#: src/view/screens/Settings/index.tsx:399 +#: src/view/screens/Settings/index.tsx:403 msgid "Create a new Bluesky account" msgstr "새 Bluesky 계정을 만듭니다" @@ -1044,8 +1044,8 @@ msgstr "커뮤니티에서 구축한 맞춤 피드는 새로운 경험을 제공 msgid "Customize media from external sites." msgstr "외부 사이트 미디어를 사용자 지정합니다." -#: src/view/screens/Settings/index.tsx:500 -#: src/view/screens/Settings/index.tsx:526 +#: src/view/screens/Settings/index.tsx:504 +#: src/view/screens/Settings/index.tsx:530 msgid "Dark" msgstr "어두움" @@ -1053,11 +1053,11 @@ msgstr "어두움" msgid "Dark mode" msgstr "어두운 모드" -#: src/view/screens/Settings/index.tsx:513 +#: src/view/screens/Settings/index.tsx:517 msgid "Dark Theme" msgstr "어두운 테마" -#: src/view/screens/Settings/index.tsx:837 +#: src/view/screens/Settings/index.tsx:841 msgid "Debug Moderation" msgstr "검토 디버그" @@ -1071,7 +1071,7 @@ msgstr "디버그 패널" msgid "Delete" msgstr "삭제" -#: src/view/screens/Settings/index.tsx:792 +#: src/view/screens/Settings/index.tsx:796 msgid "Delete account" msgstr "계정 삭제" @@ -1095,7 +1095,7 @@ msgstr "리스트 삭제" msgid "Delete my account" msgstr "내 계정 삭제" -#: src/view/screens/Settings/index.tsx:804 +#: src/view/screens/Settings/index.tsx:808 msgid "Delete My Account…" msgstr "내 계정 삭제…" @@ -1131,7 +1131,7 @@ msgstr "설명" msgid "Did you want to say anything?" msgstr "하고 싶은 말이 있나요?" -#: src/view/screens/Settings/index.tsx:519 +#: src/view/screens/Settings/index.tsx:523 msgid "Dim" msgstr "어둑함" @@ -1221,7 +1221,7 @@ msgstr "완료" msgid "Done{extraText}" msgstr "완료{extraText}" -#: src/view/com/auth/login/ChooseAccountForm.tsx:45 +#: src/view/com/auth/login/ChooseAccountForm.tsx:46 msgid "Double tap to sign in" msgstr "두 번 탭하여 로그인합니다" @@ -1370,7 +1370,7 @@ msgstr "이메일 변경됨" msgid "Email verified" msgstr "이메일 확인됨" -#: src/view/screens/Settings/index.tsx:327 +#: src/view/screens/Settings/index.tsx:331 msgid "Email:" msgstr "이메일:" @@ -1511,12 +1511,12 @@ msgstr "노골적이거나 불쾌감을 줄 수 있는 미디어." msgid "Explicit sexual images." msgstr "노골적인 성적 이미지." -#: src/view/screens/Settings/index.tsx:773 +#: src/view/screens/Settings/index.tsx:777 msgid "Export my data" msgstr "내 데이터 내보내기" #: src/view/screens/Settings/ExportCarDialog.tsx:44 -#: src/view/screens/Settings/index.tsx:784 +#: src/view/screens/Settings/index.tsx:788 msgid "Export My Data" msgstr "내 데이터 내보내기" @@ -1531,11 +1531,11 @@ msgstr "외부 미디어는 웹사이트가 나와 내 기기에 대한 정보 #: src/Navigation.tsx:275 #: src/view/screens/PreferencesExternalEmbeds.tsx:52 -#: src/view/screens/Settings/index.tsx:673 +#: src/view/screens/Settings/index.tsx:677 msgid "External Media Preferences" msgstr "외부 미디어 설정" -#: src/view/screens/Settings/index.tsx:664 +#: src/view/screens/Settings/index.tsx:668 msgid "External media settings" msgstr "외부 미디어 설정" @@ -1724,7 +1724,7 @@ msgstr "팔로우 중" msgid "Following {0}" msgstr "{0} 님을 팔로우했습니다" -#: src/view/screens/Settings/index.tsx:549 +#: src/view/screens/Settings/index.tsx:553 msgid "Following feed preferences" msgstr "" @@ -1732,7 +1732,7 @@ msgstr "" #: src/view/com/home/HomeHeaderLayout.web.tsx:50 #: src/view/com/home/HomeHeaderLayoutMobile.tsx:84 #: src/view/screens/PreferencesFollowingFeed.tsx:104 -#: src/view/screens/Settings/index.tsx:558 +#: src/view/screens/Settings/index.tsx:562 msgid "Following Feed Preferences" msgstr "팔로우 중 피드 설정" @@ -1756,11 +1756,11 @@ msgstr "보안상의 이유로 이메일 주소로 확인 코드를 보내야 msgid "For security reasons, you won't be able to view this again. If you lose this password, you'll need to generate a new one." msgstr "보안상의 이유로 이 비밀번호는 다시 볼 수 없습니다. 이 비밀번호를 분실한 경우 새 비밀번호를 생성해야 합니다." -#: src/view/com/auth/login/LoginForm.tsx:241 +#: src/view/com/auth/login/LoginForm.tsx:244 msgid "Forgot" msgstr "분실" -#: src/view/com/auth/login/LoginForm.tsx:238 +#: src/view/com/auth/login/LoginForm.tsx:241 msgid "Forgot password" msgstr "비밀번호 분실" @@ -1837,7 +1837,7 @@ msgstr "@{queryMaybeHandle}(으)로 이동" #: src/view/com/auth/login/ForgotPasswordForm.tsx:189 #: src/view/com/auth/login/ForgotPasswordForm.tsx:218 -#: src/view/com/auth/login/LoginForm.tsx:288 +#: src/view/com/auth/login/LoginForm.tsx:291 #: src/view/com/auth/login/SetNewPasswordForm.tsx:195 #: src/view/com/modals/ChangePassword.tsx:167 msgid "Go to next" @@ -2054,15 +2054,15 @@ msgstr "새 비밀번호를 입력합니다" msgid "Input password for account deletion" msgstr "계정을 삭제하기 위해 비밀번호를 입력합니다" -#: src/view/com/auth/login/LoginForm.tsx:230 +#: src/view/com/auth/login/LoginForm.tsx:233 msgid "Input the password tied to {identifier}" msgstr "{identifier}에 연결된 비밀번호를 입력합니다" -#: src/view/com/auth/login/LoginForm.tsx:197 +#: src/view/com/auth/login/LoginForm.tsx:200 msgid "Input the username or email address you used at signup" msgstr "가입 시 사용한 사용자 이름 또는 이메일 주소를 입력합니다" -#: src/view/com/auth/login/LoginForm.tsx:229 +#: src/view/com/auth/login/LoginForm.tsx:232 msgid "Input your password" msgstr "비밀번호를 입력합니다" @@ -2078,7 +2078,7 @@ msgstr "사용자 핸들을 입력합니다" msgid "Invalid or unsupported post record" msgstr "유효하지 않거나 지원되지 않는 게시물 기록" -#: src/view/com/auth/login/LoginForm.tsx:113 +#: src/view/com/auth/login/LoginForm.tsx:116 msgid "Invalid username or password" msgstr "잘못된 사용자 이름 또는 비밀번호" @@ -2152,7 +2152,7 @@ msgstr "내 콘텐츠의 라벨" msgid "Language selection" msgstr "언어 선택" -#: src/view/screens/Settings/index.tsx:610 +#: src/view/screens/Settings/index.tsx:614 msgid "Language settings" msgstr "언어 설정" @@ -2161,7 +2161,7 @@ msgstr "언어 설정" msgid "Language Settings" msgstr "언어 설정" -#: src/view/screens/Settings/index.tsx:619 +#: src/view/screens/Settings/index.tsx:623 msgid "Languages" msgstr "언어" @@ -2203,7 +2203,7 @@ msgstr "Bluesky 떠나기" msgid "left to go." msgstr "명 남았습니다." -#: src/view/screens/Settings/index.tsx:292 +#: src/view/screens/Settings/index.tsx:296 msgid "Legacy storage cleared, you need to restart the app now." msgstr "레거시 스토리지가 지워졌으며 지금 앱을 다시 시작해야 합니다." @@ -2216,7 +2216,7 @@ msgstr "비밀번호를 재설정해 봅시다!" msgid "Let's go!" msgstr "출발!" -#: src/view/screens/Settings/index.tsx:494 +#: src/view/screens/Settings/index.tsx:498 msgid "Light" msgstr "밝음" @@ -2351,7 +2351,7 @@ msgstr "로그아웃" msgid "Logged-out visibility" msgstr "로그아웃 표시" -#: src/view/com/auth/login/ChooseAccountForm.tsx:137 +#: src/view/com/auth/login/ChooseAccountForm.tsx:142 msgid "Login to account that is not listed" msgstr "목록에 없는 계정으로 로그인" @@ -2398,7 +2398,7 @@ msgstr "오해의 소지가 있는 계정" #: src/Navigation.tsx:119 #: src/screens/Moderation/index.tsx:106 -#: src/view/screens/Settings/index.tsx:641 +#: src/view/screens/Settings/index.tsx:645 #: src/view/shell/desktop/LeftNav.tsx:401 #: src/view/shell/Drawer.tsx:514 #: src/view/shell/Drawer.tsx:515 @@ -2441,7 +2441,7 @@ msgstr "검토 리스트" msgid "Moderation Lists" msgstr "검토 리스트" -#: src/view/screens/Settings/index.tsx:635 +#: src/view/screens/Settings/index.tsx:639 msgid "Moderation settings" msgstr "검토 설정" @@ -2576,11 +2576,11 @@ msgstr "내 피드" msgid "My Profile" msgstr "내 프로필" -#: src/view/screens/Settings/index.tsx:592 +#: src/view/screens/Settings/index.tsx:596 msgid "My saved feeds" msgstr "" -#: src/view/screens/Settings/index.tsx:598 +#: src/view/screens/Settings/index.tsx:602 msgid "My Saved Feeds" msgstr "내 저장된 피드" @@ -2609,7 +2609,7 @@ msgstr "자연" #: src/view/com/auth/login/ForgotPasswordForm.tsx:190 #: src/view/com/auth/login/ForgotPasswordForm.tsx:219 -#: src/view/com/auth/login/LoginForm.tsx:289 +#: src/view/com/auth/login/LoginForm.tsx:292 #: src/view/com/auth/login/SetNewPasswordForm.tsx:196 #: src/view/com/modals/ChangePassword.tsx:168 msgid "Navigates to the next screen" @@ -2698,7 +2698,7 @@ msgstr "뉴스" #: src/view/com/auth/create/CreateAccount.tsx:172 #: src/view/com/auth/login/ForgotPasswordForm.tsx:182 #: src/view/com/auth/login/ForgotPasswordForm.tsx:192 -#: src/view/com/auth/login/LoginForm.tsx:291 +#: src/view/com/auth/login/LoginForm.tsx:294 #: src/view/com/auth/login/SetNewPasswordForm.tsx:187 #: src/view/com/auth/login/SetNewPasswordForm.tsx:198 #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:79 @@ -2843,7 +2843,7 @@ msgstr "확인" msgid "Oldest replies first" msgstr "오래된 순" -#: src/view/screens/Settings/index.tsx:240 +#: src/view/screens/Settings/index.tsx:244 msgid "Onboarding reset" msgstr "온보딩 재설정" @@ -2878,7 +2878,7 @@ msgstr "이모티콘 선택기 열기" msgid "Open feed options menu" msgstr "피드 옵션 메뉴 열기" -#: src/view/screens/Settings/index.tsx:730 +#: src/view/screens/Settings/index.tsx:734 msgid "Open links with in-app browser" msgstr "링크를 인앱 브라우저로 열기" @@ -2894,12 +2894,12 @@ msgstr "내비게이션 열기" msgid "Open post options menu" msgstr "게시물 옵션 메뉴 열기" -#: src/view/screens/Settings/index.tsx:824 -#: src/view/screens/Settings/index.tsx:834 +#: src/view/screens/Settings/index.tsx:828 +#: src/view/screens/Settings/index.tsx:838 msgid "Open storybook page" msgstr "스토리북 페이지 열기" -#: src/view/screens/Settings/index.tsx:812 +#: src/view/screens/Settings/index.tsx:816 msgid "Open system log" msgstr "" @@ -2923,7 +2923,7 @@ msgstr "기기에서 카메라를 엽니다" msgid "Opens composer" msgstr "답글 작성 상자를 엽니다" -#: src/view/screens/Settings/index.tsx:611 +#: src/view/screens/Settings/index.tsx:615 msgid "Opens configurable language settings" msgstr "구성 가능한 언어 설정을 엽니다" @@ -2931,7 +2931,7 @@ msgstr "구성 가능한 언어 설정을 엽니다" msgid "Opens device photo gallery" msgstr "기기의 사진 갤러리를 엽니다" -#: src/view/screens/Settings/index.tsx:665 +#: src/view/screens/Settings/index.tsx:669 msgid "Opens external embeds settings" msgstr "외부 임베드 설정을 엽니다" @@ -2949,7 +2949,7 @@ msgstr "" msgid "Opens list of invite codes" msgstr "초대 코드 목록을 엽니다" -#: src/view/screens/Settings/index.tsx:794 +#: src/view/screens/Settings/index.tsx:798 msgid "Opens modal for account deletion confirmation. Requires email code" msgstr "" @@ -2957,19 +2957,19 @@ msgstr "" #~ msgid "Opens modal for account deletion confirmation. Requires email code." #~ msgstr "계정 삭제 확인을 위한 대화 상자를 엽니다. 이메일 코드가 필요합니다" -#: src/view/screens/Settings/index.tsx:752 +#: src/view/screens/Settings/index.tsx:756 msgid "Opens modal for changing your Bluesky password" msgstr "" -#: src/view/screens/Settings/index.tsx:714 +#: src/view/screens/Settings/index.tsx:718 msgid "Opens modal for choosing a new Bluesky handle" msgstr "" -#: src/view/screens/Settings/index.tsx:775 +#: src/view/screens/Settings/index.tsx:779 msgid "Opens modal for downloading your Bluesky account data (repository)" msgstr "" -#: src/view/screens/Settings/index.tsx:966 +#: src/view/screens/Settings/index.tsx:970 msgid "Opens modal for email verification" msgstr "" @@ -2977,11 +2977,11 @@ msgstr "" msgid "Opens modal for using custom domain" msgstr "사용자 지정 도메인을 사용하기 위한 대화 상자를 엽니다" -#: src/view/screens/Settings/index.tsx:636 +#: src/view/screens/Settings/index.tsx:640 msgid "Opens moderation settings" msgstr "검토 설정을 엽니다" -#: src/view/com/auth/login/LoginForm.tsx:239 +#: src/view/com/auth/login/LoginForm.tsx:242 msgid "Opens password reset form" msgstr "비밀번호 재설정 양식을 엽니다" @@ -2990,11 +2990,11 @@ msgstr "비밀번호 재설정 양식을 엽니다" msgid "Opens screen to edit Saved Feeds" msgstr "저장된 피드를 편집할 수 있는 화면을 엽니다" -#: src/view/screens/Settings/index.tsx:593 +#: src/view/screens/Settings/index.tsx:597 msgid "Opens screen with all saved feeds" msgstr "모든 저장된 피드 화면을 엽니다" -#: src/view/screens/Settings/index.tsx:692 +#: src/view/screens/Settings/index.tsx:696 msgid "Opens the app password settings" msgstr "" @@ -3002,7 +3002,7 @@ msgstr "" #~ msgid "Opens the app password settings page" #~ msgstr "비밀번호 설정 페이지를 엽니다" -#: src/view/screens/Settings/index.tsx:550 +#: src/view/screens/Settings/index.tsx:554 msgid "Opens the Following feed preferences" msgstr "" @@ -3014,16 +3014,16 @@ msgstr "" msgid "Opens the linked website" msgstr "" -#: src/view/screens/Settings/index.tsx:825 -#: src/view/screens/Settings/index.tsx:835 +#: src/view/screens/Settings/index.tsx:829 +#: src/view/screens/Settings/index.tsx:839 msgid "Opens the storybook page" msgstr "스토리북 페이지를 엽니다" -#: src/view/screens/Settings/index.tsx:813 +#: src/view/screens/Settings/index.tsx:817 msgid "Opens the system log page" msgstr "시스템 로그 페이지를 엽니다" -#: src/view/screens/Settings/index.tsx:571 +#: src/view/screens/Settings/index.tsx:575 msgid "Opens the threads preferences" msgstr "스레드 설정을 엽니다" @@ -3043,7 +3043,7 @@ msgstr "또는 다음 옵션을 결합하세요:" msgid "Other" msgstr "기타" -#: src/view/com/auth/login/ChooseAccountForm.tsx:142 +#: src/view/com/auth/login/ChooseAccountForm.tsx:147 msgid "Other account" msgstr "다른 계정" @@ -3062,8 +3062,8 @@ msgstr "페이지를 찾을 수 없음" #: src/view/com/auth/create/Step1.tsx:191 #: src/view/com/auth/create/Step1.tsx:201 -#: src/view/com/auth/login/LoginForm.tsx:210 -#: src/view/com/auth/login/LoginForm.tsx:226 +#: src/view/com/auth/login/LoginForm.tsx:213 +#: src/view/com/auth/login/LoginForm.tsx:229 #: src/view/com/auth/login/SetNewPasswordForm.tsx:161 #: src/view/com/modals/DeleteAccount.tsx:195 #: src/view/com/modals/DeleteAccount.tsx:202 @@ -3280,7 +3280,7 @@ msgstr "주 언어" msgid "Prioritize Your Follows" msgstr "내 팔로우 먼저 표시" -#: src/view/screens/Settings/index.tsx:648 +#: src/view/screens/Settings/index.tsx:652 #: src/view/shell/desktop/RightNav.tsx:72 msgid "Privacy" msgstr "개인정보" @@ -3288,7 +3288,7 @@ msgstr "개인정보" #: src/Navigation.tsx:231 #: src/view/com/auth/create/Policies.tsx:69 #: src/view/screens/PrivacyPolicy.tsx:29 -#: src/view/screens/Settings/index.tsx:921 +#: src/view/screens/Settings/index.tsx:925 #: src/view/shell/Drawer.tsx:265 msgid "Privacy Policy" msgstr "개인정보 처리방침" @@ -3314,7 +3314,7 @@ msgstr "프로필" msgid "Profile updated" msgstr "프로필 업데이트됨" -#: src/view/screens/Settings/index.tsx:979 +#: src/view/screens/Settings/index.tsx:983 msgid "Protect your account by verifying your email." msgstr "이메일을 인증하여 계정을 보호하세요." @@ -3558,7 +3558,7 @@ msgstr "변경 요청" msgid "Request Code" msgstr "코드 요청" -#: src/view/screens/Settings/index.tsx:471 +#: src/view/screens/Settings/index.tsx:475 msgid "Require alt text before posting" msgstr "게시하기 전 대체 텍스트 필수" @@ -3580,8 +3580,8 @@ msgstr "재설정 코드" #~ msgid "Reset onboarding" #~ msgstr "온보딩 초기화" -#: src/view/screens/Settings/index.tsx:854 -#: src/view/screens/Settings/index.tsx:857 +#: src/view/screens/Settings/index.tsx:858 +#: src/view/screens/Settings/index.tsx:861 msgid "Reset onboarding state" msgstr "온보딩 상태 초기화" @@ -3593,20 +3593,20 @@ msgstr "비밀번호 재설정" #~ msgid "Reset preferences" #~ msgstr "설정 초기화" -#: src/view/screens/Settings/index.tsx:844 -#: src/view/screens/Settings/index.tsx:847 +#: src/view/screens/Settings/index.tsx:848 +#: src/view/screens/Settings/index.tsx:851 msgid "Reset preferences state" msgstr "설정 상태 초기화" -#: src/view/screens/Settings/index.tsx:855 +#: src/view/screens/Settings/index.tsx:859 msgid "Resets the onboarding state" msgstr "온보딩 상태 초기화" -#: src/view/screens/Settings/index.tsx:845 +#: src/view/screens/Settings/index.tsx:849 msgid "Resets the preferences state" msgstr "설정 상태 초기화" -#: src/view/com/auth/login/LoginForm.tsx:269 +#: src/view/com/auth/login/LoginForm.tsx:272 msgid "Retries login" msgstr "로그인을 다시 시도합니다" @@ -3620,8 +3620,8 @@ msgstr "오류가 발생한 마지막 작업을 다시 시도합니다" #: src/screens/Onboarding/StepInterests/index.tsx:224 #: src/view/com/auth/create/CreateAccount.tsx:181 #: src/view/com/auth/create/CreateAccount.tsx:186 -#: src/view/com/auth/login/LoginForm.tsx:268 #: src/view/com/auth/login/LoginForm.tsx:271 +#: src/view/com/auth/login/LoginForm.tsx:274 #: src/view/com/util/error/ErrorMessage.tsx:55 #: src/view/com/util/error/ErrorScreen.tsx:72 msgid "Retry" @@ -3799,7 +3799,7 @@ msgid "Select option {i} of {numItems}" msgstr "{numItems}개 중 {i}번째 옵션을 선택합니다" #: src/view/com/auth/create/Step1.tsx:96 -#: src/view/com/auth/login/LoginForm.tsx:150 +#: src/view/com/auth/login/LoginForm.tsx:153 msgid "Select service" msgstr "서비스 선택" @@ -3947,23 +3947,23 @@ msgstr "계정 설정하기" msgid "Sets Bluesky username" msgstr "Bluesky 사용자 이름을 설정합니다" -#: src/view/screens/Settings/index.tsx:503 +#: src/view/screens/Settings/index.tsx:507 msgid "Sets color theme to dark" msgstr "" -#: src/view/screens/Settings/index.tsx:496 +#: src/view/screens/Settings/index.tsx:500 msgid "Sets color theme to light" msgstr "" -#: src/view/screens/Settings/index.tsx:490 +#: src/view/screens/Settings/index.tsx:494 msgid "Sets color theme to system setting" msgstr "" -#: src/view/screens/Settings/index.tsx:529 +#: src/view/screens/Settings/index.tsx:533 msgid "Sets dark theme to the dark theme" msgstr "" -#: src/view/screens/Settings/index.tsx:522 +#: src/view/screens/Settings/index.tsx:526 msgid "Sets dark theme to the dim theme" msgstr "" @@ -3988,12 +3988,12 @@ msgid "Sets image aspect ratio to wide" msgstr "" #: src/view/com/auth/create/Step1.tsx:97 -#: src/view/com/auth/login/LoginForm.tsx:151 +#: src/view/com/auth/login/LoginForm.tsx:154 msgid "Sets server for the Bluesky client" msgstr "Bluesky 클라이언트를 위한 서버를 설정합니다" #: src/Navigation.tsx:139 -#: src/view/screens/Settings/index.tsx:309 +#: src/view/screens/Settings/index.tsx:313 #: src/view/shell/desktop/LeftNav.tsx:437 #: src/view/shell/Drawer.tsx:570 #: src/view/shell/Drawer.tsx:571 @@ -4036,7 +4036,7 @@ msgstr "피드 공유" #: src/components/moderation/GlobalModerationLabelPref.tsx:45 #: src/components/moderation/PostHider.tsx:107 #: src/screens/Onboarding/StepModeration/ModerationOption.tsx:54 -#: src/view/screens/Settings/index.tsx:359 +#: src/view/screens/Settings/index.tsx:363 msgid "Show" msgstr "표시" @@ -4162,23 +4162,23 @@ msgstr "로그인" msgid "Sign In" msgstr "로그인" -#: src/view/com/auth/login/ChooseAccountForm.tsx:44 +#: src/view/com/auth/login/ChooseAccountForm.tsx:45 msgid "Sign in as {0}" msgstr "{0}(으)로 로그인" -#: src/view/com/auth/login/ChooseAccountForm.tsx:122 +#: src/view/com/auth/login/ChooseAccountForm.tsx:127 #: src/view/com/auth/login/Login.tsx:116 msgid "Sign in as..." msgstr "로그인" -#: src/view/com/auth/login/LoginForm.tsx:137 +#: src/view/com/auth/login/LoginForm.tsx:140 msgid "Sign into" msgstr "로그인" #: src/view/com/modals/SwitchAccount.tsx:68 #: src/view/com/modals/SwitchAccount.tsx:73 -#: src/view/screens/Settings/index.tsx:105 -#: src/view/screens/Settings/index.tsx:108 +#: src/view/screens/Settings/index.tsx:107 +#: src/view/screens/Settings/index.tsx:110 msgid "Sign out" msgstr "로그아웃" @@ -4203,11 +4203,11 @@ msgstr "가입 또는 로그인하여 대화에 참여하세요" msgid "Sign-in Required" msgstr "로그인 필요" -#: src/view/screens/Settings/index.tsx:370 +#: src/view/screens/Settings/index.tsx:374 msgid "Signed in as" msgstr "로그인한 계정" -#: src/view/com/auth/login/ChooseAccountForm.tsx:107 +#: src/view/com/auth/login/ChooseAccountForm.tsx:112 msgid "Signed in as @{0}" msgstr "@{0}(으)로 로그인했습니다" @@ -4271,7 +4271,7 @@ msgstr "스포츠" msgid "Square" msgstr "정사각형" -#: src/view/screens/Settings/index.tsx:901 +#: src/view/screens/Settings/index.tsx:905 msgid "Status page" msgstr "상태 페이지" @@ -4279,12 +4279,12 @@ msgstr "상태 페이지" msgid "Step {0} of {numSteps}" msgstr "{numSteps}단계 중 {0}단계" -#: src/view/screens/Settings/index.tsx:288 +#: src/view/screens/Settings/index.tsx:292 msgid "Storage cleared, you need to restart the app now." msgstr "스토리지가 지워졌으며 지금 앱을 다시 시작해야 합니다." #: src/Navigation.tsx:211 -#: src/view/screens/Settings/index.tsx:827 +#: src/view/screens/Settings/index.tsx:831 msgid "Storybook" msgstr "스토리북" @@ -4336,25 +4336,25 @@ msgstr "외설적" msgid "Support" msgstr "지원" -#: src/view/com/modals/SwitchAccount.tsx:121 +#: src/view/com/modals/SwitchAccount.tsx:123 msgid "Switch Account" msgstr "계정 전환" -#: src/view/com/modals/SwitchAccount.tsx:101 -#: src/view/screens/Settings/index.tsx:135 +#: src/view/com/modals/SwitchAccount.tsx:103 +#: src/view/screens/Settings/index.tsx:139 msgid "Switch to {0}" msgstr "{0}(으)로 전환" -#: src/view/com/modals/SwitchAccount.tsx:102 -#: src/view/screens/Settings/index.tsx:136 +#: src/view/com/modals/SwitchAccount.tsx:104 +#: src/view/screens/Settings/index.tsx:140 msgid "Switches the account you are logged in to" msgstr "로그인한 계정을 전환합니다" -#: src/view/screens/Settings/index.tsx:487 +#: src/view/screens/Settings/index.tsx:491 msgid "System" msgstr "시스템" -#: src/view/screens/Settings/index.tsx:815 +#: src/view/screens/Settings/index.tsx:819 msgid "System log" msgstr "시스템 로그" @@ -4384,7 +4384,7 @@ msgstr "이용약관" #: src/Navigation.tsx:236 #: src/view/com/auth/create/Policies.tsx:59 -#: src/view/screens/Settings/index.tsx:915 +#: src/view/screens/Settings/index.tsx:919 #: src/view/screens/TermsOfService.tsx:29 #: src/view/shell/Drawer.tsx:259 msgid "Terms of Service" @@ -4700,12 +4700,12 @@ msgstr "이 경고는 미디어가 첨부된 게시물에만 사용할 수 있 msgid "This will delete {0} from your muted words. You can always add it back later." msgstr "뮤트한 단어에서 {0}이(가) 삭제됩니다. 나중에 언제든지 다시 추가할 수 있습니다." -#: src/view/screens/Settings/index.tsx:570 +#: src/view/screens/Settings/index.tsx:574 msgid "Thread preferences" msgstr "" #: src/view/screens/PreferencesThreads.tsx:53 -#: src/view/screens/Settings/index.tsx:580 +#: src/view/screens/Settings/index.tsx:584 msgid "Thread Preferences" msgstr "스레드 설정" @@ -4764,7 +4764,7 @@ msgstr "리스트 언뮤트" #: src/view/com/auth/create/CreateAccount.tsx:58 #: src/view/com/auth/login/ForgotPasswordForm.tsx:87 #: src/view/com/auth/login/Login.tsx:76 -#: src/view/com/auth/login/LoginForm.tsx:118 +#: src/view/com/auth/login/LoginForm.tsx:121 #: src/view/com/modals/ChangePassword.tsx:70 msgid "Unable to contact your service. Please check your Internet connection." msgstr "서비스에 연결할 수 없습니다. 인터넷 연결을 확인하세요." @@ -5002,8 +5002,8 @@ msgstr "사용자 리스트 업데이트됨" msgid "User Lists" msgstr "사용자 리스트" -#: src/view/com/auth/login/LoginForm.tsx:177 -#: src/view/com/auth/login/LoginForm.tsx:195 +#: src/view/com/auth/login/LoginForm.tsx:180 +#: src/view/com/auth/login/LoginForm.tsx:198 msgid "Username or email address" msgstr "사용자 이름 또는 이메일 주소" @@ -5031,15 +5031,15 @@ msgstr "" msgid "Verify {0}" msgstr "" -#: src/view/screens/Settings/index.tsx:940 +#: src/view/screens/Settings/index.tsx:944 msgid "Verify email" msgstr "이메일 인증" -#: src/view/screens/Settings/index.tsx:965 +#: src/view/screens/Settings/index.tsx:969 msgid "Verify my email" msgstr "내 이메일 인증하기" -#: src/view/screens/Settings/index.tsx:974 +#: src/view/screens/Settings/index.tsx:978 msgid "Verify My Email" msgstr "내 이메일 인증하기" @@ -5491,7 +5491,7 @@ msgid "Your posts, likes, and blocks are public. Mutes are private." msgstr "게시물, 좋아요, 차단 목록은 공개됩니다. 뮤트 목록은 공개되지 않습니다." #: src/view/com/modals/SwitchAccount.tsx:88 -#: src/view/screens/Settings/index.tsx:123 +#: src/view/screens/Settings/index.tsx:125 msgid "Your profile" msgstr "내 프로필" diff --git a/src/locale/locales/pt-BR/messages.po b/src/locale/locales/pt-BR/messages.po index 62d004c2a5..81b063a205 100644 --- a/src/locale/locales/pt-BR/messages.po +++ b/src/locale/locales/pt-BR/messages.po @@ -71,7 +71,7 @@ msgid "Access profile and other navigation links" msgstr "Acessar perfil e outros links de navegação" #: src/view/com/modals/EditImage.tsx:299 -#: src/view/screens/Settings/index.tsx:466 +#: src/view/screens/Settings/index.tsx:470 msgid "Accessibility" msgstr "Acessibilidade" @@ -79,9 +79,9 @@ msgstr "Acessibilidade" msgid "account" msgstr "" -#: src/view/com/auth/login/LoginForm.tsx:166 -#: src/view/screens/Settings/index.tsx:323 -#: src/view/screens/Settings/index.tsx:739 +#: src/view/com/auth/login/LoginForm.tsx:169 +#: src/view/screens/Settings/index.tsx:327 +#: src/view/screens/Settings/index.tsx:743 msgid "Account" msgstr "Conta" @@ -143,8 +143,8 @@ msgstr "Adicionar um aviso de conteúdo" msgid "Add a user to this list" msgstr "Adicionar um usuário a esta lista" -#: src/view/screens/Settings/index.tsx:398 -#: src/view/screens/Settings/index.tsx:407 +#: src/view/screens/Settings/index.tsx:402 +#: src/view/screens/Settings/index.tsx:411 msgid "Add account" msgstr "Adicionar conta" @@ -229,7 +229,7 @@ msgid "Adult content is disabled." msgstr "" #: src/screens/Moderation/index.tsx:377 -#: src/view/screens/Settings/index.tsx:680 +#: src/view/screens/Settings/index.tsx:684 msgid "Advanced" msgstr "Avançado" @@ -242,7 +242,7 @@ msgstr "Todos os feeds que você salvou, em um único lugar." msgid "Already have a code?" msgstr "Já tem um código?" -#: src/view/com/auth/login/ChooseAccountForm.tsx:102 +#: src/view/com/auth/login/ChooseAccountForm.tsx:103 msgid "Already signed in as @{0}" msgstr "Já logado como @{0}" @@ -306,7 +306,7 @@ msgstr "O nome da Senha de Aplicativo só pode conter letras, números, traços msgid "App Password names must be at least 4 characters long." msgstr "O nome da Senha de Aplicativo precisa ter no mínimo 4 caracteres." -#: src/view/screens/Settings/index.tsx:691 +#: src/view/screens/Settings/index.tsx:695 msgid "App password settings" msgstr "Configurações de Senha de Aplicativo" @@ -316,7 +316,7 @@ msgstr "Configurações de Senha de Aplicativo" #: src/Navigation.tsx:251 #: src/view/screens/AppPasswords.tsx:189 -#: src/view/screens/Settings/index.tsx:700 +#: src/view/screens/Settings/index.tsx:704 msgid "App Passwords" msgstr "Senhas de Aplicativos" @@ -350,7 +350,7 @@ msgstr "" #~ msgid "Appeal this decision." #~ msgstr "Contestar esta decisão." -#: src/view/screens/Settings/index.tsx:481 +#: src/view/screens/Settings/index.tsx:485 msgid "Appearance" msgstr "Aparência" @@ -390,9 +390,9 @@ msgstr "Nudez artística ou não erótica." #: src/components/moderation/LabelsOnMeDialog.tsx:248 #: src/screens/Profile/Header/Shell.tsx:97 #: src/view/com/auth/create/CreateAccount.tsx:158 -#: src/view/com/auth/login/ChooseAccountForm.tsx:155 +#: src/view/com/auth/login/ChooseAccountForm.tsx:160 #: src/view/com/auth/login/ForgotPasswordForm.tsx:174 -#: src/view/com/auth/login/LoginForm.tsx:259 +#: src/view/com/auth/login/LoginForm.tsx:262 #: src/view/com/auth/login/SetNewPasswordForm.tsx:179 #: src/view/com/util/ViewHeader.tsx:87 msgid "Back" @@ -407,7 +407,7 @@ msgstr "Voltar" msgid "Based on your interest in {interestsText}" msgstr "Com base no seu interesse em {interestsText}" -#: src/view/screens/Settings/index.tsx:538 +#: src/view/screens/Settings/index.tsx:542 msgid "Basics" msgstr "Básicos" @@ -416,7 +416,7 @@ msgstr "Básicos" msgid "Birthday" msgstr "Aniversário" -#: src/view/screens/Settings/index.tsx:355 +#: src/view/screens/Settings/index.tsx:359 msgid "Birthday:" msgstr "Aniversário:" @@ -539,7 +539,7 @@ msgstr "" msgid "Books" msgstr "Livros" -#: src/view/screens/Settings/index.tsx:889 +#: src/view/screens/Settings/index.tsx:893 msgid "Build version {0} {1}" msgstr "Versão {0} {1}" @@ -652,17 +652,17 @@ msgstr "" msgid "Change" msgstr "" -#: src/view/screens/Settings/index.tsx:349 +#: src/view/screens/Settings/index.tsx:353 msgctxt "action" msgid "Change" msgstr "Alterar" -#: src/view/screens/Settings/index.tsx:712 +#: src/view/screens/Settings/index.tsx:716 msgid "Change handle" msgstr "Alterar usuário" #: src/view/com/modals/ChangeHandle.tsx:161 -#: src/view/screens/Settings/index.tsx:723 +#: src/view/screens/Settings/index.tsx:727 msgid "Change Handle" msgstr "Alterar Usuário" @@ -670,12 +670,12 @@ msgstr "Alterar Usuário" msgid "Change my email" msgstr "Alterar meu email" -#: src/view/screens/Settings/index.tsx:750 +#: src/view/screens/Settings/index.tsx:754 msgid "Change password" msgstr "Alterar senha" #: src/view/com/modals/ChangePassword.tsx:141 -#: src/view/screens/Settings/index.tsx:761 +#: src/view/screens/Settings/index.tsx:765 msgid "Change Password" msgstr "Alterar Senha" @@ -737,19 +737,19 @@ msgstr "Escolha seus feeds principais" msgid "Choose your password" msgstr "Escolha sua senha" -#: src/view/screens/Settings/index.tsx:864 +#: src/view/screens/Settings/index.tsx:868 msgid "Clear all legacy storage data" msgstr "Limpar todos os dados de armazenamento legados" -#: src/view/screens/Settings/index.tsx:867 +#: src/view/screens/Settings/index.tsx:871 msgid "Clear all legacy storage data (restart after this)" msgstr "Limpar todos os dados de armazenamento legados (reinicie em seguida)" -#: src/view/screens/Settings/index.tsx:876 +#: src/view/screens/Settings/index.tsx:880 msgid "Clear all storage data" msgstr "Limpar todos os dados de armazenamento" -#: src/view/screens/Settings/index.tsx:879 +#: src/view/screens/Settings/index.tsx:883 msgid "Clear all storage data (restart after this)" msgstr "Limpar todos os dados de armazenamento (reinicie em seguida)" @@ -758,11 +758,11 @@ msgstr "Limpar todos os dados de armazenamento (reinicie em seguida)" msgid "Clear search query" msgstr "Limpar busca" -#: src/view/screens/Settings/index.tsx:865 +#: src/view/screens/Settings/index.tsx:869 msgid "Clears all legacy storage data" msgstr "" -#: src/view/screens/Settings/index.tsx:877 +#: src/view/screens/Settings/index.tsx:881 msgid "Clears all storage data" msgstr "" @@ -929,7 +929,7 @@ msgstr "Código de confirmação" #~ msgstr "Confirma adição de {email} à lista de espera" #: src/view/com/auth/create/CreateAccount.tsx:193 -#: src/view/com/auth/login/LoginForm.tsx:278 +#: src/view/com/auth/login/LoginForm.tsx:281 msgid "Connecting..." msgstr "Conectando..." @@ -1017,7 +1017,7 @@ msgstr "Culinária" msgid "Copied" msgstr "Copiado" -#: src/view/screens/Settings/index.tsx:247 +#: src/view/screens/Settings/index.tsx:251 msgid "Copied build version to clipboard" msgstr "Versão do aplicativo copiada" @@ -1077,7 +1077,7 @@ msgstr "Não foi possível carregar a lista" msgid "Create a new account" msgstr "Criar uma nova conta" -#: src/view/screens/Settings/index.tsx:399 +#: src/view/screens/Settings/index.tsx:403 msgid "Create a new Bluesky account" msgstr "Criar uma nova conta do Bluesky" @@ -1136,8 +1136,8 @@ msgstr "Feeds customizados feitos pela comunidade te proporcionam novas experiê msgid "Customize media from external sites." msgstr "Configurar mídia de sites externos." -#: src/view/screens/Settings/index.tsx:500 -#: src/view/screens/Settings/index.tsx:526 +#: src/view/screens/Settings/index.tsx:504 +#: src/view/screens/Settings/index.tsx:530 msgid "Dark" msgstr "Escuro" @@ -1145,11 +1145,11 @@ msgstr "Escuro" msgid "Dark mode" msgstr "Modo escuro" -#: src/view/screens/Settings/index.tsx:513 +#: src/view/screens/Settings/index.tsx:517 msgid "Dark Theme" msgstr "Modo Escuro" -#: src/view/screens/Settings/index.tsx:837 +#: src/view/screens/Settings/index.tsx:841 msgid "Debug Moderation" msgstr "" @@ -1163,7 +1163,7 @@ msgstr "Painel de depuração" msgid "Delete" msgstr "" -#: src/view/screens/Settings/index.tsx:792 +#: src/view/screens/Settings/index.tsx:796 msgid "Delete account" msgstr "Excluir a conta" @@ -1187,7 +1187,7 @@ msgstr "Excluir Lista" msgid "Delete my account" msgstr "Excluir minha conta" -#: src/view/screens/Settings/index.tsx:804 +#: src/view/screens/Settings/index.tsx:808 msgid "Delete My Account…" msgstr "Excluir minha conta…" @@ -1227,7 +1227,7 @@ msgstr "Descrição" msgid "Did you want to say anything?" msgstr "Você gostaria de dizer alguma coisa?" -#: src/view/screens/Settings/index.tsx:519 +#: src/view/screens/Settings/index.tsx:523 msgid "Dim" msgstr "Menos escuro" @@ -1292,19 +1292,6 @@ msgstr "Domínio verificado!" #~ msgid "Don't have an invite code?" #~ msgstr "Não possui um convite?" -#: src/view/com/auth/onboarding/RecommendedFollows.tsx:86 -#: src/view/com/modals/EditImage.tsx:333 -#: src/view/com/modals/ListAddRemoveUsers.tsx:144 -#: src/view/com/modals/SelfLabel.tsx:157 -#: src/view/com/modals/Threadgate.tsx:129 -#: src/view/com/modals/Threadgate.tsx:132 -#: src/view/com/modals/UserAddRemoveLists.tsx:95 -#: src/view/com/modals/UserAddRemoveLists.tsx:98 -#: src/view/screens/PreferencesThreads.tsx:162 -msgctxt "action" -msgid "Done" -msgstr "Feito" - #: src/components/dialogs/BirthDateSettings.tsx:119 #: src/components/dialogs/BirthDateSettings.tsx:125 #: src/view/com/auth/server-input/index.tsx:165 @@ -1321,11 +1308,24 @@ msgstr "Feito" msgid "Done" msgstr "Feito" +#: src/view/com/auth/onboarding/RecommendedFollows.tsx:86 +#: src/view/com/modals/EditImage.tsx:333 +#: src/view/com/modals/ListAddRemoveUsers.tsx:144 +#: src/view/com/modals/SelfLabel.tsx:157 +#: src/view/com/modals/Threadgate.tsx:129 +#: src/view/com/modals/Threadgate.tsx:132 +#: src/view/com/modals/UserAddRemoveLists.tsx:95 +#: src/view/com/modals/UserAddRemoveLists.tsx:98 +#: src/view/screens/PreferencesThreads.tsx:162 +msgctxt "action" +msgid "Done" +msgstr "Feito" + #: src/view/com/modals/lang-settings/ConfirmLanguagesButton.tsx:42 msgid "Done{extraText}" msgstr "Feito{extraText}" -#: src/view/com/auth/login/ChooseAccountForm.tsx:45 +#: src/view/com/auth/login/ChooseAccountForm.tsx:46 msgid "Double tap to sign in" msgstr "Toque duas vezes para logar" @@ -1474,7 +1474,7 @@ msgstr "E-mail Atualizado" msgid "Email verified" msgstr "E-mail verificado" -#: src/view/screens/Settings/index.tsx:327 +#: src/view/screens/Settings/index.tsx:331 msgid "Email:" msgstr "E-mail:" @@ -1623,12 +1623,12 @@ msgstr "" msgid "Explicit sexual images." msgstr "" -#: src/view/screens/Settings/index.tsx:773 +#: src/view/screens/Settings/index.tsx:777 msgid "Export my data" msgstr "Exportar meus dados" #: src/view/screens/Settings/ExportCarDialog.tsx:44 -#: src/view/screens/Settings/index.tsx:784 +#: src/view/screens/Settings/index.tsx:788 msgid "Export My Data" msgstr "Exportar Meus Dados" @@ -1643,11 +1643,11 @@ msgstr "Mídias externas podem permitir que sites coletem informações sobre vo #: src/Navigation.tsx:275 #: src/view/screens/PreferencesExternalEmbeds.tsx:52 -#: src/view/screens/Settings/index.tsx:673 +#: src/view/screens/Settings/index.tsx:677 msgid "External Media Preferences" msgstr "Preferências de Mídia Externa" -#: src/view/screens/Settings/index.tsx:664 +#: src/view/screens/Settings/index.tsx:668 msgid "External media settings" msgstr "Preferências de mídia externa" @@ -1840,7 +1840,7 @@ msgstr "Seguindo" msgid "Following {0}" msgstr "Seguindo {0}" -#: src/view/screens/Settings/index.tsx:549 +#: src/view/screens/Settings/index.tsx:553 msgid "Following feed preferences" msgstr "" @@ -1848,7 +1848,7 @@ msgstr "" #: src/view/com/home/HomeHeaderLayout.web.tsx:50 #: src/view/com/home/HomeHeaderLayoutMobile.tsx:84 #: src/view/screens/PreferencesFollowingFeed.tsx:104 -#: src/view/screens/Settings/index.tsx:558 +#: src/view/screens/Settings/index.tsx:562 msgid "Following Feed Preferences" msgstr "Configurações do feed principal" @@ -1872,11 +1872,11 @@ msgstr "Por motivos de segurança, precisamos enviar um código de confirmação msgid "For security reasons, you won't be able to view this again. If you lose this password, you'll need to generate a new one." msgstr "Por motivos de segurança, você não poderá ver esta senha novamente. Se você perder esta senha, terá que gerar uma nova." -#: src/view/com/auth/login/LoginForm.tsx:241 +#: src/view/com/auth/login/LoginForm.tsx:244 msgid "Forgot" msgstr "Esqueci" -#: src/view/com/auth/login/LoginForm.tsx:238 +#: src/view/com/auth/login/LoginForm.tsx:241 msgid "Forgot password" msgstr "Esqueci a senha" @@ -1953,7 +1953,7 @@ msgstr "Ir para @{queryMaybleHandle}" #: src/view/com/auth/login/ForgotPasswordForm.tsx:189 #: src/view/com/auth/login/ForgotPasswordForm.tsx:218 -#: src/view/com/auth/login/LoginForm.tsx:288 +#: src/view/com/auth/login/LoginForm.tsx:291 #: src/view/com/auth/login/SetNewPasswordForm.tsx:195 #: src/view/com/modals/ChangePassword.tsx:167 msgid "Go to next" @@ -2190,11 +2190,11 @@ msgstr "Insira a nova senha" msgid "Input password for account deletion" msgstr "Insira a senha para excluir a conta" -#: src/view/com/auth/login/LoginForm.tsx:230 +#: src/view/com/auth/login/LoginForm.tsx:233 msgid "Input the password tied to {identifier}" msgstr "Insira a senha da conta {identifier}" -#: src/view/com/auth/login/LoginForm.tsx:197 +#: src/view/com/auth/login/LoginForm.tsx:200 msgid "Input the username or email address you used at signup" msgstr "Insira o usuário ou e-mail que você cadastrou" @@ -2202,7 +2202,7 @@ msgstr "Insira o usuário ou e-mail que você cadastrou" #~ msgid "Input your email to get on the Bluesky waitlist" #~ msgstr "Insira seu e-mail para entrar na lista de espera do Bluesky" -#: src/view/com/auth/login/LoginForm.tsx:229 +#: src/view/com/auth/login/LoginForm.tsx:232 msgid "Input your password" msgstr "Insira sua senha" @@ -2218,7 +2218,7 @@ msgstr "Insira o usuário" msgid "Invalid or unsupported post record" msgstr "Post inválido" -#: src/view/com/auth/login/LoginForm.tsx:113 +#: src/view/com/auth/login/LoginForm.tsx:116 msgid "Invalid username or password" msgstr "Credenciais inválidas" @@ -2305,7 +2305,7 @@ msgstr "" msgid "Language selection" msgstr "Seleção de idioma" -#: src/view/screens/Settings/index.tsx:610 +#: src/view/screens/Settings/index.tsx:614 msgid "Language settings" msgstr "Configuração de Idioma" @@ -2314,7 +2314,7 @@ msgstr "Configuração de Idioma" msgid "Language Settings" msgstr "Configurações de Idiomas" -#: src/view/screens/Settings/index.tsx:619 +#: src/view/screens/Settings/index.tsx:623 msgid "Languages" msgstr "Idiomas" @@ -2360,7 +2360,7 @@ msgstr "Saindo do Bluesky" msgid "left to go." msgstr "na sua frente." -#: src/view/screens/Settings/index.tsx:292 +#: src/view/screens/Settings/index.tsx:296 msgid "Legacy storage cleared, you need to restart the app now." msgstr "Armazenamento limpo, você precisa reiniciar o app agora." @@ -2378,7 +2378,7 @@ msgstr "Vamos lá!" #~ msgid "Library" #~ msgstr "Biblioteca" -#: src/view/screens/Settings/index.tsx:494 +#: src/view/screens/Settings/index.tsx:498 msgid "Light" msgstr "Claro" @@ -2517,7 +2517,7 @@ msgstr "Sair" msgid "Logged-out visibility" msgstr "Visibilidade do seu perfil" -#: src/view/com/auth/login/ChooseAccountForm.tsx:137 +#: src/view/com/auth/login/ChooseAccountForm.tsx:142 msgid "Login to account that is not listed" msgstr "Fazer login em uma conta que não está listada" @@ -2564,7 +2564,7 @@ msgstr "" #: src/Navigation.tsx:119 #: src/screens/Moderation/index.tsx:106 -#: src/view/screens/Settings/index.tsx:641 +#: src/view/screens/Settings/index.tsx:645 #: src/view/shell/desktop/LeftNav.tsx:401 #: src/view/shell/Drawer.tsx:514 #: src/view/shell/Drawer.tsx:515 @@ -2607,7 +2607,7 @@ msgstr "Listas de moderação" msgid "Moderation Lists" msgstr "Listas de Moderação" -#: src/view/screens/Settings/index.tsx:635 +#: src/view/screens/Settings/index.tsx:639 msgid "Moderation settings" msgstr "Moderação" @@ -2754,11 +2754,11 @@ msgstr "Meus Feeds" msgid "My Profile" msgstr "Meu Perfil" -#: src/view/screens/Settings/index.tsx:592 +#: src/view/screens/Settings/index.tsx:596 msgid "My saved feeds" msgstr "" -#: src/view/screens/Settings/index.tsx:598 +#: src/view/screens/Settings/index.tsx:602 msgid "My Saved Feeds" msgstr "Meus Feeds Salvos" @@ -2787,7 +2787,7 @@ msgstr "Natureza" #: src/view/com/auth/login/ForgotPasswordForm.tsx:190 #: src/view/com/auth/login/ForgotPasswordForm.tsx:219 -#: src/view/com/auth/login/LoginForm.tsx:289 +#: src/view/com/auth/login/LoginForm.tsx:292 #: src/view/com/auth/login/SetNewPasswordForm.tsx:196 #: src/view/com/modals/ChangePassword.tsx:168 msgid "Navigates to the next screen" @@ -2880,7 +2880,7 @@ msgstr "Notícias" #: src/view/com/auth/create/CreateAccount.tsx:172 #: src/view/com/auth/login/ForgotPasswordForm.tsx:182 #: src/view/com/auth/login/ForgotPasswordForm.tsx:192 -#: src/view/com/auth/login/LoginForm.tsx:291 +#: src/view/com/auth/login/LoginForm.tsx:294 #: src/view/com/auth/login/SetNewPasswordForm.tsx:187 #: src/view/com/auth/login/SetNewPasswordForm.tsx:198 #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:79 @@ -3025,7 +3025,7 @@ msgstr "Ok" msgid "Oldest replies first" msgstr "Respostas mais antigas primeiro" -#: src/view/screens/Settings/index.tsx:240 +#: src/view/screens/Settings/index.tsx:244 msgid "Onboarding reset" msgstr "Resetar tutoriais" @@ -3064,7 +3064,7 @@ msgstr "Abrir seletor de emojis" msgid "Open feed options menu" msgstr "" -#: src/view/screens/Settings/index.tsx:730 +#: src/view/screens/Settings/index.tsx:734 msgid "Open links with in-app browser" msgstr "Abrir links no navegador interno" @@ -3084,12 +3084,12 @@ msgstr "Abrir navegação" msgid "Open post options menu" msgstr "Abrir opções do post" -#: src/view/screens/Settings/index.tsx:824 -#: src/view/screens/Settings/index.tsx:834 +#: src/view/screens/Settings/index.tsx:828 +#: src/view/screens/Settings/index.tsx:838 msgid "Open storybook page" msgstr "Abre o storybook" -#: src/view/screens/Settings/index.tsx:812 +#: src/view/screens/Settings/index.tsx:816 msgid "Open system log" msgstr "" @@ -3113,7 +3113,7 @@ msgstr "Abre a câmera do dispositivo" msgid "Opens composer" msgstr "Abre o editor de post" -#: src/view/screens/Settings/index.tsx:611 +#: src/view/screens/Settings/index.tsx:615 msgid "Opens configurable language settings" msgstr "Abre definições de idioma configuráveis" @@ -3125,7 +3125,7 @@ msgstr "Abre a galeria de fotos do dispositivo" #~ msgid "Opens editor for profile display name, avatar, background image, and description" #~ msgstr "Abre o editor de nome, avatar, banner e descrição do perfil" -#: src/view/screens/Settings/index.tsx:665 +#: src/view/screens/Settings/index.tsx:669 msgid "Opens external embeds settings" msgstr "Abre as configurações de anexos externos" @@ -3151,7 +3151,7 @@ msgstr "" msgid "Opens list of invite codes" msgstr "Abre a lista de códigos de convite" -#: src/view/screens/Settings/index.tsx:794 +#: src/view/screens/Settings/index.tsx:798 msgid "Opens modal for account deletion confirmation. Requires email code" msgstr "" @@ -3159,19 +3159,19 @@ msgstr "" #~ msgid "Opens modal for account deletion confirmation. Requires email code." #~ msgstr "Abre modal para confirmar exclusão de conta. Requer código de verificação." -#: src/view/screens/Settings/index.tsx:752 +#: src/view/screens/Settings/index.tsx:756 msgid "Opens modal for changing your Bluesky password" msgstr "" -#: src/view/screens/Settings/index.tsx:714 +#: src/view/screens/Settings/index.tsx:718 msgid "Opens modal for choosing a new Bluesky handle" msgstr "" -#: src/view/screens/Settings/index.tsx:775 +#: src/view/screens/Settings/index.tsx:779 msgid "Opens modal for downloading your Bluesky account data (repository)" msgstr "" -#: src/view/screens/Settings/index.tsx:966 +#: src/view/screens/Settings/index.tsx:970 msgid "Opens modal for email verification" msgstr "" @@ -3179,11 +3179,11 @@ msgstr "" msgid "Opens modal for using custom domain" msgstr "Abre modal para usar o domínio personalizado" -#: src/view/screens/Settings/index.tsx:636 +#: src/view/screens/Settings/index.tsx:640 msgid "Opens moderation settings" msgstr "Abre configurações de moderação" -#: src/view/com/auth/login/LoginForm.tsx:239 +#: src/view/com/auth/login/LoginForm.tsx:242 msgid "Opens password reset form" msgstr "Abre o formulário de redefinição de senha" @@ -3192,11 +3192,11 @@ msgstr "Abre o formulário de redefinição de senha" msgid "Opens screen to edit Saved Feeds" msgstr "Abre a tela para editar feeds salvos" -#: src/view/screens/Settings/index.tsx:593 +#: src/view/screens/Settings/index.tsx:597 msgid "Opens screen with all saved feeds" msgstr "Abre a tela com todos os feeds salvos" -#: src/view/screens/Settings/index.tsx:692 +#: src/view/screens/Settings/index.tsx:696 msgid "Opens the app password settings" msgstr "" @@ -3204,7 +3204,7 @@ msgstr "" #~ msgid "Opens the app password settings page" #~ msgstr "Abre a página de configurações de senha do aplicativo" -#: src/view/screens/Settings/index.tsx:550 +#: src/view/screens/Settings/index.tsx:554 msgid "Opens the Following feed preferences" msgstr "" @@ -3216,16 +3216,16 @@ msgstr "" msgid "Opens the linked website" msgstr "" -#: src/view/screens/Settings/index.tsx:825 -#: src/view/screens/Settings/index.tsx:835 +#: src/view/screens/Settings/index.tsx:829 +#: src/view/screens/Settings/index.tsx:839 msgid "Opens the storybook page" msgstr "Abre a página do storybook" -#: src/view/screens/Settings/index.tsx:813 +#: src/view/screens/Settings/index.tsx:817 msgid "Opens the system log page" msgstr "Abre a página de log do sistema" -#: src/view/screens/Settings/index.tsx:571 +#: src/view/screens/Settings/index.tsx:575 msgid "Opens the threads preferences" msgstr "Abre as preferências de threads" @@ -3245,7 +3245,7 @@ msgstr "Ou combine estas opções:" msgid "Other" msgstr "" -#: src/view/com/auth/login/ChooseAccountForm.tsx:142 +#: src/view/com/auth/login/ChooseAccountForm.tsx:147 msgid "Other account" msgstr "Outra conta" @@ -3264,8 +3264,8 @@ msgstr "Página Não Encontrada" #: src/view/com/auth/create/Step1.tsx:191 #: src/view/com/auth/create/Step1.tsx:201 -#: src/view/com/auth/login/LoginForm.tsx:210 -#: src/view/com/auth/login/LoginForm.tsx:226 +#: src/view/com/auth/login/LoginForm.tsx:213 +#: src/view/com/auth/login/LoginForm.tsx:229 #: src/view/com/auth/login/SetNewPasswordForm.tsx:161 #: src/view/com/modals/DeleteAccount.tsx:195 #: src/view/com/modals/DeleteAccount.tsx:202 @@ -3495,7 +3495,7 @@ msgstr "Idioma Principal" msgid "Prioritize Your Follows" msgstr "Priorizar seus Seguidores" -#: src/view/screens/Settings/index.tsx:648 +#: src/view/screens/Settings/index.tsx:652 #: src/view/shell/desktop/RightNav.tsx:72 msgid "Privacy" msgstr "Privacidade" @@ -3503,7 +3503,7 @@ msgstr "Privacidade" #: src/Navigation.tsx:231 #: src/view/com/auth/create/Policies.tsx:69 #: src/view/screens/PrivacyPolicy.tsx:29 -#: src/view/screens/Settings/index.tsx:921 +#: src/view/screens/Settings/index.tsx:925 #: src/view/shell/Drawer.tsx:265 msgid "Privacy Policy" msgstr "Política de Privacidade" @@ -3529,7 +3529,7 @@ msgstr "Perfil" msgid "Profile updated" msgstr "Perfil atualizado" -#: src/view/screens/Settings/index.tsx:979 +#: src/view/screens/Settings/index.tsx:983 msgid "Protect your account by verifying your email." msgstr "Proteja a sua conta verificando o seu e-mail." @@ -3789,7 +3789,7 @@ msgstr "Solicitar Alteração" msgid "Request Code" msgstr "Solicitar Código" -#: src/view/screens/Settings/index.tsx:471 +#: src/view/screens/Settings/index.tsx:475 msgid "Require alt text before posting" msgstr "Exigir texto alternativo antes de postar" @@ -3811,8 +3811,8 @@ msgstr "Código de Redefinição" #~ msgid "Reset onboarding" #~ msgstr "Redefinir tutoriais" -#: src/view/screens/Settings/index.tsx:854 -#: src/view/screens/Settings/index.tsx:857 +#: src/view/screens/Settings/index.tsx:858 +#: src/view/screens/Settings/index.tsx:861 msgid "Reset onboarding state" msgstr "Redefinir tutoriais" @@ -3824,20 +3824,20 @@ msgstr "Redefinir senha" #~ msgid "Reset preferences" #~ msgstr "Redefinir configurações" -#: src/view/screens/Settings/index.tsx:844 -#: src/view/screens/Settings/index.tsx:847 +#: src/view/screens/Settings/index.tsx:848 +#: src/view/screens/Settings/index.tsx:851 msgid "Reset preferences state" msgstr "Redefinir configurações" -#: src/view/screens/Settings/index.tsx:855 +#: src/view/screens/Settings/index.tsx:859 msgid "Resets the onboarding state" msgstr "Redefine tutoriais" -#: src/view/screens/Settings/index.tsx:845 +#: src/view/screens/Settings/index.tsx:849 msgid "Resets the preferences state" msgstr "Redefine as configurações" -#: src/view/com/auth/login/LoginForm.tsx:269 +#: src/view/com/auth/login/LoginForm.tsx:272 msgid "Retries login" msgstr "Tenta entrar novamente" @@ -3851,8 +3851,8 @@ msgstr "Tenta a última ação, que deu erro" #: src/screens/Onboarding/StepInterests/index.tsx:224 #: src/view/com/auth/create/CreateAccount.tsx:181 #: src/view/com/auth/create/CreateAccount.tsx:186 -#: src/view/com/auth/login/LoginForm.tsx:268 #: src/view/com/auth/login/LoginForm.tsx:271 +#: src/view/com/auth/login/LoginForm.tsx:274 #: src/view/com/util/error/ErrorMessage.tsx:55 #: src/view/com/util/error/ErrorScreen.tsx:72 msgid "Retry" @@ -3875,12 +3875,6 @@ msgstr "" msgid "Returns to previous page" msgstr "" -#: src/view/com/lightbox/Lightbox.tsx:132 -#: src/view/com/modals/CreateOrEditList.tsx:345 -msgctxt "action" -msgid "Save" -msgstr "Salvar" - #: src/components/dialogs/BirthDateSettings.tsx:125 #: src/view/com/modals/ChangeHandle.tsx:173 #: src/view/com/modals/CreateOrEditList.tsx:337 @@ -3888,6 +3882,12 @@ msgstr "Salvar" msgid "Save" msgstr "Salvar" +#: src/view/com/lightbox/Lightbox.tsx:132 +#: src/view/com/modals/CreateOrEditList.tsx:345 +msgctxt "action" +msgid "Save" +msgstr "Salvar" + #: src/view/com/modals/AltImage.tsx:130 msgid "Save alt text" msgstr "Salvar texto alternativo" @@ -4046,7 +4046,7 @@ msgid "Select option {i} of {numItems}" msgstr "Seleciona opção {i} de {numItems}" #: src/view/com/auth/create/Step1.tsx:96 -#: src/view/com/auth/login/LoginForm.tsx:150 +#: src/view/com/auth/login/LoginForm.tsx:153 msgid "Select service" msgstr "Selecionar serviço" @@ -4208,23 +4208,23 @@ msgstr "Configure sua conta" msgid "Sets Bluesky username" msgstr "Configura o usuário no Bluesky" -#: src/view/screens/Settings/index.tsx:503 +#: src/view/screens/Settings/index.tsx:507 msgid "Sets color theme to dark" msgstr "" -#: src/view/screens/Settings/index.tsx:496 +#: src/view/screens/Settings/index.tsx:500 msgid "Sets color theme to light" msgstr "" -#: src/view/screens/Settings/index.tsx:490 +#: src/view/screens/Settings/index.tsx:494 msgid "Sets color theme to system setting" msgstr "" -#: src/view/screens/Settings/index.tsx:529 +#: src/view/screens/Settings/index.tsx:533 msgid "Sets dark theme to the dark theme" msgstr "" -#: src/view/screens/Settings/index.tsx:522 +#: src/view/screens/Settings/index.tsx:526 msgid "Sets dark theme to the dim theme" msgstr "" @@ -4249,12 +4249,12 @@ msgid "Sets image aspect ratio to wide" msgstr "" #: src/view/com/auth/create/Step1.tsx:97 -#: src/view/com/auth/login/LoginForm.tsx:151 +#: src/view/com/auth/login/LoginForm.tsx:154 msgid "Sets server for the Bluesky client" msgstr "Configura o servidor para o cliente do Bluesky" #: src/Navigation.tsx:139 -#: src/view/screens/Settings/index.tsx:309 +#: src/view/screens/Settings/index.tsx:313 #: src/view/shell/desktop/LeftNav.tsx:437 #: src/view/shell/Drawer.tsx:570 #: src/view/shell/Drawer.tsx:571 @@ -4297,7 +4297,7 @@ msgstr "Compartilhar feed" #: src/components/moderation/GlobalModerationLabelPref.tsx:45 #: src/components/moderation/PostHider.tsx:107 #: src/screens/Onboarding/StepModeration/ModerationOption.tsx:54 -#: src/view/screens/Settings/index.tsx:359 +#: src/view/screens/Settings/index.tsx:363 msgid "Show" msgstr "Mostrar" @@ -4427,23 +4427,23 @@ msgstr "Fazer login" msgid "Sign In" msgstr "Fazer Login" -#: src/view/com/auth/login/ChooseAccountForm.tsx:44 +#: src/view/com/auth/login/ChooseAccountForm.tsx:45 msgid "Sign in as {0}" msgstr "Fazer login como {0}" -#: src/view/com/auth/login/ChooseAccountForm.tsx:122 +#: src/view/com/auth/login/ChooseAccountForm.tsx:127 #: src/view/com/auth/login/Login.tsx:116 msgid "Sign in as..." msgstr "Fazer login como..." -#: src/view/com/auth/login/LoginForm.tsx:137 +#: src/view/com/auth/login/LoginForm.tsx:140 msgid "Sign into" msgstr "Fazer login" #: src/view/com/modals/SwitchAccount.tsx:68 #: src/view/com/modals/SwitchAccount.tsx:73 -#: src/view/screens/Settings/index.tsx:105 -#: src/view/screens/Settings/index.tsx:108 +#: src/view/screens/Settings/index.tsx:107 +#: src/view/screens/Settings/index.tsx:110 msgid "Sign out" msgstr "Sair" @@ -4468,11 +4468,11 @@ msgstr "Inscreva-se ou faça login para se juntar à conversa" msgid "Sign-in Required" msgstr "É Necessário Fazer Login" -#: src/view/screens/Settings/index.tsx:370 +#: src/view/screens/Settings/index.tsx:374 msgid "Signed in as" msgstr "Entrou como" -#: src/view/com/auth/login/ChooseAccountForm.tsx:107 +#: src/view/com/auth/login/ChooseAccountForm.tsx:112 msgid "Signed in as @{0}" msgstr "Logado como @{0}" @@ -4544,7 +4544,7 @@ msgstr "Esportes" msgid "Square" msgstr "Quadrado" -#: src/view/screens/Settings/index.tsx:901 +#: src/view/screens/Settings/index.tsx:905 msgid "Status page" msgstr "Página de status" @@ -4552,12 +4552,12 @@ msgstr "Página de status" msgid "Step {0} of {numSteps}" msgstr "Passo {0} de {numSteps}" -#: src/view/screens/Settings/index.tsx:288 +#: src/view/screens/Settings/index.tsx:292 msgid "Storage cleared, you need to restart the app now." msgstr "Armazenamento limpo, você precisa reiniciar o app agora." #: src/Navigation.tsx:211 -#: src/view/screens/Settings/index.tsx:827 +#: src/view/screens/Settings/index.tsx:831 msgid "Storybook" msgstr "Storybook" @@ -4609,25 +4609,25 @@ msgstr "Sugestivo" msgid "Support" msgstr "Suporte" -#: src/view/com/modals/SwitchAccount.tsx:121 +#: src/view/com/modals/SwitchAccount.tsx:123 msgid "Switch Account" msgstr "Alterar Conta" -#: src/view/com/modals/SwitchAccount.tsx:101 -#: src/view/screens/Settings/index.tsx:135 +#: src/view/com/modals/SwitchAccount.tsx:103 +#: src/view/screens/Settings/index.tsx:139 msgid "Switch to {0}" msgstr "Trocar para {0}" -#: src/view/com/modals/SwitchAccount.tsx:102 -#: src/view/screens/Settings/index.tsx:136 +#: src/view/com/modals/SwitchAccount.tsx:104 +#: src/view/screens/Settings/index.tsx:140 msgid "Switches the account you are logged in to" msgstr "Troca a conta que você está logado" -#: src/view/screens/Settings/index.tsx:487 +#: src/view/screens/Settings/index.tsx:491 msgid "System" msgstr "Sistema" -#: src/view/screens/Settings/index.tsx:815 +#: src/view/screens/Settings/index.tsx:819 msgid "System log" msgstr "Log do sistema" @@ -4661,7 +4661,7 @@ msgstr "Termos" #: src/Navigation.tsx:236 #: src/view/com/auth/create/Policies.tsx:59 -#: src/view/screens/Settings/index.tsx:915 +#: src/view/screens/Settings/index.tsx:919 #: src/view/screens/TermsOfService.tsx:29 #: src/view/shell/Drawer.tsx:259 msgid "Terms of Service" @@ -4989,12 +4989,12 @@ msgstr "Isso removerá {0} das suas palavras silenciadas. Você pode adicioná-l #~ msgid "This will hide this post from your feeds." #~ msgstr "Isso ocultará este post de seus feeds." -#: src/view/screens/Settings/index.tsx:570 +#: src/view/screens/Settings/index.tsx:574 msgid "Thread preferences" msgstr "" #: src/view/screens/PreferencesThreads.tsx:53 -#: src/view/screens/Settings/index.tsx:580 +#: src/view/screens/Settings/index.tsx:584 msgid "Thread Preferences" msgstr "Preferências das Threads" @@ -5053,7 +5053,7 @@ msgstr "Dessilenciar lista" #: src/view/com/auth/create/CreateAccount.tsx:58 #: src/view/com/auth/login/ForgotPasswordForm.tsx:87 #: src/view/com/auth/login/Login.tsx:76 -#: src/view/com/auth/login/LoginForm.tsx:118 +#: src/view/com/auth/login/LoginForm.tsx:121 #: src/view/com/modals/ChangePassword.tsx:70 msgid "Unable to contact your service. Please check your Internet connection." msgstr "Não foi possível entrar em contato com seu serviço. Por favor, verifique sua conexão à internet." @@ -5303,8 +5303,8 @@ msgstr "Lista de usuários atualizada" msgid "User Lists" msgstr "Listas de Usuários" -#: src/view/com/auth/login/LoginForm.tsx:177 -#: src/view/com/auth/login/LoginForm.tsx:195 +#: src/view/com/auth/login/LoginForm.tsx:180 +#: src/view/com/auth/login/LoginForm.tsx:198 msgid "Username or email address" msgstr "Nome de usuário ou endereço de e-mail" @@ -5332,15 +5332,15 @@ msgstr "" msgid "Verify {0}" msgstr "" -#: src/view/screens/Settings/index.tsx:940 +#: src/view/screens/Settings/index.tsx:944 msgid "Verify email" msgstr "Verificar e-mail" -#: src/view/screens/Settings/index.tsx:965 +#: src/view/screens/Settings/index.tsx:969 msgid "Verify my email" msgstr "Verificar meu e-mail" -#: src/view/screens/Settings/index.tsx:974 +#: src/view/screens/Settings/index.tsx:978 msgid "Verify My Email" msgstr "Verificar Meu Email" @@ -5818,7 +5818,7 @@ msgid "Your posts, likes, and blocks are public. Mutes are private." msgstr "Suas postagens, curtidas e bloqueios são públicos. Silenciamentos são privados." #: src/view/com/modals/SwitchAccount.tsx:88 -#: src/view/screens/Settings/index.tsx:123 +#: src/view/screens/Settings/index.tsx:125 msgid "Your profile" msgstr "Seu perfil" diff --git a/src/locale/locales/uk/messages.po b/src/locale/locales/uk/messages.po index f4543222de..a73f77517b 100644 --- a/src/locale/locales/uk/messages.po +++ b/src/locale/locales/uk/messages.po @@ -94,7 +94,7 @@ msgid "Access profile and other navigation links" msgstr "Відкрити профіль та іншу навігацію" #: src/view/com/modals/EditImage.tsx:299 -#: src/view/screens/Settings/index.tsx:466 +#: src/view/screens/Settings/index.tsx:470 msgid "Accessibility" msgstr "Доступність" @@ -102,9 +102,9 @@ msgstr "Доступність" msgid "account" msgstr "" -#: src/view/com/auth/login/LoginForm.tsx:166 -#: src/view/screens/Settings/index.tsx:323 -#: src/view/screens/Settings/index.tsx:739 +#: src/view/com/auth/login/LoginForm.tsx:169 +#: src/view/screens/Settings/index.tsx:327 +#: src/view/screens/Settings/index.tsx:743 msgid "Account" msgstr "Обліковий запис" @@ -166,8 +166,8 @@ msgstr "Додати попередження про вміст" msgid "Add a user to this list" msgstr "Додати користувача до списку" -#: src/view/screens/Settings/index.tsx:398 -#: src/view/screens/Settings/index.tsx:407 +#: src/view/screens/Settings/index.tsx:402 +#: src/view/screens/Settings/index.tsx:411 msgid "Add account" msgstr "Додати обліковий запис" @@ -256,7 +256,7 @@ msgid "Adult content is disabled." msgstr "" #: src/screens/Moderation/index.tsx:377 -#: src/view/screens/Settings/index.tsx:680 +#: src/view/screens/Settings/index.tsx:684 msgid "Advanced" msgstr "Розширені" @@ -269,7 +269,7 @@ msgstr "Усі збережені стрічки в одному місці." msgid "Already have a code?" msgstr "Вже маєте код?" -#: src/view/com/auth/login/ChooseAccountForm.tsx:102 +#: src/view/com/auth/login/ChooseAccountForm.tsx:103 msgid "Already signed in as @{0}" msgstr "Вже увійшли як @{0}" @@ -333,7 +333,7 @@ msgstr "Назва пароля може містити лише латинсь msgid "App Password names must be at least 4 characters long." msgstr "Назва пароля застосунку мусить бути хоча б 4 символи в довжину." -#: src/view/screens/Settings/index.tsx:691 +#: src/view/screens/Settings/index.tsx:695 msgid "App password settings" msgstr "Налаштування пароля застосунків" @@ -343,7 +343,7 @@ msgstr "Налаштування пароля застосунків" #: src/Navigation.tsx:251 #: src/view/screens/AppPasswords.tsx:189 -#: src/view/screens/Settings/index.tsx:700 +#: src/view/screens/Settings/index.tsx:704 msgid "App Passwords" msgstr "Паролі для застосунків" @@ -377,7 +377,7 @@ msgstr "" #~ msgid "Appeal this decision." #~ msgstr "Оскаржити це рішення" -#: src/view/screens/Settings/index.tsx:481 +#: src/view/screens/Settings/index.tsx:485 msgid "Appearance" msgstr "Оформлення" @@ -417,9 +417,9 @@ msgstr "Художня або нееротична оголеність." #: src/components/moderation/LabelsOnMeDialog.tsx:248 #: src/screens/Profile/Header/Shell.tsx:97 #: src/view/com/auth/create/CreateAccount.tsx:158 -#: src/view/com/auth/login/ChooseAccountForm.tsx:155 +#: src/view/com/auth/login/ChooseAccountForm.tsx:160 #: src/view/com/auth/login/ForgotPasswordForm.tsx:174 -#: src/view/com/auth/login/LoginForm.tsx:259 +#: src/view/com/auth/login/LoginForm.tsx:262 #: src/view/com/auth/login/SetNewPasswordForm.tsx:179 #: src/view/com/util/ViewHeader.tsx:87 msgid "Back" @@ -434,7 +434,7 @@ msgstr "Назад" msgid "Based on your interest in {interestsText}" msgstr "Ґрунтуючись на вашому інтересі до {interestsText}" -#: src/view/screens/Settings/index.tsx:538 +#: src/view/screens/Settings/index.tsx:542 msgid "Basics" msgstr "Основні" @@ -443,7 +443,7 @@ msgstr "Основні" msgid "Birthday" msgstr "Дата народження" -#: src/view/screens/Settings/index.tsx:355 +#: src/view/screens/Settings/index.tsx:359 msgid "Birthday:" msgstr "Дата народження:" @@ -570,7 +570,7 @@ msgstr "" msgid "Books" msgstr "Книги" -#: src/view/screens/Settings/index.tsx:889 +#: src/view/screens/Settings/index.tsx:893 msgid "Build version {0} {1}" msgstr "Версія {0} {1}" @@ -687,17 +687,17 @@ msgstr "" msgid "Change" msgstr "" -#: src/view/screens/Settings/index.tsx:349 +#: src/view/screens/Settings/index.tsx:353 msgctxt "action" msgid "Change" msgstr "Змінити" -#: src/view/screens/Settings/index.tsx:712 +#: src/view/screens/Settings/index.tsx:716 msgid "Change handle" msgstr "Змінити псевдонім" #: src/view/com/modals/ChangeHandle.tsx:161 -#: src/view/screens/Settings/index.tsx:723 +#: src/view/screens/Settings/index.tsx:727 msgid "Change Handle" msgstr "Змінити псевдонім" @@ -705,12 +705,12 @@ msgstr "Змінити псевдонім" msgid "Change my email" msgstr "Змінити адресу електронної пошти" -#: src/view/screens/Settings/index.tsx:750 +#: src/view/screens/Settings/index.tsx:754 msgid "Change password" msgstr "Змінити пароль" #: src/view/com/modals/ChangePassword.tsx:141 -#: src/view/screens/Settings/index.tsx:761 +#: src/view/screens/Settings/index.tsx:765 msgid "Change Password" msgstr "Зміна пароля" @@ -776,19 +776,19 @@ msgstr "Виберіть ваші основні стрічки" msgid "Choose your password" msgstr "Вкажіть пароль" -#: src/view/screens/Settings/index.tsx:864 +#: src/view/screens/Settings/index.tsx:868 msgid "Clear all legacy storage data" msgstr "" -#: src/view/screens/Settings/index.tsx:867 +#: src/view/screens/Settings/index.tsx:871 msgid "Clear all legacy storage data (restart after this)" msgstr "" -#: src/view/screens/Settings/index.tsx:876 +#: src/view/screens/Settings/index.tsx:880 msgid "Clear all storage data" msgstr "" -#: src/view/screens/Settings/index.tsx:879 +#: src/view/screens/Settings/index.tsx:883 msgid "Clear all storage data (restart after this)" msgstr "" @@ -797,11 +797,11 @@ msgstr "" msgid "Clear search query" msgstr "Очистити пошуковий запит" -#: src/view/screens/Settings/index.tsx:865 +#: src/view/screens/Settings/index.tsx:869 msgid "Clears all legacy storage data" msgstr "" -#: src/view/screens/Settings/index.tsx:877 +#: src/view/screens/Settings/index.tsx:881 msgid "Clears all storage data" msgstr "" @@ -968,7 +968,7 @@ msgstr "Код підтвердження" #~ msgstr "" #: src/view/com/auth/create/CreateAccount.tsx:193 -#: src/view/com/auth/login/LoginForm.tsx:278 +#: src/view/com/auth/login/LoginForm.tsx:281 msgid "Connecting..." msgstr "З’єднання..." @@ -1056,7 +1056,7 @@ msgstr "Кухарство" msgid "Copied" msgstr "Скопійовано" -#: src/view/screens/Settings/index.tsx:247 +#: src/view/screens/Settings/index.tsx:251 msgid "Copied build version to clipboard" msgstr "Версію збірки скопійовано до буфера обміну" @@ -1120,7 +1120,7 @@ msgstr "Не вдалося завантажити список" msgid "Create a new account" msgstr "Створити новий обліковий запис" -#: src/view/screens/Settings/index.tsx:399 +#: src/view/screens/Settings/index.tsx:403 msgid "Create a new Bluesky account" msgstr "Створити новий обліковий запис Bluesky" @@ -1183,8 +1183,8 @@ msgstr "Налаштування медіа зі сторонніх вебсай #~ msgid "Danger Zone" #~ msgstr "" -#: src/view/screens/Settings/index.tsx:500 -#: src/view/screens/Settings/index.tsx:526 +#: src/view/screens/Settings/index.tsx:504 +#: src/view/screens/Settings/index.tsx:530 msgid "Dark" msgstr "Темна" @@ -1192,11 +1192,11 @@ msgstr "Темна" msgid "Dark mode" msgstr "Темний режим" -#: src/view/screens/Settings/index.tsx:513 +#: src/view/screens/Settings/index.tsx:517 msgid "Dark Theme" msgstr "Темна тема" -#: src/view/screens/Settings/index.tsx:837 +#: src/view/screens/Settings/index.tsx:841 msgid "Debug Moderation" msgstr "" @@ -1210,7 +1210,7 @@ msgstr "Панель налагодження" msgid "Delete" msgstr "" -#: src/view/screens/Settings/index.tsx:792 +#: src/view/screens/Settings/index.tsx:796 msgid "Delete account" msgstr "Видалити обліковий запис" @@ -1238,7 +1238,7 @@ msgstr "Видалити мій обліковий запис" #~ msgid "Delete my account…" #~ msgstr "" -#: src/view/screens/Settings/index.tsx:804 +#: src/view/screens/Settings/index.tsx:808 msgid "Delete My Account…" msgstr "Видалити мій обліковий запис..." @@ -1278,7 +1278,7 @@ msgstr "Опис" msgid "Did you want to say anything?" msgstr "Порожній пост. Ви хотіли щось написати?" -#: src/view/screens/Settings/index.tsx:519 +#: src/view/screens/Settings/index.tsx:523 msgid "Dim" msgstr "Тьмяний" @@ -1347,19 +1347,6 @@ msgstr "Домен перевірено!" #~ msgid "Don't have an invite code?" #~ msgstr "" -#: src/view/com/auth/onboarding/RecommendedFollows.tsx:86 -#: src/view/com/modals/EditImage.tsx:333 -#: src/view/com/modals/ListAddRemoveUsers.tsx:144 -#: src/view/com/modals/SelfLabel.tsx:157 -#: src/view/com/modals/Threadgate.tsx:129 -#: src/view/com/modals/Threadgate.tsx:132 -#: src/view/com/modals/UserAddRemoveLists.tsx:95 -#: src/view/com/modals/UserAddRemoveLists.tsx:98 -#: src/view/screens/PreferencesThreads.tsx:162 -msgctxt "action" -msgid "Done" -msgstr "Готово" - #: src/components/dialogs/BirthDateSettings.tsx:119 #: src/components/dialogs/BirthDateSettings.tsx:125 #: src/view/com/auth/server-input/index.tsx:165 @@ -1376,11 +1363,24 @@ msgstr "Готово" msgid "Done" msgstr "Готово" +#: src/view/com/auth/onboarding/RecommendedFollows.tsx:86 +#: src/view/com/modals/EditImage.tsx:333 +#: src/view/com/modals/ListAddRemoveUsers.tsx:144 +#: src/view/com/modals/SelfLabel.tsx:157 +#: src/view/com/modals/Threadgate.tsx:129 +#: src/view/com/modals/Threadgate.tsx:132 +#: src/view/com/modals/UserAddRemoveLists.tsx:95 +#: src/view/com/modals/UserAddRemoveLists.tsx:98 +#: src/view/screens/PreferencesThreads.tsx:162 +msgctxt "action" +msgid "Done" +msgstr "Готово" + #: src/view/com/modals/lang-settings/ConfirmLanguagesButton.tsx:42 msgid "Done{extraText}" msgstr "Готово{extraText}" -#: src/view/com/auth/login/ChooseAccountForm.tsx:45 +#: src/view/com/auth/login/ChooseAccountForm.tsx:46 msgid "Double tap to sign in" msgstr "Двічі натисніть, щоб увійти" @@ -1529,7 +1529,7 @@ msgstr "Ел. адресу оновлено" msgid "Email verified" msgstr "Електронну адресу перевірено" -#: src/view/screens/Settings/index.tsx:327 +#: src/view/screens/Settings/index.tsx:331 msgid "Email:" msgstr "Ел. адреса:" @@ -1682,12 +1682,12 @@ msgstr "" msgid "Explicit sexual images." msgstr "" -#: src/view/screens/Settings/index.tsx:773 +#: src/view/screens/Settings/index.tsx:777 msgid "Export my data" msgstr "Експорт моїх даних" #: src/view/screens/Settings/ExportCarDialog.tsx:44 -#: src/view/screens/Settings/index.tsx:784 +#: src/view/screens/Settings/index.tsx:788 msgid "Export My Data" msgstr "Експорт моїх даних" @@ -1702,11 +1702,11 @@ msgstr "Зовнішні медіа можуть дозволяти вебсай #: src/Navigation.tsx:275 #: src/view/screens/PreferencesExternalEmbeds.tsx:52 -#: src/view/screens/Settings/index.tsx:673 +#: src/view/screens/Settings/index.tsx:677 msgid "External Media Preferences" msgstr "Налаштування зовнішніх медіа" -#: src/view/screens/Settings/index.tsx:664 +#: src/view/screens/Settings/index.tsx:668 msgid "External media settings" msgstr "Налаштування зовнішніх медіа" @@ -1911,7 +1911,7 @@ msgstr "Підписані" msgid "Following {0}" msgstr "Підписання на \"{0}\"" -#: src/view/screens/Settings/index.tsx:549 +#: src/view/screens/Settings/index.tsx:553 msgid "Following feed preferences" msgstr "" @@ -1919,7 +1919,7 @@ msgstr "" #: src/view/com/home/HomeHeaderLayout.web.tsx:50 #: src/view/com/home/HomeHeaderLayoutMobile.tsx:84 #: src/view/screens/PreferencesFollowingFeed.tsx:104 -#: src/view/screens/Settings/index.tsx:558 +#: src/view/screens/Settings/index.tsx:562 msgid "Following Feed Preferences" msgstr "Налаштування стрічки підписок" @@ -1943,11 +1943,11 @@ msgstr "З міркувань безпеки нам потрібно буде в msgid "For security reasons, you won't be able to view this again. If you lose this password, you'll need to generate a new one." msgstr "З міркувань безпеки цей пароль відображається лише один раз. Якщо ви втратите цей пароль, вам потрібно буде згенерувати новий." -#: src/view/com/auth/login/LoginForm.tsx:241 +#: src/view/com/auth/login/LoginForm.tsx:244 msgid "Forgot" msgstr "Забули пароль" -#: src/view/com/auth/login/LoginForm.tsx:238 +#: src/view/com/auth/login/LoginForm.tsx:241 msgid "Forgot password" msgstr "Забули пароль" @@ -2024,7 +2024,7 @@ msgstr "Перейти до @{queryMaybeHandle}" #: src/view/com/auth/login/ForgotPasswordForm.tsx:189 #: src/view/com/auth/login/ForgotPasswordForm.tsx:218 -#: src/view/com/auth/login/LoginForm.tsx:288 +#: src/view/com/auth/login/LoginForm.tsx:291 #: src/view/com/auth/login/SetNewPasswordForm.tsx:195 #: src/view/com/modals/ChangePassword.tsx:167 msgid "Go to next" @@ -2265,11 +2265,11 @@ msgstr "Введіть пароль для видалення обліковог #~ msgid "Input phone number for SMS verification" #~ msgstr "" -#: src/view/com/auth/login/LoginForm.tsx:230 +#: src/view/com/auth/login/LoginForm.tsx:233 msgid "Input the password tied to {identifier}" msgstr "Введіть пароль, прив'язаний до {identifier}" -#: src/view/com/auth/login/LoginForm.tsx:197 +#: src/view/com/auth/login/LoginForm.tsx:200 msgid "Input the username or email address you used at signup" msgstr "Введіть псевдонім або ел. адресу, які ви використовували для реєстрації" @@ -2281,7 +2281,7 @@ msgstr "Введіть псевдонім або ел. адресу, які ви #~ msgid "Input your email to get on the Bluesky waitlist" #~ msgstr "" -#: src/view/com/auth/login/LoginForm.tsx:229 +#: src/view/com/auth/login/LoginForm.tsx:232 msgid "Input your password" msgstr "Введіть ваш пароль" @@ -2297,7 +2297,7 @@ msgstr "Введіть ваш псевдонім" msgid "Invalid or unsupported post record" msgstr "Невірний або непідтримуваний пост" -#: src/view/com/auth/login/LoginForm.tsx:113 +#: src/view/com/auth/login/LoginForm.tsx:116 msgid "Invalid username or password" msgstr "Невірне ім'я користувача або пароль" @@ -2392,7 +2392,7 @@ msgstr "" msgid "Language selection" msgstr "Вибір мови" -#: src/view/screens/Settings/index.tsx:610 +#: src/view/screens/Settings/index.tsx:614 msgid "Language settings" msgstr "Налаштування мови" @@ -2401,7 +2401,7 @@ msgstr "Налаштування мови" msgid "Language Settings" msgstr "Налаштування мов" -#: src/view/screens/Settings/index.tsx:619 +#: src/view/screens/Settings/index.tsx:623 msgid "Languages" msgstr "Мови" @@ -2447,7 +2447,7 @@ msgstr "Ви залишаєте Bluesky" msgid "left to go." msgstr "ще залишилося." -#: src/view/screens/Settings/index.tsx:292 +#: src/view/screens/Settings/index.tsx:296 msgid "Legacy storage cleared, you need to restart the app now." msgstr "Старе сховище очищено, тепер вам потрібно перезапустити застосунок." @@ -2465,7 +2465,7 @@ msgstr "Злітаємо!" #~ msgid "Library" #~ msgstr "Галерея" -#: src/view/screens/Settings/index.tsx:494 +#: src/view/screens/Settings/index.tsx:498 msgid "Light" msgstr "Світла" @@ -2604,7 +2604,7 @@ msgstr "Вийти" msgid "Logged-out visibility" msgstr "Видимість для користувачів без облікового запису" -#: src/view/com/auth/login/ChooseAccountForm.tsx:137 +#: src/view/com/auth/login/ChooseAccountForm.tsx:142 msgid "Login to account that is not listed" msgstr "Увійти до облікового запису, якого немає в списку" @@ -2651,7 +2651,7 @@ msgstr "" #: src/Navigation.tsx:119 #: src/screens/Moderation/index.tsx:106 -#: src/view/screens/Settings/index.tsx:641 +#: src/view/screens/Settings/index.tsx:645 #: src/view/shell/desktop/LeftNav.tsx:401 #: src/view/shell/Drawer.tsx:514 #: src/view/shell/Drawer.tsx:515 @@ -2694,7 +2694,7 @@ msgstr "Списки для модерації" msgid "Moderation Lists" msgstr "Списки для модерації" -#: src/view/screens/Settings/index.tsx:635 +#: src/view/screens/Settings/index.tsx:639 msgid "Moderation settings" msgstr "Налаштування модерації" @@ -2841,11 +2841,11 @@ msgstr "Мої стрічки" msgid "My Profile" msgstr "Мій профіль" -#: src/view/screens/Settings/index.tsx:592 +#: src/view/screens/Settings/index.tsx:596 msgid "My saved feeds" msgstr "" -#: src/view/screens/Settings/index.tsx:598 +#: src/view/screens/Settings/index.tsx:602 msgid "My Saved Feeds" msgstr "Мої збережені канали" @@ -2874,7 +2874,7 @@ msgstr "Природа" #: src/view/com/auth/login/ForgotPasswordForm.tsx:190 #: src/view/com/auth/login/ForgotPasswordForm.tsx:219 -#: src/view/com/auth/login/LoginForm.tsx:289 +#: src/view/com/auth/login/LoginForm.tsx:292 #: src/view/com/auth/login/SetNewPasswordForm.tsx:196 #: src/view/com/modals/ChangePassword.tsx:168 msgid "Navigates to the next screen" @@ -2967,7 +2967,7 @@ msgstr "Новини" #: src/view/com/auth/create/CreateAccount.tsx:172 #: src/view/com/auth/login/ForgotPasswordForm.tsx:182 #: src/view/com/auth/login/ForgotPasswordForm.tsx:192 -#: src/view/com/auth/login/LoginForm.tsx:291 +#: src/view/com/auth/login/LoginForm.tsx:294 #: src/view/com/auth/login/SetNewPasswordForm.tsx:187 #: src/view/com/auth/login/SetNewPasswordForm.tsx:198 #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:79 @@ -3112,7 +3112,7 @@ msgstr "Добре" msgid "Oldest replies first" msgstr "Спочатку найдавніші" -#: src/view/screens/Settings/index.tsx:240 +#: src/view/screens/Settings/index.tsx:244 msgid "Onboarding reset" msgstr "Скинути ознайомлення" @@ -3151,7 +3151,7 @@ msgstr "Емоджі" msgid "Open feed options menu" msgstr "" -#: src/view/screens/Settings/index.tsx:730 +#: src/view/screens/Settings/index.tsx:734 msgid "Open links with in-app browser" msgstr "Вбудований браузер" @@ -3171,12 +3171,12 @@ msgstr "Відкрити навігацію" msgid "Open post options menu" msgstr "Відкрити меню налаштувань посту" -#: src/view/screens/Settings/index.tsx:824 -#: src/view/screens/Settings/index.tsx:834 +#: src/view/screens/Settings/index.tsx:828 +#: src/view/screens/Settings/index.tsx:838 msgid "Open storybook page" msgstr "Відкрити storybook сторінку" -#: src/view/screens/Settings/index.tsx:812 +#: src/view/screens/Settings/index.tsx:816 msgid "Open system log" msgstr "" @@ -3200,7 +3200,7 @@ msgstr "Відкриває камеру на пристрої" msgid "Opens composer" msgstr "Відкрити редактор" -#: src/view/screens/Settings/index.tsx:611 +#: src/view/screens/Settings/index.tsx:615 msgid "Opens configurable language settings" msgstr "Відкриває налаштування мов" @@ -3212,7 +3212,7 @@ msgstr "Відкриває фотогалерею пристрою" #~ msgid "Opens editor for profile display name, avatar, background image, and description" #~ msgstr "Відкриває редактор для назви профілю, аватара, фонового зображення та опису" -#: src/view/screens/Settings/index.tsx:665 +#: src/view/screens/Settings/index.tsx:669 msgid "Opens external embeds settings" msgstr "Відкриває налаштування зовнішніх вбудувань" @@ -3242,7 +3242,7 @@ msgstr "" msgid "Opens list of invite codes" msgstr "Відкриває список кодів запрошення" -#: src/view/screens/Settings/index.tsx:794 +#: src/view/screens/Settings/index.tsx:798 msgid "Opens modal for account deletion confirmation. Requires email code" msgstr "" @@ -3250,19 +3250,19 @@ msgstr "" #~ msgid "Opens modal for account deletion confirmation. Requires email code." #~ msgstr "Відкриється модальне повідомлення для видалення облікового запису. Потрібен код електронної пошти." -#: src/view/screens/Settings/index.tsx:752 +#: src/view/screens/Settings/index.tsx:756 msgid "Opens modal for changing your Bluesky password" msgstr "" -#: src/view/screens/Settings/index.tsx:714 +#: src/view/screens/Settings/index.tsx:718 msgid "Opens modal for choosing a new Bluesky handle" msgstr "" -#: src/view/screens/Settings/index.tsx:775 +#: src/view/screens/Settings/index.tsx:779 msgid "Opens modal for downloading your Bluesky account data (repository)" msgstr "" -#: src/view/screens/Settings/index.tsx:966 +#: src/view/screens/Settings/index.tsx:970 msgid "Opens modal for email verification" msgstr "" @@ -3270,11 +3270,11 @@ msgstr "" msgid "Opens modal for using custom domain" msgstr "Відкриває діалог налаштування власного домену як псевдоніму" -#: src/view/screens/Settings/index.tsx:636 +#: src/view/screens/Settings/index.tsx:640 msgid "Opens moderation settings" msgstr "Відкриває налаштування модерації" -#: src/view/com/auth/login/LoginForm.tsx:239 +#: src/view/com/auth/login/LoginForm.tsx:242 msgid "Opens password reset form" msgstr "Відкриває форму скидання пароля" @@ -3283,11 +3283,11 @@ msgstr "Відкриває форму скидання пароля" msgid "Opens screen to edit Saved Feeds" msgstr "Відкриває сторінку з усіма збереженими стрічками" -#: src/view/screens/Settings/index.tsx:593 +#: src/view/screens/Settings/index.tsx:597 msgid "Opens screen with all saved feeds" msgstr "Відкриває сторінку з усіма збереженими каналами" -#: src/view/screens/Settings/index.tsx:692 +#: src/view/screens/Settings/index.tsx:696 msgid "Opens the app password settings" msgstr "" @@ -3295,7 +3295,7 @@ msgstr "" #~ msgid "Opens the app password settings page" #~ msgstr "Відкриває налаштування паролів для застосунків" -#: src/view/screens/Settings/index.tsx:550 +#: src/view/screens/Settings/index.tsx:554 msgid "Opens the Following feed preferences" msgstr "" @@ -3307,16 +3307,16 @@ msgstr "" msgid "Opens the linked website" msgstr "" -#: src/view/screens/Settings/index.tsx:825 -#: src/view/screens/Settings/index.tsx:835 +#: src/view/screens/Settings/index.tsx:829 +#: src/view/screens/Settings/index.tsx:839 msgid "Opens the storybook page" msgstr "" -#: src/view/screens/Settings/index.tsx:813 +#: src/view/screens/Settings/index.tsx:817 msgid "Opens the system log page" msgstr "Відкриває системний журнал" -#: src/view/screens/Settings/index.tsx:571 +#: src/view/screens/Settings/index.tsx:575 msgid "Opens the threads preferences" msgstr "Відкриває налаштування гілок" @@ -3336,7 +3336,7 @@ msgstr "Або якісь із наступних варіантів:" msgid "Other" msgstr "" -#: src/view/com/auth/login/ChooseAccountForm.tsx:142 +#: src/view/com/auth/login/ChooseAccountForm.tsx:147 msgid "Other account" msgstr "Інший обліковий запис" @@ -3359,8 +3359,8 @@ msgstr "Сторінку не знайдено" #: src/view/com/auth/create/Step1.tsx:191 #: src/view/com/auth/create/Step1.tsx:201 -#: src/view/com/auth/login/LoginForm.tsx:210 -#: src/view/com/auth/login/LoginForm.tsx:226 +#: src/view/com/auth/login/LoginForm.tsx:213 +#: src/view/com/auth/login/LoginForm.tsx:229 #: src/view/com/auth/login/SetNewPasswordForm.tsx:161 #: src/view/com/modals/DeleteAccount.tsx:195 #: src/view/com/modals/DeleteAccount.tsx:202 @@ -3603,7 +3603,7 @@ msgstr "Основна мова" msgid "Prioritize Your Follows" msgstr "Пріоритезувати ваші підписки" -#: src/view/screens/Settings/index.tsx:648 +#: src/view/screens/Settings/index.tsx:652 #: src/view/shell/desktop/RightNav.tsx:72 msgid "Privacy" msgstr "Конфіденційність" @@ -3611,7 +3611,7 @@ msgstr "Конфіденційність" #: src/Navigation.tsx:231 #: src/view/com/auth/create/Policies.tsx:69 #: src/view/screens/PrivacyPolicy.tsx:29 -#: src/view/screens/Settings/index.tsx:921 +#: src/view/screens/Settings/index.tsx:925 #: src/view/shell/Drawer.tsx:265 msgid "Privacy Policy" msgstr "Політика конфіденційності" @@ -3637,7 +3637,7 @@ msgstr "Профіль" msgid "Profile updated" msgstr "Профіль оновлено" -#: src/view/screens/Settings/index.tsx:979 +#: src/view/screens/Settings/index.tsx:983 msgid "Protect your account by verifying your email." msgstr "Захистіть свій обліковий запис, підтвердивши свою електронну адресу." @@ -3901,7 +3901,7 @@ msgstr "Змінити" msgid "Request Code" msgstr "Надіслати запит на код" -#: src/view/screens/Settings/index.tsx:471 +#: src/view/screens/Settings/index.tsx:475 msgid "Require alt text before posting" msgstr "Вимагати опис зображень перед публікацією" @@ -3923,8 +3923,8 @@ msgstr "Код скидання" #~ msgid "Reset onboarding" #~ msgstr "Скинути ознайомлення" -#: src/view/screens/Settings/index.tsx:854 -#: src/view/screens/Settings/index.tsx:857 +#: src/view/screens/Settings/index.tsx:858 +#: src/view/screens/Settings/index.tsx:861 msgid "Reset onboarding state" msgstr "" @@ -3936,20 +3936,20 @@ msgstr "Скинути пароль" #~ msgid "Reset preferences" #~ msgstr "Скинути налаштування" -#: src/view/screens/Settings/index.tsx:844 -#: src/view/screens/Settings/index.tsx:847 +#: src/view/screens/Settings/index.tsx:848 +#: src/view/screens/Settings/index.tsx:851 msgid "Reset preferences state" msgstr "" -#: src/view/screens/Settings/index.tsx:855 +#: src/view/screens/Settings/index.tsx:859 msgid "Resets the onboarding state" msgstr "" -#: src/view/screens/Settings/index.tsx:845 +#: src/view/screens/Settings/index.tsx:849 msgid "Resets the preferences state" msgstr "" -#: src/view/com/auth/login/LoginForm.tsx:269 +#: src/view/com/auth/login/LoginForm.tsx:272 msgid "Retries login" msgstr "Повторити спробу" @@ -3963,8 +3963,8 @@ msgstr "Повторити останню дію, яка спричинила п #: src/screens/Onboarding/StepInterests/index.tsx:224 #: src/view/com/auth/create/CreateAccount.tsx:181 #: src/view/com/auth/create/CreateAccount.tsx:186 -#: src/view/com/auth/login/LoginForm.tsx:268 #: src/view/com/auth/login/LoginForm.tsx:271 +#: src/view/com/auth/login/LoginForm.tsx:274 #: src/view/com/util/error/ErrorMessage.tsx:55 #: src/view/com/util/error/ErrorScreen.tsx:72 msgid "Retry" @@ -3991,12 +3991,6 @@ msgstr "" #~ msgid "SANDBOX. Posts and accounts are not permanent." #~ msgstr "" -#: src/view/com/lightbox/Lightbox.tsx:132 -#: src/view/com/modals/CreateOrEditList.tsx:345 -msgctxt "action" -msgid "Save" -msgstr "Зберегти" - #: src/components/dialogs/BirthDateSettings.tsx:125 #: src/view/com/modals/ChangeHandle.tsx:173 #: src/view/com/modals/CreateOrEditList.tsx:337 @@ -4004,6 +3998,12 @@ msgstr "Зберегти" msgid "Save" msgstr "Зберегти" +#: src/view/com/lightbox/Lightbox.tsx:132 +#: src/view/com/modals/CreateOrEditList.tsx:345 +msgctxt "action" +msgid "Save" +msgstr "Зберегти" + #: src/view/com/modals/AltImage.tsx:130 msgid "Save alt text" msgstr "Зберегти опис" @@ -4166,7 +4166,7 @@ msgid "Select option {i} of {numItems}" msgstr "Обрати варіант {i} із {numItems}" #: src/view/com/auth/create/Step1.tsx:96 -#: src/view/com/auth/login/LoginForm.tsx:150 +#: src/view/com/auth/login/LoginForm.tsx:153 msgid "Select service" msgstr "Вибрати хостинг-провайдера" @@ -4340,23 +4340,23 @@ msgstr "Налаштуйте ваш обліковий запис" msgid "Sets Bluesky username" msgstr "Встановлює псевдонім Bluesky" -#: src/view/screens/Settings/index.tsx:503 +#: src/view/screens/Settings/index.tsx:507 msgid "Sets color theme to dark" msgstr "" -#: src/view/screens/Settings/index.tsx:496 +#: src/view/screens/Settings/index.tsx:500 msgid "Sets color theme to light" msgstr "" -#: src/view/screens/Settings/index.tsx:490 +#: src/view/screens/Settings/index.tsx:494 msgid "Sets color theme to system setting" msgstr "" -#: src/view/screens/Settings/index.tsx:529 +#: src/view/screens/Settings/index.tsx:533 msgid "Sets dark theme to the dark theme" msgstr "" -#: src/view/screens/Settings/index.tsx:522 +#: src/view/screens/Settings/index.tsx:526 msgid "Sets dark theme to the dim theme" msgstr "" @@ -4381,12 +4381,12 @@ msgid "Sets image aspect ratio to wide" msgstr "" #: src/view/com/auth/create/Step1.tsx:97 -#: src/view/com/auth/login/LoginForm.tsx:151 +#: src/view/com/auth/login/LoginForm.tsx:154 msgid "Sets server for the Bluesky client" msgstr "Встановлює сервер для застосунку Bluesky" #: src/Navigation.tsx:139 -#: src/view/screens/Settings/index.tsx:309 +#: src/view/screens/Settings/index.tsx:313 #: src/view/shell/desktop/LeftNav.tsx:437 #: src/view/shell/Drawer.tsx:570 #: src/view/shell/Drawer.tsx:571 @@ -4429,7 +4429,7 @@ msgstr "Поширити стрічку" #: src/components/moderation/GlobalModerationLabelPref.tsx:45 #: src/components/moderation/PostHider.tsx:107 #: src/screens/Onboarding/StepModeration/ModerationOption.tsx:54 -#: src/view/screens/Settings/index.tsx:359 +#: src/view/screens/Settings/index.tsx:363 msgid "Show" msgstr "Показувати" @@ -4559,23 +4559,23 @@ msgstr "Увійти" msgid "Sign In" msgstr "Увійти" -#: src/view/com/auth/login/ChooseAccountForm.tsx:44 +#: src/view/com/auth/login/ChooseAccountForm.tsx:45 msgid "Sign in as {0}" msgstr "Увійти як {0}" -#: src/view/com/auth/login/ChooseAccountForm.tsx:122 +#: src/view/com/auth/login/ChooseAccountForm.tsx:127 #: src/view/com/auth/login/Login.tsx:116 msgid "Sign in as..." msgstr "Увійти як..." -#: src/view/com/auth/login/LoginForm.tsx:137 +#: src/view/com/auth/login/LoginForm.tsx:140 msgid "Sign into" msgstr "Увійти до" #: src/view/com/modals/SwitchAccount.tsx:68 #: src/view/com/modals/SwitchAccount.tsx:73 -#: src/view/screens/Settings/index.tsx:105 -#: src/view/screens/Settings/index.tsx:108 +#: src/view/screens/Settings/index.tsx:107 +#: src/view/screens/Settings/index.tsx:110 msgid "Sign out" msgstr "Вийти" @@ -4600,11 +4600,11 @@ msgstr "Зареєструйтеся або увійдіть, щоб приєд msgid "Sign-in Required" msgstr "Необхідно увійти для перегляду" -#: src/view/screens/Settings/index.tsx:370 +#: src/view/screens/Settings/index.tsx:374 msgid "Signed in as" msgstr "Ви увійшли як" -#: src/view/com/auth/login/ChooseAccountForm.tsx:107 +#: src/view/com/auth/login/ChooseAccountForm.tsx:112 msgid "Signed in as @{0}" msgstr "Ви увійшли як @{0}" @@ -4684,7 +4684,7 @@ msgstr "Квадратне" #~ msgid "Staging" #~ msgstr "" -#: src/view/screens/Settings/index.tsx:901 +#: src/view/screens/Settings/index.tsx:905 msgid "Status page" msgstr "Сторінка стану" @@ -4692,12 +4692,12 @@ msgstr "Сторінка стану" msgid "Step {0} of {numSteps}" msgstr "Крок {0} / {numSteps}" -#: src/view/screens/Settings/index.tsx:288 +#: src/view/screens/Settings/index.tsx:292 msgid "Storage cleared, you need to restart the app now." msgstr "Сховище очищено, тепер вам треба перезапустити застосунок." #: src/Navigation.tsx:211 -#: src/view/screens/Settings/index.tsx:827 +#: src/view/screens/Settings/index.tsx:831 msgid "Storybook" msgstr "" @@ -4753,25 +4753,25 @@ msgstr "Підтримка" #~ msgid "Swipe up to see more" #~ msgstr "" -#: src/view/com/modals/SwitchAccount.tsx:121 +#: src/view/com/modals/SwitchAccount.tsx:123 msgid "Switch Account" msgstr "Перемикнути обліковий запис" -#: src/view/com/modals/SwitchAccount.tsx:101 -#: src/view/screens/Settings/index.tsx:135 +#: src/view/com/modals/SwitchAccount.tsx:103 +#: src/view/screens/Settings/index.tsx:139 msgid "Switch to {0}" msgstr "Переключитися на {0}" -#: src/view/com/modals/SwitchAccount.tsx:102 -#: src/view/screens/Settings/index.tsx:136 +#: src/view/com/modals/SwitchAccount.tsx:104 +#: src/view/screens/Settings/index.tsx:140 msgid "Switches the account you are logged in to" msgstr "Переключає обліковий запис" -#: src/view/screens/Settings/index.tsx:487 +#: src/view/screens/Settings/index.tsx:491 msgid "System" msgstr "Системне" -#: src/view/screens/Settings/index.tsx:815 +#: src/view/screens/Settings/index.tsx:819 msgid "System log" msgstr "Системний журнал" @@ -4805,7 +4805,7 @@ msgstr "Умови" #: src/Navigation.tsx:236 #: src/view/com/auth/create/Policies.tsx:59 -#: src/view/screens/Settings/index.tsx:915 +#: src/view/screens/Settings/index.tsx:919 #: src/view/screens/TermsOfService.tsx:29 #: src/view/shell/Drawer.tsx:259 msgid "Terms of Service" @@ -5141,12 +5141,12 @@ msgstr "Це видалить {0} зі ваших ігнорованих слі #~ msgid "This will hide this post from your feeds." #~ msgstr "Це дія приховає цей пост із вашої стрічки." -#: src/view/screens/Settings/index.tsx:570 +#: src/view/screens/Settings/index.tsx:574 msgid "Thread preferences" msgstr "" #: src/view/screens/PreferencesThreads.tsx:53 -#: src/view/screens/Settings/index.tsx:580 +#: src/view/screens/Settings/index.tsx:584 msgid "Thread Preferences" msgstr "Налаштування гілок" @@ -5205,7 +5205,7 @@ msgstr "Перестати ігнорувати" #: src/view/com/auth/create/CreateAccount.tsx:58 #: src/view/com/auth/login/ForgotPasswordForm.tsx:87 #: src/view/com/auth/login/Login.tsx:76 -#: src/view/com/auth/login/LoginForm.tsx:118 +#: src/view/com/auth/login/LoginForm.tsx:121 #: src/view/com/modals/ChangePassword.tsx:70 msgid "Unable to contact your service. Please check your Internet connection." msgstr "Не вдалося зв'язатися з вашим хостинг-провайдером. Перевірте ваше підключення до Інтернету." @@ -5459,8 +5459,8 @@ msgstr "Список користувачів оновлено" msgid "User Lists" msgstr "Списки користувачів" -#: src/view/com/auth/login/LoginForm.tsx:177 -#: src/view/com/auth/login/LoginForm.tsx:195 +#: src/view/com/auth/login/LoginForm.tsx:180 +#: src/view/com/auth/login/LoginForm.tsx:198 msgid "Username or email address" msgstr "Ім'я користувача або електронна адреса" @@ -5492,15 +5492,15 @@ msgstr "" msgid "Verify {0}" msgstr "" -#: src/view/screens/Settings/index.tsx:940 +#: src/view/screens/Settings/index.tsx:944 msgid "Verify email" msgstr "Підтвердити електронну адресу" -#: src/view/screens/Settings/index.tsx:965 +#: src/view/screens/Settings/index.tsx:969 msgid "Verify my email" msgstr "Підтвердити мою електронну адресу" -#: src/view/screens/Settings/index.tsx:974 +#: src/view/screens/Settings/index.tsx:978 msgid "Verify My Email" msgstr "Підтвердити мою електронну адресу" @@ -5990,7 +5990,7 @@ msgid "Your posts, likes, and blocks are public. Mutes are private." msgstr "Ваші повідомлення, вподобання і блоки є публічними. Ігнорування - приватні." #: src/view/com/modals/SwitchAccount.tsx:88 -#: src/view/screens/Settings/index.tsx:123 +#: src/view/screens/Settings/index.tsx:125 msgid "Your profile" msgstr "Ваш профіль" diff --git a/src/locale/locales/zh-CN/messages.po b/src/locale/locales/zh-CN/messages.po index ba51f5fcfb..7f33c50743 100644 --- a/src/locale/locales/zh-CN/messages.po +++ b/src/locale/locales/zh-CN/messages.po @@ -89,7 +89,7 @@ msgid "Access profile and other navigation links" msgstr "访问个人资料及其他导航链接" #: src/view/com/modals/EditImage.tsx:299 -#: src/view/screens/Settings/index.tsx:466 +#: src/view/screens/Settings/index.tsx:470 msgid "Accessibility" msgstr "无障碍" @@ -97,9 +97,9 @@ msgstr "无障碍" msgid "account" msgstr "" -#: src/view/com/auth/login/LoginForm.tsx:166 -#: src/view/screens/Settings/index.tsx:323 -#: src/view/screens/Settings/index.tsx:739 +#: src/view/com/auth/login/LoginForm.tsx:169 +#: src/view/screens/Settings/index.tsx:327 +#: src/view/screens/Settings/index.tsx:743 msgid "Account" msgstr "账户" @@ -161,8 +161,8 @@ msgstr "新增内容警告" msgid "Add a user to this list" msgstr "将用户添加至列表" -#: src/view/screens/Settings/index.tsx:398 -#: src/view/screens/Settings/index.tsx:407 +#: src/view/screens/Settings/index.tsx:402 +#: src/view/screens/Settings/index.tsx:411 msgid "Add account" msgstr "添加账户" @@ -247,7 +247,7 @@ msgid "Adult content is disabled." msgstr "" #: src/screens/Moderation/index.tsx:377 -#: src/view/screens/Settings/index.tsx:680 +#: src/view/screens/Settings/index.tsx:684 msgid "Advanced" msgstr "详细设置" @@ -260,7 +260,7 @@ msgstr "你保存的所有信息流都集中在一处。" msgid "Already have a code?" msgstr "已经有验证码了?" -#: src/view/com/auth/login/ChooseAccountForm.tsx:102 +#: src/view/com/auth/login/ChooseAccountForm.tsx:103 msgid "Already signed in as @{0}" msgstr "已以@{0}身份登录" @@ -324,7 +324,7 @@ msgstr "应用专用密码只能包含字母、数字、空格、破折号及下 msgid "App Password names must be at least 4 characters long." msgstr "应用专用密码必须至少为 4 个字符。" -#: src/view/screens/Settings/index.tsx:691 +#: src/view/screens/Settings/index.tsx:695 msgid "App password settings" msgstr "应用专用密码设置" @@ -334,7 +334,7 @@ msgstr "应用专用密码设置" #: src/Navigation.tsx:251 #: src/view/screens/AppPasswords.tsx:189 -#: src/view/screens/Settings/index.tsx:700 +#: src/view/screens/Settings/index.tsx:704 msgid "App Passwords" msgstr "应用专用密码" @@ -368,7 +368,7 @@ msgstr "" #~ msgid "Appeal this decision." #~ msgstr "对此决定提出申诉。" -#: src/view/screens/Settings/index.tsx:481 +#: src/view/screens/Settings/index.tsx:485 msgid "Appearance" msgstr "外观" @@ -408,9 +408,9 @@ msgstr "艺术作品或非色情的裸体。" #: src/components/moderation/LabelsOnMeDialog.tsx:248 #: src/screens/Profile/Header/Shell.tsx:97 #: src/view/com/auth/create/CreateAccount.tsx:158 -#: src/view/com/auth/login/ChooseAccountForm.tsx:155 +#: src/view/com/auth/login/ChooseAccountForm.tsx:160 #: src/view/com/auth/login/ForgotPasswordForm.tsx:174 -#: src/view/com/auth/login/LoginForm.tsx:259 +#: src/view/com/auth/login/LoginForm.tsx:262 #: src/view/com/auth/login/SetNewPasswordForm.tsx:179 #: src/view/com/util/ViewHeader.tsx:87 msgid "Back" @@ -425,7 +425,7 @@ msgstr "返回" msgid "Based on your interest in {interestsText}" msgstr "基于你对 {interestsText} 感兴趣" -#: src/view/screens/Settings/index.tsx:538 +#: src/view/screens/Settings/index.tsx:542 msgid "Basics" msgstr "基础信息" @@ -434,7 +434,7 @@ msgstr "基础信息" msgid "Birthday" msgstr "生日" -#: src/view/screens/Settings/index.tsx:355 +#: src/view/screens/Settings/index.tsx:359 msgid "Birthday:" msgstr "生日:" @@ -561,7 +561,7 @@ msgstr "" msgid "Books" msgstr "书籍" -#: src/view/screens/Settings/index.tsx:889 +#: src/view/screens/Settings/index.tsx:893 msgid "Build version {0} {1}" msgstr "构建版本号 {0} {1}" @@ -678,17 +678,17 @@ msgstr "" msgid "Change" msgstr "" -#: src/view/screens/Settings/index.tsx:349 +#: src/view/screens/Settings/index.tsx:353 msgctxt "action" msgid "Change" msgstr "更改" -#: src/view/screens/Settings/index.tsx:712 +#: src/view/screens/Settings/index.tsx:716 msgid "Change handle" msgstr "更改用户识别符" #: src/view/com/modals/ChangeHandle.tsx:161 -#: src/view/screens/Settings/index.tsx:723 +#: src/view/screens/Settings/index.tsx:727 msgid "Change Handle" msgstr "更改用户识别符" @@ -696,12 +696,12 @@ msgstr "更改用户识别符" msgid "Change my email" msgstr "更改我的邮箱地址" -#: src/view/screens/Settings/index.tsx:750 +#: src/view/screens/Settings/index.tsx:754 msgid "Change password" msgstr "更改密码" #: src/view/com/modals/ChangePassword.tsx:141 -#: src/view/screens/Settings/index.tsx:761 +#: src/view/screens/Settings/index.tsx:765 msgid "Change Password" msgstr "更改密码" @@ -763,19 +763,19 @@ msgstr "选择你的主要信息流" msgid "Choose your password" msgstr "选择你的密码" -#: src/view/screens/Settings/index.tsx:864 +#: src/view/screens/Settings/index.tsx:868 msgid "Clear all legacy storage data" msgstr "清除所有旧存储数据" -#: src/view/screens/Settings/index.tsx:867 +#: src/view/screens/Settings/index.tsx:871 msgid "Clear all legacy storage data (restart after this)" msgstr "清除所有旧存储数据(并重启)" -#: src/view/screens/Settings/index.tsx:876 +#: src/view/screens/Settings/index.tsx:880 msgid "Clear all storage data" msgstr "清除所有数据" -#: src/view/screens/Settings/index.tsx:879 +#: src/view/screens/Settings/index.tsx:883 msgid "Clear all storage data (restart after this)" msgstr "清除所有数据(并重启)" @@ -784,11 +784,11 @@ msgstr "清除所有数据(并重启)" msgid "Clear search query" msgstr "清除搜索历史记录" -#: src/view/screens/Settings/index.tsx:865 +#: src/view/screens/Settings/index.tsx:869 msgid "Clears all legacy storage data" msgstr "" -#: src/view/screens/Settings/index.tsx:877 +#: src/view/screens/Settings/index.tsx:881 msgid "Clears all storage data" msgstr "" @@ -955,7 +955,7 @@ msgstr "验证码" #~ msgstr "确认将 {email} 注册到候补列表" #: src/view/com/auth/create/CreateAccount.tsx:193 -#: src/view/com/auth/login/LoginForm.tsx:278 +#: src/view/com/auth/login/LoginForm.tsx:281 msgid "Connecting..." msgstr "连接中..." @@ -1043,7 +1043,7 @@ msgstr "烹饪" msgid "Copied" msgstr "已复制" -#: src/view/screens/Settings/index.tsx:247 +#: src/view/screens/Settings/index.tsx:251 msgid "Copied build version to clipboard" msgstr "已复制构建版本号至剪贴板" @@ -1107,7 +1107,7 @@ msgstr "无法加载列表" msgid "Create a new account" msgstr "创建新的账户" -#: src/view/screens/Settings/index.tsx:399 +#: src/view/screens/Settings/index.tsx:403 msgid "Create a new Bluesky account" msgstr "创建新的 Bluesky 账户" @@ -1170,8 +1170,8 @@ msgstr "自定义外部站点的媒体。" #~ msgid "Danger Zone" #~ msgstr "实验室" -#: src/view/screens/Settings/index.tsx:500 -#: src/view/screens/Settings/index.tsx:526 +#: src/view/screens/Settings/index.tsx:504 +#: src/view/screens/Settings/index.tsx:530 msgid "Dark" msgstr "深黑" @@ -1179,11 +1179,11 @@ msgstr "深黑" msgid "Dark mode" msgstr "深色模式" -#: src/view/screens/Settings/index.tsx:513 +#: src/view/screens/Settings/index.tsx:517 msgid "Dark Theme" msgstr "深色模式" -#: src/view/screens/Settings/index.tsx:837 +#: src/view/screens/Settings/index.tsx:841 msgid "Debug Moderation" msgstr "" @@ -1197,7 +1197,7 @@ msgstr "调试面板" msgid "Delete" msgstr "" -#: src/view/screens/Settings/index.tsx:792 +#: src/view/screens/Settings/index.tsx:796 msgid "Delete account" msgstr "删除账号" @@ -1225,7 +1225,7 @@ msgstr "删除我的账户" #~ msgid "Delete my account…" #~ msgstr "删除我的账户…" -#: src/view/screens/Settings/index.tsx:804 +#: src/view/screens/Settings/index.tsx:808 msgid "Delete My Account…" msgstr "删除我的账户…" @@ -1265,7 +1265,7 @@ msgstr "描述" msgid "Did you want to say anything?" msgstr "有什么想说的吗?" -#: src/view/screens/Settings/index.tsx:519 +#: src/view/screens/Settings/index.tsx:523 msgid "Dim" msgstr "暗淡" @@ -1334,19 +1334,6 @@ msgstr "域名已认证!" #~ msgid "Don't have an invite code?" #~ msgstr "没有邀请码?" -#: src/view/com/auth/onboarding/RecommendedFollows.tsx:86 -#: src/view/com/modals/EditImage.tsx:333 -#: src/view/com/modals/ListAddRemoveUsers.tsx:144 -#: src/view/com/modals/SelfLabel.tsx:157 -#: src/view/com/modals/Threadgate.tsx:129 -#: src/view/com/modals/Threadgate.tsx:132 -#: src/view/com/modals/UserAddRemoveLists.tsx:95 -#: src/view/com/modals/UserAddRemoveLists.tsx:98 -#: src/view/screens/PreferencesThreads.tsx:162 -msgctxt "action" -msgid "Done" -msgstr "完成" - #: src/components/dialogs/BirthDateSettings.tsx:119 #: src/components/dialogs/BirthDateSettings.tsx:125 #: src/view/com/auth/server-input/index.tsx:165 @@ -1363,11 +1350,24 @@ msgstr "完成" msgid "Done" msgstr "完成" +#: src/view/com/auth/onboarding/RecommendedFollows.tsx:86 +#: src/view/com/modals/EditImage.tsx:333 +#: src/view/com/modals/ListAddRemoveUsers.tsx:144 +#: src/view/com/modals/SelfLabel.tsx:157 +#: src/view/com/modals/Threadgate.tsx:129 +#: src/view/com/modals/Threadgate.tsx:132 +#: src/view/com/modals/UserAddRemoveLists.tsx:95 +#: src/view/com/modals/UserAddRemoveLists.tsx:98 +#: src/view/screens/PreferencesThreads.tsx:162 +msgctxt "action" +msgid "Done" +msgstr "完成" + #: src/view/com/modals/lang-settings/ConfirmLanguagesButton.tsx:42 msgid "Done{extraText}" msgstr "完成{extraText}" -#: src/view/com/auth/login/ChooseAccountForm.tsx:45 +#: src/view/com/auth/login/ChooseAccountForm.tsx:46 msgid "Double tap to sign in" msgstr "双击以登录" @@ -1516,7 +1516,7 @@ msgstr "电子邮箱已更新" msgid "Email verified" msgstr "电子邮箱已验证" -#: src/view/screens/Settings/index.tsx:327 +#: src/view/screens/Settings/index.tsx:331 msgid "Email:" msgstr "电子邮箱:" @@ -1669,12 +1669,12 @@ msgstr "" msgid "Explicit sexual images." msgstr "" -#: src/view/screens/Settings/index.tsx:773 +#: src/view/screens/Settings/index.tsx:777 msgid "Export my data" msgstr "导出账号数据" #: src/view/screens/Settings/ExportCarDialog.tsx:44 -#: src/view/screens/Settings/index.tsx:784 +#: src/view/screens/Settings/index.tsx:788 msgid "Export My Data" msgstr "导出账号数据" @@ -1689,11 +1689,11 @@ msgstr "外部媒体可能允许网站收集有关你和你设备的有关信息 #: src/Navigation.tsx:275 #: src/view/screens/PreferencesExternalEmbeds.tsx:52 -#: src/view/screens/Settings/index.tsx:673 +#: src/view/screens/Settings/index.tsx:677 msgid "External Media Preferences" msgstr "外部媒体首选项" -#: src/view/screens/Settings/index.tsx:664 +#: src/view/screens/Settings/index.tsx:668 msgid "External media settings" msgstr "外部媒体设置" @@ -1894,7 +1894,7 @@ msgstr "正在关注" msgid "Following {0}" msgstr "正在关注 {0}" -#: src/view/screens/Settings/index.tsx:549 +#: src/view/screens/Settings/index.tsx:553 msgid "Following feed preferences" msgstr "" @@ -1902,7 +1902,7 @@ msgstr "" #: src/view/com/home/HomeHeaderLayout.web.tsx:50 #: src/view/com/home/HomeHeaderLayoutMobile.tsx:84 #: src/view/screens/PreferencesFollowingFeed.tsx:104 -#: src/view/screens/Settings/index.tsx:558 +#: src/view/screens/Settings/index.tsx:562 msgid "Following Feed Preferences" msgstr "关注信息流首选项" @@ -1926,11 +1926,11 @@ msgstr "出于安全原因,我们需要向你的电子邮箱发送验证码。 msgid "For security reasons, you won't be able to view this again. If you lose this password, you'll need to generate a new one." msgstr "出于安全原因,你将无法再次查看此内容。如果你丢失了该密码,则需要生成一个新的密码。" -#: src/view/com/auth/login/LoginForm.tsx:241 +#: src/view/com/auth/login/LoginForm.tsx:244 msgid "Forgot" msgstr "忘记" -#: src/view/com/auth/login/LoginForm.tsx:238 +#: src/view/com/auth/login/LoginForm.tsx:241 msgid "Forgot password" msgstr "忘记密码" @@ -2007,7 +2007,7 @@ msgstr "前往 @{queryMaybeHandle}" #: src/view/com/auth/login/ForgotPasswordForm.tsx:189 #: src/view/com/auth/login/ForgotPasswordForm.tsx:218 -#: src/view/com/auth/login/LoginForm.tsx:288 +#: src/view/com/auth/login/LoginForm.tsx:291 #: src/view/com/auth/login/SetNewPasswordForm.tsx:195 #: src/view/com/modals/ChangePassword.tsx:167 msgid "Go to next" @@ -2248,11 +2248,11 @@ msgstr "输入密码以删除账户" #~ msgid "Input phone number for SMS verification" #~ msgstr "输入手机号码进行短信验证" -#: src/view/com/auth/login/LoginForm.tsx:230 +#: src/view/com/auth/login/LoginForm.tsx:233 msgid "Input the password tied to {identifier}" msgstr "输入与 {identifier} 关联的密码" -#: src/view/com/auth/login/LoginForm.tsx:197 +#: src/view/com/auth/login/LoginForm.tsx:200 msgid "Input the username or email address you used at signup" msgstr "输入注册时使用的用户名或电子邮箱" @@ -2264,7 +2264,7 @@ msgstr "输入注册时使用的用户名或电子邮箱" #~ msgid "Input your email to get on the Bluesky waitlist" #~ msgstr "输入你的电子邮箱以加入 Bluesky 候补列表" -#: src/view/com/auth/login/LoginForm.tsx:229 +#: src/view/com/auth/login/LoginForm.tsx:232 msgid "Input your password" msgstr "输入你的密码" @@ -2280,7 +2280,7 @@ msgstr "输入你的用户识别符" msgid "Invalid or unsupported post record" msgstr "帖子记录无效或不受支持" -#: src/view/com/auth/login/LoginForm.tsx:113 +#: src/view/com/auth/login/LoginForm.tsx:116 msgid "Invalid username or password" msgstr "用户名或密码无效" @@ -2375,7 +2375,7 @@ msgstr "" msgid "Language selection" msgstr "选择语言" -#: src/view/screens/Settings/index.tsx:610 +#: src/view/screens/Settings/index.tsx:614 msgid "Language settings" msgstr "语言设置" @@ -2384,7 +2384,7 @@ msgstr "语言设置" msgid "Language Settings" msgstr "语言设置" -#: src/view/screens/Settings/index.tsx:619 +#: src/view/screens/Settings/index.tsx:623 msgid "Languages" msgstr "语言" @@ -2430,7 +2430,7 @@ msgstr "离开 Bluesky" msgid "left to go." msgstr "尚未完成。" -#: src/view/screens/Settings/index.tsx:292 +#: src/view/screens/Settings/index.tsx:296 msgid "Legacy storage cleared, you need to restart the app now." msgstr "旧存储数据已清除,你需要立即重新启动应用。" @@ -2448,7 +2448,7 @@ msgstr "让我们开始!" #~ msgid "Library" #~ msgstr "图书馆" -#: src/view/screens/Settings/index.tsx:494 +#: src/view/screens/Settings/index.tsx:498 msgid "Light" msgstr "亮色" @@ -2587,7 +2587,7 @@ msgstr "登出" msgid "Logged-out visibility" msgstr "未登录用户可见性" -#: src/view/com/auth/login/ChooseAccountForm.tsx:137 +#: src/view/com/auth/login/ChooseAccountForm.tsx:142 msgid "Login to account that is not listed" msgstr "登录未列出的账户" @@ -2634,7 +2634,7 @@ msgstr "" #: src/Navigation.tsx:119 #: src/screens/Moderation/index.tsx:106 -#: src/view/screens/Settings/index.tsx:641 +#: src/view/screens/Settings/index.tsx:645 #: src/view/shell/desktop/LeftNav.tsx:401 #: src/view/shell/Drawer.tsx:514 #: src/view/shell/Drawer.tsx:515 @@ -2677,7 +2677,7 @@ msgstr "限制列表" msgid "Moderation Lists" msgstr "限制列表" -#: src/view/screens/Settings/index.tsx:635 +#: src/view/screens/Settings/index.tsx:639 msgid "Moderation settings" msgstr "限制设置" @@ -2824,11 +2824,11 @@ msgstr "自定义信息流" msgid "My Profile" msgstr "我的个人资料" -#: src/view/screens/Settings/index.tsx:592 +#: src/view/screens/Settings/index.tsx:596 msgid "My saved feeds" msgstr "" -#: src/view/screens/Settings/index.tsx:598 +#: src/view/screens/Settings/index.tsx:602 msgid "My Saved Feeds" msgstr "我保存的信息流" @@ -2857,7 +2857,7 @@ msgstr "自然" #: src/view/com/auth/login/ForgotPasswordForm.tsx:190 #: src/view/com/auth/login/ForgotPasswordForm.tsx:219 -#: src/view/com/auth/login/LoginForm.tsx:289 +#: src/view/com/auth/login/LoginForm.tsx:292 #: src/view/com/auth/login/SetNewPasswordForm.tsx:196 #: src/view/com/modals/ChangePassword.tsx:168 msgid "Navigates to the next screen" @@ -2950,7 +2950,7 @@ msgstr "新闻" #: src/view/com/auth/create/CreateAccount.tsx:172 #: src/view/com/auth/login/ForgotPasswordForm.tsx:182 #: src/view/com/auth/login/ForgotPasswordForm.tsx:192 -#: src/view/com/auth/login/LoginForm.tsx:291 +#: src/view/com/auth/login/LoginForm.tsx:294 #: src/view/com/auth/login/SetNewPasswordForm.tsx:187 #: src/view/com/auth/login/SetNewPasswordForm.tsx:198 #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:79 @@ -3095,7 +3095,7 @@ msgstr "好的" msgid "Oldest replies first" msgstr "优先显示最旧的回复" -#: src/view/screens/Settings/index.tsx:240 +#: src/view/screens/Settings/index.tsx:244 msgid "Onboarding reset" msgstr "重新开始引导流程" @@ -3134,7 +3134,7 @@ msgstr "打开表情符号选择器" msgid "Open feed options menu" msgstr "" -#: src/view/screens/Settings/index.tsx:730 +#: src/view/screens/Settings/index.tsx:734 msgid "Open links with in-app browser" msgstr "在内置浏览器中打开链接" @@ -3154,12 +3154,12 @@ msgstr "开启导航" msgid "Open post options menu" msgstr "打开帖子选项菜单" -#: src/view/screens/Settings/index.tsx:824 -#: src/view/screens/Settings/index.tsx:834 +#: src/view/screens/Settings/index.tsx:828 +#: src/view/screens/Settings/index.tsx:838 msgid "Open storybook page" msgstr "开启 Storybook 界面" -#: src/view/screens/Settings/index.tsx:812 +#: src/view/screens/Settings/index.tsx:816 msgid "Open system log" msgstr "" @@ -3183,7 +3183,7 @@ msgstr "开启设备相机" msgid "Opens composer" msgstr "开启编辑器" -#: src/view/screens/Settings/index.tsx:611 +#: src/view/screens/Settings/index.tsx:615 msgid "Opens configurable language settings" msgstr "开启可配置的语言设置" @@ -3195,7 +3195,7 @@ msgstr "开启设备相册" #~ msgid "Opens editor for profile display name, avatar, background image, and description" #~ msgstr "开启个人资料(如名称、头像、背景图片、描述等)编辑器" -#: src/view/screens/Settings/index.tsx:665 +#: src/view/screens/Settings/index.tsx:669 msgid "Opens external embeds settings" msgstr "开启外部嵌入设置" @@ -3225,7 +3225,7 @@ msgstr "" msgid "Opens list of invite codes" msgstr "开启邀请码列表" -#: src/view/screens/Settings/index.tsx:794 +#: src/view/screens/Settings/index.tsx:798 msgid "Opens modal for account deletion confirmation. Requires email code" msgstr "" @@ -3233,19 +3233,19 @@ msgstr "" #~ msgid "Opens modal for account deletion confirmation. Requires email code." #~ msgstr "开启用户删除确认界面,需要电子邮箱接收验证码。" -#: src/view/screens/Settings/index.tsx:752 +#: src/view/screens/Settings/index.tsx:756 msgid "Opens modal for changing your Bluesky password" msgstr "" -#: src/view/screens/Settings/index.tsx:714 +#: src/view/screens/Settings/index.tsx:718 msgid "Opens modal for choosing a new Bluesky handle" msgstr "" -#: src/view/screens/Settings/index.tsx:775 +#: src/view/screens/Settings/index.tsx:779 msgid "Opens modal for downloading your Bluesky account data (repository)" msgstr "" -#: src/view/screens/Settings/index.tsx:966 +#: src/view/screens/Settings/index.tsx:970 msgid "Opens modal for email verification" msgstr "" @@ -3253,11 +3253,11 @@ msgstr "" msgid "Opens modal for using custom domain" msgstr "开启使用自定义域名的模式" -#: src/view/screens/Settings/index.tsx:636 +#: src/view/screens/Settings/index.tsx:640 msgid "Opens moderation settings" msgstr "开启限制设置" -#: src/view/com/auth/login/LoginForm.tsx:239 +#: src/view/com/auth/login/LoginForm.tsx:242 msgid "Opens password reset form" msgstr "开启密码重置申请" @@ -3266,11 +3266,11 @@ msgstr "开启密码重置申请" msgid "Opens screen to edit Saved Feeds" msgstr "开启用于编辑已保存信息流的界面" -#: src/view/screens/Settings/index.tsx:593 +#: src/view/screens/Settings/index.tsx:597 msgid "Opens screen with all saved feeds" msgstr "开启包含所有已保存信息流的界面" -#: src/view/screens/Settings/index.tsx:692 +#: src/view/screens/Settings/index.tsx:696 msgid "Opens the app password settings" msgstr "" @@ -3278,7 +3278,7 @@ msgstr "" #~ msgid "Opens the app password settings page" #~ msgstr "开启应用专用密码设置页" -#: src/view/screens/Settings/index.tsx:550 +#: src/view/screens/Settings/index.tsx:554 msgid "Opens the Following feed preferences" msgstr "" @@ -3290,16 +3290,16 @@ msgstr "" msgid "Opens the linked website" msgstr "" -#: src/view/screens/Settings/index.tsx:825 -#: src/view/screens/Settings/index.tsx:835 +#: src/view/screens/Settings/index.tsx:829 +#: src/view/screens/Settings/index.tsx:839 msgid "Opens the storybook page" msgstr "开启 Storybook 界面" -#: src/view/screens/Settings/index.tsx:813 +#: src/view/screens/Settings/index.tsx:817 msgid "Opens the system log page" msgstr "开启系统日志界面" -#: src/view/screens/Settings/index.tsx:571 +#: src/view/screens/Settings/index.tsx:575 msgid "Opens the threads preferences" msgstr "开启讨论串首选项" @@ -3319,7 +3319,7 @@ msgstr "或者选择组合这些选项:" msgid "Other" msgstr "" -#: src/view/com/auth/login/ChooseAccountForm.tsx:142 +#: src/view/com/auth/login/ChooseAccountForm.tsx:147 msgid "Other account" msgstr "其他账户" @@ -3342,8 +3342,8 @@ msgstr "无法找到此页面" #: src/view/com/auth/create/Step1.tsx:191 #: src/view/com/auth/create/Step1.tsx:201 -#: src/view/com/auth/login/LoginForm.tsx:210 -#: src/view/com/auth/login/LoginForm.tsx:226 +#: src/view/com/auth/login/LoginForm.tsx:213 +#: src/view/com/auth/login/LoginForm.tsx:229 #: src/view/com/auth/login/SetNewPasswordForm.tsx:161 #: src/view/com/modals/DeleteAccount.tsx:195 #: src/view/com/modals/DeleteAccount.tsx:202 @@ -3581,7 +3581,7 @@ msgstr "首选语言" msgid "Prioritize Your Follows" msgstr "优先显示关注者" -#: src/view/screens/Settings/index.tsx:648 +#: src/view/screens/Settings/index.tsx:652 #: src/view/shell/desktop/RightNav.tsx:72 msgid "Privacy" msgstr "隐私" @@ -3589,7 +3589,7 @@ msgstr "隐私" #: src/Navigation.tsx:231 #: src/view/com/auth/create/Policies.tsx:69 #: src/view/screens/PrivacyPolicy.tsx:29 -#: src/view/screens/Settings/index.tsx:921 +#: src/view/screens/Settings/index.tsx:925 #: src/view/shell/Drawer.tsx:265 msgid "Privacy Policy" msgstr "隐私政策" @@ -3615,7 +3615,7 @@ msgstr "个人资料" msgid "Profile updated" msgstr "个人资料已更新" -#: src/view/screens/Settings/index.tsx:979 +#: src/view/screens/Settings/index.tsx:983 msgid "Protect your account by verifying your email." msgstr "通过验证电子邮箱来保护你的账户。" @@ -3879,7 +3879,7 @@ msgstr "请求变更" msgid "Request Code" msgstr "确认码" -#: src/view/screens/Settings/index.tsx:471 +#: src/view/screens/Settings/index.tsx:475 msgid "Require alt text before posting" msgstr "发布时检查媒体是否存在替代文本" @@ -3901,8 +3901,8 @@ msgstr "确认码" #~ msgid "Reset onboarding" #~ msgstr "重置引导流程" -#: src/view/screens/Settings/index.tsx:854 -#: src/view/screens/Settings/index.tsx:857 +#: src/view/screens/Settings/index.tsx:858 +#: src/view/screens/Settings/index.tsx:861 msgid "Reset onboarding state" msgstr "重置引导流程状态" @@ -3914,20 +3914,20 @@ msgstr "重置密码" #~ msgid "Reset preferences" #~ msgstr "重置首选项" -#: src/view/screens/Settings/index.tsx:844 -#: src/view/screens/Settings/index.tsx:847 +#: src/view/screens/Settings/index.tsx:848 +#: src/view/screens/Settings/index.tsx:851 msgid "Reset preferences state" msgstr "重置首选项状态" -#: src/view/screens/Settings/index.tsx:855 +#: src/view/screens/Settings/index.tsx:859 msgid "Resets the onboarding state" msgstr "重置引导流程状态" -#: src/view/screens/Settings/index.tsx:845 +#: src/view/screens/Settings/index.tsx:849 msgid "Resets the preferences state" msgstr "重置首选项状态" -#: src/view/com/auth/login/LoginForm.tsx:269 +#: src/view/com/auth/login/LoginForm.tsx:272 msgid "Retries login" msgstr "重试登录" @@ -3941,8 +3941,8 @@ msgstr "重试上次出错的操作" #: src/screens/Onboarding/StepInterests/index.tsx:224 #: src/view/com/auth/create/CreateAccount.tsx:181 #: src/view/com/auth/create/CreateAccount.tsx:186 -#: src/view/com/auth/login/LoginForm.tsx:268 #: src/view/com/auth/login/LoginForm.tsx:271 +#: src/view/com/auth/login/LoginForm.tsx:274 #: src/view/com/util/error/ErrorMessage.tsx:55 #: src/view/com/util/error/ErrorScreen.tsx:72 msgid "Retry" @@ -3969,12 +3969,6 @@ msgstr "" #~ msgid "SANDBOX. Posts and accounts are not permanent." #~ msgstr "沙盒模式。帖子和账户不会永久保存。" -#: src/view/com/lightbox/Lightbox.tsx:132 -#: src/view/com/modals/CreateOrEditList.tsx:345 -msgctxt "action" -msgid "Save" -msgstr "保存" - #: src/components/dialogs/BirthDateSettings.tsx:125 #: src/view/com/modals/ChangeHandle.tsx:173 #: src/view/com/modals/CreateOrEditList.tsx:337 @@ -3982,6 +3976,12 @@ msgstr "保存" msgid "Save" msgstr "保存" +#: src/view/com/lightbox/Lightbox.tsx:132 +#: src/view/com/modals/CreateOrEditList.tsx:345 +msgctxt "action" +msgid "Save" +msgstr "保存" + #: src/view/com/modals/AltImage.tsx:130 msgid "Save alt text" msgstr "保存替代文字" @@ -4144,7 +4144,7 @@ msgid "Select option {i} of {numItems}" msgstr "选择 {numItems} 项中的第 {i} 项" #: src/view/com/auth/create/Step1.tsx:96 -#: src/view/com/auth/login/LoginForm.tsx:150 +#: src/view/com/auth/login/LoginForm.tsx:153 msgid "Select service" msgstr "选择服务" @@ -4314,23 +4314,23 @@ msgstr "设置你的账户" msgid "Sets Bluesky username" msgstr "设置 Bluesky 用户名" -#: src/view/screens/Settings/index.tsx:503 +#: src/view/screens/Settings/index.tsx:507 msgid "Sets color theme to dark" msgstr "" -#: src/view/screens/Settings/index.tsx:496 +#: src/view/screens/Settings/index.tsx:500 msgid "Sets color theme to light" msgstr "" -#: src/view/screens/Settings/index.tsx:490 +#: src/view/screens/Settings/index.tsx:494 msgid "Sets color theme to system setting" msgstr "" -#: src/view/screens/Settings/index.tsx:529 +#: src/view/screens/Settings/index.tsx:533 msgid "Sets dark theme to the dark theme" msgstr "" -#: src/view/screens/Settings/index.tsx:522 +#: src/view/screens/Settings/index.tsx:526 msgid "Sets dark theme to the dim theme" msgstr "" @@ -4355,12 +4355,12 @@ msgid "Sets image aspect ratio to wide" msgstr "" #: src/view/com/auth/create/Step1.tsx:97 -#: src/view/com/auth/login/LoginForm.tsx:151 +#: src/view/com/auth/login/LoginForm.tsx:154 msgid "Sets server for the Bluesky client" msgstr "设置 Bluesky 客户端的服务器" #: src/Navigation.tsx:139 -#: src/view/screens/Settings/index.tsx:309 +#: src/view/screens/Settings/index.tsx:313 #: src/view/shell/desktop/LeftNav.tsx:437 #: src/view/shell/Drawer.tsx:570 #: src/view/shell/Drawer.tsx:571 @@ -4403,7 +4403,7 @@ msgstr "分享信息流" #: src/components/moderation/GlobalModerationLabelPref.tsx:45 #: src/components/moderation/PostHider.tsx:107 #: src/screens/Onboarding/StepModeration/ModerationOption.tsx:54 -#: src/view/screens/Settings/index.tsx:359 +#: src/view/screens/Settings/index.tsx:363 msgid "Show" msgstr "显示" @@ -4533,23 +4533,23 @@ msgstr "登录" msgid "Sign In" msgstr "登录" -#: src/view/com/auth/login/ChooseAccountForm.tsx:44 +#: src/view/com/auth/login/ChooseAccountForm.tsx:45 msgid "Sign in as {0}" msgstr "以 {0} 登录" -#: src/view/com/auth/login/ChooseAccountForm.tsx:122 +#: src/view/com/auth/login/ChooseAccountForm.tsx:127 #: src/view/com/auth/login/Login.tsx:116 msgid "Sign in as..." msgstr "登录为..." -#: src/view/com/auth/login/LoginForm.tsx:137 +#: src/view/com/auth/login/LoginForm.tsx:140 msgid "Sign into" msgstr "登录到" #: src/view/com/modals/SwitchAccount.tsx:68 #: src/view/com/modals/SwitchAccount.tsx:73 -#: src/view/screens/Settings/index.tsx:105 -#: src/view/screens/Settings/index.tsx:108 +#: src/view/screens/Settings/index.tsx:107 +#: src/view/screens/Settings/index.tsx:110 msgid "Sign out" msgstr "登出" @@ -4574,11 +4574,11 @@ msgstr "注册或登录以加入对话" msgid "Sign-in Required" msgstr "需要登录" -#: src/view/screens/Settings/index.tsx:370 +#: src/view/screens/Settings/index.tsx:374 msgid "Signed in as" msgstr "登录身份" -#: src/view/com/auth/login/ChooseAccountForm.tsx:107 +#: src/view/com/auth/login/ChooseAccountForm.tsx:112 msgid "Signed in as @{0}" msgstr "以 @{0} 身份登录" @@ -4658,7 +4658,7 @@ msgstr "方块" #~ msgid "Staging" #~ msgstr "暂存" -#: src/view/screens/Settings/index.tsx:901 +#: src/view/screens/Settings/index.tsx:905 msgid "Status page" msgstr "状态页" @@ -4666,12 +4666,12 @@ msgstr "状态页" msgid "Step {0} of {numSteps}" msgstr "第 {0} 步,共 {numSteps} 步" -#: src/view/screens/Settings/index.tsx:288 +#: src/view/screens/Settings/index.tsx:292 msgid "Storage cleared, you need to restart the app now." msgstr "已清除存储,请立即重启应用。" #: src/Navigation.tsx:211 -#: src/view/screens/Settings/index.tsx:827 +#: src/view/screens/Settings/index.tsx:831 msgid "Storybook" msgstr "Storybook" @@ -4727,25 +4727,25 @@ msgstr "支持" #~ msgid "Swipe up to see more" #~ msgstr "向上滑动查看更多" -#: src/view/com/modals/SwitchAccount.tsx:121 +#: src/view/com/modals/SwitchAccount.tsx:123 msgid "Switch Account" msgstr "切换账户" -#: src/view/com/modals/SwitchAccount.tsx:101 -#: src/view/screens/Settings/index.tsx:135 +#: src/view/com/modals/SwitchAccount.tsx:103 +#: src/view/screens/Settings/index.tsx:139 msgid "Switch to {0}" msgstr "切换到 {0}" -#: src/view/com/modals/SwitchAccount.tsx:102 -#: src/view/screens/Settings/index.tsx:136 +#: src/view/com/modals/SwitchAccount.tsx:104 +#: src/view/screens/Settings/index.tsx:140 msgid "Switches the account you are logged in to" msgstr "切换你登录的账户" -#: src/view/screens/Settings/index.tsx:487 +#: src/view/screens/Settings/index.tsx:491 msgid "System" msgstr "系统" -#: src/view/screens/Settings/index.tsx:815 +#: src/view/screens/Settings/index.tsx:819 msgid "System log" msgstr "系统日志" @@ -4779,7 +4779,7 @@ msgstr "条款" #: src/Navigation.tsx:236 #: src/view/com/auth/create/Policies.tsx:59 -#: src/view/screens/Settings/index.tsx:915 +#: src/view/screens/Settings/index.tsx:919 #: src/view/screens/TermsOfService.tsx:29 #: src/view/shell/Drawer.tsx:259 msgid "Terms of Service" @@ -5115,12 +5115,12 @@ msgstr "这将从你的隐藏词中删除 {0}。你随时可以重新添加。" #~ msgid "This will hide this post from your feeds." #~ msgstr "这将在你的信息流中隐藏此帖子。" -#: src/view/screens/Settings/index.tsx:570 +#: src/view/screens/Settings/index.tsx:574 msgid "Thread preferences" msgstr "" #: src/view/screens/PreferencesThreads.tsx:53 -#: src/view/screens/Settings/index.tsx:580 +#: src/view/screens/Settings/index.tsx:584 msgid "Thread Preferences" msgstr "讨论串首选项" @@ -5179,7 +5179,7 @@ msgstr "取消隐藏列表" #: src/view/com/auth/create/CreateAccount.tsx:58 #: src/view/com/auth/login/ForgotPasswordForm.tsx:87 #: src/view/com/auth/login/Login.tsx:76 -#: src/view/com/auth/login/LoginForm.tsx:118 +#: src/view/com/auth/login/LoginForm.tsx:121 #: src/view/com/modals/ChangePassword.tsx:70 msgid "Unable to contact your service. Please check your Internet connection." msgstr "无法连接到服务,请检查互联网连接。" @@ -5433,8 +5433,8 @@ msgstr "用户列表已更新" msgid "User Lists" msgstr "用户列表" -#: src/view/com/auth/login/LoginForm.tsx:177 -#: src/view/com/auth/login/LoginForm.tsx:195 +#: src/view/com/auth/login/LoginForm.tsx:180 +#: src/view/com/auth/login/LoginForm.tsx:198 msgid "Username or email address" msgstr "用户名或电子邮箱" @@ -5466,15 +5466,15 @@ msgstr "" msgid "Verify {0}" msgstr "" -#: src/view/screens/Settings/index.tsx:940 +#: src/view/screens/Settings/index.tsx:944 msgid "Verify email" msgstr "验证邮箱" -#: src/view/screens/Settings/index.tsx:965 +#: src/view/screens/Settings/index.tsx:969 msgid "Verify my email" msgstr "验证我的邮箱" -#: src/view/screens/Settings/index.tsx:974 +#: src/view/screens/Settings/index.tsx:978 msgid "Verify My Email" msgstr "验证我的邮箱" @@ -5952,7 +5952,7 @@ msgid "Your posts, likes, and blocks are public. Mutes are private." msgstr "你的帖子、喜欢和屏蔽是公开可见的,而隐藏不可见。" #: src/view/com/modals/SwitchAccount.tsx:88 -#: src/view/screens/Settings/index.tsx:123 +#: src/view/screens/Settings/index.tsx:125 msgid "Your profile" msgstr "你的个人资料" From 09e9769eeaa89e09e3b63c48533abc46f193cbfd Mon Sep 17 00:00:00 2001 From: Samuel Newman Date: Wed, 20 Mar 2024 15:40:03 +0000 Subject: [PATCH 044/222] add logEvent that got lost in merge from main --- src/screens/Login/ChooseAccountForm.tsx | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/screens/Login/ChooseAccountForm.tsx b/src/screens/Login/ChooseAccountForm.tsx index dd807ba3a8..6e32d472e3 100644 --- a/src/screens/Login/ChooseAccountForm.tsx +++ b/src/screens/Login/ChooseAccountForm.tsx @@ -18,6 +18,7 @@ import {ChevronRight_Stroke2_Corner0_Rounded as Chevron} from '#/components/icon import {Check_Stroke2_Corner0_Rounded as Check} from '#/components/icons/Check' import * as TextField from '#/components/forms/TextField' import {FormContainer} from './FormContainer' +import {logEvent} from '#/lib/statsig/statsig' function Group({children}: {children: React.ReactNode}) { const t = useTheme() @@ -125,6 +126,10 @@ export const ChooseAccountForm = ({ Toast.show(_(msg`Already signed in as @${account.handle}`)) } else { await initSession(account) + logEvent('account:loggedIn', { + logContext: 'ChooseAccountForm', + withPassword: false, + }) track('Sign In', {resumedSession: true}) setTimeout(() => { Toast.show(_(msg`Signed in as @${account.handle}`)) From 4c60d4d07014c4970dfdb7f6272ab2abadf035b9 Mon Sep 17 00:00:00 2001 From: Samuel Newman Date: Wed, 20 Mar 2024 15:42:39 +0000 Subject: [PATCH 045/222] remove unnecessary group component --- src/screens/Login/ChooseAccountForm.tsx | 50 +++++++++---------------- 1 file changed, 17 insertions(+), 33 deletions(-) diff --git a/src/screens/Login/ChooseAccountForm.tsx b/src/screens/Login/ChooseAccountForm.tsx index 6e32d472e3..600a640cae 100644 --- a/src/screens/Login/ChooseAccountForm.tsx +++ b/src/screens/Login/ChooseAccountForm.tsx @@ -2,7 +2,6 @@ import React from 'react' import {View} from 'react-native' import {Trans, msg} from '@lingui/macro' import {useLingui} from '@lingui/react' -import flattenReactChildren from 'react-keyed-flatten-children' import {useAnalytics} from 'lib/analytics/analytics' import {UserAvatar} from '../../view/com/util/UserAvatar' @@ -20,30 +19,6 @@ import * as TextField from '#/components/forms/TextField' import {FormContainer} from './FormContainer' import {logEvent} from '#/lib/statsig/statsig' -function Group({children}: {children: React.ReactNode}) { - const t = useTheme() - return ( - - {flattenReactChildren(children).map((child, i) => { - return React.isValidElement(child) ? ( - - {i > 0 ? ( - - ) : null} - {child} - - ) : null - })} - - ) -} - function AccountItem({ account, onSelect, @@ -150,14 +125,23 @@ export const ChooseAccountForm = ({ Sign in as... - + {accounts.map(account => ( - + <> + + + ))} - + + - - + + - + style={[ + a.absolute, + a.inset_0, + {left: 'auto'}, + {pointerEvents: 'none'}, + a.align_center, + a.justify_center, + ]}> + @@ -136,44 +142,3 @@ export const SplashScreen = ({ ) } - -const styles = StyleSheet.create({ - container: { - height: '100%', - }, - hero: { - flex: 2, - justifyContent: 'center', - alignItems: 'center', - }, - btns: { - paddingBottom: 0, - }, - title: { - textAlign: 'center', - fontSize: 68, - fontWeight: 'bold', - }, - subtitle: { - textAlign: 'center', - fontSize: 42, - fontWeight: 'bold', - }, - btn: { - borderRadius: 32, - paddingVertical: 16, - marginBottom: 20, - marginHorizontal: 20, - }, - btnLabel: { - textAlign: 'center', - fontSize: 21, - }, - footer: { - paddingHorizontal: 16, - paddingTop: 12, - paddingBottom: 24, - justifyContent: 'center', - alignItems: 'center', - }, -}) From eacd1cbe2af2446140a8a05140e89941f779c2ff Mon Sep 17 00:00:00 2001 From: Samuel Newman Date: Wed, 20 Mar 2024 17:11:59 +0000 Subject: [PATCH 050/222] use alf for splashscreen (web) --- src/view/com/auth/SplashScreen.web.tsx | 215 ++++++++++--------------- 1 file changed, 86 insertions(+), 129 deletions(-) diff --git a/src/view/com/auth/SplashScreen.web.tsx b/src/view/com/auth/SplashScreen.web.tsx index f1921c7ffb..7e5ddaffb8 100644 --- a/src/view/com/auth/SplashScreen.web.tsx +++ b/src/view/com/auth/SplashScreen.web.tsx @@ -1,13 +1,9 @@ import React from 'react' -import {StyleSheet, TouchableOpacity, View, Pressable} from 'react-native' +import {View, Pressable} from 'react-native' import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' -import {Text} from 'view/com/util/text/Text' import {TextLink} from '../util/Link' import {ErrorBoundary} from 'view/com/util/ErrorBoundary' -import {s, colors} from 'lib/styles' -import {usePalette} from 'lib/hooks/usePalette' import {CenteredView} from '../util/Views' -import {isWeb} from 'platform/detection' import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' import {Trans, msg} from '@lingui/macro' import {Logo} from '#/view/icons/Logo' @@ -16,6 +12,10 @@ import {useLingui} from '@lingui/react' import {sanitizeAppLanguageSetting} from '#/locale/helpers' import {useLanguagePrefs, useLanguagePrefsApi} from '#/state/preferences' import {APP_LANGUAGES} from '#/locale/languages' +import {atoms as a, useTheme} from '#/alf' +import {Button, ButtonText} from '#/components/Button' +import {ChevronBottom_Stroke2_Corner0_Rounded as ChevronDown} from '#/components/icons/Chevron' +import {Text} from '#/components/Typography' export const SplashScreen = ({ onDismiss, @@ -26,10 +26,9 @@ export const SplashScreen = ({ onPressSignin: () => void onPressCreateAccount: () => void }) => { - const pal = usePalette('default') - const {isTabletOrMobile} = useWebMediaQueries() - const styles = useStyles() - const isMobileWeb = isWeb && isTabletOrMobile + const {_} = useLingui() + const t = useTheme() + const {isTabletOrMobile: isMobileWeb} = useWebMediaQueries() return ( <> @@ -48,61 +47,89 @@ export const SplashScreen = ({ icon="x" size={24} style={{ - color: String(pal.text.color), + color: String(t.atoms.text.color), }} /> )} - + - + + + + + + - - + + What's up? + - - + + -